2010-05-15 13 views
8

Ho fatto alcuni WinForms funzionano in C# ma ora mi muovo per sviluppare un front end per applicazioni Web in .NET (C#) . Ho esperienza nello sviluppo di applicazioni web in Ruby on Rails (& un po 'con Java con pagine JSP & struts mvc).La mia prima app web .net - dovrei andare direttamente al framework MVC (cf ASP.net)

Devo passare direttamente al framework MVC? (al contrario di andare su ASP.net) Questo è dal punto di vista della direzione futura per Microsoft & e anche la facilità nel salire da me stesso.

O se ti piace, data la mia esperienza fino ad oggi, quali sarebbero i pro/contro per me MVC contro ASP.net?

grazie

risposta

3

Se hai bisogno di lavorare davvero vicino al cavo allora MVC è un'ottima scelta. Con questo voglio dire, se hai bisogno di avere controlli molto stretti sul markup allora; mentre acheivable con WebForms; è molto più facile con MVC. Ciò sarebbe comune per le applicazioni destinate a un pubblico pubblico (ad esempio Internet) che potrebbe avere un'esperienza grafica più ricca. Al contrario, se si sta sviluppando un'applicazione aziendale interna (ad esempio intranet) in cui la presentazione grafica non è così importante, WebForms dispone di molte funzionalità di abilitazione davvero interessanti che consentono di spostarsi più rapidamente. Non fraintendetemi, è possibile rendere le applicazioni WebForm davvero interessanti, ma si rinuncia al controllo sul markup.

Molto spesso ViewState entra in questo tipo di discussione. MVC non avrà alcun ViewState, quindi il footprint on-the-wire sarà molto più piccolo e si tradurrà in un risparmio di velocità e larghezza di banda a un certo punto. Al rovescio della medaglia, rendere le applicazioni stateful con MVC può essere più doloroso. Al contrario, WebForms trasporterà ViewState di default e sono intrinsecamente più stateful. Questo è generalmente valido per le applicazioni interne. Tieni presente che ViewState non deve essere inviato sul filo ... ci sono estensioni che ti permettono di scaricarlo in una cache locale. Non sto favorendo l'uno sull'altro, ma dovresti essere consapevole di ciò che ognuno può fare in questo senso.

Se il test delle unità è importante per voi, MVC è anche una scelta molto migliore, poiché anche questo è più semplice. Questo è totalmente accettabile in WebForms ma richiede che il tuo codice sia corretto.

La sicurezza non è un fattore importante dal momento che gran parte dell'impostazione di IPrinciple e IIdentity si verifica nella pipeline HTTP tramite HttpModules, quindi lo faremo a tale riguardo.

Un altro fattore importante nel fare la tua scelta si riferisce alle tue abilità relative al tempo che devi consegnare ... , ecc ...) MVC ti impiegherà più tempo a fare cose basilari. Detto ciò, una volta sul posto sarà probabilmente più pulito, più piccolo, più testabile e più veloce. Se devi muoverti molto velocemente, c'è molto che puoi fare più velocemente in WebForms. WebForms fa anche molto lavoro di sollevamento rispetto al markup, quindi ci sono molti dettagli che puoi lasciare ad ASP.NET.

In realtà uso entrambi per una serie di motivi e la SM ha dichiarato che prevede di continuare a supportare e sviluppare entrambi.

0

dovrei ottenere familiarità con la lingua prima di utilizzare roba "di fantasia", come MVC, perché è solo modo più semplice da imparare quando si potrebbe quasi pensare in la lingua (ma non è necessario).

+0

Proveniente da Ruby on Rails, Web Form ASP.NET è "fancy" non la variante ASP.NET MVC – SztupY

+0

questo è quello che stavo indovinando SztupY - cosa ne pensi? – Greg

2

MVC fa parte di ASP.NET. Devi indicare MVC vs Webform a cui la risposta sarebbe: provenendo da uno sfondo Winform, troverai la forma web più facile da usare. Per il futuro, vai su MVC.

1

Proveniente da Ruby on Rails o altri framework basati su MVC ASP.NET MVC è quasi la scelta migliore. (ASP.NET MVC è in realtà solo la parte "VC", quindi devi aggiungere un ORM a tua scelta: EF e Linq a Sql sono Microsoft, NHibernate o altri ORM sono l'altro modo. Un buon progetto di avvio rapido è S#arp Architecture che utilizza NHibernate come parte "M", oppure è possibile controllare WHCM, che è un progetto basato su architettura S # arp e altri framework validi (è considerato un progetto dimostrativo best-practice ASP.NET MVC)). ASP.NET MVC non utilizza quasi nulla dal pacchetto WebForms (l'unica eccezione che ho trovato è AntiForgeryToken), quindi non perderai nulla se non conosci i WebForm di ASP.NET.

Ma come hai detto tu hai fatto anche le applicazioni per console, che i Web Form di ASP.NET somigliano di più.

Se il progetto è nuovo, ti consiglio di utilizzare ASP.NET MVC. Se il tuo progetto separa chiaramente la parte M-V-C (come in S # arp Architecture, dove risiedono in diversi assembly), la creazione di un'applicazione console che utilizza la stessa logica di business non dovrebbe essere troppo difficile. Se il tuo progetto attuale consiste nel trasferire un'applicazione Web WinForms, potrebbe essere più semplice utilizzare WebForms.

0

Cavalli per i corsi. Se stai dando una rapida app per qualcuno, i moduli web sono probabilmente più veloci e più facili.

Se stai realizzando un'app aziendale di lunga durata, MVC ti offre una migliore testabilità di un SoC.

+0

cosa intendi per migliore testabilità un SoC per curiosità Doobi? – Greg

+0

Doh, mi spiace, errore di battitura: $ Intendevo Testabilità e SoC (Separazione dei dubbi) http://msdn.microsoft.com/en-us/magazine/dd942838.aspx – Doobi

2

Ero abituato a lavorare anche su applicazioni desktop e non mi sono mai dedicato molto al web. Non avevo nemmeno (sussultato!) L'HTML (sì, quella era la vergogna dei miei programmatori). Nel mio nuovo lavoro stavamo per avviare una nuova applicazione usando ASP.NET MVC e devo dirtelo, lo adoro. TUTTAVIA penso che dovresti andare con MVC solo se lo sei o con qualcuno con buone capacità di progettazione html/css.

Html è facile, lo so (ho imparato a saperlo!) Ma penso che sia un po 'difficile fare dei bei progetti con html e css, specialmente se si fa schifo progettando e si potrebbe probabilmente fare cose più carine usando i webform, che è un po 'più facile/simile a winforms.

Inoltre, se vai in MVC assicurati di avere abbastanza tempo per impararlo, dato che stai per andare un po 'più a basso livello, dovrai imparare di più sui piccoli dettagli, come la differenza effettiva tra post/get e tutta quella roba che è praticamente completamente nascosta nei webform. Consiglio vivamente di prendere un libro, ho usato questo Pro Asp.net MVC e mi è piaciuto molto.

Infine, se la tua pagina avrà bit interattivi, o cose ajax-y, se vai in MVC molto probabilmente dovrai imparare anche javascript/jQuery. Se vai sul web puoi usare i controlli ajax drag'n drop inclusi.

+0

hai mai bloccato problemi con WebForms dove puoi? t abbastanza tweek su come vuoi che guardino? – Greg

+0

Non ho lavorato troppo con le webform, ma nelle poche cose che ho fatto, beh, sei abbastanza limitato ai controlli e alle loro azioni, dal momento che l'id è un disastro. Questo sembra essere molto più facile innet 4, dato che ora puoi effettivamente specificare l'id, (permettendo così di fare cose jquery/ajaxy molto più facili –

Problemi correlati