Почему в мире .NET нет ничего похожего на rails/grails/django/roo?

Почему в мире .NET нет ничего похожего на rails/grails/django/roo?
Почему в мире .NET нет ничего похожего на rails/grails/django/roo? - markusspiske @ Unsplash

Мне кажется, что быстроразвивающиеся веб-платформы радикально изменят мир веб-приложений.

Прошло пять лет с тех пор, как был выпущен Rails 1.0 для Ruby, и с тех пор мы видим Grails для Groovy, Django для Python и Roo для Java.

Но, насколько мне известно (вероятно, ограниченному, поскольку я программист Java/Groovy), для C# нет аналогичной среды.

Существует ли такая вещь? Если нет, то почему?

Редактировать: вполне возможно, что я не использую правильные слова, когда говорю «быстрая разработка», но я говорю о фреймворках, которые предположительно могут позволить вам создать работающий движок блога за 30 минут. Вы не могли бы разумно сделать это, скажем, с Java, Spring и Hibernate, учитывая различную конфигурацию, необходимую для обнаружения ваших контроллеров, а также конфигурацию и код, необходимые для сохранения и извлечения ваших сущностей.

Итак, я говорю о фреймворках, которые обрабатывают все CRUD с менталитетом «конвенция над конфигурацией». Если у кого-то есть правильные слова для того, о чем я говорю, дайте мне знать.

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

Под базовыми потребностями я подразумеваю реализацию Persistence Provider, контейнера внедрения зависимостей, инструмента ведения журнала, платформы MVC, механизма шаблонов HTML, стартового набора шаблонов веб-сайта с предустановками CSS, инфраструктуры безопасности и некоторой библиотеки Javascript для функций AJAX. и другие классные вещи. Подобные RAILS фреймворки организуют все эти фреймворки и инструменты на основе модели предметной области (сущности вашей системы с ее атрибутами).

Благодаря принципу «конвенция над конфигурацией» эти фреймворки избегают необходимости определять множество файлов конфигурации, обычно требуемых фреймворками, которые они оркестрируют (такими как Spring, Spring MVC, Hibernate, Log4J и т. д.), принимая конфигурации по умолчанию на основе именования. , структура и метаданные включены в одни и те же определения классов.

Благодаря динамическим языкам, которые используют эти фреймворки (например, Ruby, Groovy, Python, Clojure и т. д.), за исключением SpringRoo, который реализует динамическое поведение в Java с помощью AspectJ, функциональные возможности, принадлежащие нижележащим фреймворкам, расширены и предоставляются разработчику таким единым и элегантным образом, что он просто знает о лежащих в основе технологиях.

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

В мире .NET еще ничего не разработано в соответствии со всеми предыдущими определениями. Но ничто не мешает этому произойти в ближайшее время. В мире .NET уже доступны отличные фреймворки, инструменты и библиотеки, которые можно организовать с помощью новой RAILS-подобной фреймворка, созданной для CLR. Среди прочих есть Unity, Spring.NET и Castle Windsor для нужд внедрения зависимостей. Entity Framework 4, NHibernate и iBatis.NET — довольно хорошие поставщики сохраняемости .NET. ASP.NET MVC активно поддерживает различные механизмы шаблонов, помимо традиционного ASP.NET.

Даже если никому не удастся использовать язык DLR для создания такого рода фреймворков, любой, у кого достаточно воли, может пойти по пути SpringSource и реализовать фреймворк, подобный RAILS, на каком-нибудь статическом языке, таком как F#, C# или VB.NET, используя Aspect. - Ориентированный контейнер (например, AspectSharp или Gripper-LOOM.NET) для получения динамического поведения.

Я хотел бы узнать о любой группе людей, пытающихся разработать такую ​​​​инфраструктуру в .NET.


LetsCodeIt, 19 мая 2023 г., 07:10

Похожие посты