asp.net-mvcIniziare con asp.net-mvc

Osservazioni

Il modello architettonico Model-View-Controller (MVC) separa un'applicazione in tre componenti principali: il modello, la vista e il controller. Il framework ASP.NET MVC fornisce un'alternativa al modello Web Form di ASP.NET per la creazione di applicazioni Web. Il framework ASP.NET MVC è un framework di presentazione leggero e altamente testabile che (come le applicazioni basate su Web Form) è integrato con le funzionalità ASP.NET esistenti, come le pagine master e l'autenticazione basata sull'appartenenza. Il framework MVC è definito nell'assembly System.Web.Mvc.

Il framework MVC include i seguenti componenti:

  • Modelli Gli oggetti del modello sono le parti dell'applicazione che implementano la logica per il dominio dei dati dell'applicazione. Spesso, gli oggetti del modello recuperano e memorizzano lo stato del modello in un database. Ad esempio, un oggetto Product può recuperare informazioni da un database, operare su di esso e quindi scrivere nuovamente le informazioni aggiornate in una tabella Prodotti in un database SQL Server. Nelle piccole applicazioni, il modello è spesso una separazione concettuale anziché fisica. Ad esempio, se l'applicazione legge solo un set di dati e la invia alla vista, l'applicazione non ha un livello di modello fisico e classi associate. In tal caso, il set di dati assume il ruolo di un oggetto modello.
  • Viste Le viste sono i componenti che visualizzano l'interfaccia utente dell'applicazione (UI). In genere, questa UI viene creata dai dati del modello. Un esempio potrebbe essere una visualizzazione di modifica di una tabella Prodotti che visualizza caselle di testo, elenchi a discesa e caselle di controllo in base allo stato corrente di un oggetto Prodotto.
  • Controller . I controller sono i componenti che gestiscono l'interazione dell'utente, funzionano con il modello e in definitiva selezionano una vista per il rendering che visualizza l'interfaccia utente. In un'applicazione MVC, la vista mostra solo informazioni; il controller gestisce e risponde all'input e all'interazione dell'utente. Ad esempio, il controller gestisce i valori della stringa di query e passa questi valori al modello, che a sua volta potrebbe utilizzare questi valori per interrogare il database.

Versioni

Versione Versione .NET Data di rilascio
MVC 1.0 .NET 3.5 2009-03-13
MVC 2.0 .NET 3.5 / 4.0 2010-03-10
MVC 3.0 .NET 4.0 2011-01-13
MVC 4.0 .NET 4.0 / 4.5 2012-08-15
MVC 5.0 .NET 4.5 2013/10/17
MVC 5.1 .NET 4.5 2014/01/17
MVC 5.2 .NET 4.5 2014/08/28
MVC 6.0 .NET 4.5 2015/11/18
Core MVC 1.0 .NET 4.5 2016/07/12
Core MVC 1.1 .NET 4.5 2016/11/18

Ciao MVC!

ASP.NET MVC è un framework di applicazioni Web open source. MVC stesso è un modello di progettazione che si sviluppa attorno a tre componenti principali: model-view-controller .

Modello : i modelli riflettono i tuoi oggetti aziendali e sono un mezzo per passare i dati tra i controller e le viste.

Visualizza : le viste sono le pagine che eseguono il rendering e la visualizzazione dei dati del modello all'utente. Le viste ASP.NET MVC vengono in genere scritte utilizzando la sintassi del rasoio.

Controller : i controller gestiscono le richieste HTTP in arrivo da un client e in genere restituiscono uno o più modelli a una vista appropriata.

Le funzionalità ASP.NET MVC:

  1. Ideale per lo sviluppo di applicazioni complesse ma leggere
  2. Fornisce una struttura estensibile e collegabile che può essere facilmente sostituita e personalizzata. Ad esempio, se non si desidera utilizzare il Razor incorporato o il motore di visualizzazione ASPX, è possibile utilizzare qualsiasi altro motore di visualizzazione di terze parti o persino personalizzare quelli esistenti.
  3. Utilizza la progettazione basata su componenti dell'applicazione dividendola logicamente in componenti Model, View e Controller. Ciò consente agli sviluppatori di gestire la complessità di progetti su larga scala e di lavorare su singoli componenti.
  4. La struttura MVC migliora lo sviluppo e la testabilità basati su test dell'applicazione, poiché tutti i componenti possono essere progettati basati su interfaccia e testati utilizzando oggetti mock. Quindi, ASP.NET MVC Framework è ideale per progetti con un grande team di sviluppatori web.
  5. Supporta tutte le funzionalità ASP.NET esistenti come Autorizzazione e Autenticazione, Pagine master, Associazione dati, Controlli utente, Membership, Instradamento ASP.NET, ecc.
  6. Non usa il concetto di View State (che è presente in ASP.NET). Questo aiuta a costruire applicazioni che sono leggere e dà il pieno controllo agli sviluppatori.

Semplice applicazione MVC

Creeremo una semplice applicazione MVC che mostra i dettagli della persona. Crea un nuovo progetto MVC utilizzando Visual Studio. Aggiungi un nuovo modello denominato cartella Person to Models come segue:

public class Person
{
    public string Surname { get; set; }
    public string FirstName { get; set; }
    public string Patronymic { get; set; }
    public DateTime BirthDate { get; set; }
}
 

Aggiungi un nuovo controller alla cartella Controllers:

public class HomeController : Controller
{
    //Action Method
    public ActionResult Index()
    {
        // Initialize model
        Person person = new Person
        {
            Surname = "Person_SURNAME",
            FirstName = "Person_FIRSTNAME",
            Patronymic = "Person_PATRONYMIC",
            BirthDate = new DateTime(1990, 1, 1)
        };

        // Send model to View for displaying to user
        return View(person);
    }
}
 

Infine aggiungi Vista a / Views / Home / cartella denominata Index.cshtml :

@* Model for this view is Person *@
@model Hello_MVC.Models.Person

<h2>Hello @Model.FirstName !</h2>

<div>
    <h5>Details:</h5>
    <div>
        @Html.LabelFor(m => m.Surname)
        @Html.DisplayFor(m => m.Surname)
    </div>
    <div>
        @Html.LabelFor(m => m.FirstName)
        @Html.DisplayFor(m => m.FirstName)
    </div>
    <div>
        @Html.LabelFor(m => m.Patronymic)
        @Html.DisplayFor(m => m.Patronymic)
    </div>
    <div>
        @Html.LabelFor(m => m.BirthDate)
        @Html.DisplayFor(m => m.BirthDate)
    </div>
</div>