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

10

Mi sembra che le piattaforme web di sviluppo rapido stiano per cambiare 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 for Groovy, Django per Python e Roo per Java.

Ma per quanto ne so (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: È possibile che non utilizzi le parole giuste quando dico "sviluppo rapido", ma sto parlando di framework che possono permettervi di costruire un motore di blog funzionante in 30 minuti. Non è possibile farlo ragionevolmente con, ad esempio, Java, Spring e Hibernate, date le varie configurazioni necessarie per consentire il rilevamento dei controller, e sia la configurazione che il codice necessari affinché le entità continuino a essere recuperate.

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

    
posta Eric Wilson 17.09.2010 - 13:52
fonte

4 risposte

5

Mi sembra che non ci sia ancora un nome per questo tipo di framework di cui si sta parlando in questo thread. Li chiamo per il momento solo Framework RAILS-like : framework che incrementano la produttività orchestrando altri framework esistenti con lo scopo di risolvere i bisogni 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 Persistence Provider, un Dependency Inyection Container, uno strumento di logging, una piattaforma MVC, un HTML Template Engine, un Web Site Template Starter Kit con preset CSS, un Security Framework e qualche Javascript Library per le funzionalità AJAX e altre cose interessanti. I framework RAILS-like orchestrano tutti questi framework e strumenti sulla base del modello Domain (le entità del tuo 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 le configurazioni di default basato su denominazione, struttura e metadati inclusi nelle stesse definizioni di classi.

Grazie ai linguaggi dinamici utilizzati da questi framework (come Ruby, Groovy, Python, Clojure, ecc.), con l'eccezione di SpringRoo che implementa il comportamento dinamico in Java utilizzando AspectJ, la funzionalità che appartiene ai framework sottostanti sono estesi e sono messi a disposizione dello sviluppatore in modo così uniforme ed elegante che è a conoscenza delle tecnologie di base.

Infine, grazie alla tecnica di Scaffold, unit test, test di integrazione, controller e viste vengono generati automaticamente 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 si verifichi presto. Ci sono ottimi framework, strumenti e librerie già disponibili nel mondo .NET che possono essere orchestrati da una nuova struttura RAILS fatta per il CLR. Ci sono Unity, Spring.NET e Castle Windsor tra gli altri per i bisogni della dipendenza dalla dipendenza. Entity Framework 4, NHibernate e iBatis.NET sono piuttosto buoni provider di persistenza .NET. ASP.NET MVC è strongmente arrivato con il supporto di vari Template Engine 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 RAILS con un linguaggio statico come F #, C # o VB.NET, facendo uso di un contenitore orientato agli aspetti (come AspectSharp o Gripper-LOOM.NET) per ottenere un comportamento dinamico.

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

    
risposta data 10.11.2010 - 20:37
fonte
4

Non so cosa intendi per "piattaforme web di sviluppo rapido". La definizione di "sviluppo rapido" che conosco non ha nulla a che fare con linguaggi, paradigmi o strutture, ma piuttosto con l'uso di prototipazione rapida e sviluppo iterativo per produrre un sistema. Qualsiasi linguaggio o framework può essere usato allo stesso modo.

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 .

    
risposta data 17.09.2010 - 14:10
fonte
3

Si può andare in Visual Studio e trascinare i controlli su una pagina Web e collegarli a un database con un numero minimo di 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 per farlo, ma in realtà non è molto più facile di così.

    
risposta data 17.09.2010 - 15:03
fonte
0

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

Ruby / Python sono lingue molto agili, agili e dinamiche.

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

Nel mio ricambio sviluppo applicazioni web in python, e il tempo di compilazione è 0. Non c'è assolutamente alcun passo di compilazione. L'interprete in esecuzione ricarica semplicemente i file .py mentre li salvi.

    
risposta data 11.11.2010 - 00:48
fonte

Leggi altre domande sui tag