234 messaggi dal 08 marzo 2012
Ciao,

è possibile fare il downgrade di una solution da Asp.NET MVC 5 ad Asp.NET MVC 4?

Ho necessità di integrare un CMS (sembrerebbe che Umbraco si integri bene) ma non supporta MVC 5.

Come posso fare per passare da MVC 5 a 4?

Grazie mille
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
sì, è possibile, si tratta di aggiornare i pacchetti NuGet ad una versione precedente, ma non sarà senza intoppi.

IMPORTANTE: prova a farlo su una copia del tuo progetto; così hai sempre l'"originale" se qualcosa dovesse andare storto.

Il comando per aggiornare ASP.NET MVC alla versione 4 è il seguente. Digitalo dalla console di installazione pacchetti di Visual Studio.

Update-Package Microsoft.AspNet.Mvc -Version 4.0.40804


Il tool proverà ad aggiornare a cascata tutti i pacchetti da cui ASP.NET MVC dipende ma in qualche caso non ci riuscirà, perché da ASP.NET MVC 5 potrebbero dipendere altri pacchetti che hai nel progetto.
Ad esempio le risorse per l'italiano, che dovrai disinstallare perché non ne esiste una corrispondente per ASP.NET MVC 4.
Uninstall-Package Microsoft.AspNet.Mvc.it
Uninstall-Package Microsoft.AspNet.Razor.it
Uninstall-Package Microsoft.AspNet.WebPages.it


Infine potrebbe essere necessario aggiornare i numeri di versione degli assembly in qualche web.config, come ad esempio quello che hai sotto /views.

ciao,
Moreno

Enjoy learning and just keep making
234 messaggi dal 08 marzo 2012
Ok grazie ci proverò stasera.
Rischio di perdere features importanti con il downgrade?

Tu hai mai integrato qualchd altro CMS con applicazioni MVC 5?
Credo si abbastanza standard demandare ad un CMS la gestione dei contenuti e concentrarsi solo sulla logica custom dell'applicazione,no?

Però non sembra così banale farlo e rimangono punti aperti come : condivisione DB, condivisione sessione, integrazione del layout...etc
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,

evil80 ha scritto:

Rischio di perdere features importanti con il downgrade?

Dipende dai punti di vista... personalmente di ASP.NET MVC5 e WebAPI2 trovo utile l'attribute routing, anche se non indispensabile.
Qui trovi una carrellata delle nuove funzioni di ASP.NET MVC5.
http://www.asp.net/mvc/mvc5

Giusto per citarla, hai anche questa opzione: potresti portare avanti due progetti separati. Il primo potrebbe essere il CMS, basato su ASP.NET MVC4, che gli amministratori useranno per caricare i contenuti.

Poi, se vuoi avere massima libertà nella personalizzazione del frontend, potresti leggere i dati dallo stesso database su cui il CMS ha scritto e presentarli in un secondo progetto ASP.NET MVC5.
Se pubblichi su Azure, puoi pubblicare entrambi i progetti in uno stesso WebSite.
http://blogs.msdn.com/b/tomholl/archive/2014/09/22/deploying-multiple-virtual-directories-to-a-single-azure-website.aspx

Questa soluzione dei due progetti è solo un'ipotesi da valutare nel momento in cui non vuoi integrarti con il CMS per la parte frontend o pensi che non ti dia sufficiente libertà di personalizzazione.

ciao,
Moreno

Enjoy learning and just keep making
234 messaggi dal 08 marzo 2012
Ciao,

si ci sto pensando a tenerli separati soprattutto perchè l'integrazione davvero non è banale.
Il CMS migliore per .NET dal punto di vista dell'integrazione sembrerebbe Umbraco, ma non supporta MVC 5 ed ha tutti i suoi templati che non mi rendono semplice personalizzare i contenuti.
Pensavo però di metterli entrambi sullo stesso DB, ma quale sarebbe il vantaggio di pubblicare entrambi i progetti in uno stesso WebSite su Azure?

Esempio se demandassi la gestione dell'iscrizione utente al CMS, nel momento in cui l'utente fa login riesco a condividere la sessione anche sulla mia app attuale? Se sì, come?
Come ti spiegavo sull'app che sto realizzando non riesco ad essere stateless dato che ci sono alcune operazioni piuttosto complesse.

Grazie mille!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.