Rails MVC vs Microsoft MVC - dove inserire le logiche?

3

Qualche tempo fa sono passato da Microsoft ASP.NET 2.0 (WebForms, non conoscevo MVC di Microsoft) a Ruby on Rails e ho imparato che è l'approccio MVC, dopo di che alcune cose in ASP.NET MVC sembrano essere strane.

In RoR la procedura migliore consiste nel mettere le logiche del modello (varie query ORM) in un modello. Ho notato che i programmatori sembrano evitarlo in ASP.NET MVC. Qual è il posto migliore dove porre le query ORM (Entity Framework)? Controller?

    
posta Paul 19.05.2016 - 07:14
fonte

2 risposte

3

Nella versione Microsoft di MVC, hai l'implementazione pesante del controller invece dell'implementazione del modello pesante utilizzata da gran parte della comunità di sviluppo.

L'ORM dovrebbe essere una parte del livello Model, ma molta documentazione Microsoft ha Entity Framework (che è il loro ORM) in tutti i Controller.

In molti modi, ha senso avere un modello molto limitato con un controller pesante. Tutta la tua logica aziendale è in un livello (il Controller). Gli oggetti Model diventano nient'altro che un oggetto di trasporto per i dati. Questo rende più semplice la separazione delle preoccupazioni.

Tuttavia, il resto della comunità di sviluppatori sembra preferire il modello pesante. Il controller funge da sistema di invio per oggetti dati più intelligenti.

Da Microsoft's Overview of MVC .

  • Models. Model objects are the parts of the application that implement the logic for the application's data domain. Often, model objects retrieve and store model state in a database. For example, a Product object might retrieve information from a database, operate on it, and then write updated information back to a Products table in a SQL Server database.

    In small applications, the model is often a conceptual separation instead of a physical one. For example, if the application only reads a dataset and sends it to the view, the application does not have a physical model layer and associated classes. In that case, the dataset takes on the role of a model object.

  • Views. Views are the components that display the application's user interface (UI). Typically, this UI is created from the model data. An example would be an edit view of a Products table that displays text boxes, drop-down lists, and check boxes based on the current state of a Product object.

  • Controllers. Controllers are the components that handle user interaction, work with the model, and ultimately select a view to render that displays UI. In an MVC application, the view only displays information; the controller handles and responds to user input and interaction. For example, the controller handles query-string values, and passes these values to the model, which in turn might use these values to query the database.

    
risposta data 19.05.2016 - 07:36
fonte
0

Il modello è tutto ciò che non è in una vista o in un controller. Ciò include l'ORM, indipendentemente dal fatto che si tratti di Ruby on Rails, di ASP.NET MVC o di altri sapori di MVC.

    
risposta data 19.05.2016 - 07:34
fonte

Leggi altre domande sui tag