У MVC каркасы сильно различаются от одного языка к другому, например ASP.NET, Python, RoR и т. Д. - PullRequest
2 голосов
/ 07 февраля 2012

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

Один лучше другого?

Кто-нибудь работалс несколькими?

Ответы [ 2 ]

3 голосов
/ 07 февраля 2012

Один лучше другого? Это гигантская и в основном субъективная банка червей. У большинства платформ MVC будет много общего.

Есть ли различия? Да. Вот некоторые соображения, которые, похоже, волнуют людей:

1) Уровень соглашения над конфигурацией

Например. В Ruby-on-Rails вы не делаете много настроек или шаблонного кода. Вместо этого платформа заставляет вас следовать ряду соглашений об именах. Если вы следуете правилам, многие вещи "просто работают" автоматически. Spring (Java), с другой стороны, требует большой конфигурации XML, и вам нужно создать гораздо больше лесов.

2) Чистота "шаблонов"

Например. В Django ( Python ) вы используете язык шаблонов для определения представлений. В ASP.NET MVC готовые представления представляют собой HTML с большим количеством смешанного кода.

3) Уровень модульности

Например. Я должен был сказать «из коробки» в предыдущем ответе, так как в vanilla ASP.NET MVC вы можете использовать либо веб-формы, либо «1025 * Razor « механизмы просмотра », но доступно гораздо больше (включая Система шаблонов Django ). Фреймворки, такие как Spring и Monorail , также предлагают множество «механизмов просмотра», в то время как другие фреймворки обычно предлагают только один способ сделать это.

4) Полная платформа против простой инфраструктуры MVC

Например. Некоторые фреймворки выходят за рамки MVC, чтобы предоставить больше готовых функциональных возможностей и глубокой интеграции в другие уровни. Например, Rails и Django предоставляют стандартный ORM (доступ к данным). И Spring, и Monorail предоставляют контейнеры ORM и IOC . Django даже предоставляет автоматически сгенерированный интерфейс администрирования для вашей модели. Напротив, ASP.NET MVC оставляет такие вещи, как IoC и ORM (даже если использовать их вообще), для разработчика.

5) Зависимость от языка

Например. Если вы выбираете Django, вы выбираете Python, а выбор Rails означает выбор Ruby . Тем не менее, Spring потенциально может использоваться с любым языком, который работает на JVM . Существует также Spring.NET , который является Spring на платформе .NET. ASP.NET был разработан, чтобы одинаково хорошо работать с C # и VB.NET, но может использоваться с любого языка .NET. Разные языки имеют разные сильные и слабые стороны, выходящие за рамки MVC.

Так что лучше? Что ж, с такими фреймворками, как Rails, вы можете очень быстро начать работу, но у вас могут возникнуть проблемы, когда вы попытаетесь раскрасить границы. Spring предлагает полную «корпоративную» платформу, которую некоторые могут найти слишком много. ASP.NET MVC предлагает хороший веб-слой, но большая часть приложения остается на ваше усмотрение. Что лучше, во многом зависит от вашей личности и от того, что вы пытаетесь сделать.

Я упомянул несколько рамок выше, но, конечно, их много, , намного больше . Как это бывает, я обычно использую ASP.NET MVC на Mono сам.

0 голосов
/ 07 февраля 2012

MVC - это прежде всего архитектурный проект.ASP.NETMVC / Ruby on rails / Strut и другие фреймворки MVC в основном являются реализациями этого паттерна.

Существует хорошая статья о MVC как паттерне проектирования в MSDN:

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

И старая статья, но одна из лучших в технической республике

http://www.techrepublic.com/article/mvc-design-pattern-brings-about-better-organization-and-code-reuse/1049862

...