15
Основи ASP.Net MVC

ASP.Net MVC

Embed Size (px)

Citation preview

Page 1: ASP.Net MVC

Основи ASP.Net MVC

Page 2: ASP.Net MVC

Будемо говорити про...

0. ASP.NET MVC і для чого його використовують1. eкосистему ASP.NET MVC2. MVC як підхід до веб-програмування3. створення першого проекту (бази фільмів)4. додавання сутності до проекту (сутність Movie)5. ASP.NET MVC i Ajax6. тестування проекту і деплоймент7. висновки, запитання

Page 3: ASP.Net MVC

ASP.NET MVC і його застосування

ASP.NET MVC:1. фреймворк призначений для веб-програмування2. побудований на принципах паттерна

Модель-Вигдяд-Контроллер3. застосовується для сторення веб-сайтів4. євляє собою цілу екосистему бібліотек, інструментів

від різних виробників5. допомагає повністю розділити роботу дизайнер,

програміста і тестера6. допомагає ефективно розділити дані і бізнес-логіку7. дозволяє зменшити кількість коду

o scaffoldingo велика кількість бібліотек

Page 4: ASP.Net MVC

Навіщо потрібна екосистема?

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

Page 5: ASP.Net MVC

MVC паттерн у веб-програмуванні

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

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

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

Scaffolding – автоматичне створення контроллера, і виглядів по шаблону

Page 6: ASP.Net MVC

Модель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#Публічні поля – колонки в базі данихВалідація за допомогою атрибутів

Page 7: ASP.Net MVC

Контроллер

public class MovieController : Controller {

private MoviesListContext db = new MoviesListContext();

[HttpGet]

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

Контроллер – клас С#Actions – публічні методи контроллераКожен Action повертає ViewResult

Page 8: ASP.Net MVC

Вигляд

@{ ViewBag.Title = "About Us";}

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

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

Page 9: ASP.Net MVC

Створення першого проекту

Що собою являє пустий проект

1. Готові сторінки, css, jquery2. Membership: реєстрація,

логін3. База даних4. Приємні деталі: валідація

полів5. Моделі, вигляди,

контроллери

Page 10: ASP.Net MVC

Життєвий цикл веб-запиту

1. Запит користувача 2. Аналіз запиту, запуск

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

Page 11: ASP.Net MVC

Створення нової сутності

1. Створення моделі Movie2. Налаштування валідації полів3. Створення контроллера, виглядів

(scaffold)4. Мінімальні зміни і налаштування

Page 12: ASP.Net MVC

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

Page 13: ASP.Net MVC

Тестування і деплоймент

Тестування:1. TDD2. Unit-тестування контроллера3. Інтеграційні тести

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

Page 14: ASP.Net MVC

Висновки і запитання

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

тестера5. Пришвидчує написання коду6. Легко тестується

Page 15: ASP.Net MVC

Корисні посилання

0. http://google.com.ua/search?q=ASP.net+mvc

1. http://asp.net/mvc/tutorials2. питання: http://stackoverflow.com