2010-01-15 27 views
5

Ho un sito di hobby pubblico che riceve circa 3000 visitatori unici al giorno, scritto in ASP classico che ha un brutto bisogno di un rinnovamento e riprogettazione. Mi sono reso conto che un aggiornamento a ASP.net è il modo migliore per implementare funzionalità che sono troppo difficili in ASP per l'hobbista (consumare feed RSS, autenticazione e profili utente) ma che mi piacerebbe ottenere bloccato in una volta che ho passato il redesign/upgrade.Consigli sull'utilizzo di ASP.net WebForms o MVC

Ma, sono rimasto paralizzato dall'incertezza sulla strada da percorrere: Web Forms o MVC - oltre al fatto che sembra sempre che ci sia qualche nuova release in arrivo che sembra valga la pena di cercare di migliorare la curva di apprendimento. Quindi passo ore a leggere su WebForms e poi leggo qualcosa che mi dice che potrei stare meglio pensando a MVC, poi leggere su MVC e chiedermi se è adatto a quello che sto cercando di fare.

Nessuno dei tutorial e dei siti di avviamento parla davvero di ciò che funziona bene per siti che sono vecchi siti di informazioni statiche tradizionali (non cataloghi o basati sul contenuto dell'utente).

Il mio sito è di circa il 75% di pagine di informazioni statiche che cambiano raramente. Tuttavia, lo scripting ASP è essenziale nell'interfaccia utente di tutte quelle pagine: scegliere dinamicamente o casualmente elementi di design (come una foto di intestazione) o fornire una particolare barra laterale basata sul giorno dell'anno o a caso.

Il tipo di script che ho è come uno script per selezionare e visualizzare in modo casuale una delle 30 immagini di intestazione per la pagina, uno script per visualizzare testo e collegamenti in base a quale giorno dell'anno è, uno script che consente per dichiarare una determinata parola chiave di ricerca come pertinente al contenuto di una determinata pagina e avere quella precaricata come testo nella casella di immissione della ricerca al caricamento della pagina.

Per la maggior parte del resto delle pagine, si tratta di visualizzare dati. Alcuni di questi sono piccoli recordset (informazioni di tipo almanacco su ciò che è significativo in questo particolare giorno dell'anno) e lo salvi e lo tiro da una variabile Array nella pagina stessa. Altri estraggono le informazioni da un database Access che cambia raramente e non mi sono mai preoccupato di implementare la funzionalità CUD dal vivo sul sito (e i ruoli e l'autenticazione necessari per proteggerlo), ma semplicemente aggiornare il database offline e caricarlo per inviare le modifiche dal vivo .

Con ASP.net, mi piacerebbe passare a SQL Server e creare pagine di amministrazione dal vivo. Non ho bisogno di attenermi all'accesso.

Ma, sono più abituato a scrivere HTML e CSS grezzi e trovo WebForms (in particolare Viewstate ed eventi/postback) una sfida per capire concettualmente. Anche se sembra adattarsi maggiormente alla pagina statica in un file system con un codice sul lato server a cui sono abituato.

D'altra parte, MVC sembra essere ben adattato al design amorevolmente codificato a mano, ma dove tutto viene estratto da un database.

Cosa raccomanderesti? Devo tirare tutte le pagine statiche in un database e servirle attraverso una vista "articolo" in MVC?

Non sono uno sviluppatore professionista, quindi non si tratta di ciò che apparirà migliore nel mio curriculum. Sto solo cercando quello che (a) avrà la minima curva di apprendimento per qualcuno che provenga da espressioni inline VBScript in ASP classico e (b) quale sia la soluzione più adatta a ciò che fa il mio sito e (c) mi permetta di avere il controllo sul mark- up e CSS.

risposta

7

Definitivamente, andare MVC, soprattutto se siete più a suo agio come un ragazzo HTML/CSS.I postback non offrono alcun vantaggio per un sito che è in gran parte statico e ci vorranno mesi per capire come funziona il ciclo di vita della pagina (devo ancora incontrare uno sviluppatore che era un esperto del ciclo di vita dopo 6 mesi di codifica.)

La conversione di un sito ASP classico in MVC implica essenzialmente lo spostamento dei tag HTML e ASP in Views e la replica degli URL esistenti utilizzando i meccanismi di routing. Dovrai aggiornare i tuoi script per utilizzare alcune funzionalità più moderne, ma ciò dovrebbe essere abbastanza semplice, immagino.

Non sono d'accordo con l'idea che in MVC tutto venga estratto dal database, che è un po 'irrilevante per l'architettura. Ho codificato siti statici al 100% in framework MVC e l'ho adorato :)

La mia regola generale è di tendenza verso questo: "MVC per siti Web, WebForm per applicazioni Web aziendali - forse".

4

MVC è adatto a quello che stai facendo.

È perfettamente possibile avere viste statiche, se necessario. Basta dare un'occhiata a ciò che è generato dal modello File-> Nuovo progetto di MVC, ad esempio.

Considerando che sei già abituato a scrivere HTML/CSS e entrambi i framework presenteranno una curva di apprendimento, ti consiglio vivamente MVC. Penso che troverete che MVC soddisfa i requisiti A e C molto meglio dei WebForms (ed entrambi soddisfano B).

0

Utilizzare ciò che è più produttivo, se si ha familiarità con i moduli Web e come il modello basato sugli eventi è sempre possibile cercare in MVP (Model-View-Presenter).

ASP.NET MVC è davvero eccezionale e per me aumenta la produttività.

2

Considerando la tua esperienza ti suggerisco di utilizzare ASP.NET MVC. Dato che hai familiarità con HTML & CSS dovrai abituarti al pattern MVC che è meno di una settimana di lavoro. Inoltre, MVC è migliore e più veloce per la semplice visualizzazione di dati e supporta la memorizzazione nella cache di output in modo da poter memorizzare nella cache le pagine statiche e ottenere una straordinaria velocità. Inoltre, non è un problema usare un mix tra i due: puoi ancora avere pagine WebForms e usare i controlli dove ti servono.

0

Prima di tutto è davvero necessario assicurarsi che una riscrittura valga lo sforzo. Nella mia esperienza, le riscritture richiedono molto più lavoro del previsto e hanno un lungo periodo di ammortamento. Ciò non significa che non dovrebbero essere fatti, significa che ci devono essere dei buoni motivi per iniziarne uno. Le funzionalità che menzioni possono essere facilmente implementate in ASP classico in una frazione del tempo. Un'applicazione legacy è spaventata dalla battaglia con modifiche, correzioni di bug e funzionalità nascoste. Una riscrittura in genere significa perdere quegli anni di esperienza. Tutto dipende dal rapporto caratteristiche/nuove caratteristiche attuali.

In secondo luogo, se si sta per riscrivere, si potrebbe anche voler verificare le tecnologie oltre a asp.net. Il sito che descrivi sembra essere molto orientato ai contenuti che potrebbe adattarsi meglio a django di asp.net mvc. Buona fortuna con il tuo sito.

0

Si consiglia inoltre di utilizzare ASP.NET MVC poiché si ha molta familiarità con HTML/CSS. Inoltre con le funzionalità come Routing è possibile organizzare la struttura del sito Web in un modo migliore. Anche il tuo sito web diventa molto più predittivo per i visitatori a causa degli URL.

Esempio:

www.domain.com/hobbies/photography 
2

Dalla mia esperienza di passare da ASP ad ASP.NET MVC e ASP.NET, è più facile passare da ASP ad ASP.NET MVC. Tuttavia, la curva di apprendimento non è così facile Si prega di leggere e seguire http://nerddinnerbook.s3.amazonaws.com/Intro.htm e, dopo aver letto, vedere cosa c'è di nuovo nella versione 2, per esempio:

weblogs.asp.net/scottgu/archive/2010 /01/10/asp-net-mvc-2-strongly-typed-html-helpers.aspx

Diventerà un RAD per sviluppatori esperti!

Problemi correlati