Основи
ASP.Net MVC
Будемо говорити про...
0. ASP.NET MVC і для чого його використовують
1. eкосистему ASP.NET MVC
2. MVC як підхід до веб-програмування
3. створення першого проекту (бази фільмів)
4. додавання сутності до проекту (сутність Movie)
5. ASP.NET MVC i Ajax
6. тестування проекту і деплоймент
7. висновки, запитання
ASP.NET MVC і його застосування
ASP.NET MVC:
1. фреймворк призначений для веб-програмування
2. побудований на принципах паттерна
    Модель-Вигдяд-Контроллер
3. застосовується для сторення веб-сайтів
4. євляє собою цілу екосистему бібліотек, інструментів від різних
    виробників
5. допомагає повністю розділити роботу дизайнер, програміста і
    тестера
6. допомагає ефективно розділити дані і бізнес-логіку
7. дозволяє зменшити кількість коду
     o scaffolding
     o велика кількість бібліотек
Навіщо потрібна екосистема?

                      ASP.NET MVC Framework

Інструменти:
                           Засоби:               Web server:
Visual Studio
                           .NET-мови             IIS
Web Platform Installer
                           HTML, ASP, Razor
Web Deployment Tool
                           jQuery, DevExpress,   Testing
WebMatrix
                           Telerik               NUnit
Console tools
                           MS SQL, nHibernate    MSTest
ReSharper


                           Deployment:
Сторонні бібліотеки
                           Cloud Services
                                                 Visual studio
MVC паттерн у веб-програмуванні

1. Модель – забезпечує взаємодію з БД
     o   активна – зберігає і обробляє дані
     o   пасивна – тільки зберігає дані
     o   база даних – знаходиться за моделлю
     o   ModelState – поточний стан моделі

2. Контроллер і action
     o   тонкий – дістає дані і передає їх у вигляд
     –   товстий – готує дані і передає їх у вигляд
     –   Actions – методи контроллера
     –   CRUD – Create, Read, Update, Delete

3. Вигляд (вид, view)
     –   Razor = Html + C#

 Scaffolding – автоматичне створення контроллера, і виглядів по шаблону
Модель
public class Movie
    {
        [Key]
        public int Id { get; set; }

       [Required]
       [StringLength(100, MinimumLength = 2)]
       public string Title { get; set; }

       [Required]
       [Range(1899, 2100)]
       public int Year { get; set; }
}


Модель – звичайний клас C#
Публічні поля – колонки в базі даних
Валідація за допомогою атрибутів
Контроллер
public class MovieController : Controller
     {
     private MoviesListContext db = new MoviesListContext();


     [HttpGet]
     public ViewResult Index()
          {
                 return View(db.Movies.ToList());
          }
}



Контроллер – клас С#
Actions – публічні методи контроллера
Кожен Action повертає ViewResult
Вигляд
@{
  ViewBag.Title = "About Us";
}

<h2>About</h2>
<p>
  Hello, @User.Identity.Name
</p>



Вигляд – Html файл з вставками Razor
Сервер при рендерінгу вигляду виконує Razor-код
Назва файлу Вигляду співпадає з назвою відповідного Action
Створення першого проекту

Що собою являє пустий проект
1. Готові сторінки, css, jquery
2. Membership: реєстрація, логін
3. База даних
4. Приємні деталі: валідація полів
5. Моделі, вигляди, контроллери
Життєвий цикл веб-запиту

1. Запит користувача
2. Аналіз запиту, запуск контроллера і action
3. Вибірка даних з моделі
4. Передавання даних у вигляд
5. Рендерінг layout, вигляду
6. Відсилання html клієнту
Створення нової сутності


1. Створення моделі Movie
2. Налаштування валідації полів
3. Створення контроллера, виглядів (scaffold)
4. Мінімальні зміни і налаштування
ASP.NET MVC і Ajax
1. Ajax, jQuery, доступ до об'єктів на сторінці
     – $("#some-element-id") – дає доступ до блока на сторінці
     – $(document) – дає доступ до цілої сторінки
2. Події і їх обробка в jQuery
     – $(document).ready(function() {
             // виконається після завантаження сторінки
            });
3. Блокування стандартної обробки події
    – $("#some-element-id").click(function(event) {
            // виконається при натисканні на елемент
            event.preventDefault();
        });
4. Створення і відображення pup-up діалогу
    – $("#some-element-id").dialog();
5. PartialView vs View
6. Модифікація вигляду для роботи з Ajax
Тестування і деплоймент
Тестування:
1. TDD
2. Unit-тестування контроллера
3. Інтеграційні тести

Депломент:
1. Cloud-сервіси
2. Деплоймент прямо з IDE
Висновки і запитання

ASP.NET MVC:
1. екосистема
2. вимагає писати правильно
3. не залежить від сервера БД
4. Розділяє дизайнера, програміста, тестера
5. Пришвидчує написання коду
6. Легко тестується
Корисні посилання

0. http://google.com.ua/search?q=ASP.net+mvc
1. http://asp.net/mvc/tutorials
2. питання: http://stackoverflow.com

ASP.Net MVC

  • 1.
  • 2.
    Будемо говорити про... 0.ASP.NET MVC і для чого його використовують 1. eкосистему ASP.NET MVC 2. MVC як підхід до веб-програмування 3. створення першого проекту (бази фільмів) 4. додавання сутності до проекту (сутність Movie) 5. ASP.NET MVC i Ajax 6. тестування проекту і деплоймент 7. висновки, запитання
  • 3.
    ASP.NET MVC ійого застосування ASP.NET MVC: 1. фреймворк призначений для веб-програмування 2. побудований на принципах паттерна Модель-Вигдяд-Контроллер 3. застосовується для сторення веб-сайтів 4. євляє собою цілу екосистему бібліотек, інструментів від різних виробників 5. допомагає повністю розділити роботу дизайнер, програміста і тестера 6. допомагає ефективно розділити дані і бізнес-логіку 7. дозволяє зменшити кількість коду o scaffolding o велика кількість бібліотек
  • 4.
    Навіщо потрібна екосистема? ASP.NET MVC Framework Інструменти: Засоби: Web server: Visual Studio .NET-мови IIS Web Platform Installer HTML, ASP, Razor Web Deployment Tool jQuery, DevExpress, Testing WebMatrix Telerik NUnit Console tools MS SQL, nHibernate MSTest ReSharper Deployment: Сторонні бібліотеки Cloud Services Visual studio
  • 5.
    MVC паттерн увеб-програмуванні 1. Модель – забезпечує взаємодію з БД o активна – зберігає і обробляє дані o пасивна – тільки зберігає дані o база даних – знаходиться за моделлю o ModelState – поточний стан моделі 2. Контроллер і action o тонкий – дістає дані і передає їх у вигляд – товстий – готує дані і передає їх у вигляд – Actions – методи контроллера – CRUD – Create, Read, Update, Delete 3. Вигляд (вид, view) – Razor = Html + C# Scaffolding – автоматичне створення контроллера, і виглядів по шаблону
  • 6.
    Модель public class Movie { [Key] public int Id { get; set; } [Required] [StringLength(100, MinimumLength = 2)] public string Title { get; set; } [Required] [Range(1899, 2100)] public int Year { get; set; } } Модель – звичайний клас C# Публічні поля – колонки в базі даних Валідація за допомогою атрибутів
  • 7.
    Контроллер public class MovieController: Controller { private MoviesListContext db = new MoviesListContext(); [HttpGet] public ViewResult Index() { return View(db.Movies.ToList()); } } Контроллер – клас С# Actions – публічні методи контроллера Кожен Action повертає ViewResult
  • 8.
    Вигляд @{ ViewBag.Title= "About Us"; } <h2>About</h2> <p> Hello, @User.Identity.Name </p> Вигляд – Html файл з вставками Razor Сервер при рендерінгу вигляду виконує Razor-код Назва файлу Вигляду співпадає з назвою відповідного Action
  • 9.
    Створення першого проекту Щособою являє пустий проект 1. Готові сторінки, css, jquery 2. Membership: реєстрація, логін 3. База даних 4. Приємні деталі: валідація полів 5. Моделі, вигляди, контроллери
  • 10.
    Життєвий цикл веб-запиту 1.Запит користувача 2. Аналіз запиту, запуск контроллера і action 3. Вибірка даних з моделі 4. Передавання даних у вигляд 5. Рендерінг layout, вигляду 6. Відсилання html клієнту
  • 11.
    Створення нової сутності 1.Створення моделі Movie 2. Налаштування валідації полів 3. Створення контроллера, виглядів (scaffold) 4. Мінімальні зміни і налаштування
  • 12.
    ASP.NET MVC іAjax 1. Ajax, jQuery, доступ до об'єктів на сторінці – $("#some-element-id") – дає доступ до блока на сторінці – $(document) – дає доступ до цілої сторінки 2. Події і їх обробка в jQuery – $(document).ready(function() { // виконається після завантаження сторінки }); 3. Блокування стандартної обробки події – $("#some-element-id").click(function(event) { // виконається при натисканні на елемент event.preventDefault(); }); 4. Створення і відображення pup-up діалогу – $("#some-element-id").dialog(); 5. PartialView vs View 6. Модифікація вигляду для роботи з Ajax
  • 13.
    Тестування і деплоймент Тестування: 1.TDD 2. Unit-тестування контроллера 3. Інтеграційні тести Депломент: 1. Cloud-сервіси 2. Деплоймент прямо з IDE
  • 14.
    Висновки і запитання ASP.NETMVC: 1. екосистема 2. вимагає писати правильно 3. не залежить від сервера БД 4. Розділяє дизайнера, програміста, тестера 5. Пришвидчує написання коду 6. Легко тестується
  • 15.
    Корисні посилання 0. http://google.com.ua/search?q=ASP.net+mvc 1.http://asp.net/mvc/tutorials 2. питання: http://stackoverflow.com