Esercitazione su ASP.NET MVC per principianti: che cos'è Architectura

⚡ Riepilogo intelligente

ASP.NET MVC è open source Microsoft Framework che suddivide un'applicazione web in livelli Model, View e Controller, offrendo agli sviluppatori il pieno controllo su HTML, codice testabile, routing pulito e un'alternativa leggera ai classici Web Forms.

  • Architecnologia: Il modello contiene i dati di dominio, la vista renderizza l'interfaccia utente con Razor e il controller funge da intermediario per ogni richiesta tra i due.
  • Perché MVC: Risolve i problemi relativi a ViewState e al sovraccarico prestazionale dei moduli Web, consentendo un routing più pulito e lo sviluppo guidato dai test (Test Driven Development).
  • 🔀 Routing: Percorso diretto URLmappa le richieste in entrata alle azioni del controller, sostituendo i file .aspx basati su file URLpercorsi ottimizzati per i motori di ricerca (SEO).
  • 🧪 Testabilità: Il Controller e il Model possono essere testati singolarmente perché le View non contengono logica di business.
  • Confronto tra moduli web: Web Forms utilizza controlli server basati sugli eventi; MVC utilizza azioni basate sulle richieste con gestione manuale dello stato.
  • migliori Pratica: Mantieni la logica di business nel Model, mantieni i Controller snelli e utilizza View o layout parziali per riutilizzare il markup.

Esercitazione su ASP.NET MVC

Che cos'è ASP.NET MVC?

ASP.NET MVC è un framework di sviluppo web open source di Microsoft che fornisce un'architettura Model View Controller. ASP.NET MVC offre un'alternativa ad ASP.NET Web Forms per la creazione di applicazioni web. Fa parte della piattaforma .NET per la creazione, la distribuzione e l'esecuzione di app web. È possibile sviluppare app web e siti Web con l'aiuto di HTML, CSS, jQuery, JavaSceneggiatura, ecc.

Impara MVC con questo tutorial ASP.NET MVC che copre tutti i concetti di base di MVC per principianti:

Perché ASP.NET MVC?

Sebbene i moduli web abbiano avuto molto successo, Microsoft pensiero di sviluppareping ASP.NET MVC. Il problema principale di ASP.NET Web Forms è la performance.

In un web application, ci sono quattro aspetti principali che definiscono le prestazioni: -

  • Problemi relativi ai tempi di risposta
  • Problema del test unitario
  • Personalizzazione HTML
  • Riutilizzabilità della classe code-behind

ASP.NET MVC eccelle nei parametri sopra indicati.

Cronologia delle versioni di MVC

ASP.NET MVC1

  • Pubblicato il 13 marzo 2009
  • Funziona su .NET 3.5
  • Visual Studio 2008
  • Architettura del modello MVC con WebForm Engine
  • Le caratteristiche principali includono HTML e Test unitari, Helper Ajax, Routing, ecc.

ASP.NET MVC2

  • Questa versione è stata rilasciata il 10 marzo 2010
  • Funziona su .NET 3.5, 4.0 e con Microsoft Visual Studio 2008
  • Includi funzionalità come helper basati su modelli, helper UI con scaffolding automatico e modelli personalizzabili
  • Supporta gli attributi DataAnnotations per applicare la convalida del modello sui lati client e server

ASP.NET MVC3

  • È stato rilasciato il 13 gennaio 2011
  • Funziona su .NET 4.0 e con Microsoft Di Visual Studio 2010
  • Utilizzo di nuGet per fornire software e consente di gestire le dipendenze sulla piattaforma
  • Meglio JavaSupporto per script con convalida jQuery e binding JSON
  • Offre funzionalità come il motore di visualizzazione Razor e attributi Data Annotations avanzati per la convalida del modello sia lato client che lato server.

ASP.NET MVC4

  • Questa versione è stata rilasciata nell'agosto 2012
  • Funziona su .NET 4.0, 4.5 e con Visual Studio 2010 e Visual Studio 2012
  • Miglioramenti ai modelli di progetto predefiniti
  • Offre funzionalità come modelli di progetti mobili che utilizzano jQuery Mobile, supporto delle attività per controller asincroni, raggruppamento, minimizzazione, ecc.

ASP.NET MVC5

  • Rilasciato il 17 ottobre 2013
  • Funziona con .NET 4.5, 4.5.1 e con Visual Studio 2012 e Visual Studio 2013.
  • Supporta il routing degli attributi in MVC

Caratteristiche di MVC

  • Testabilità facile e senza attriti
  • Pieno controllo sul tuo HTML, JavaSceneggiatura e URLs
  • Sfruttamento esistente ASP.NET Caratteristiche
  • Una nuova opzione di presentazione per ASP.NET
  • Un modo più semplice per programmare in ASP.NET
  • Chiara separazione della logica: Modello, Vista, Controller
  • Sviluppo guidato dai test
  • Supporto per lo sviluppo parallelo

Cose da ricordare durante la creazione dell'applicazione MVC

Ecco alcune cose utili in questo tutorial ASP.NET MVC che devi ricordare per creare un'applicazione MVC:

  • È importante ricordare che ASP.NET MVC NON sostituisce le applicazioni basate su ASP.NET Web Forms.
  • L'approccio allo sviluppo di applicazioni MVC deve essere deciso in base ai requisiti dell'applicazione e alle funzionalità offerte da ASP.NET MVC, al fine di soddisfare le specifiche esigenze di sviluppo.
  • Il processo di sviluppo di applicazioni con ASP.NET MVC è più complesso rispetto alle applicazioni basate su Web Forms.
  • La manutenibilità dell'applicazione sarà sempre maggiore con la separazione delle attività dell'applicazione.

Modello architettonico MVC

Modello architettonico MVC

MVC è un modello di architettura software che segue il principio di separazione delle responsabilità. In questo modello, le applicazioni .NET sono suddivise in tre parti interconnesse chiamate Modello, Vista e Controller.

L'obiettivo del modello MVC è che ciascuna di queste parti possa essere sviluppata, testata in relativo isolamento e anche combinata per creare un'applicazione molto robusta.

Vediamoli tutti nel dettaglio:

Modelli

Gli oggetti del modello sono parti dell'applicazione che implementano la logica dell'applicazione dominio dei dati. Recupera e archivia lo stato del modello in un database. Ad esempio, l'oggetto prodotto potrebbe recuperare informazioni da a banca dati, operare su di esso. Quindi riscrivere le informazioni nella tabella dei prodotti nel server SQL.

Visualizzazioni

Le viste sono i componenti utilizzati per visualizzare l'interfaccia utente (UI) dell'applicazione, detta anche viewmodel in MVC. Visualizzano l'applicazione .NET MVC creata a partire dai dati del modello.

L'esempio comune sarebbe una vista di modifica di una tabella Item. Mostra caselle di testo, pop-up e caselle di controllo in base allo stato corrente di prodotti e oggetti.

Controller

I controller gestiscono l'interazione con l'utente, lavorano con il modello e selezionano una vista da visualizzare per l'interfaccia utente. In un'applicazione .NET MVC, la vista si limita a visualizzare le informazioni, mentre il controller gestisce e risponde all'input e all'interazione dell'utente utilizzando i filtri di azione in MVC.

Ad esempio, il controller gestisce i valori della stringa di query e li passa al modello.

Moduli Web e MVC

Scheda Sintetica WebForm MVC
Modello ASP.NET Web Forms segue un modello di sviluppo basato sugli eventi. ASP.NET MVC utilizza un modello di sviluppo basato sul pattern MVC.
Usato da allora In circolazione dal 2002 È stato rilasciato per la prima volta nel 2009
Supporto per lo stato di visualizzazione ASP.NET Web Form supporta lo stato di visualizzazione per la gestione dello stato lato client. .NET MVC non supporta lo stato di visualizzazione.
URL Digitare ASP.NET Web Form ha un'interfaccia basata su file URLs. Significa che il nome del file esiste nel URLe devono esistere fisicamente. ASP.NET MVC ha un percorso basato su URLciò significa URLche vengono reindirizzati a controller e azioni.
Sintassi I moduli Web ASP.NET seguono la sintassi dei moduli Web. ASP.NET MVC segue una sintassi personalizzabile.
Visualizza tipo Modulo Web, le viste sono strettamente collegate a Code dietro (ASPX-CS), cioè la logica. MVC, visualizzazioni e logica vengono sempre mantenuti separatamente.
Aspetto e sensazione coerenti Dispone di pagine master per un aspetto coerente. ASP.NET MVC offre layout per un aspetto coerente.
Code riutilizzabilità Il modulo Web offre controlli utente per la riutilizzabilità del codice. ASP.NET MVC ha offerto viste parziali per il riutilizzo del codice.
Controllo per HTML Less controllo sull'HTML renderizzato. Controllo completo sull'HTML
gestione dello stato Gestione automatica dello stato dei controlli. Gestione manuale dello stato.
Supporto TDD È richiesto un TDD debole o personalizzato. Incoraggia e include il TDD (Test-Driven Development).

Vantaggi di ASP.NET MVC

  • Applicazioni altamente gestibili per impostazione predefinita
  • Ti consente di sostituire qualsiasi componente dell'applicazione.
  • Migliore supporto per lo sviluppo basato sui test
  • Le applicazioni complesse sono facili da gestire grazie alle divisioni in Modello, Vista e Controller.
  • Offre un robusto meccanismo di routing con pattern del controller anteriore
  • Offre un migliore controllo sul comportamento dell'applicazione con l'eliminazione dello stato di visualizzazione e dei moduli basati su server
  • Le applicazioni .NET MVC sono supportate da grandi team di sviluppatori e web designer.
  • Offre un maggiore controllo sui comportamenti dell'applicazione. Utilizza inoltre una larghezza di banda ottimizzata per le richieste effettuate al server

Svantaggi di ASP.NET MVC

  • Non è possibile visualizzare l'anteprima della pagina di progettazione come nella pagina .aspx.
  • È necessario eseguire il programma ogni volta per visualizzarne il design effettivo.
  • Comprendere il flusso dell'applicazione può essere difficile
  • È piuttosto complicato da implementare, quindi non è un'opzione ideale per applicazioni di piccolo livello
  • È difficile imparare MVC per ASP.NET, poiché richiede una conoscenza approfondita del pattern MVC

migliori pratiche durante l'utilizzo di ASP.NET MVC

  • Creare un assembly separato per MODEL in caso di codice ampio e complesso per evitare situazioni indesiderate
  • Il modello dovrebbe includere la logica aziendale, la manutenzione della sessione, la parte di convalida e la parte di logica dei dati.
  • VIEW non deve contenere alcuna logica aziendale e manutenzione della sessione, utilizzare ViewData per accedere ai dati in View
  • La logica di business e l'accesso ai dati non dovrebbero mai avvenire nel Controller
  • Il controller dovrebbe essere responsabile solo della preparazione e della restituzione di una vista, della chiamata del modello, del reindirizzamento all'azione, ecc.
  • Elimina il codice demo dall'applicazione al momento della sua creazione (Elimina AccountController)
  • Utilizza solo un motore di visualizzazione specifico per creare markup HTML dalla tua vista poiché è la combinazione di HTML e codice di programmazione.

DOMANDE FREQUENTI

Sì. GitHub Copilot può generare una classe Controller con metodi di azione, attributi di percorso e viste Razor corrispondenti. RevPrima di aggiungere il codice generato al progetto, verifica che il binding del modello e l'autorizzazione siano corretti.

Gli assistenti di machine learning possono mappare le pagine Web Forms a Controller e View, tradurre il codice sottostante in metodi di azione e segnalare l'utilizzo di ViewState. Lo sviluppatore deve comunque convalidare il routing, il model binding e ogni regola aziendale migrata.

ViewData è un dizionario di oggetti con chiave di tipo stringa che persiste dopo una singola richiesta. ViewBag è un wrapper dinamico per ViewData. TempData utilizza lo stato della sessione e persiste dopo un reindirizzamento, quindi viene utilizzato per passare dati tra due richieste consecutive.

Il motore di routing corrisponde a un ingresso URL rispetto ai modelli registrati in RouteConfig. Quando un modello corrisponde, MVC seleziona il controller e l'azione, associa eventuali parametri e invoca l'azione per restituire un ActionResult.

Razor è una sintassi compatta per incorporare codice C# o VB.NET all'interno di file .cshtml o .vbhtml. Utilizza il simbolo @ per passare dall'HTML al codice, mantiene i modelli leggibili e compila in classi veloci e fortemente tipizzate in fase di esecuzione.

Il classico ASP.NET MVC viene eseguito sul framework .NET completo e Windows solo. ASP.NET Core MVC viene eseguito su .NET Core su Windows, Linux e macOS, utilizza un modello di controller unificato con API Web e offre l'iniezione di dipendenza integrata.

Utilizzare ASP.NET Identity o un provider esterno come Azure AD per l'accesso. Decora un controller o un'azione con l'attributo [Authorize] per limitare l'accesso e utilizza parametri di ruolo o di policy per regole più granulari.

Crea un'istanza del Controller in un metodo di test, inietta servizi fittizi o simulati tramite il costruttore, invoca l'azione e verifica che l'ActionResult restituito corrisponda al nome della vista, al modello o alla destinazione di reindirizzamento previsti.

Riassumi questo post con: