Perché il mondo .NET non ha qualcosa come rails / grails / django / roo? [chiuso]


10

Mi sembra che le piattaforme web a sviluppo rapido cambieranno radicalmente il mondo delle applicazioni web.

Sono passati cinque anni da quando Rails 1.0 è stato rilasciato per Ruby e da allora abbiamo visto Grails per Groovy, Django per Python e Roo per Java.

Ma per quanto ne sappia (che è probabilmente limitato, essendo un programmatore Java / Groovy) non esiste un framework simile per C #.

Esiste una cosa del genere? In caso contrario, perché no?

Modifica: è del tutto possibile che non sto usando le parole giuste quando dico "sviluppo rapido", ma sto parlando di framework che possono plausibilmente permetterti di costruire un motore di blog funzionante in 30 minuti. Non si potrebbe ragionevolmente farlo con, diciamo, Java, Spring e Hibernate, date le varie configurazioni necessarie per consentire ai controller di essere trovati, e sia la configurazione che il codice necessari affinché le entità persistano e vengano recuperate.

Quindi sto parlando di framework che gestiscono tutto il CRUD con una mentalità da convenzione sulla configurazione eccessiva. Se qualcuno ha le parole giuste per quello di cui sto parlando, fammi sapere.

Risposte:


5

Mi sembra che non ci sia ancora un nome per questo tipo di framework di cui state parlando tutti in questo thread. Per il momento li chiamo solo Frameworks simili a RAILS : Frameworks che aumentano la produttività orchestrando altri framework esistenti allo scopo di risolvere le esigenze di base della maggior parte delle applicazioni Web, ma allo stesso tempo nascondendo tutte le complessità dallo sviluppatore.

Per esigenze di base intendo l'implementazione di un provider di persistenza, un contenitore di inezione di dipendenza, uno strumento di registrazione, una piattaforma MVC, un motore di template HTML, uno starter kit di modelli di siti Web con preset CSS, un framework di sicurezza e alcune librerie Javascript per le funzionalità AJAX e altre cose interessanti. I Frameworks simili a RAILS orchestrano tutti questi framework e strumenti sulla base del modello di dominio (le entità del sistema con i suoi attributi).

Grazie al principio Convention-over-Configuration, questi framework evitano la necessità di definire molti file di configurazione normalmente richiesti dai framework che orchestrano (come Spring, Spring MVC, Hibernate, Log4J, ecc.), Assumendo configurazioni predefinite in base alla denominazione , struttura e metadati inclusi nelle stesse definizioni di classi.

Grazie ai linguaggi dinamici che utilizzano questi framework (come Ruby, Groovy, Python, Clojure, ecc.), Ad eccezione di SpringRoo che implementa il comportamento dinamico in Java usando AspectJ, le funzionalità che appartengono ai framework sottostanti vengono estese e sono messi a disposizione dello sviluppatore in modo uniforme ed elegante da essere a conoscenza delle tecnologie sottostanti.

Infine, grazie alla tecnica Scaffold, vengono generati automaticamente unit test, test di integrazione, controller e viste per le funzioni principali (CRUD) su ciascuno degli oggetti di dominio definiti dallo sviluppatore.

Nel mondo .NET non è stato ancora sviluppato nulla, seguendo tutte le definizioni precedenti. Ma nulla impedisce che ciò accada presto. Esistono già fantastici framework, strumenti e librerie nel mondo .NET che possono essere orchestrati da un nuovo framework simile a RAILS creato per CLR. Ci sono Unity, Spring.NET e Castle Windsor tra gli altri per le esigenze di Inection Dependency. Entity Framework 4, NHibernate e iBatis.NET sono abbastanza buoni provider di persistenza .NET. ASP.NET MVC è fortemente arrivato con il supporto per vari modelli di motori oltre al tradizionale ASP.NET.

Anche se nessuno riesce a usare un linguaggio DLR per costruire questo tipo di framework, chiunque abbia abbastanza volontà può seguire il percorso SpringSource e implementare un framework simile a RAILS con un linguaggio statico come F #, C # o VB.NET, usando un Aspetto -Oriented Container (come AspectSharp o Gripper-LOOM.NET) per ottenere un comportamento dinamico.

Mi piacerebbe conoscere qualsiasi gruppo di persone che cercano di sviluppare tale framework in .NET.


4

Non so che cosa intendi per "piattaforme web a sviluppo rapido". La definizione di "sviluppo rapido" con cui ho familiarità non ha nulla a che fare con linguaggi, paradigmi o framework, ma piuttosto l'uso della prototipazione rapida e dello sviluppo iterativo per produrre un sistema. Qualsiasi lingua o framework può essere usato ugualmente bene.

Non ho mai usato Grails o Roo prima, ma Django e Rails sono entrambi framework MVC, quindi la loro controparte in .NET sarebbe ASP.NET MVC .


1
Bene, vedrei ASP.NET MVC come la controparte di Spring MVC. E dire che Rails è un framework MVC è come dire che Stackoverflow è un sito di controllo qualità, come lo scambio di esperti. È una vera affermazione, ma manca la caratteristica più importante e il motivo del suo successo selvaggio.
Eric Wilson,

1
Spiegare "la caratteristica più importante". Rails non è altro che un framework MVC per il linguaggio Ruby. Questo cattura tutto.
Thomas Owens

2
Bene, Spring è un framework MVC per Java, ma non fa molto di ciò che rende grande Rails e Grails. Ad esempio, con grails, dopo aver creato un oggetto dominio, posso digitare grails generate-alle grails produce controller, viste e gestirà la persistenza.
Eric Wilson,

3

È possibile accedere a Visual Studio e trascinare e rilasciare i controlli in una pagina Web e collegarli a un database con poco o nessun codice. Un clic per testare / visualizzare. E un clic per caricare su un sito Web (ok, inserisci le credenziali).

Non che questo sia il modo più usato o addirittura consigliato di farlo, ma in realtà non è molto più facile di così.


0

Perché le applicazioni Web .NET hanno un ciclo di generazione.

Ruby / Python sembra essere un linguaggio molto agile / agile e dinamico.

Dove lavoro, abbiamo un'enorme applicazione Web .NET e i tempi di compilazione sono paragonabili a un tipico programma C ++ medio-grande.

Nella mia parte di ricambio sviluppo applicazioni web in Python e il tempo di compilazione è 0. Non c'è proprio nessun passaggio di compilazione. L'interprete in esecuzione ricarica solo i file .py mentre li salvi.


1
Bene, le applicazioni Java hanno un ciclo di generazione, ma Spring Roo fa ancora miracoli per le applicazioni Java / Spring. Quindi penso che ci siano altri problemi qui.
Eric Wilson,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.