jeudi 27 avril 2017

C'est quoi nopCommerce ? Un site e-commerce en ASP.NET mais encore ...

Vous cherchez à découvrir rapidement ce qu'est nopCommerce, vous savez que c'est de l'ASP.NET open source mais allons plus loin.
Plateforme de e-commerce ASP.NET C#
C'est une plateforme de commerce en ligne basée sur ASP.NET. Cette solution possède des caractéristiques compréhensives ...

La communauté travail depuis 2008  pour créer et maintenir cette solution e-business de classe mondiale. La solution a été téléchargée 1.8 million de fois et il y a 27000 boutiques vivantes actuellement à partir de cette plateforme.

Voici la page de référence sur Wikipédia qui fait une liste des fonctionnalités. Mais allons encore plus loin.

Caractéristiques compréhensives

SEO - Search Engine Optimisation

Pour que votre boutique en ligne soit plus rapidement trouvée sur internet il faut "être arrangeant avec les moteurs de recherche" pour que votre site soit indexé en bonne place et correctement.

XML Sitemap

Meta Tags, Microdata

URLs localizables pour le matching dans d'autres cultures

Intégration avec Google Analytics

Mobile commerce

Il y a une version mobile-responsive qui permet au détenteurs de smartphone de faire leurs achats en ligne.

Multi-store

Permet d'exéctuer plusieurs frontend sur différents domaines à partir d'un seule installation de nopCommerce et gérer à partir d'un seul panneaux d'administration. Vous pouvez également lancer rapidement des micro-magasins pour les campagnes promotionnelles.

Multi-vendeurs

Des caractéristiques sur les produits pouvoir les comparer etc etc etc ...

Download nopCommerce

Allons chercher les codes sources puisque l'on nous dit que c'est de l'open-source. Sur le site de la communauté nopCommerce, il faudrait s'enregistrer dans un formulaire pour avoir accès aux codes sources c'est de bonne guerre.

Download and install nopCommerce
Welcome, please sign in !

S'enregistrer au prêt de nopCommerce
Mais en fait, les sources sont gérés en configuration sous GitHub :

https://github.com/nopSolutions
Accès aux solutions nopSolutions autour de nopCommerce, accès aux codes sources de Pug-in for nopCommerce, il doit y avoir une bonne quinzaine de plug-in.

https://github.com/nopSolutions/nopCommerce
Accès aux sources codes de  la solution nopCommerce hébergés par GitHub.

Sources Codes de la Solution nopCommerce sous GitHub
Cela va nous permettre de browser un peu dans les sources sans avoir à tout télécharger sur mon poste de travail.

Sources Codes de nopCommerce

Que trouve t-on dans les codes sources de nopCommerce hébergé par GitHub ?
Allons tout de suite ouvrir le fichier de la solution :


Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1

Il s'agit donc de la version : Visual Studio 2015 et l'on peut travailler avec la version minimum 2010 ...

Les NuGet Packages de nopCommerce

Pour se donner une idée de l'évolution du développement de cette plateforme, allons voir tout de suite dans les NuGets packages :

Solution nopCommerce la liste des packages NuGets - 1/3
Solution nopCommerce la liste des packages NuGets - 2/3
Solution nopCommerce la liste des packages NuGets - 3/3
On peut dire que ça pique un peu les yeux tellement il y en a ! Mais malheureusement c'est un peu le cas maintenant dans toutes les applications web, il faut une tétra-chiée de NuGets pour faire le moindre truc.

DotNetOpenAuth : Nuget d'authentification pour ASP.NET MVC
EntityFramework : Modélisation des SGBDR
OData
NUnit : Pour les test unitaires
MVC 5.2.3
Razor 3.2.3
Linq : Langage de requêtage dans les List

Pas de doute, on est bien avec une application ASP.NET MVC C# ...

Découverte de la solution

Téléchargement et installation des sources. On se place dans le répertoire : 


Et on clique sur "Clone or download" :

Architecture de la solution - Téléchargement et installation des sources C#
Ne pas croire que cela va fonctionner du premier coup. Il faut prendre en main un certain nombre de choses pour pouvoir installer correctement les codes sources.

Je dézippe, je tente d'ouvrir la solution avec Visual Studio 2015 Community :
3 projets ne se chargent pas les erreurs sont les suivantes :

E:\Visual Studio\nopCommerce-develop\src\Libraries\Nop.Core\Nop.Core.csproj : error  : L'espace de noms XML par défaut du projet doit être l'espace de noms XML MSBuild. Si le projet a été créé au format MSBuild 2003, ajoutez xmlns="http://schemas.microsoft.com/developer/msbuild/2003" à l'élément <Project>. S'il a été créé dans des formats anciens comme 1.0 ou 1.2, convertissez-le au format MSBuild 2003.  E:\Visual Studio\nopCommerce-develop\src\Libraries\Nop.Core\Nop.Core.csproj

E:\Visual Studio\nopCommerce-develop\src\Libraries\Nop.Services\Nop.Services.csproj : error  : L'espace de noms XML par défaut du projet doit être l'espace de noms XML MSBuild. Si le projet a été créé au format MSBuild 2003, ajoutez xmlns="http://schemas.microsoft.com/developer/msbuild/2003" à l'élément <Project>. S'il a été créé dans des formats anciens comme 1.0 ou 1.2, convertissez-le au format MSBuild 2003.  E:\Visual Studio\nopCommerce-develop\src\Libraries\Nop.Services\Nop.Services.csproj

E:\Visual Studio\nopCommerce-develop\src\Presentation\Nop.Web.Framework\Nop.Web.Framework.csproj : error  : L'espace de noms XML par défaut du projet doit être l'espace de noms XML MSBuild. Si le projet a été créé au format MSBuild 2003, ajoutez xmlns="http://schemas.microsoft.com/developer/msbuild/2003" à l'élément <Project>. S'il a été créé dans des formats anciens comme 1.0 ou 1.2, convertissez-le au format MSBuild 2003.  E:\Visual Studio\nopCommerce-develop\src\Presentation\Nop.Web.Framework\Nop.Web.Framework.csproj

E:\Visual Studio\nopCommerce-develop\src\Libraries\Nop.Core\Nop.Core.csproj : error  : L'espace de noms XML par défaut du projet doit être l'espace de noms XML MSBuild. Si le projet a été créé au format MSBuild 2003, ajoutez xmlns="http://schemas.microsoft.com/developer/msbuild/2003" à l'élément <Project>. S'il a été créé dans des formats anciens comme 1.0 ou 1.2, convertissez-le au format MSBuild 2003.  E:\Visual Studio\nopCommerce-develop\src\Libraries\Nop.Core\Nop.Core.csproj

E:\Visual Studio\nopCommerce-develop\src\Libraries\Nop.Data\Nop.Data.csproj : error  : L'espace de noms XML par défaut du projet doit être l'espace de noms XML MSBuild. Si le projet a été créé au format MSBuild 2003, ajoutez xmlns="http://schemas.microsoft.com/developer/msbuild/2003" à l'élément <Project>. S'il a été créé dans des formats anciens comme 1.0 ou 1.2, convertissez-le au format MSBuild 2003.  E:\Visual Studio\nopCommerce-develop\src\Libraries\Nop.Data\Nop.Data.csproj

E:\Visual Studio\nopCommerce-develop\src\Libraries\Nop.Services\Nop.Services.csproj : error  : L'espace de noms XML par défaut du projet doit être l'espace de noms XML MSBuild. Si le projet a été créé au format MSBuild 2003, ajoutez xmlns="http://schemas.microsoft.com/developer/msbuild/2003" à l'élément <Project>. S'il a été créé dans des formats anciens comme 1.0 ou 1.2, convertissez-le au format MSBuild 2003.  E:\Visual Studio\nopCommerce-develop\src\Libraries\Nop.Services\Nop.Services.csproj

E:\Visual Studio\nopCommerce-develop\src\Presentation\Nop.Web.Framework\Nop.Web.Framework.csproj : error  : L'espace de noms XML par défaut du projet doit être l'espace de noms XML MSBuild. Si le projet a été créé au format MSBuild 2003, ajoutez xmlns="http://schemas.microsoft.com/developer/msbuild/2003" à l'élément <Project>. S'il a été créé dans des formats anciens comme 1.0 ou 1.2, convertissez-le au format MSBuild 2003.  E:\Visual Studio\nopCommerce-develop\src\Presentation\Nop.Web.Framework\Nop.Web.Framework.csproj

E:\Visual Studio\nopCommerce-develop\src\Presentation\Nop.Web\Nop.Web.csproj : error  : L'espace de noms XML par défaut du projet doit être l'espace de noms XML MSBuild. Si le projet a été créé au format MSBuild 2003, ajoutez xmlns="http://schemas.microsoft.com/developer/msbuild/2003" à l'élément <Project>. S'il a été créé dans des formats anciens comme 1.0 ou 1.2, convertissez-le au format MSBuild 2003.  E:\Visual Studio\nopCommerce-develop\src\Presentation\Nop.Web\Nop.Web.csproj

E:\Visual Studio\nopCommerce-develop\src\Plugins\Nop.Plugin.Shipping.FixedOrByWeight\Nop.Plugin.Shipping.FixedOrByWeight.csproj : error  : L'espace de noms XML par défaut du projet doit être l'espace de noms XML MSBuild. Si le projet a été créé au format MSBuild 2003, ajoutez xmlns="http://schemas.microsoft.com/developer/msbuild/2003" à l'élément <Project>. S'il a été créé dans des formats anciens comme 1.0 ou 1.2, convertissez-le au format MSBuild 2003.  E:\Visual Studio\nopCommerce-develop\src\Plugins\Nop.Plugin.Shipping.FixedOrByWeight\Nop.Plugin.Shipping.FixedOrByWeight.csproj

On dirait bien qu'il y a un problème avec MSBuild ;-))

Recharger les projets en échec

Ce'est le conseil qui nous ait donné dans l'Explorateur de solutions :

Au chargement de la solution le projet Nop.Core est en échec
Rechargement du projet Nop.Core :

Recharger le projet Nop.Core
On obtient alors le message suivant :

L'espace de noms XML 
C'est un peu pénible ;) Bien sûr ce message est idiot même si vous ajoutez
xmlns="http://schemas.microsoft.com/developer/msbuild/2003" à l'élément <Project> Cela ne fonctionne pas !

Allez je vais encore un petit peu plus loin puis je vous laisserai continuer si vous le souhaitez.

L'idée c'est d'aller chercher une version antérieure de NopCommerce sur le site de GitHub pour voir ce que l'on avait avant. Je prends la Release-3.90 et je compare les fichiers Nop.Core.csproj voici le résultat :

Comparaisons des fichiers Nop.Core.csproj
CQFD : Entre Visual Studio 2015 et Visual Studio 2017, il y a de gros changements dans l'utilisation de MSBuild et des Tools associés...

Pour ce qui est de nopCommerce la solution "à la mode" Visual Studio 2017 vient de sortir si vous êtes avec Visual Studio 2015 il vous faut prendre la release 3.90.

Taille de la solution 

Je lance le calcul des métriques, voici le résultats :

NopCommerce la métrique du code source
Il y aurait bien d'autres choses à dire ...

Aucun commentaire:

Enregistrer un commentaire

Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.