Pourquoi le monde .NET n'a-t-il rien de tel que rails / grails / django / roo? [fermé]


10

Il me semble que les plateformes web à développement rapide vont changer radicalement le monde des applications web.

Cela fait cinq ans que Rails 1.0 est sorti pour Ruby, et depuis lors, nous avons vu Grails pour Groovy, Django pour Python et Roo pour Java.

Mais à ma connaissance (qui est probablement limitée, étant un progammeur Java / Groovy) il n'y a pas de framework similaire pour C #.

Une telle chose existe-t-elle? Sinon, pourquoi pas?

Edit: Il est tout à fait possible que je n'utilise pas les bons mots quand je dis "développement rapide", mais je parle de frameworks qui peuvent vous permettre de construire un moteur de blog fonctionnel en 30 minutes. Vous ne pouviez raisonnablement pas le faire avec, disons, Java, Spring et Hibernate, étant donné les différentes configurations nécessaires pour permettre à vos contrôleurs d'être trouvés, et la configuration et le code nécessaires pour que vos entités persistent et soient récupérées.

Je parle donc de cadres qui gèrent tous les CRUD avec une mentalité de convention sur la configuration. Si quelqu'un a les bons mots pour ce dont je parle, faites le moi savoir.

Réponses:


5

Il me semble qu'il n'y a pas encore de nom pour ce type de framework dont vous parlez tous dans ce fil. Je les appelle pour l'instant des cadres similaires à RAILS : des cadres qui augmentent la productivité en orchestrant d'autres cadres existants dans le but de résoudre les besoins de base de la plupart des applications Web, tout en cachant toutes les complexités au développeur.

Par besoins de base, j'entends la mise en œuvre d'un fournisseur de persistance, d'un conteneur d'inyection de dépendance, d'un outil de journalisation, d'une plate-forme MVC, d'un moteur de modèle HTML, d'un kit de démarrage de modèle de site Web avec des préréglages CSS, d'un cadre de sécurité et d'une bibliothèque Javascript pour les fonctionnalités AJAX et d'autres trucs sympas. Les cadres de type RAILS orchestrent tous ces cadres et outils sur la base du modèle de domaine (les entités de votre système avec ses attributs).

Grâce au principe de convention sur configuration, ces frameworks évitent de définir de nombreux fichiers de configuration généralement requis par les frameworks qu'ils orchestrent (comme Spring, Spring MVC, Hibernate, Log4J, etc.), en supposant des configurations par défaut basées sur le nommage , structure et métadonnées incluses dans les mêmes définitions de classes.

Grâce aux langages dynamiques que ces frameworks utilisent (comme Ruby, Groovy, Python, Clojure, etc.), à l'exception de SpringRoo qui implémente le comportement dynamique en Java en utilisant AspectJ, la fonctionnalité qui appartient aux frameworks en dessous est étendue et sont mis à la disposition du développeur d'une manière si uniforme et élégante qu'il / elle est juste au courant des technologies sous-jacentes.

Enfin grâce à la technique Scaffold, des tests unitaires, des tests d'intégration, des contrôleurs et des vues sont générés automatiquement pour les fonctions principales (CRUD) sur chacun des objets de domaine définis par le développeur.

Dans le monde .NET, rien n'a encore été développé, suivant toutes les définitions précédentes. Mais rien n'empêche que cela se produise bientôt. Il existe d'excellents cadres, outils et bibliothèques déjà disponibles dans le monde .NET qui peuvent être orchestrés par un nouveau cadre de type RAILS conçu pour le CLR. Il existe entre autres Unity, Spring.NET et Castle Windsor pour les besoins d'Inyection de dépendance. Entity Framework 4, NHibernate et iBatis.NET sont de très bons fournisseurs de persistance .NET. ASP.NET MVC est fortement arrivé avec la prise en charge de divers moteurs de modèle en plus de l'ASP.NET traditionnel.

Même si personne ne parvient à utiliser un langage DLR pour construire ce type de framework, quiconque en aura assez pourra suivre le chemin SpringSource et implémenter un framework de type RAILS avec un langage statique comme F #, C # ou VB.NET, en utilisant un Aspect - Conteneur orienté (comme AspectSharp ou Gripper-LOOM.NET) pour obtenir un comportement dynamique.

J'aimerais connaître tout groupe de personnes essayant de développer un tel cadre en .NET.


4

Je ne sais pas ce que vous entendez par "plates-formes Web à développement rapide". La définition de «développement rapide» que je connais n'a rien à voir avec les langages, les paradigmes ou les cadres, mais plutôt l'utilisation du prototypage rapide et du développement itératif pour produire un système. Tout langage ou framework peut également être utilisé.

Je n'ai jamais utilisé Grails ou Roo auparavant, mais Django et Rails sont tous les deux des frameworks MVC, donc leur homologue dans .NET serait ASP.NET MVC .


1
Eh bien, je verrais ASP.NET MVC comme l'équivalent de Spring MVC. Et dire que Rails est un framework MVC, c'est comme dire que Stackoverflow est un site QA, comme les experts-échange. C'est une vraie déclaration, mais il manque la caractéristique la plus importante et la raison de son succès sauvage.
Eric Wilson

1
Veuillez expliquer "la caractéristique la plus importante". Rails n'est rien d'autre qu'un framework MVC pour le langage Ruby. Cela capture tout à ce sujet.
Thomas Owens

2
Eh bien, Spring est un framework MVC pour Java, mais il ne fait pas grand-chose de ce qui rend Rails and Grails génial. Par exemple, avec Grails, après avoir créé un objet de domaine, je peux taper grails generate-allet Grails produit des contrôleurs, des vues et gère la persistance.
Eric Wilson

3

Vous pouvez aller dans Visual Studio et faire glisser et déposer des contrôles sur une page Web et les connecter à une base de données avec peu ou pas de code. Un clic pour tester / visualiser. Et un clic pour télécharger sur un site Web (ok, entrez les informations d'identification).

Non pas que ce soit la façon la plus utilisée ou même recommandée de le faire, mais cela ne devient vraiment pas beaucoup plus facile que cela.


0

Parce que les applications Web .NET ont un cycle de génération.

Ruby / Python sont des langages très agiles / agiles et dynamiques.

Là où je travaille, nous avons une énorme application Web .NET, et les temps de compilation sont comparables à un programme C ++ moyen à grand.

Dans ma réserve, je développe des applications web en python, et le temps de compilation est 0. Il n'y a tout simplement pas d'étape de compilation du tout. L'interpréteur en cours d'exécution recharge simplement les fichiers .py lorsque vous les enregistrez.


1
Eh bien, les applications Java ont un cycle de construction, mais Spring Roo fait toujours des merveilles pour les applications Java / Spring. Je pense donc qu'il y a d'autres problèmes ici.
Eric Wilson
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.