Upload
victor-matyushevskyy
View
1.747
Download
3
Embed Size (px)
Citation preview
Основи ASP.Net MVC
Будемо говорити про...
0. ASP.NET MVC і для чого його використовують1. eкосистему ASP.NET MVC2. MVC як підхід до веб-програмування3. створення першого проекту (бази фільмів)4. додавання сутності до проекту (сутність Movie)5. ASP.NET MVC i Ajax6. тестування проекту і деплоймент7. висновки, запитання
ASP.NET MVC і його застосування
ASP.NET MVC:1. фреймворк призначений для веб-програмування2. побудований на принципах паттерна
Модель-Вигдяд-Контроллер3. застосовується для сторення веб-сайтів4. євляє собою цілу екосистему бібліотек, інструментів
від різних виробників5. допомагає повністю розділити роботу дизайнер,
програміста і тестера6. допомагає ефективно розділити дані і бізнес-логіку7. дозволяє зменшити кількість коду
o scaffoldingo велика кількість бібліотек
Навіщо потрібна екосистема?
Visual studio
ASP.NET MVC Framework
Інструменти:Visual StudioWeb Platform InstallerWeb Deployment ToolWebMatrixConsole toolsReSharper
Web server:IIS
Сторонні бібліотеки
Deployment:Cloud Services
Засоби:.NET-мовиHTML, ASP, RazorjQuery, DevExpress, TelerikMS SQL, nHibernate
TestingNUnitMSTest
MVC паттерн у веб-програмуванні
1. Модель – забезпечує взаємодію з БДo активна – зберігає і обробляє даніo пасивна – тільки зберігає даніo база даних – знаходиться за моделлюo ModelState – поточний стан моделі
2. Контроллер і actiono тонкий – дістає дані і передає їх у вигляд– товстий – готує дані і передає їх у вигляд– 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, jquery2. Membership: реєстрація,
логін3. База даних4. Приємні деталі: валідація
полів5. Моделі, вигляди,
контроллери
Життєвий цикл веб-запиту
1. Запит користувача 2. Аналіз запиту, запуск
контроллера і action 3. Вибірка даних з моделі 4. Передавання даних у вигляд 5. Рендерінг layout, вигляду 6. Відсилання html клієнту
Створення нової сутності
1. Створення моделі Movie2. Налаштування валідації полів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 View6. Модифікація вигляду для роботи з Ajax
Тестування і деплоймент
Тестування:1. TDD2. 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/tutorials2. питання: http://stackoverflow.com