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
14. Висновки і запитання
ASP.NET MVC:
1. екосистема
2. вимагає писати правильно
3. не залежить від сервера БД
4. Розділяє дизайнера, програміста, тестера
5. Пришвидчує написання коду
6. Легко тестується