Подтвердить что ты не робот

У меня есть 15 минут, чтобы представить ASP.NET MVC моим коллегам. На какие темы следует сосредоточиться?

Я использовал ASP.NET MVC для личных проектов, так как до этого он ударил RTM.

Я готовлю презентацию для своих коллег, чтобы представить их основным понятиям ASP.NET MVC и показать им, как их можно использовать в нашей среде.

Моя презентация имеет ограничение в 15 минут. Существует много информации для ретрансляции (особенно, если вы учитываете такие проекты, как MVCContrib и различные записи в блогах).

На какие темы следует сосредоточиться?

Некоторый контекст: Я работаю в цифровом агентстве. Мои коллеги - разработчики .NET с 3-летним опытом работы ASP.NET.

Что было предложено до сих пор:

  • Причины для переключения на ASP.NET MVC
  • Routing
  • ActionResults (способность обслуживать разные ответы)
  • Внутренние элементы запроса-ответа
  • Тестируемость
  • Леса (шаблоны T4)
  • Точный контроль над выходом HTML
  • Разделение проблем()
  • Различия между ASP.NET WebForms и ASP.NET MVC
4b9b3361

Ответ 1

У вас есть только время для 2 или 3 основных точек.

Наиболее важным понятием является то, что запросы поступают к контроллерам, а затем контроллер выбирает, какой вид представляет результаты, сгенерированные контроллером.

Следующей важной концепцией является то, что MVC имеет большой выигрыш над "классическим" ASP.NET при создании модульных тестов для ваших контроллеров и модели. Без этого MVC - это еще один способ скинуть кошку.

В конечном итоге я бы сосредоточил внимание на структуре URL-адресов не потому, что это важно, а потому, что нам нравятся вещи, которые имеют чистое представление и MVC Urls, это может помочь создать положительный ответ.

Избегайте продолжения отсутствия элементов управления сервером (что не совсем верно), поскольку это может вызвать отрицательный ответ. В общем, избегайте упоминания того, что не делается по сравнению с формами ASP.NET(хотя не нужно, чтобы ViewState стоит упоминать попутно). Вы знаете, что преимущества вывешивают вещи, которые отсутствуют (или не нужны), но ваша аудитория этого не делает. Держите его положительным.

Ответ 2

  • Routing
  • Гибкость ActionResults
  • Подведение различных представлений к одному и тому же действию контроллера (т.е. к мобильному виду)

Большая тема модульного тестирования может быть слишком большой для 15-минутного собрания, но если ваши разработчики уже используют TDD, я бы добавил его

Ответ 3

Мне пришлось написать отчет для моего босса, обосновывая, почему я хотел использовать MVC над webforms/Nettiers. Я записал свой отчет http://ivida.co.uk/2011/05/11/mvc-nhibernate-vs-webforms-nettiers/

Я понимаю, что у вас есть короткий промежуток времени, но вы можете найти некоторые идеи из списка ниже.

  • Преимущества MVC

ASP.MVC был написан в ответ на критику веб-форм в отношении других платформ разработки. В то время как Web Forms предоставляет разработчикам рамочную платформу Rapid Application Development и был написан для того, чтобы "имитировать методы разработки, используемые в Win Forms", это затрудняло реализацию определенных практик, реализованных на других платформах и считающихся фундаментальными для хорошего развития. 1.1.Testable

MVC позволяет записывать автоматические тесты единиц измерения и интеграции. Это имеет ряд очевидных преимуществ.

a) Значительно уменьшает необходимость ручного тестирования; первоначальная стоимость создания модульных тестов возвращается обратно вниз, значительно уменьшая количество ручных испытаний.

b) Может выполняться на протяжении всей разработки; это бесценно, так как это позволяет разработчику быть уверенным, что они не вносят изменения в базу кода.

c) Предоставляет разработчику уверенность в реализации изменений в базе кода, поскольку тесты покажут какие-либо ошибки.

d) Приводит к гораздо более строгой кодовой базе, так как код тестировался много раз на протяжении всей разработки, а не был предоставлен спорадическим ручным тестированием.

e) Каждый тест представляет собой ФУНКЦИОНАЛЬНОЕ требование, заключенное в код. Если есть требование, что только пользователи с ролью X могут выполнять активность Y, тест является доказательством того, что это требование выполняется. Это становится неоценимым, если разработчик будет возвращаться в базу кода через определенный промежуток времени, так как требования непосредственно просматриваются при запуске тестов.

Разработчик может написать как мало или сколько тестового кода, основанного на требованиях проекта. Если проект подвергается изменениям в спецификации, то наличие тестов значительно ускоряет реализацию изменений. Для небольших событий с более низким воздействием автоматическое тестирование можно было бы масштабировать, чтобы в основном включать сценарии создания/обновления и удаления, а не сценарии чтения.

Письменные тесты - это само по себе искусство и одно, что разработчик становится лучше со временем. Без написания тестового кода опытный разработчик мог бы создать проект с использованием MVC или Web Forms за аналогичное время. Написание тестов добавит, возможно, 20% к времени разработки, но значительно сократит время для тестирования системы.

Наличие тестов также значительно сокращает время, затрачиваемое на внедрение изменений, и если изменение является значительным, может фактически позволить это изменение иметь место, если в противном случае это будет считаться слишком рискованным или слишком трудоемким.

1.2. Придерживается принципов хорошего дизайна программного обеспечения.

ASP.MVC следует определенным принципам разработки хорошего и поддерживаемого программного обеспечения, например:

"Don’t Repeat Yourself (DRY)
"Separation of Concerns" (SoC)

Разделение проблем (не смешивание логики пользовательского интерфейса с основным поведением) является фундаментальным принципом, который существует, чтобы помочь разработчикам справиться со сложностью. Смешивание разных обязанностей внутри одного и того же объекта или файлов (например, большая часть вашей логики в коде за файлами, таких как обработка прав на редактирование, отмена и редактирование событий обратной связи) вызывает проблемы с обслуживанием и затрудняет их работу и затрудняет их чтение. MVC предписывает, где должны быть написаны определенные типы объектов, что делает результирующую базу кода более чистой и удобной в использовании.

1.3.MVC является предписывающим

Поскольку MVC следует хорошим принципам разработки программного обеспечения, он предписывает, где должны развиваться определенные типы кода. Это полезно в командной среде, поскольку оно стандартизирует структуры проекта намного больше, чем в Web Forms. Когда разработчики знакомы с проектной структурой MVC, становится очевидным, где искать определенные типы кода. Это упростит работу с другим кодом разработчиков; а) из-за рецепта и б), потому что запуск модульных тестов обеспечит, чтобы дополнительные разработчики нарушили существующие функции. Это также помогает разработчику принимать решения о том, где должны быть разработаны определенные типы кода и как разделить код, чтобы упростить обслуживание. Предписывающий характер проекта MVC также оказался полезным, позволяя разработчикам в этой команде говорить о проблемах и проблемах, с которыми они сталкиваются, не зная подробной реализации проекта.

1.4.MVC обеспечивает легкую интеграцию с фреймворками JavaScript

С момента запуска Google Suggest в 2004 году произошла морская смена веб-разработки на стороне клиента. Это изменение связано с реализацией функциональных возможностей AJAX. AJAX (сокращение для асинхронного JavaScript и XML) представляет собой группу связанных технологий, используемых на стороне клиента, для создания богатых интерактивных и гибких веб-приложений. С помощью AJAX веб-приложения могут извлекать данные с сервера асинхронно в фоновом режиме, не мешая отображению и поведению существующей страницы. AJAX использует комбинацию HTML и CSS для разметки и стилизации информации. Доступ к DOM осуществляется с помощью JavaScript для динамического отображения и предоставления возможности пользователю взаимодействовать с представленной информацией.

Этот тип функций довольно сложно запрограммировать из-за различной реализации соответствия стандартам в браузерах. В настоящее время это стало менее проблематичным: а) из-за лучшего соответствия стандартам и б) более значительным образом благодаря разработке инфраструктур JavaScript, таких как JQuery, которые позволяют писать код, который работает в каждом браузере.

"V в MVC" означает "Просмотр" и касается только доставки HTML и JavaScript на переднем конце. MVC позволяет легко интегрироваться с JS-инфраструктурами, такими как JQuery, и значительно упрощает создание богатых клиентских интерфейсов с использованием таких фреймворков. (Примечание. JQuery теперь поставляется в стандартной комплектации с ASP.NET 2010, и теперь Microsoft активно и, возможно, запоздало способствует созданию базы данных JQuery).

Эта упрощенная интеграция упрощает разработку пользовательского опыта, который соответствует ожиданиям пользователей на современном веб-сайте. Это тонкий момент, но я считаю, что мы не должны игнорировать. Наши клиенты будут все чаще разрабатывать неявные ожидания относительно того, как они взаимодействуют с веб-сайтами, основываясь на использовании более широкого Интернета. В настоящее время существует очень мало коммерческих сайтов, которые не реализуют функциональность AJAX и гибкий интерфейс, который он предоставляет. Не смотря на развитие богатых фронтовых целей, все чаще наши результаты сравниваются с ожиданиями наших клиентов.

1.5. Потребление Интернета меняется (быстро)

Morgan Stanley прогнозирует, что к середине 2013 года все больше людей получат доступ к Интернету с помощью мобильных устройств, чем к использованию стационарного Интернета/рабочего стола (т.е. в течение 2 1/2 лет).

(http://gigaom.files.wordpress.com/2010/04/mobile-chart2.png)

Что это связано с MVC? Я считаю, что MVC является лучшей платформой для доставки контента на различные устройства из-за его более простой реализации JS-библиотек и простоты, с которой он позволяет разработчику контролировать содержимое HTTP-ответа (подробно объясняется ниже).

1) Простая реализация AJAX - соединение 3G на мобильном устройстве в настоящее время не имеет пропускной способности, сопоставимой с широкополосной связью. AJAX значительно улучшает производительность страниц по более медленным соединениям, поскольку вы возвращаете только нужные данные (которые отформатированы браузером), а не данные и всю страницу.

2) MVC дает разработчику гораздо больший контроль над данными, возвращенными из запроса. Это лучше всего видно с помощью примеров кода, но в двух строках кода разработчик может возвращать целую страницу (с главной страницей и т.д.), JSON (JavaScript Object Notation), которая является предпочтительным форматом данных в запросах AJAX, XML или любом другом формате требуется.

Пример кода:

//Try doing this in webforms

If (IsJson)

{

return this.JSON(model);

}

Else if (IsXml)

{

return new XMLResult(model);

}

else

{

return View(model)l;

}

Этот уровень контроля намного сложнее достичь с помощью Web Forms. Наличие жесткого контроля над тем, что возвращается в ответе HTTP, упрощает разработку контента для ряда устройств, таких как традиционные браузеры или приложения для смартфонов, или для приложений, которые находятся на других платформах, таких как SharePoint. 2.1.1.6.MVC использует URL-адреса RESTFul

MVC предоставляет разработчику полный контроль над URL. С помощью WebForms URL-адрес соответствует базовой файловой структуре кода. С MVC у вас есть так называемый "Регистратор маршрутов", который является файлом, который соответствует URL-адресам для ресурсов, которые будут обрабатывать запрос.

Существует два отличительных преимущества: полный контроль над URL-адресом:

i) Если у проекта есть требование для читаемых пользователем URL-адресов или поисковой оптимизации, то управление URL-адресом является большим преимуществом. Рассмотрим следующее:

www.mywebapplication.com/users/alex.hardman(т.е. получить пользователя с именем alex.hardman)

в отличие от

www.mywebapplication/users/getuser.aspx(имя передано в сеансе) или www.mywebapplication/users/getuser.aspx? username = alex.hardman

Первый URL-адрес (через MVC) более читабельен для людей и подходит для поисковых систем (например, все одинаковые вещи будут ранжироваться по всем основным поисковым системам).

ii) Второе преимущество с полным контролем над URL-адресами относится к текущему диску в исследовании Digital Humanities для сохранения данных. Не вдаваясь в подробности, один аспект сохранения данных связан с созданием "постоянных URL-адресов" и "уникальных идентификаторов ресурсов" (uris). Стандартное использование переменных сеанса и состояния представления в веб-формах означает, что один и тот же URL-адрес может ссылаться на несколько элементов данных (где параметры запроса вводятся через состояние представления). В результате данные, доступные в этих данных усадьбы, не имеют уникального идентификатора ресурса (то есть уникальный адрес в Интернете). Это означает, что элементы данных не могут быть указаны, поскольку у него нет уникального адреса в Интернете и не допускается его включение в инициативы Linked Data и другие исследовательские инициативы, требующие URI.

Комбинация URI и легкость, с которой система может возвращать считываемые компьютером форматы данных, такие как XML (см. выше), дает разработчику преимущество, когда речь заходит о передовой практике в методах курации и сохранения данных в области гуманитарных наук. В недавних Оксфордских исследовательских базах данных по гуманитарным наукам - где дальше? в семинаре уделялось большое внимание изучению данных исследований гуманитарных наук с помощью ури и форматов данных, пригодных для чтения в компьютерах. Это то, что мы могли бы "продать" как выгодно для наших клиентов-исследователей.

Ответ 4

Ознакомьтесь с ASP.NET MVC Training Kit.

Он включает в себя предварительно подготовленную (хотя и 60-минутную) презентацию, которую вы можете взломать.

В центре внимания:

  • Разделение проблем
  • Тестируемость
  • Управление

На самом деле я сделал что-то подобное (хотя было около 45-60 минут, включая демо), прежде чем это вышло, и ключ к нам домой был действительно:

Это дает вам контроль над надстройкой HTML.

Тестируемость и т.д. была понятна уже, но это было рассмотрено как ключевое преимущество над стандартным ASP.NET.

Ответ 5

У вас есть всевозможные моменты - на мой вопрос: почему вы думаете, что хотите использовать его в первую очередь, и как вы думаете, что это поможет вам и остальной команде разработчиков в вашей среде? Пункты пули бесполезны, если они не применяются к вашей ситуации.

Ответ 6

В действительности 15 минут не достаточно, чтобы действительно развернуть любые преимущества, которые вы получаете из MVC. Я предполагаю, что человек, с которым вы работаете, больше всего знаком с веб-формами Asp.net. Не копая слишком шаблоны проектирования и почему MVC велик, наиболее приемлемой вещью для перехода будет простое использование Ajax.

1. jQuery – Ajax
2.  Routing – SEO and No need for Custom URL rewriting 
3.  Partial-View – showing tabular data and use server-side Ajax to sort and a client side example using jQuery

Чаще всего, когда я попадаю в магазины, которые разрабатывают Web Forms, наиболее распространенным вопросом является вопрос о том, где мои элементы управления; более конкретно, где ретранслятор или datagrid? Объединяя этот тип демо, вы получите столько, сколько сможете за 15 минут и ответьте на более распространенные вопросы.

Ответ 7

Объясните им, что:

  • Нет никаких элементов управления сервером

  • Больше не существует механизма событий

  • Больше нет ViewState

  • Теперь они не уйдут с удобными WebForms и должны будут изучить основы HTTP, HTML/CSS и JavaScript

Подготовьте некоторые лекарства для тех, кто упадет в обморок.

(5). Теперь речь идет не о страницах, а о ресурсах (модель REST). URL-адрес не будет указывать на физический файл (.aspx), но на действие контроллера, которое может обслуживать разные виды ответов - страницу для рендеринга, короткий xml как ответ Ajax и т.д.

P.S. Если у вас есть что-то вроде внутренней структуры компании, которая облегчает многие общие операции, и она построена с помощью WebForms, вы, вероятно, не будете убеждать их принять MVC, поскольку это означает много работы, резкие изменения в шаблонах мышления и, вероятно, значительное количество времени/затраты.

EDIT: для тех, кто задал положительные моменты...

(6). SEO-friendly Urls из коробки, без необходимости использования сторонних утилит для перезаписи Url.

(7). Полный контроль над выходом HTML. Нет полезной нагрузки ViewState, без инъекции автоматически сгенерированных идентификаторов = > чистая разметка + меньшие размеры страниц = > меньшее потребление трафика + более короткое время отклика.

(8). Возможность для чистой прозрачной конструкции приложения (даже с несколькими слоями). Вместо того, чтобы взломать каждый элемент управления отдельно по коду, вы теперь можете лучше спроектировать архитектуру с понятным и отслеживаемым потоком данных - от уровня базы данных над бизнес-логикой до тех пор, пока она не достигнет представления. Намного лучше по сравнению с вездесущим стилем кодирования WebForms, когда каждый элемент управления переходит непосредственно в базу данных, чтобы отобразить некоторые данные. Не обязательно, чтобы вы управляли чистым дизайном, но по крайней мере концепция MVC делает для вас более чистым, как это сделать правильно.

Ответ 8

Я бы привлек их внимание с помощью маршрутизации, что наиболее очевидный материал (и он не ограничивается MVC). Затем я посмотрю на представление более высокого уровня и расскажу о разделении проблем, тестируемости и макетирования.

Если бы я был вами, я бы отправился в блог ScottGu и использовал его отличный материал:-)

Ответ 9

Лучший способ сделать это - следовать примеру образца ScottGuthries в Professional ASP.NET MVC 1.0, где он дал пошаговое руководство по разработке полноценного веб-приложения с использованием ASP.NET MVC со всеми функциями. Вы можете суммировать эту главу через 20 минут.

Загрузите образец главы Скоттом Гатри Здесь!

LinkText: http://www.wrox.com/WileyCDA/Section/id-321793.html

Надеюсь, что это поможет.

Ответ 10

Если они используют ASP.NET, они могут быть не знакомы с архитектурой MVC, и вам, возможно, придется немного поговорить об этом.

Так как они все разработчики, и у вас всего 15 минут, я бы предложил вам показать им File > New для проекта ASP.NET MVC и кратко рассказать о строительных лесах. Это большая продажа для MVC в том, что она работает с самого начала, и вы уже настроены для итеративного развития.

После этого вы можете перейти к рабочей демонстрации простого приложения. Для этого я бы прошел через приложение с отладчиком от маршрутизации в global.asax к действию контроллера для моделирования и, в конечном итоге, вернуться к представлению. Это вызовет интересные вопросы и объяснит новый жизненный цикл приложения, включая SoC, MVC, L2S и т.д. Это также косвенно выявит различия между приложениями ASP.NET MVC и ASP.NET.

Если у вас есть wfetch (или Fiddler или Live HTTP Headers), я также покажу запрос на стороне клиента и выделите отсутствие состояний представления и высокопоставленные глаголы POST/GET (PUT/DELETE, если вы используете wfetch). Может быть, упомянуть полезность этого в приложениях AJAX.

Предвосхитите вопросы о том, как перенести текущее приложение и какое предложение ценности для ваших текущих сценариев использования.

Ответ 11

Блог в 15 минут:-). Серьезно, может быть, сосредоточиться на разделении проблем?

Ответ 12

Конечно, первое и самое главное - это разделение понятий, которое дает: 1. Более прозрачный дизайн, который легче понять и управлять. 2. Конформация по конфигурации. Это ускоряет разработку и уменьшает различия между разработчиками в области кодирования/разработки. 3.Development patern уже небрежно в самом дизайне приложения: Вы разрабатываете модели, затем контроллер, затем виды. Изменяйте и тестируйте их отдельно (возможно, с выделенными разработчиками).

Но позвольте мне сказать, если они дали вам всего 15 минут, они действительно не хотят слышать об этом или использовать его в этом отношении;)

Ответ 13

Я думаю, что в целом лучший подход, когда вы хотите представить какую-то новую технологию, - это простой пример, который объяснит некоторые интересные функции.

Вы можете создать пример простого приложения mvc с двумя разными видами одной и той же страницы и двумя разными контроллерами. Один контроллер, который вы можете использовать для асинхронных операций, и второй для обычного запроса. Один вид может быть обычным видом, второй вид может быть оптимизирован для мобильных телефонов. Это несколько часов работы, и с помощью этого примера вы можете охватить все интересные функции asp.net mvc:

прокладка маршрута -testability -гибкость и разделение беспокойства

веселит