Nop4.40.3
Da Webmobili Wiki.
Installare Nop 4.40.3
In questa guida saranno evidenziati in rosso tutti i file del core di Nop che verranno toccati.
Operazioni sul DB
- Creare un dump del database di produzione (Nop 4.3)
- Ripristinarlo
- Per ripristinare l'utente wmuser è necessario disassociarlo dal catalogo fulltext
- Da SQL Management Aprire
Storage -> Fulltext Catalogs -> nopCommerceFullTextCatalog, nella tab General impostare come Owner => dbo - Eliminare l'utente wmuser
- Ri-mappare l'utente wmuser sul database nuovo
- Aprire di nuovo
Storage -> Fulltext Catalogs -> nopCommerceFullTextCatalog, nella tab General inserire come Owner => wmuser - Aprire di nuovo
Storage -> Fulltext Catalogs -> nopCommerceFullTextCatalog, nella tab Tables/Views, pannello Eligible columns impostare italian per tutti i campi
Configurazione della Solution
- Aggiornare i file
Presentation\Nop.Web\App_Data\dataSettings.jsonePresentation\Nop.Web\App_Data\appsettings.json - Copiare i plugin di terze parti nella cartella
Plugins\Nop.Plugin.Compiled - Aggiungere il seguente codice nei build events => post build event progetto Nop.Web per copiare i plugin compilati (7spikes & co) nel corretto folder durante il build.
xcopy /y /E $(SolutionDir)Plugins\Nop.Plugin.Compiled $(SolutionDir)Presentation\Nop.Web\Plugins
- Creare dal Configuration Manager una nuova Solution Configuration chiamata ReleaseTest
- Tasto destro sul web.config e cliccare su Add Configs Transform per creare i web.Release.config e web.ReleaseTest.config
- Nel web.config aggiungere la variabile d'ambiente ASPNETCORE_ENVIRONMENT con valore Development sotto la sezione aspNetCore
<environmentVariables> <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" /> </environmentVariables>
- Nel web.ReleaseTest.config mettere il valore Testing
<environmentVariables> <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Testing" xdt:Transform="SetAttributes" xdt:Locator="Match(name)" /> </environmentVariables>
- nel web.Release.config mettere il valore Production
<environmentVariables> <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Production" xdt:Transform="SetAttributes" xdt:Locator="Match(name)" /> </environmentVariables>
- Nel web.config aggiungere la variabile d'ambiente ASPNETCORE_ENVIRONMENT con valore Development sotto la sezione aspNetCore
- Dalle proprietà del progetto Nop.Web andare sulla tab Build, selezionare la configurazione Release e aggiungere il simbolo condizionale OFFICIAL
- Configuriamo l'applicazione in modo che cambi file di configurazione a seconda della Solution Configuration selezionata
- In
Libraries\Nop.Data\NopDataSettingsDefaults.cscambiare l'assegnamento di FilePath con quanto seguepublic static string FilePath => #if DEBUG "~/App_Data/dataSettings.development.json"; #elif !OFFICIAL "~/App_Data/dataSettings.testing.json"; #else "~/App_Data/dataSettings.json"; #endif
- In
Libraries\Nop.Services\Configuration\NopConfigurationDefaults.cscambiare l'assegnamento di AppSettingsFilePath con quanto seguepublic static string AppSettingsFilePath => #if DEBUG "App_Data/appsettings.development.json"; #elif !OFFICIAL "App_Data/appsettings.testing.json"; #else "App_Data/appsettings.json"; #endif
- In
- Addare alla Solution (cartella Libraries) i progetti GenericUtilites, WM4Search, WM_Core e USO
- Runnando la Solution dovrebbe partire con tutti i plugin disabilitati. Una volta entrati in admin è possibile vederli dall'elenco e installarli.
- Non ci saranno tutti i plugin, in tal caso cliccare su ricaricare la lista di plugin, la soluzione si chiuderà da sola, ma al successivo login la lista dovrebbe essere aggiornata.
- Aggiornare tutti i pacchetti nuGet della Solution che abbiano un update minor (dalla seconda cifra in poi)
- Creazione di IWMCoreModelFactory per le chiamate alla WMCore.
- INTERFACCIA: creare
Presentation\Nop.Web\Factories\IWMCoreModelFactory.cscosìusing GPC.WM_Core; namespace Nop.Web.Factories { public interface IWMCoreModelFactory { WMRetriever WMCore { get; } } }
- IMPLEMENTAZIONE: creare
Presentation\Nop.Web\Factories\IWMCoreModelFactory.cscosìusing GPC.WM_Core; using Microsoft.Extensions.Configuration; namespace Nop.Web.Factories { public class WMCoreModelFactory : IWMCoreModelFactory { public WMRetriever WMCore { get; } = null; public WMCoreModelFactory(IConfiguration configuration) { WMCore = new WMRetriever( configuration.GetSection("WMConnectionStrings")["Designbest"], configuration.GetSection("WMConnectionStrings")["Designbest"], configuration.GetSection("WMConnectionStrings")["Trovaprodotti"], configuration.GetSection("WMApplicationSettings")["ResourcesPath"], "Test_WM47"); } } }
- BINDING: comunicare la sua esistenza al framework modificando
Presentation\Nop.Web\Startup.csaggiungendo una riga a ConfigureServices() cosìpublic void ConfigureServices(IServiceCollection services) { // aggiunta di IWMCoreModelFactory services.AddSingleton<IWMCoreModelFactory, WMCoreModelFactory>(); services.ConfigureApplicationServices(_configuration, _webHostEnvironment); }
- INTERFACCIA: creare