Domanda

Chiunque là fuori utilizzando le nuove pagine CSHTML caratterizzato e sta trovando che preferiscono questa nuova sintassi vista motore durante il motore di visualizzazione di default ASP.NET MVC esistente o su moduli web, e se sì, perché? Che dire CSHTML ti dà un vantaggio rispetto MVC o web forme, o viceversa?

Solo curioso di sentire introito della gente su di esso.

È stato utile?

Soluzione

Uno dei vantaggi è che le opinioni di rasoio possono essere resi all'interno test di unità, questo è qualcosa che non era facilmente possibile con il precedente renderer ASP.Net.

di ScottGu annuncio questo è elencato come uno degli obiettivi di progettazione:

  

Unità testabile: La nuova implementazione vista del motore sosterrà la capacità di vista di unit test (senza la necessità di un controller o web-server, e può essere ospitato in qualsiasi progetto di test di unità - senza App-speciale di dominio richiesto).

Altri suggerimenti

Opinione Ex Microsoft Developer

Ho lavorato su un core team per il sito Web MSDN. Ora, io uso c # rasoio per i siti di e-commerce con la mia squadra di programmazione e ci concentriamo pesante sulla parte frontale di jQuery con back-end c # pagine di rasoio e il database della memoria LINQ-Entità in modo che le pagine sono 1-2 millisecondi tempi di risposta anche su annidati per i cicli con le query e nessun caching delle pagine. Non usiamo MVC, semplicemente ASP.NET con pagine rasoio essere mappati con modulo URL Rewrite per IIS 7, nessuna pagina ASPX o ViewState o programmazione di eventi sul lato server a tutti. Non ha i supplementari (inutili) strati MVC mette in costrutti di codice per l'espressione regolare in discussione. Meno è meglio per noi. E 'tutto magro e avaro ma do puntelli a MVC per la sua verificabilità, ma questo è tutto.

pagine

Rasoio non hanno alcun ciclo di vita evento come pagine ASPX. Il suo solo il rendering come una pagina richiesta. C # è un grande linguaggio e Razor ottiene fuori del suo modo ben lasciarlo fare il suo lavoro. La tipizzazione anonimo con i generici e LINQ rendere la vita così facile con C # e pagine di rasoio. Utilizzando le pagine Razor vi aiuterà a pensare e il codice più chiaro.

Una delle svantaggio di Razor e MVC è che non c'è ViewState simile persistenza. Avevo bisogno di implementare una soluzione per questo così ho finito per scrivere un plugin jQuery per questo qui -> http: // www. jasonsebring.com/dumbFormState che è un HTML 5 non in linea di archiviazione supportato plug per lo stato di forma che sta lavorando in tutti i principali browser oggi. E 'proprio per lo stato di forma al momento, ma è possibile utilizzare window.sessionStorage o window.localStorage molto semplicemente di immagazzinare qualsiasi tipo di stato tra postback o richieste di pagine pari, ho solo preso la briga di farlo salvataggio automatico e namespace si basa su URL e indice di modulo in modo non c'è bisogno di pensarci.

  1. Il tutto è codificato per default !!! Questo è abbastanza grande.

  2. aiutanti dichiarative possono essere compilati in modo non c'è bisogno di fare nulla di speciale per condividerle. Penso che sostituiranno ascx controlli in una certa misura. Si deve passare attraverso alcuni cerchi di utilizzare un controllo ascx in un altro progetto.

  3. È possibile effettuare una sezione richiesto che è bello.

Il più grande vantaggio è che il codice è più succinta. L'editor VS avrà anche il supporto di IntelliSense che alcuni degli altri motori di vista non hanno.

dichiarativa HTML Helpers anche guardare piuttosto fresco come fare aiutanti HTML all'interno di codice C # mi ricorda controlli personalizzati in ASP.NET. Penso che hanno preso una pagina da parziali, ma con il codice inline.

Così alcuni benefici definiti sopra il motore di visualizzazione asp.net.

Con differenza di un motore di visualizzazione come scintilla però:

Spark è ancora più succinto, è possibile mantenere il caso di e loop all'interno di un tag html sé. Il markup ancora si sente solo più naturale per me.

È possibile parziali codice esattamente come si farebbe un aiutante dichiarativa, si era appena passare lungo le variabili al parziale e si ha la stessa cosa. Questo è stato in giro con scintilla per un bel po '.

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