Come posso passare da Web Form a ASP .NET MVC 5?

1

Utilizzo da tempo i moduli Web per modo e desidero passare a ASP .NET MVC 5 perché penso che sia il "prossimo passo" per uno sviluppatore ASP .NET. Trovo anche che generi pagine molto più velocemente e fornisca un controllo migliore sull'HTML, ma sento che il concetto è fisicamente troppo grande per essere compreso. Questo è il mio principale bugbear e mi sento come se avessi bisogno di una sorta di risorsa o qualcosa da leggere per comprendere appieno il flusso di pagine in ASP .NET MVC.

I controller ASP .NET MVC sono quasi magici. Non magico come in "oh wow", ma magico come in "come fa qualcosa che il controller restituisce possibilmente equivale in HTML utilizzabile?" Intendo cose come questa:

          // GET: tablename/Create
    public ActionResult Create()
    {
        return View();
    }

Quando viene attivato questo codice? Mentre le forme web erano, da quello che ho letto, offensive al concetto di HTML / HTTP (cioè, le cose basate sugli eventi non si adattavano bene all'idea di una pagina web), con cose come Page_Load era facile sapere cosa succede quando e perché. Diciamo che ho un'etichetta sulla pagina Crea e voglio associarla a qualcosa nel database, aggiorno il controller per passare quel testo e poi legarlo ad esso nella Vista?

Ho trovato più semplice passare da VB.NET a C # di quanto non sia necessario passare da Web Form a ASP .NET MVC. Ho momenti in cui sono davvero impressionato da ASP .NET MVC, quando le mie pagine vengono caricate molto rapidamente o quando le annotazioni dei dati vengono visualizzate automaticamente quando sto cercando di aggiornarle o inserirle. Ma non riesco a immaginare il flusso dal momento in cui preme un pulsante su una pagina web e cosa succede in quel ciclo di vita. In Web Form ciò avveniva nel codice sottostante, riga per riga, e Business Logic poteva essere estratto in classi diverse. Ma in MVC, la vista invia le informazioni al controller, il controller invia tramite l'aggiornamento del database e restituisce qualcosa al browser web?

Non sto scrivendo questo per promuovere Web Forms in qualsiasi modo, forma o forma, ovviamente è una tecnologia precedente, e posso capire perché ASP .NET MVC è un modo migliore. È come ASP.NET MVC mi costringe a diventare uno sviluppatore migliore, il che è positivo, ma per qualcuno che sta insegnando a se stesso questa tecnologia, la trovo estremamente difficile.

Mi manca qualcosa? C'è un modo più semplice per me di imparare come passare dalla mentalità della mia Web Form alla mentalità di MVC?

    
posta Lewis Cianci 16.09.2016 - 02:48
fonte

1 risposta

6

Dovrai abbracciare ASP.NET MVC a pieno diritto.

Non c'è alcun code code del server. Non ci sono widget drag-and-drop, nessun plug-in e nessun ciclo di vita delle pagine che perde. Non c'è quasi-wysiwyg: invece c'è wysiwyg totale, reale, completo. Non c'è SESSIONE; dovrai vivere senza di essa. Non c'è nessun markup strano, rotto. Meglio di tutto, non ci sono bugie o inganni: ASP.NET MVC abbraccia il web proprio come è, invece di fingere di essere qualcos'altro.

Tutto ciò è una buona notizia.

Il mio consiglio?

  • Inizia a pensare a tutto come operazione CRUD, una serie di transazioni utente. Quella mentalità non ti porterà completamente lì, ma andrà un lungo cammino verso l'illuminazione MVC. Servire una pagina, ottenere un risultato. Servi un'altra pagina, ottieni un altro risultato. Salva il risultato in un database. Serve una nuova pagina contenente i dati del database. Risciacqua e ripeti.

  • Comprendi l'importanza di Model-View-Controller. Rendi stupide le opinioni. Riduci i controller. Tutta la tua logica attuale va nel Modello, che diventa grasso. Utilizza ViewModels se ti occorrono per separare la logica della vista dalla logica del modello.

  • Il controller è un pannello di permutazione, un piazzale ferroviario. Tratta come tale.

  • Diventa davvero bravo a lavorare con semplici HTML / CSS e Javascript. Quindi scopri come compilare i moduli con i buchi di ciambella di ASP.NET MVC (molto probabilmente utilizzerai Razor per farlo).

  • Scopri prima le visualizzazioni lato server. Quindi, scopri la verità essenziale di ASP.NET MVC, che può servire più di semplici visualizzazioni e diventare illuminata. Può servire file. Può fungere da servizio Web e servire JSON in una struttura SPA come Angular, invece di servire le viste. Può farlo meglio (e più semplice) rispetto al suo predecessore, WCF, mai.

risposta data 16.09.2016 - 07:44
fonte

Leggi altre domande sui tag