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


10

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

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

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

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

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

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

Ответы:


5

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

Под базовыми потребностями я подразумеваю реализацию поставщика сохраняемости, контейнера проверки зависимости, инструмента ведения журнала, платформы 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, среди прочих, для нужд Dependency Inyection. Entity Framework 4, NHibernate и iBatis.NET довольно хорошие провайдеры .NET Persistence. ASP.NET MVC сильно прибыл с поддержкой различных шаблонизаторов помимо традиционного ASP.NET.

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

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


4

Я не знаю, что вы подразумеваете под «быстрой разработкой веб-платформ». Определение «быстрой разработки», с которым я знаком, не имеет ничего общего с языками, парадигмами или структурами, а скорее использует быстрое создание прототипов и итеративную разработку для создания системы. Любой язык или рамки могут быть использованы одинаково хорошо.

Раньше я никогда не использовал Grails или Roo, но Django и Rails являются средами MVC, поэтому их аналогом в .NET будет ASP.NET MVC .


1
Ну, я бы увидел ASP.NET MVC как аналог Spring MVC. И говорить, что Rails - это MVC-фреймворк, все равно что говорить, что Stackoverflow - это сайт QA, как обмен экспертами. Это верное утверждение, но оно упускает из виду самую важную особенность и причину своего дикого успеха.
Эрик Уилсон

1
Пожалуйста, объясните «самую важную особенность». Rails - это не более чем MVC-фреймворк для языка Ruby. Это захватывает все об этом.
Томас Оуэнс

2
Ну, Spring - это MVC-фреймворк для Java, но он мало что делает для Rails и Grails великолепными. Например, с помощью grails после создания объекта домена я могу печатать, grails generate-allа grails создает контроллеры, представления и будет управлять сохранением.
Эрик Уилсон,

3

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

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


0

Потому что .NET-приложения имеют цикл сборки.

Ruby / Python - очень гибкие и динамичные языки.

Там, где я работаю, у нас огромное веб-приложение .NET, и время компиляции сопоставимо с типичной программой C ++ среднего и большого размера.

В свободное время я разрабатываю веб-приложения на python, и время компиляции равно 0. Там просто нет этапа компиляции вообще. Работающий интерпретатор просто перезагружает .py файлы при их сохранении.


1
Ну, у приложений Java есть цикл сборки, но Spring Roo все еще творит чудеса для приложений Java / Spring. Поэтому я думаю, что здесь есть другие проблемы.
Эрик Уилсон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.