Domanda

Oltre ad essere un modello di 30 anni, MVC è mai stato inteso per le applicazioni attuali. MVP è stato il suo successore e progettato per gestire applicazioni basate su eventi che esce negli anni '90. Passive View Controller e Supervisione sembrano aver salito in cima. Per quei due, quasi non è necessario parlare di MVC / MVP.

In particolare, è l'azione di controllo in ASP.NET MVC che riporta una vista creare quella vista? In MVC, il controller non crea una vista o parlare di nuovo loro. Quanto è preciso per chiamare ASP.NET MVC un'implementazione MVC? Oppure, che cosa sarebbe un nome preciso per questo?

È stato utile?

Soluzione

Credo che sia Ruby on Rails che hanno ispirato MS per creare asp.net MVC.

Altri suggerimenti

ASP.NET MVC è semplicemente il riconoscimento di Microsoft del successo di implementazione MVC all'interno di framework web come Ruby on Rails e Django. La realizzazione che molti sviluppatori web vorrebbero di più mani sul approccio allo sviluppo web che abbraccia il "supponente" modello di programmazione (convenzione sulla configurazione) e si allontana dalla astrazione stateful che ASP.NET WebForms fornisce.

E 'un'implementazione esatta del modello MVC Smalltalk? No. È un risultato di panico? No. È una conseguenza del successo di entrambi Ruby on Rails e Django? Sì.

mi capita di amare questo modello in quanto abbraccia il quadro ricco fornito dal .NET e lo stack di ASP.NET pur rimanendo minimalista di approccio e di utilizzo di convenzione sviluppo basato.

Abbastanza vicino, ed è una strategia di vendita.

Si vendono ASP.NET contro altre tecnologie che si identificano come MVC. Quindi è competitivo utile dare un nome ad essere percepito nella stessa categoria.

Microsoft vince più spesso da posizionamento del prodotto che per tecnologia di identificazione accurata. (Più fornitura a lungo termine, secondo la mia opinione).

ScottGu sfugge alla risposta nella prima parte del suo post sul prima dimostrazione MVC qui . La risposta breve è che la gente ha chiesto per esso e Microsoft hanno deciso di andare con lui. Si adatta con il modello Net corrente per l'aggiunta di come molte opzioni possibili, permettendo al quadro di raggiungere un target di mercato più grande, e anche fornire agli sviluppatori gli strumenti giusti per il progetto giusto.

MVC come attuato da ASP.NET MVC non è il pattern MVC di vecchio. In quello che io chiamo "classico" MVC la vista ha diretta, ma in sola lettura, l'accesso al modello, in ASP.NET MVC è considerato cattiva forma per accedere al proprio modello di business direttamente dalla vista. Che cosa si finisce con è qualcosa di molto simile Supervisione Controller + Passive Vista:

public class MvcExampleController : Controller
{
    public ActionResult ActionMethod(BoundInputData inputData)
    {
        var results   = DoActualWorkInTheModelWith(inputData);
        var viewModel = CreateViewModelFromThe(results);

        return View(viewModel);
    }
}

A me questo sembra più un controller di Vigilanza di classico MVC. Una volta che il lavoro viene fatto nel Modello, la vista viene passato un ViewModel (aka PresentationModel). Il ViewModel ha generalmente una relazione 1 a 1 con gli elementi dell'interfaccia utente nella vista e può o non può apparire qualcosa di simile gli oggetti nel modello attuale. Una vista che agisce su un ViewModel e non il modello attuale puzza un sacco come una vista passiva per me.

Non voglio entrare in se o non si tratta di un'implementazione "reale" MVC o no, ma se la vostra tesi è che ASP.NET MVC non fa uso di moderni modelli di web design Non sono d'accordo.

La migliore ipotesi, tutti sentito parlare di MVC. MVC è stato battuto come un "best practice" per un bel po ', e quindi tutta una generazione (o due, o tre) di sviluppatori vedere MVC e pensare pensieri felici.

Inoltre, un sacco di altri framework MVC sposano in una luce simile modo Microsoft probabilmente si sente in dovere di fare altrettanto.

In breve, dubito molto che ci sia una forte ragione tecnica per questo.

Si può rotolare il proprio MVC con il framework ASP.NET attuale e ancora mantenere il modello di postback.

http://www.codeproject.com/KB/aspnet/RollingYourOwnMVCwithASP.aspx

Questa è una grande domanda, un sacco di persone hanno fatto questa domanda nei primi giorni di MVC. Ecco la risposta da Phil Haack uno dei principali sviluppatori di piombo sul progetto!

http://haacked.com/archive/0001/01/01/everything-you-wanted-to-know-about-mvc-and-mvp-but.aspx

Check it out, leggere i collegamenti e passare da lì.

Inoltre, una risposta al dibattito forse S # arp Architettura. Hanno costruito uno strato sulla parte superiore del MVC per renderlo agire più come MVP. Dateci un'occhiata se siete alla ricerca di soemthing lungo queste linee.

In bocca al lupo!

Credo che questo è stato più di una "decisione di panico marketing", allora una decisione tecnica. RoR stava rubando mercati ogni secondo e MSFT completamente in preda al panico, in modo da MSFT sentivano di dover consegnare qualcosa che ha dato loro l'opportunità di ottenere alcuni dei hype torna a "loro campo" di nuovo ...

Inoltre avevano bisogno di aiutare i loro sviluppatori guadagnano bac teir rispetto di sé ancora una volta da ottenere per associare questa parola pubblicizzato con se stessi in modo che il Net sviluppatori si poteva guardare allo specchio di nuovo senza sentirsi vergogna per quello che non sapevano MVC dal momento che la loro piattaforma di scelta non ha espresso questo tipo di modello per loro (out of the box)

Per uno sviluppatore medio abile (Net) è davvero difficile non sentirsi come un dinosauro, quando un esperto sviluppatore di media RoR incendi fino rastrello e crea un picco in meno di 15 minuti che hanno un lavoro e che eseguono proof of concept prima della. sviluppatore netto è finito anche a partire vstudio.exe ...;)

Credo che sia un punto di vista discutibile, ma è la mia e io difenderò fino alla fine amara ...;)

Ci sono innumerevoli esempi di oggi che sì, MVC e ponteggi vi darà una velocità iniziale spinta, sì. Ma per manutenibilità, il riutilizzo del codice, l'incapsulamento e per lo più tutti i davvero cosa importante - MVC non è solo il "proiettile d'argento" e la maggior parte delle volte WebForms sono di gran lunga superiori nel lungo periodo (se non utilizzati come toilette carta ovviamente)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top