Domanda

Ho alcune esperienze sulla creazione di applicazioni con Asp.Net, ma ora i framework MVC diventano più popolari. Vorrei provare a creare una nuova applicazione web multilingue utilizzando Asp.Net MVC o Castle MonoRail, ma non so quale sia la migliore per me. Non mi piace il motore di visualizzazione dei moduli Web, ma mi piace la funzionalità di routing in Asp.Net MVC.

  • Qualcuno potrebbe parlare di pro e contro tra questi?
  • Quale ViewEngine è il migliore anche per sovrascrivere il modello principale?
È stato utile?

Soluzione

Parlando come un sostenitore della monorotaia, devo dire che probabilmente dovresti scegliere ASP.NET MVC. Ad essere onesti, il semplice fatto che ASP.NET MVC diventerà l'architettura predefinita entro tre anni dovrebbe probabilmente oscillare. Questa equazione era diversa un anno fa, semplicemente perché l'architettura di default aveva seri problemi di produttività rispetto a MonoRail.

Se vuoi parlare di vantaggi e svantaggi tecnici:

  • ASP.NET AJAX è un casino (evitatelo), ma ora hanno jQuery. In effetti, il supporto jQuery è migliore di qualsiasi altro ambiente. Ovviamente, lo ottieni completamente solo con l'integrazione IDE con il motore di visualizzazione standard.
  • Ci sono alcuni miglioramenti estetici (ad esempio, il modo in cui vengono trasmesse le informazioni sul modello è molto più pulito e più ovvio della monorotaia).

Inoltre, non scartare il motore di visualizzazione standard. Non devi lanciare controlli come hai fatto con ASP.NET, puoi codificarlo in un modo abbastanza simile a Brail, usando solo C # invece di Boo.

Ci sono cose che sono semplicemente brutte  * il numero di metodi che accettano l'oggetto per un parametro. Buona fortuna a trovare la documentazione su cosa si aspettano esattamente.  * La passione di Microsoft per le classi astratte rispetto alle interfacce. Hanno le loro ragioni, ma ancora non mi piace.

Inoltre, per molti aspetti, MonoRail rimane la piattaforma più completa. Non ci sono astrazioni per la convalida o il paging in ASP.NET, per esempio. Inoltre, non c'è davvero alcun aiuto per l'associazione a un modello. Gli helper hanno pochissime funzionalità rispetto ai loro equivalenti monorotaia.

Nel complesso, tuttavia, penso che ASP.NET MVC sia un vincitore.

Altri suggerimenti

MonoRail e ASP.NET MVC sono fondamentalmente molto simili, dovresti essere benestante usando uno di essi. MonoRail esiste da molto più tempo e ha quindi funzionalità di livello più elevato.

Il principale punto di forza di ASP.NET MVC è il suo motore di routing, per essere onesti MonoRail ha praticamente un motore di routing equivalente, e con alcune modifiche puoi usare il motore di routing ASP.NET MVC con MonoRail poiché il motore di routing non lo è davvero in ASP.NET MVC ma in System.Web.Routing (rilasciato in .NET 3.5 SP1). ASP.NET MVC e l'integrazione con Visual Studio sono anch'essi un vantaggio e probabilmente miglioreranno man mano che ci avviciniamo a RTM di v1.

Il progetto MvcContrib contiene alcuni grandi motori di visualizzazione, come Spark, NHaml e Brail. Nessuno può essere considerato "Migliore", Uno dei preferiti è Spark. Per ulteriori informazioni su spark: http://dev.dejardin.org/documentation/syntax

Il motore WebForms ha intellisense che è un grande vantaggio che a mia conoscenza mancano tutti i motori di visualizzazione alternativi.

Oltre alla popolarità percepita e al supporto di Microsoft, ASP.NET MVC manca ancora di alcune funzionalità di base che Monorail ha da molto tempo come l'organizzazione del controller (aree), i componenti e i filtri View nativi che possono usare l'IoC per nominare quelli più importanti .

Ho alcune grandi applicazioni che utilizzano tutte queste funzionalità e ho avuto difficoltà a portarle su ASP.NET MVC.

Ho lavorato con la monorotaia ormai da alcuni anni e mentre MVC sembra promettente e la sua flessibilità è eccezionale, trovo ancora sconcertante che per ogni altra cosa che provo a fare, risulta che non è lì e devo collegare un piccolo pezzo di MvcContrib, un altro pezzo di SharpArchitecture, costruirlo da solo, si ottiene l'immagine. La monorotaia è molto più facile da lavorare (in questo momento, cioè).

Mi aspetto che le cose andranno meglio nei prossimi mesi poiché alcune soluzioni proposte inizieranno a salire contro altre e diventeranno più mainstream. Ehi, la varietà di opzioni è buona, ma fidati di me, non vuoi essere in Java-land 3 anni fa dove c'erano così tanti framework web che potresti costruire il tuo sito usando uno per ogni pagina diversa!

Nel frattempo continuerò lentamente a trasferire le mie app MR su MVC, per ogni evenienza.

  1. Penso che MVC vinca a mani basse. Il suo set di funzionalità è molto simile, ma sarà il più "popolare" dei due (e quindi generalmente più ampiamente supportato, documentato ed esteso in tutta la comunità di sviluppo). Inoltre, secondo me, il nuovo ViewEngine (Razor) .. e i miglioramenti IDE contribuiscono a migliorare il valore della scelta di MVC rispetto alla monorotaia.

  2. Ho usato praticamente tutti i comuni ViewEngines, ma ho finito col girare i miei ( ha creato un progetto OpenSource per questo) utilizzando il fantastico motore di template StringTemplate. ST è una vera separazione di preoccupazioni, IMO. Mi ritrovo a scrivere app migliori come risultato, con MOLTO meno tag soup. Ho anche lanciato una introduzione rapida e guida di riferimento se scegli di calciare le gomme sul motore. Ho avuto una fortuna incredibile per i progetti che ho implementato finora usando. Detto questo, Razor (MVC 3) sembra piuttosto impressionante.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top