Где я могу найти очень простое объяснение MVC? - PullRequest
19 голосов
/ 19 мая 2009

В моей компании мы собираемся создать новый сайт с использованием ASP.NET MVC. Мой босс (специалист по маркетингу) хотел бы узнать немного больше о технологии, поэтому я безуспешно пытался найти действительно хорошую, простую и педагогическую презентацию концепции MVC. Большинство из них требуют довольно много базовых знаний в программировании.

Какие-нибудь предложения для хорошего видео, слайдов или другого?

Ответы [ 12 ]

19 голосов
/ 19 мая 2009

У Крейга Стронга есть довольно хорошая статья о MVC в целом и о том, как объяснить его преимущества для бизнеса. Проверьте это здесь: Обновленная ссылка .

Определить MVC в терминах непрофессионала

Помните, что вы технически настроены и близки к коду. MVC для вас ясно, как день, но говорит бизнесу ‘Модель, вид, Contoller 'может создать у них впечатление, что вы страдаете от некоторая форма синдрома Туретта. MVC не будет много значить для бизнеса даже после того, как вы определите их по отношению к коду. Чтобы бизнес понять, почему это ответ и что меньше всего это может быть больше задачи, чем ожидалось в моем опыте. Даже какой-то парень разработчикам трудно понять это время от времени.

Чтобы слушатель понял, что такое MVC и почему он работает. пытался в проходе, чтобы применить MVC к другим отраслям, где слушатели были более вовлечены. Пример, который сработал для меня в прошлом по сравнению с собственностью или даже транспортные средства. Большинство людей имели дело со строителями, плотниками, водопроводчики, электрики или наблюдали за потоком недвижимости показывает на телевизор. Этот опыт является хорошей платформой для использования и объяснить, почему разделение типа MVC работает. Я знаю, что вы, вероятно, думаете, что не будет работать, поскольку это не то же самое, что в программном обеспечении, но помните, что вы не пытаясь обучить бизнес, чтобы стать разработчиками или иметь в глубокое понимание MVC, просто объясняя им, что разделение в производстве требуется, и это то, что предлагает структура MVC.

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

View

Представление в MVC - это уровень представления. Это то, что конечный пользователь продукта будет видеть и взаимодействовать с. Система может иметь несколько представления всех различных типов в диапазоне от вывода командной строки до визуализированный HTML. Представление не состоит из бизнес-логики в большинстве четкие конструкции. Интерфейс подходит для цели и является областью взаимодействие. Поэтому вы можете просто вывести HTML для потребителей взаимодействовать с или выводить SOAP / XML для бизнеса. И то и другое использовать ту же бизнес-логику за системой, иначе известный как модели и контроллеры.

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

Контроллеры

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

Если мы сравнимэто свойство, мы могли бы сравнить порядок Книга онлайн, чтобы включить выключатель света. Арендатор щелкнет включите так же, как при заказе книги. Сам переключатель является элемент в слое представления, который отправляет запрос контроллеру так же, как нажатие кнопки оформления заказа на веб-сайте. Бизнес логика в этом случае это то, что электрика установлена ​​и встроена в проекты собственности. Переключатель переключается, что завершает цепи. Электричество проходит через все провода, включая блок предохранителей прямо на лампочку. Так же, как пользователь, получающий книга, в этом случае арендатор получает свет. Весь процесс позади сцены с использованием электрических кабелей не видны арендатор. Они просто взаимодействуют с переключателем в пространстве и от там контроллер обрабатывает запрос.

Модель

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

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

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

  • Различные уровни навыков могут работать на разных уровнях системы. Например, дизайнеры могут работать над интерфейсом (View) с очень небольшим развитие знаний и разработчики могут работать над бизнес-логикой (Контроллер) с очень небольшой заботой об уровне дизайна. Затем они просто интегрируйте вместе по завершении.
  • В результате вышеперечисленного разделения проектами можно управлять проще и быстрее. Дизайнер может запустить интерфейсы до того, как разработчик и наоборот. Этот процесс разработки может быть параллельным как вместо того, чтобы быть последовательным, поэтому сокращает время разработки.
  • Легко иметь несколько типов представлений, используя одну и ту же бизнес-логику.
  • Очистить маршрут через систему. Вы четко знаете, где существуют разные уровни системы. С четким маршрутом системы, Логика может быть разделена и улучшена. Это добавило преимущества безопасности как Вы четко знаете разрешенный маршрут от данных к пользователю и можете иметь четкие проверки безопасности вдоль маршрута.
  • Каждый слой отвечает за себя. (Относится к пункту 1). Это означает, что вы можете иметь чистую файловую структуру, которую можно поддерживать и управляется гораздо проще и быстрее, чем система с парой у вас может быть много повторяющейся логики.
  • Наличие четкой структуры означает, что разработка будет более прозрачной, что должно привести к сокращению времени разработки, проблемы технического обслуживания и циклы выпуска при правильном применении.
6 голосов
/ 19 мая 2009

M-V-C Думайте об этом как: «Детали заказа (включая информацию о клиенте и сотруднике)», «Форма HTML / ASP (для отображения OrderDetails)» и «Класс обслуживания деталей заказа (с методами SaveOrderDetails , GetOrderDetails и т. Д. .).

Модель (класс данных, например OrderDetails)

  1. Данные, которые вы хотите отобразить

Контроллер (Класс обслуживания)

  1. Знает о модели (детали заказа)
  2. Имеет методы для управления Модель
  3. И как таковой он может быть проверен модулем. Единая ответственность заключается в управлении операциями CRD OrderDetails.
  4. НИЧЕГО не знает о представлении

Просмотр (ASP-страница)

  1. Отображение модели (ViewData для OrderDetail).
  2. Он должен знать о структуре модели *1038*, чтобы он мог правильно отображать данные пользователям на экране.
  3. Структура View (стиль, макет, HTML и т. Д., Локаль) может быть изменена в любое время без каких-либо изменений в функциональности приложения.
  4. И, таким образом, многие Представления могут отображать одну и ту же Модель разными способами.
  5. В мультитенантных веб-приложениях специфичные для клиента Представления могут храниться в таблице базы данных и отображаться на основе информации о клиенте
4 голосов
/ 19 мая 2009

Вы должны объяснить преимущества ASP.NET MVC, а не функции

  1. Вы можете контролировать свои URL-адреса - это означает, что SEO для сайта будет лучше - это означает, что ваш сайт будет выше в Google

  2. Код чище, это означает, что его легче изменить, что означает, что вы можете добавлять функции быстрее

и т.д.

Как вы экономите, зарабатываете, снижаете риск? Вот что хочет знать ваш босс.

2 голосов
/ 19 мая 2009

Модель - это уровень доступа к данным, который может быть просто оболочкой для нескольких простых запросов к ORM, который сам управляет связями сущностей данных. Он обрабатывает связь с источником данных, извлекает данные и обычно организует их в объекты, определенные в вашем приложении.

views - это просто html-файлы с битами html и css с некоторыми кодами движка шаблонов (smarty, mako и т. Д.) Для отображения данных, переданных ему так, как вы хотите.

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

Таким образом, контроллер использует модель для запроса данных (пользователей, контента и т. Д.), Затем передает данные в представление, которое будет отображаться и отображаться так, как вы хотите.

2 голосов
/ 19 мая 2009

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

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

1 голос
/ 19 мая 2009

Маркетологу будет просто интересна часть «V», View. В зависимости от того, как вы проектируете вещи, представление будет просто базовыми «шаблонами» HTML / CSS, которые может изменить специалист по маркетингу. Технически, не ломая ничего.

В идеале Модель (база данных) и Контроллер (логика) не должны заботиться о том, является ли представление (презентация) XML, HTML, текстом и т. Д. Специалист по маркетингу не должен заботиться о том, что делают Модель и Контроллер, кроме запроса дополнительный функционал.

Идя дальше с «идеалом», вы должны технически иметь возможность заменить ASP на PHP, Java, Ruby и т. Д. В качестве контроллера, не касаясь модели или представления.

1 голос
/ 19 мая 2009

Я не стал бы пытаться объяснить ему технологию, я бы попытался объяснить, в чем суть архитектурного принципа MVC.

MVC был разработан для разделения проблем. Легко и просто. Объясните ему, что когда вы что-то строите, то, что вы строите, можно классифицировать по двум разным категориям: что нужно бизнесу (домен) и все остальное.

MVC отделяет Домен от всего остального, вводя уровни для разделения проблем. М для модели, которая является вашим доменом. V для View, который является видимой частью для него, что он видит. C предназначен для контроллера, части, которая контролирует то, что происходит между доменом и представлением.

0 голосов
/ 05 июня 2015

Важное слово в названии менеджера в данном случае - «маркетинг». Он менеджер по маркетингу. Проблемы менеджера по маркетингу связаны со стратегией и тактикой. Эти два не одно и то же. Стратегия - это общее слово, которое охватывает, помимо прочего, то, как компания концептуально удовлетворяет потребности клиентов и как компания отличается от своих конкурентов. Стратегия обычно не то, что программное обеспечение может изобразить пользователю. Тактика, с другой стороны, это прямые методы или подходы, которые компания использует, чтобы завоевать бизнес клиента. Тактика имеет тенденцию меняться гораздо чаще, чем стратегии, и вполне вероятно, что менеджер по маркетингу, когда он спрашивает, какое преимущество может дать ему MVC, действительно спрашивает: «Как быстро вы можете изменить то, что вы создаете, во что-то, что соответствует новые реалии в том, как мы имеем дело с клиентами ". Другими словами, как быстро вы можете изменить предложение «купить 1 и получить 1 бесплатно» на «купить 2 в пятницу и получить 1 в следующий вторник, если в Олбани идет дождь».

Управление маркетингом связано с результатами, измеряемыми в долларах и центах, а не с изысканными и нюансированными объяснениями, которые изобилуют концептуальными словами, лишенными какой-либо реальной специфики. Все, что может сказать программист, может иметь для него смысл, но менеджер по маркетингу должен знать реальную вероятность быстрого реагирования на изменение восприятия клиентов или быстрого внедрения другого подхода к продажам одним и тем же клиентам. Ему нужно знать, будет ли это стоить дороже, чем существующий метод, потому что, если он продаст на 1 млн долларов больше продукта, потратив 1,25 млн долларов на разработку программного обеспечения, он, вероятно, потеряет свою работу.

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

Честно говоря, я не думаю, что вы могли бы выполнить такие обещания, если бы они были сделаны, потому что, несмотря на все преимущества MVC с точки зрения разработки, мы все еще говорим о программном обеспечении здесь, и как мы все знаем, что программное обеспечение - это жесткий, требовательный руководитель, которому не хватает времени, чтобы повзрослеть до степени доверия и избавиться от ошибок. Мы, как программисты, всегда в поисках святого Грааля повторного использования программного обеспечения, и хотя мы стараемся пробовать одно, а потом другое (MVC, MVP, MVVM и все, что кто-то может придумать), остальной мир просто просит то, что работает. Так что удачи тебе. Я надеюсь, что вы можете выиграть ваше дело.

0 голосов
/ 19 мая 2009

Самое важное для вашего маркетолога - это деньги, бюджет, TCO ...

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

Программист должен знать html-дизайн, программирование и т. Д. Это может означать, что вам нужен мощный профессионал, чтобы делать все это.

если вы используете MVC, все делится на «отдельные части». HTML-кодер может подготовить HTML-слой, программист работает только с логикой приложения и т.д ...

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

Слушайте, например, валидность xhtml и чистота css настолько сложны, что есть много людей, которые сосредоточены только на этом, а совместимость браузеров и платформ на уме.

Обычно один человек НЕ является лучшим программистом asp.net, кодер xhtml в одном; -)

0 голосов
/ 19 мая 2009

Для маркетолога, возможно, лучший способ объяснить причину ASP.Net MVC - это возможность расширить сферу вашего продукта.

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

Модель "как все работает внутри коробки". Контроллер - это «что вы можете коснуться снаружи коробки», а вид - «что выходит из коробки» ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...