2009-12-22 15 views
11

Mi è stata concessa una breve quantità di tempo (circa 80 ore per iniziare) per sostituire un database di Access esistente con un sistema SQL + completo, e sto elencando le mie opzioni. Vorrei utilizzare ASP.NET MVC, ma non sono sicuro di come utilizzarlo in modo efficace con il mio breve orario.Come posso eseguire lo sviluppo rapido di applicazioni con ASP.NET MVC?

Per il backend del database userò Linq su SQL perché è un prodotto che conosco già e che può ottenere rapidamente un risultato.

Qualcuno ha esperienza con l'utilizzo di ASP.NET MVC in questo modo e può condividere alcune informazioni?

Modifica: Il motivo per cui sono interessato a ASP.NET MVC è perché so (confermato al 100%) che ci sarà più lavoro da fare dopo questo primo turno, e mi piacerebbe il mio lavoro di manutenzione per essere il più semplice possibile. Nella mia esperienza, le applicazioni Webforms tendono ad andare in pezzi per manutenzione ripetuta, nonostante la disciplina.

Forse c'è una via di mezzo? Quanto sarebbe difficile per me, ad esempio, costruire l'app con Webforms, quindi migrarla su MVC più tardi quando avrò più tempo a disposizione per il progetto?

Edit 2: Ulteriori sfondo: l'applicazione di Access sto sostituendo viene utilizzato in alcune capacità da parte di tutti nella costruzione, e dal momento che è stato aggiornato da Access 98-2003 che è stato crash quotidiana, causando ore di perdita di produttività poiché le persone devono immettere nuovamente i dati dall'ultimo backup. Questo è il motivo per il breve lasso di tempo - questa è una funzione aziendale critica, e non possono permettersi di continuare a reinserire i dati su base giornaliera.

+1

Cosa vuoi sapere? Se hai poco tempo, imparare una nuova struttura e un nuovo modo di fare le cose non sarà una buona idea! – LiamB

+1

Ti ci vorrà più tempo di quanto pensi; ma con ASP.NET MVC puoi essere attivo e in esecuzione piuttosto rapidamente - se conosci ASP.NET MVC. Tuttavia, nessuna delle cose al di fuori del livello dati viene trasferita. Dovrai trovare una nuova interfaccia utente e logica di controller. RAD non ti aiuta qui; è un paradigma completamente nuovo. –

+1

Penso che una volta che hai abbastanza codice sul posto, l'utilizzo di ASP.NET MVC può diventare molto simile a RAD. – RichardOD

risposta

7

Non ci sono davvero buone risposte.

Sarei molto sorpreso se potessi ricreare un'applicazione aziendale non banale in un nuovo formato (web) in un periodo di tempo "breve" (a meno che non misuri "breve" per 6 mesi).

ASP.NET MVC fornisce (mani verso il basso) la maggior parte delle convenzioni disponibili con qualsiasi progetto web iniziale.

ASP.NET consente di trascinare e rilasciare per far funzionare le cose, ma interrompe la manutenzione in modo orribile per applicazioni non banali.

Se si trattasse di me, mi piacerebbe fare tre cose:

  1. chiedere il mio capo se lui mi vuole ricreare un'intera applicazione business in una piattaforma completamente diversa.

  2. Digli che può averlo più rapidamente ora (ASP.NET) o più rapidamente (ASP.NET MVC).

  3. Lasciagli fare la chiamata.


Addendum personali: Ho usato sia ASP.NET MVC e ASP.NET per le applicazioni web. MVC è solo meglio. Non più veloce, ma migliore. Ha reso lo sviluppo web "divertente" di nuovo per me.

+0

Questo è ciò che farò - gli ho spiegato la situazione, spiegato i compromessi coinvolti tra gli obiettivi in ​​conflitto (velocità di sviluppo vs costo della manutenzione) e gli ho chiesto la sua raccomandazione. –

+0

Inoltre, mi hanno dato 80 ore per ora. Non molto tempo. = X –

+0

@Erik: Non mi piace parlare in modo assoluto, ma a meno che non si tratti di un'applicazione follemente banale, non sono sicuro che potresti farlo in 80 ore. –

7

MVC non è realmente un framework di sviluppo RAD.

Scriverete molto più codice di infrastruttura rispetto all'utilità Web RAD di trascinamento di un datagrid e un'origine dati in una pagina .aspx. I amore MVC ma se siete sotto la pistola andare con Webforms. MVC può essere più veloce, ma solo se hai un'infrastruttura pre-costruita.

MVC 2 allevia alcuni di questi includendo helper HTML basati su modello come Model.EditorFor() ma non è ancora abbastanza buono. Nessun codice di rete veloce. Paging? Stai arrotolando il tuo cercapersone. Ajax? Scrivi il tuo JQuery.

Certo, ci sono librerie di terze parti e open source disponibili per tutte queste cose, ma nella mia esperienza a farle tutte insieme e fare in modo che suonino bene richiede anche molto tempo.

+3

ASP.NET MVC fornisce l'infrastruttura (vedere: Convenzione sulla configurazione). Con Trascina e rilascia Linq-To-SQL, hai già realizzato metà modello. L'infrastruttura è lì, ma devi essere competente per comprendere MVC e non puoi semplicemente affidarti ai controlli drag and drop che tolgono la programmazione dalla programmazione. –

+0

Lol, MVC fornisce l'infrastruttura, guarda questa funzionalità di Linq to Sql? E comunque, non stiamo parlando del perché il drag and drop sia brutto, stiamo parlando se il drag and drop è più veloce. – jfar

+0

Modificato la mia domanda con qualche altro background. –

0

Una volta eseguito con MVC, è piuttosto veloce, ma ci vuole un po 'a) per imparare eb) per creare una suite di utili bit di codice.

Se l'interfaccia utente non sarà complicata, può essere molto semplice impostare un'interfaccia di immissione dati rapida.

Se la vostra interfaccia utente è quello di essere davvero, davvero semplice, come si potrebbe guardare ASP.net dynamic data.

0

È anche possibile cercare Entity Framework di legarsi al database, questo creerà i tuoi modelli da utilizzare con MVC. Ma come ha detto jfar, sotto la pressione della morte, vai per quello che sai meglio!

0

ASP.Net MVC è buono, ma ....

Se non è stato messo a punto un sistema che utilizza ASP.Net MVC prima, quindi utilizzarlo su un progetto con una scadenza breve è un rischio.

Se l'applicazione è un'applicazione di "semplice" CRUD quindi vorrei andare con Dynamic Data: http://www.asp.net/dynamicdata/ (Paddy appena mi ha battuto a quello)

Se il sistema è veramente grande che si potrebbe prendere in considerazione SharePoint Servizi di accesso http://blogs.msdn.com/access/archive/2009/10/21/net-developer-blogs-about-access-2010.aspx

4

Applicazione web semplice + pianificazione stretta = Web Form ASP.NET.

Applicazione web complessa + pianificazione stretta = ASP.NET MVC.

Ho scoperto che con la complessità di un'applicazione Web aumenta in modo lineare la complessità di un'app Webform aumenta in modo esponenziale. Una volta che inizi a scrivere i controlli del tuo server (NON i controlli utente, poiché sono ancora relativamente semplici), che possono essere necessari per un'interfaccia utente più complessa, devi avere una conoscenza approfondita dell'intero ciclo di vita della pagina, di come funziona lo stato di visualizzazione e altro parti oscure di webforms che il framework astrae da te.

MVC, mentre richiede che si conosca bene l'HTML, fa grandi cose alla fine della complessità. Non importa quanto sia complessa l'applicazione, hai ancora a che fare con POCO e metodi nel tuo controller. Una volta superati gli ostacoli iniziali, la sua navigazione regolare. La difficoltà di sviluppo aumenta allo stesso ritmo della difficoltà del sito web.

Esperienza personale: ho convertito un sito Web relativamente complesso utilizzando i controlli server personalizzati su ASP.NET MVC e tagliato la base di codici a metà. Ho anche drasticamente ridotto la complessità del codice.

L'unico avvertimento che ho è che ajax è più facile da fare con ASP.NET AJAX. Quindi, se svilupperai un'app Web che fa affidamento su ajax, i webform potrebbero battere MVC.


La migrazione da ASP.NET a MVC non è sempre la più semplice. È necessario passare da un'applicazione basata su codebehind a un'applicazione in cui i controller non sono consapevoli della propria interfaccia utente. Inoltre, MVC fa molto affidamento sull'URL per determinare l'intento dell'utente, mentre ASP.NET si affida ai gestori di eventi.

Personalmente, se ritenevo che un'applicazione fosse destinata a diventare MVC, non perderei tempo a svilupparla in ASP.NET. Ma poi, ho avuto il vantaggio di superare la curva di apprendimento iniziale. Quale non era poi così male IMHO. Ho avuto più problemi nell'apprendimento di tutti i moduli HTML e HTML che ASP.NET mi ha impedito di apprendere.

+0

Modificato la mia domanda con qualche altro background. –

0

Evolutionary Software Development

Per esperienza ho garantire per esso - è così che il programma, che funziona indipendentemente dalla tecnologia.

In breve: fai come ti dice il tuo istinto (codifica qualcosa), modifica quando trovi errori/omissioni e quando funziona, hai finito (ma per la documentazione).

1

Con questo termine penso che sia più conveniente utilizzare il modulo web ASP.Net. Dopo questa prima fase con più tempo/budget, puoi iniziare a sviluppare nuove parti della tua applicazione utilizzando MVC poiché possono coesistere.

Inoltre, tenere presente l'Ajax e il codice di rete. In MVC di solito impiegano più tempo per svilupparsi, ma almeno per me sembrano essere più robusti perché devi davvero sapere cosa stai facendo.

Questa domanda è del 2009, sarebbe bello se l'autore fornisse un feedback sulla sua decisione.

MODIFICA: Dai un'occhiata a http://mvcscaffolding.codeplex.com/ se hai ancora bisogno di una RAD utilizzando asp.net MVC.

+0

Alla fine non è stata la mia decisione. Ho lasciato la società prima che iniziasse la conversione e, in effetti, hanno utilizzato ASP.NET MVC. Grazie =) –

0

Entrambi i framework contribuiscono in modo sufficiente a fornire una soluzione, ma i WebForm automatizzano alcune delle attività coinvolte nella funzionalità dell'interfaccia utente, come il paging dei dati, l'ordinamento, la persistenza dello stato o la persistenza dei dati personalizzati e altro ancora, MA ... se davvero ti siedi e dì , ok cosa devo fare? ... progettare, navigare, modellare, presentare e quindi capire come mostrare il layout, come connettersi ai dati, come portare i dati, come legarli con l'interfaccia utente, come impaginare, ordinare e infine modificare, davvero mettere la tua mente Abbassando e confrontando le tecniche in ogni framework che realizza tutto ciò, saprai che MVC è più naturale e orientato al team. Avete bisogno di strumenti come EF Code First, un framework CSS come Bootstrap e jQuery, applicate tecniche come IoC, SoC, Layering ecc e usate ad esempio Automapper per fare lo stord noioso, ma non importa quante cose dovrete considerare, sarà essere sempre più facile, naturale e diretto di dover conoscere tutte le varie configurazioni dei numerosi controlli e gestori richiesti da WebForms. Tranne se il tuo progetto è un ERP con funzionalità CMS in cui ... sai :-) In ogni caso, gli skilms moderni devono adattarsi alle tendenze di oggi e MVC è solo un buon ospite per aiutarti a usarli senza sorprese. Ho scritto tonnellate di codice WebForms ma non lo tocco di nuovo. Quindi, il punto finale è che nel 2014 con tutti quegli strumenti e framework là fuori, MVC non è più lento ma piuttosto il contrario, ma richiede un iniziale, piccolo per me, per raccogliere alcune risorse e bloccare alcune metodologie.