Курс молодого бойца ASP.NET MVC

Недавно попросили приготовить задание/программу подготовки работы на ASP.NET MVC для обучения “с нуля”. Может кому-нибудь пригодится.

Подготавливаем рабочую среду:

1. Поставить Visual Studio 2008 Express Edition (Web Developer) SP1

http://www.microsoft.com/exPress/download/

2. Поставить SQL Server 2008 Express Edition

http://www.microsoft.com/exPress/download/

3. Поставить ASP.NET MVC 1.0

http://www.asp.net/mvc/download/

Про MVC здесь

http://ru.wikipedia.org/wiki/Model-View-Controller

http://msdn.microsoft.com/en-us/library/ms978748.aspx

http://martinfowler.com/eaaDev/uiArchs.html

4. Поставит платформу для модульного тестирования MbUnit 3 и платформу Galio

http://www.gallio.org/Default.aspx

Про TDD здесь:

http://codebetter.com/blogs/darrell.norton/articles/50337.aspx

http://martinfowler.com/articles/mocksArentStubs.html

Теория:

1. Запустить Visual Studio и создать ASP.NET MVC Web Application

2. Разобраться со структурой проекта

3. Четко понимать отношения между представлениями (Views) и контроллерами (Controllers).

4. Понимать принципы маршрутизации приложения (посмотреть в Global.asax)

5. Суметь объяснить назначение Site.Master

6. Понимать и уметь работать с PartialView (ascx)

7. Понимать взаимодействие с моделью данных (DataModel), организовать преобразование записей из SQL Server в сущности предметной области. (Необязательно c помощью linq2sql, либо самостоятельно)

Посмотреть про TDD и MbUnit http://blog.benhall.me.uk/2007/12/screencast-getting-started-with-mbunit.html

Хорошие скринкасты на http://www.asp.net/mvc/learn/

Здесь на русском: http://www.techdays.ru/Search.aspx?Quick=MVC

Посмотреть что умеет Dynamic Data http://www.techdays.ru/videos/1064.html — это примерно то, что нужно будет сделать самому

Задание: Создать простейший веб-блог.

1. Создать представления списочного, детального просмотра.

Попробовать один и плагинов http://anton.shevchuk.name/javascript/jquery-datagrid-plugins/.

Здесь есть неплохое руководство по взаимодействию http://www.trirand.com/blog/?s=AJAX

2. Предоставить возможность редактирования записей

3. Создать RSS-ленту для списка записей в блоге

4. Организовать покрытие unit-тестами контроллеров и модели данных при разработке