У кого-то есть функция PHP для надлежащего превращения в капитал людей имена?

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

Веб-формы

В модели Web Forms, Ваши страницы соответствуют непосредственно запросу страницы от браузера. Таким образом при направлении пользователя к списку Книг у Вас, вероятно, будет страница где-нибудь по имени "Booklist.aspx", к которому Вы направите его. На той странице необходимо будет обеспечить все, должен был показать тот список. Это включает код для получения по запросу данных, применения любой бизнес-логики и отображения результатов. Если существует архитектурная или логика маршрутизации, влияющая на страницу, необходимо будет кодировать архитектурную логику на странице также. Хороший разработка Веб-форм обычно включает разработку ряда классов поддержки в отдельном (тестируемом единицей) DLL. Они класс (классы) обработают бизнес-логику, доступ к данным и архитектурные / решения по маршрутизации.

MVC

MVC получает более "архитектурное" представление разработки веб-приложения: предложение стандартизированных лесов, на которых можно создать. Это также обеспечивает инструменты для того, чтобы автоматически генерировать модель, представление и классы контроллера в установленной архитектуре. Например, в обоих Ruby on Rails (просто "направляющие" отсюда на) и ASP.NET MVC Вы будете всегда начинать со структурой каталогов, которая отражает их полную модель архитектуры веб-приложения. Для добавления представления, модели и контроллера, Вы будете использовать команду как "Направляющие Направляющих, пишут сценарий/генерируют лесов {modelname}" (ASP.NET, который MVC предлагает подобным командам в IDE). В получающемся классе контроллера будут методы ("Действия") для Индекса (покажите список), Шоу, Новое и Редактирование и, Уничтожает (по крайней мере, в направляющих, MVC подобен). По умолчанию они "Добираются", Действия просто укутываются Модель, и маршрут в соответствующий файл представления/HTML в каталоге "View / { modelname }" (обратите внимание, что существует, также Создают, Обновление и Уничтожают действия, которые обрабатывают "Сообщение" и направляют назад, чтобы Индексировать или Показать).

расположение каталогов и файлов является значительным в MVC. Например, в ASP.NET MVC, Индексный метод для "Книжного" объекта будет, вероятно, просто иметь одну строку: "Возвратите Представление ()"; Через волшебство MVC это отправит модель Book в "/View/Books/Index.aspx" страницу, где Вы найдете, что код отображает Книги. Подход направляющих подобен, хотя логика является немного более явной и меньше "волшебства". страница View в приложении MVC обычно более проста, чем страница Web Forms, потому что они не должны волноваться так же о маршрутизации, бизнес-логике или обработке данных.

Сравнение

преимущества MVC вращаются вокруг чистого разделения проблем и инструмента для очистки, большего количества модели HTML/CSS/AJAX/Javascript-centric для создания Вашего вывода. Это улучшает тестируемость, обеспечивает более стандартизированный дизайн и открывает дверь в больше типа "Web 2.0" веб-сайта.

Однако также существуют некоторые значительные недостатки.

Первый, в то время как легко получить демонстрационное движение сайта, полная архитектурная модель имеет значительную кривую обучения. Когда они говорят "Соглашение По Конфигурации", это звучит хорошим - пока Вы не понимаете, что у Вас есть книжная ценность соглашения учиться. Кроме того, это часто немного невыносимо для выяснения то, что продолжается, потому что Вы доверие волшебным а не явным вызовам. Например, то "Представление Возврата ()"; звонить выше? Тот же самый вызов может быть найден в других Действиях, но они переходят к различным местам. , Если Вы понимаете соглашение MVC тогда, Вы знаете, почему это сделано. Однако это, конечно, не квалифицирует как пример хорошего именования или легко понятного кода, и новым разработчикам намного более трудно взять, чем Веб-формы (это не просто мнение: у Меня был летний интерн, изучают Веб-формы в прошлом году и MVC в этом году, и различия в производительности были объявлены - в пользу Веб-форм). BTW, направляющие немного лучше в этом отношении, хотя функции Ruby on Rails, названные методами, которые берут некоторый серьезный getting-used-to также.

1127-секундный, MVC неявно предполагает создание классического веб-сайта стиля CRUD. Архитектурные решения и особенно генераторы кода все создаются для поддержки этого типа веб-приложения. Если Вы создаете Приложение типа CRUD и хотите принять проверенную архитектуру (или просто не любить дизайн архитектуры), то необходимо, вероятно, рассмотреть MVC. Однако, если Вы будете делать больше, чем CRUD, и/или Вы довольно компетентны с архитектурой тогда, MVC может чувствовать себя подобно смирительной рубашке, пока Вы действительно не осваиваете базовую модель маршрутизации (который значительно более сложен, чем простая маршрутизация в приложении WebForms). Даже тогда я чувствовал, что всегда боролся с моделью и взволнованный по поводу неожиданных результатов.

В-третьих, если Вы не заботитесь о Linq (или потому что Вы боитесь, что Linq к SQL собирается исчезнуть или потому что Вы находите Linq к объектам смехотворно перепроизведенным и под приводимым в действие) тогда Вы также не хотите обходить этот путь начиная с ASP.NET, инструменты лесов MVC являются сборкой вокруг Linq (это было уничтожителем для меня). Модель данных направляющих также довольно неуклюжа по сравнению с тем, чего можно достигнуть, если Вы испытаны в SQL (и особенно если Вы являетесь сведущими в TSQL и хранимых процедурах!).

Четвертый, сторонники MVC часто указывают, что представления MVC ближе в духе к модели HTML/CSS/AJAX сети. Например, "Помощники HTML" - небольшой код звонит в Вашу vew страницу, которые загружают содержание и помещают, в средства управления HTML - намного легче интегрироваться с JavaScript, чем средства управления Веб-формами. Однако ASP.NET 4.0 представляет способность назвать Ваши средства управления и таким образом в основном устраняет это преимущество.

Пятый, пуристы MVC часто высмеивают Состояние отображения. В некоторых случаях они правы сделать так. Однако Состояние отображения может также быть большим инструментом и благом для производительности. Посредством сравнения, обрабатывая Состояние отображения очень легче, чем попытка интегрировать сторонние веб-элементы управления в приложении MVC. В то время как интеграция управления может стать легче для MVC, все текущие усилия, которые я видел, страдают от потребности создать (несколько grody) код для соединения этих средств управления назад с Классом контроллера представления (который является - к работа [приблизительно 119] модель MVC).

Заключения

мне нравится разработка MVC во многих отношениях (хотя я предпочитаю направляющие ASP.NET MVC намного). Я также думаю, что важно, чтобы мы не попадали в прерывание размышления, что ASP.NET MVC является "антишаблоном" Веб-форм ASP.NET. Они отличаются, но не являются абсолютно посторонними и конечно существует комната для обоих.

Однако я предпочитаю разработку Веб-форм, потому что, для большинства задач , просто легче добиться цели (исключение, являющееся поколением ряда форм CRUD). MVC также, кажется, страдает, в некоторой степени, от избыток теории. Действительно, посмотрите на многие вопросы, которые задают здесь на ТАК люди, которые знают ориентированный на страницу ASP.NET, но кто пробует MVC. Без исключения существует много скрежетания зубов, поскольку разработчики находят, что они не могут сделать основных задач, не переходя через обручи или вынеся огромную кривую обучения. Это - то, что делает Веб-формы выше MVC в моей книге: MVC заставляет Вас заплатить цена реального мира для получения немного большей тестируемости или, хуже все же, чтобы просто рассматриваться как [1 114] прохладный , потому что Вы используете новейшая технология.

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

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

относительно тех, кто рассматривал это как религиозное сражение и кто постоянно проектировал лавинные рассылки downvote, я понимает, почему Вы беспокоящиеся (20 +, вниз-голоса в течение секунд друг после друга в нескольких случаях, конечно, не нормальные). Если Вы читающие этот ответ и задающиеся вопросом, быть ли что-то действительно "неправильное" относительно моего ответа, учитывая, что счет намного ниже, чем некоторые из других ответов, пребывает в уверенности, что это говорит больше о нескольких людях, которые не соглашаемые, чем общий смысл сообщества (в целом, этот upvoted хорошо более чем 100 раз).

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

10
задан Darryl Hein 30 July 2009 в 19:23
поделиться

2 ответа

Может вам понадобится что-то вроде этого ucwords function note

6
ответ дан 4 December 2019 в 01:31
поделиться

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

3
ответ дан 4 December 2019 в 01:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: