C'est quoi Azure DevOps ?

En parlant d'Azure DevOps, nous parlons bien toujours du gestionnaire de codes sources TFS (Team Foundation Server) qui est devenu un outil en ligne qui s'est doté d'une partie collaborative web que l'on a appelé VSTS (Visual Studio Team Server).

Azure DevOps anciennement VSTS
Azure DevOps anciennement VSTS

Je vous en parlais déjà sur ce blog en 2014, c'était les prémices et cela s'appelait :

Visual Studio Online

A l'époque on confondait Visual Studio et Team Server dans une même chaîne de développement "On line". 

L'ancienne URL www.visualstudio.com 

nous redirige maintenant vers : 

https://visualstudio.microsoft.com/fr/

Visual Studio le meilleur outil pour tout développer
Visual Studio le meilleur outil pour tout développer

Où l'on peut lire que VSTS est devenu Azure DevOps ça y est on est arrivé tout le monde descend.

Si je clique sur le bouton Azure DevOps : https://azure.microsoft.com/fr-fr/services/devops/

Azure DevOps - Démarrer gratuitement
Azure DevOps - Démarrer gratuitement

Si j'avais cliqué sur "Version dévaluation gratuite", je serai arrivé au même endroit qu'en cliquant sur "Démarrer gratuitement" c'est à dire dans mon compte "Azure DevOps", je suis automatiquement connecté vers mon espace Azure DevOps :

Mon compte Azure DevOps
Mon compte Azure DevOps

Je peux constater que je fais partie d'une organisation : sumatra-dev.

Avec tous mes projets de développement logiciels qui d'ailleurs maintenant sont plutôt dans mon GitHub. Je ne vais pas tout migrer dans GitHub mais conserver les deux façons de faire. 

Un avantage de Azure Devops c'est que ce n'est pas publique.

Ici, par exemple on trouve mon travail sur la plateforme de e-learning à la rubrique Repos :

Azure DevOps Repos plateforme de e-Learning
Azure DevOps Repos plateforme de e-Learning

Voilà, ici on entre dans le vif du sujet avec un projet ASP.NET en C# dont je peux consulter directement l'historique :

Azure DevOps Repos plateforme de e-Learning - Historique
Azure DevOps Repos plateforme de e-Learning - Historique

Nous venons de faire un tour rapide sur la question : C'est quoi Azure DevOps plutôt du côté gestion de configuration et de versions.

Je pourrais vous dire que c'est faire du nouveau avec de l'ancien et un peu de cosmétique autour mais ce serait injuste car il y a également bon nombre de nouvelles fonctionnalités DevOps qui ont été intégrées ici.

Il y a plein d'autres fonctionnalités, la Gestion des Projets en mode Agile, à découvrir dans Azure DevOps.

Don't forget it's only software and have fun!

ASP.NET Framework vs ASP.NET Core Comparaison des solutions

Que s'est -il passé de .NET Framework à .NET Core ? Avec ASP.NET nous sommes au dessus de ces Frameworks avec les Applications Webs qui les utilisent. Nous allons comparer tranquillement les deux solutions d'une part une application ASP.NET Framework et d'autre part une application créée avec ASP.NET Core.

Dans un premier article sur ASP.NET Framework vs ASP.NET Core je détaillais la création des applications avec Visual Studio 2017 ici, je vais les comparer.


Comparaison des Solutions .NET Framework vs .NET Core
Comparaison des Solutions .NET Framework vs .NET Core
Première chose qui saute aux yeux : où sont les Packages NuGets dans le cas de .NET Core ?

ASP.NET Core - Dépendances

J'ouvre la solution ASP.NET Core :


Solution .NET Core où sont les NuGets ?
Solution .NET Core où sont les NuGets ?
Des petits triangles jaunes, hum que c'est pénible ! Mais au bout d'un certain temps Visual finit par trouver les bonnes références sur ma machine et les triangles jaunes disparaissent ...

Alors regardons dans les dépendances de la solution .NET Core :

Dépendances - Microsoft.AspNetCore.App
Dépendances - Microsoft.AspNetCore.App

NuGet

Donc la dépendance Microsoft.AspNetCore.App se trouve dans le répertoire :
C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.app\2.1.1

La dépendance Microsoft.VisualStudio.Web.CodeGeneration.Design se trouve dans le répertoire :
D:\Users\UserName\.nuget\packages\microsoft.visualstudio.web.codegeneration.design\2.1.1

SDK

Microsoft.AspNetCore.App
   plétore de DLLs
Microsoft.NETCore.App
   plétore de DLLs

Analyseurs

C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.mvc.analyzers\2.1.1\analyzers\dotnet\cs\Microsoft.AspNetCore.Mvc.Analyzers.dll
C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.codeanalysis.analyzers\1.1.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll
C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.codeanalysis.analyzers\1.1.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll
C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.entityframeworkcore.analyzers\2.1.1\analyzers\dotnet\cs\Microsoft.EntityFrameworkCore.Analyzers.dll

A vue de nez comme ça on peut déjà dire que c'est un sacré bordel, les dépendances sont éparpillées un petit peu partout sur ma machine.

ASP.NET Framework - Références

En ce qui concerne ASP.NET Framework, toutes les Références sont dans le répertoire Packages :

Ensemble des Références de l'application ASP.NET Framework
Ensemble des Références de l'application ASP.NET Framework
A vue de nez, c'est quand même un peu mieux rangé et surtout c'est bien plus facile pour le déploiement ... D'ailleurs ma prochaine question sera ; comment fait-on pour le déploiement d'une application ASP.NET Core ?

Comparaison des applications

L'idée, c'est de se rendre compte du gap qu'il y a entre les technos .NET Framework standard et .NET Core afin de mieux comprendre la migration éventuelle à faire pour passer de l'un vers l'autre. Où vont être les difficultés ?

Les comparaisons sont effectuées avec le logiciel BeyongCompare que personnellement je trouve fabuleux pour ce genre d'exercice !
Ajouter une légende
A gauche nous avons l'application ASP.NET Framework à droite ASP.NET Core
App_Data : où est donc la BD dans Core ? Avec Entity Core certainement ...

Comparaison des View _VeiwStart

Dans le répertoire Views :

_ViewsStart.cshtml
C'est bluffant la différence :
@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}


@{
    Layout = "_Layout";
}


Franchement ! Pourquoi cette différence ?

Voilà une comparaison qui vaut le coup. C'est bien le problème récurrent de toutes ces versions de technos nous avons l'impression que c'est développé par des amateurs, aujourd'hui personne ne se permettrai de Chekiner (push, commit) un fichier avec juste une différence de ce genre. Mais les ingé de Redmond eux pas de problème, ils se permettent !

Nous allons voir que les règles de routage s'en trouvent changées.

Global.asax

Le fichier Global.asax n'existe pas dans .NET Core car .NET Core introduit une nouveau mécanisme de démarrage d'une application avec OWIN (Open Web Interface for .NET).

Et là il nous faut découvrir plus avant OWIN. Ce sont eux qui développent ASP.NET SignalR.

Dans ASP.NET Standard le démarrage de l'application est couplée avec l'implémentation du Framework sur le serveur.

Vous pouvez utiliser OWIN avec .NET Standard et configurer le Pipeline :

Migration d’ASP.NET vers ASP.NET Core - Remplacement du fichier Global.asax

ASP.NET Core Pipeline de démarrage de l'application :

ASP.NET Core Pipeline de démarrage de l'application :
ASP.NET Core Pipeline de démarrage de l'application :
On retrouve au démarrage de l'application un Main :

Progam - Main
Progam - Main

Web.config

Pas de fichier web.config pour ASP.NET Core, il stocke les configurations dans le fichier : appsettings.json. On reconnait la ConnectionString nommée DefaultConnection :

ASP.NET Core stockage des configuration dan le fichier : appsettings.json
ASP.NET Core stockage des configuration dan le fichier : appsettings.json
Le chargement de ce fichier se fait dans une instance de IConfiguration dans le Startup.cs à la racine du projet :

Chargement du fichier de configuration
Ce qu'on voit c'est qu'ASP.NET Core utilise des DesignPatterns comme l'injection des dépendances, les principes d'Unity sont intégrés au Framework.

Runtime exécution de l'application ASP.NET Core

Lançons l'exécution de l'application et tentons de nous enregistrer :

ASP.NET Core page d'Accueil
ASP.NET Core page d'Accueil
Clique sur Register :


ASP.NET Core Registration
Clique sur Register :



Registration et boom
Registration et boom
Et boom ! Mais ce n'est pas grave, j'ai quand même cliqué sur le bouton "Apply Migation" et puis j'ai réactualisé la page et là pouf pouf, je suis connecté !

ASP.NET Core - Création d'un User Account
En passant au dessus de mon User Account, je peux le manager :



ASP.NET Core manage Account
ASP.NET Core manage Account
Manage User Account :


ASP.NET Core - Manage User Account
ASP.NET Core - Manage User Account
C'est un peu plus complet que pour ASP.NET Standard le processus de gestion d'un utilisateur suit la mode et l'on a un onglet "Personal data" qui permet de gérer les données personnelles.

Data Base Management

Où est la base de données ?

C'est toujours une bonne question lorsque l'on explore pour la première fois une nouvelle techno Microsoft. Les ingés de Redmonds prennent un malin plaisir à changer la manière de gérer les bases de données des applications web.

Je cherche la ConnectionString, je cherche donc dans le fichier appsettings.json :

ConnectionString dans le fichier aasettings.json
ConnectionString dans le fichier appsettings.json
Et voilà, ça recommence ... vous maitrisiez parfaitement IIS Express et le moteur de bases de données SQLServer ou SQL Express ou SQL Compact Edition et bien il faut recommencer !

ASP.NET Core utilise Microsoft Local DB et où est la base de donnée, elle est où ? Mais où qu'elle est la bas de données ?

Et ben au fin fond du Système donc, si pour vos application Web vous utilisiez le répertoire App_Data pour y mettre les BD de vos applications Web et bien avec ASP.NET Core vous repartez au début. Chouette ! Tout le monde applaudit.

EntityFrameworkCore c'est la nouvelles dénomination de l'Entity Framework pour ASP.NET Core.

Au bout d'un certain temps le processus de recherche de la BD qui s'appelle "aspnet-WebApplication1-7687E68F-1A61-4DF1-B629-EA7B3646ED01" fini par la trouver à la racine du répertoire de mon utilisateur ... glurps du coup je regarde, j'ai également des trucs du genre à cet endroit ...

AzureStorageEmulatorDb56.mdf

Depuis que j'utilise ASP.NET Core il va falloir faire un peu de ménage dans tout ça.

Controller ASP.NET Core

Différences au niveau des contrôleurs :
ASP.NET Core - Controller
Le HomeController implante maintenant l'interface IActionResult
ASP.NET Controller

Razor et le cshtml

Là encore des différence notables, on trouve l'inclusion de JavaScript et de CSS en fonction de la configuration :

ASP.NET Core - cshtml
ASP.NET Core - cshtml
Avec des différences suivantes :

<title>@ViewBag.Title - Mon application ASP.NET</title>

Remplacé par :
<title>@ViewData["Title"] - WebApplication1</title>

Et une autre :
@Html.ActionLink("Nom d'application", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })

Remplacé par :
<a asp-area="" asp-controller="Home" asp-action="Index" class="navbar-brand">WebApplication1</a>

ASP.NET Core - TagHelper pour Razor
asp-area est un TagHelper un astuce un peu ...

Le répertoire wwwroot

A quoi bien peut-il servir ?
ASP.NET Core wwwroot
Nous verrons cela dans un prochain post ...

Migration d’ASP.NET vers ASP.NET Core

Il me faut bien en arriver finalement à la migration ... donc on retient que si nous utilisons des ressources du .NET Framework qui ne sont pas encore écrites dans .NET Core il faut rester avec .NET Framework sinon on peut migrer.

Migrer d’ASP.NET vers ASP.NET Core

Et voilà, maintenant on peut être à peu prêt certain que .NET Framework sera sans doute abandonné à terme ... au profit de ASP.NET Core.

Don't forget it's only software !

ASP.NET Framework vs ASP.NET Core

Que choisir entre ASP.NET Framework standard et ASP.NET Core c'est la question que je vais résoudre dans ce post.

C'est toujours extrêmement délicat de constater que les ingés de Redmond ont envie de délaisser une techno sur laquelle vous avez investis des années de formation alors qu'en est-il exactement d'ASP.NET Framework (standard) on a l'impression qu'il est abandonné au profit d'ASP.NET Core cette impression est-elle justifiée ?

Microsoft - Choisir entre ASP.NET 4.x et ASP.NET Core
Que ressentons en lisant cette page ? Et bien que qu'ASP.NET Core c'est le futur et que ASP.NET Framework 4.x c'est le passé. En gros on comprend qu'ASP.NET Core peut se trouver sur .NET Standard auquel cas cela ne fonctionne que sous Windows ou sur .NET Core auquel cas on peut l'utiliser sur Windows MacOS Linux.

Microsoft - Choix entre .NET Core et .NET Framework pour les applications serveur
Choisir .NET Standard si vous  avez besoin d’utiliser des technologies non disponibles pour .NET Core. Ca c'est fort en camembert, il faudrait attendre que les technos soient disponibles sur .NET Core ? Sûrement pas !

Il n’est pas prévu d’intégrer Web Forms ASP.NET à .NET Core.

Et voilà, nous y sommes les Web Forms que les préconisateurs d'MVC veulent voir disparaitre ont gagnés. Les Web Forms disparaitront avec ASP.NET Framework Standard ce qui n'est pas pour tout de suite mais bon.

Ou en tous cas les développeurs Web Forms devront continuer d'utiliser ASP.NET Framework.

Ou bien encore voici le post du grand Scott Hanselman - ASP.NET 5 is dead - Introducing ASP.NET Core 1.0 and .NET Core 1.0

Ecris le 16 janvier 2016 - On ne peut pas être plus clair ! En fait avoir nommé le ASP.NET Framework 5 est une mauvaise idée car cela fait penser qu'il est supérieur et remplace le Framework 4.6 alors que c'est faux !

Alors on va renommer les chose - Voici ASP.NET CORE 1.0 et .NET CORE 1.0 :
  • ASP.NET 5 est maintenant ASP.NET Core 1.0.
  • .NET Core 5 est maintenant .NET Core 1.0.
  • Entity Framework 7 est maintenant Entity Framework Core 1.0 ou EF Core 1.0 colloquially
ASP.NET Framework 4.6 vs ASP.NET Core 1.0
ASP.NET Framework 4.6 vs ASP.NET Core 1.0
Pourquoi 1.0 ? Parce que .NET Core est entièrement nouveau. Il ne faut pas encore penser que .NET Core 1.0 est terminé. Les deux .NET Framework 4.6 et .NET Core 1.0 vont en parallèle.

Copie du tableau comparatif des deux Frameworks pour bien fixer les idées :
Comparaison des Frameworks 4.x et Core
Comparaison des Frameworks 4.x et Core

Conclusion

Je dirais qu'il me manque un truc : comment passer de .NET Standard à .NET Core et comme cela je suis tranquille.


Comparaison des solutions avec Visual Studio 2017

ASP.NET Framework 4.6.1

Création de la solution :

Création d'une solution ASP.NET Framework
Création d'une solution ASP.NET Framework
J'ai mis en évidence tous les Frameworks et c'est impressionnant le nombre de versions différentes.

Création d'une solution ASP.NET Framework - MVC
Création d'une solution ASP.NET Framework - MVC
Je n'oublie pas, pour donner un peu complexité à cette application de Modifier l'authentification :

Création d'une solution ASP.NET Framework - MVC - Modifier l'authentification
Création d'une solution ASP.NET Framework - MVC - Modifier l'authentification
Création de la solution proprement dite :

Et voilà notre belle solution toute neuve ASP.NET Framework :

Visual Studio 2017 - ASP.NET Framework - MVC
Visual Studio 2017 - ASP.NET Framework - MVC

ASP.NET Core 2.1

Création de la solution, étude des options :

Création d'une solution ASP.NET Core
Je clique sur Ok :

Visual Studio - Nouveau Projet .NET Core
Visual Studio - Nouveau Projet .NET Core
Ca pique carrément les yeux tous ces choix, je peux encore choisir .NET Framework ??? Donc c'est la même chose que précédemment (à vérifier). En tous cas j'ai sous les yeux le récap de toutes nos conversations précédentes faut-il utiliser plutôt React qu'Agular tout est là.

Au niveau d'ASP.NET Core, j'ai encore le choix de la version :

Choix du .NET Core vers 1.0 à 2.1
Visual Studio - Nouveau Projet - Choix du .NET Core vers 1.0 à 2.1
J'ai une pensé pour ceux qui ont débuté avec .NET 1.0 et qui ont du sacrément galoper pour arriver à .NET Core 2.1 aujourd'hui.

En suite encore des choix, choisir le type d'application que l'on souhaite développer :
  • API
  • Application Web
  • Application web (Model-View-Controller)
  • Bibliothèque de classe Razor
  • Angular
  • React.js
  • React.js et Redux
En savoir plus sur les Bibliothèques de classe Razor : Les vues, pages, contrôleurs, modèles de page, composants de vue et modèles de données Razor peuvent être intégrés à une bibliothèque de classes Razor (RCL, Razor Class Library). La RCL peut être empaquetée et réutilisée. Les applications peuvent inclure la RCL et remplacer les vues et les pages qu’elle contient. Quand une vue, une vue partielle ou une page Razor est présente dans l’application web et la RCL, le balisage Razor (fichier .cshtml) dans l’application web est prioritaire.

Cette fonctionnalité nécessite SDK .NET Core 2.1 ou version ultérieure

L'objet, le but est de comparer avec ASP.NET Framework 4.6, je choisi donc : Application web (MVC). Au  niveau de l'authentification il y a encore une petite subtilité :
Visual Studio - Nouveau Projet - Choix du .NET Core 2.1 - Authentification
On peut encore choisir un magasin d'utilisateurs existant dans le Cloud ... (ils vont être content la rgpd ;)

Je remarque une case à cocher : Activer le support de Docker :

Visual Studio - Nouveau Projet - Choix du .NET Core 2.1 - Activer le support de Docker
Visual Studio - Nouveau Projet - Choix du .NET Core 2.1 - Activer le support de Docker
Je clique enfin sur le bouton OK :

Visual Studio - Nouveau Projet - Choix du .NET Core 2.1 - La Solution
Visual Studio - Nouveau Projet - Choix du .NET Core 2.1 - La Solution
Voici ma belle solution toute neuve Visual Studio ASP.NET Core 2.1, au début il y avait des petits triangles jaunes autour de NuGet et SDK en attendant que Visual les trouve installés sur ma machine.

Voilà, j'ai maintenant mes deux solutions toutes prêtes à être comparées, on en parle dans le prochain post ...

Stay tuned!

Actualités du Développement C# .NET

Vous recherchez des informations sur le futur de C# Point NET, je vais faire le tour de cette question et apporter ma petite brique. C'est vrai, c'est stressant de découvrir un sujet de notre métier du développement logiciel en plein entretient ou en pleine discussion d'affaire. La dernière fois pour moi ce fut pour d'évoquer Angular 6 ! J'en étais resté à Angular 2... Imaginez.

Alors en matière de développement C# .NET que va t-il se passer demain ? (ou peut être déjà aujourd'hui) !

Développez.com ASP.NET Core 3.0
Ca fait toujours peur ces annonces Microstiennent d'incompatibilité ! "Microsoft annonce que ASP.NET Core 3.0 fonctionnera uniquement sur .NET Core 3.0. Et ne sera plus compatible avec la plateforme .NET Framework" (c'est à dire .NET Standard ?!...)

Pour l'instant ne pas s'exciter, la release .NET Core 3.0 n'est prévue que fin 2019.

MSDN .NET Blog
Ici un plan pour aller vers .NET Framework 4.8 (petit rappel la version 4.7.2 sortie mai 2018) qui va sortir dans 12 mois ...

Voici .NET Core 3 :

Développement d'applications modernes avec .NET Core 3
Là encore, ce genre de dessin fait un peu peur par rapport au discours de portabilité multiplateforme des applications développées à  base de .NET Standard, .NET Core ...

Explications du plan

  • Les applications de bureau devront cibler .NET Core 3 et recompiler.
  • Les fichiers de projet devront être mis à jour pour cibler .NET Core 3.
  • Les dépendances n'auront pas besoin de se recibler et de recompiler. Il y aura des avantages supplémentaires si vous mettez à jour des dépendances.
Alors il faudra le vérifier c'est intéressant cela signifie que pour migrer votre application .NET Core v2.x il vous suffira de recompiler et qu'est ce que l'on pari que cela ne suffira pas ;)

Nous avons une version de Paint.NET en cours d'exécution dans notre laboratoire. En fait, nous n’avions pas accès au code source de Paint.NET. Les fichiers binaires Paint.NET existants fonctionnent sur .NET Core. Nous n'avions pas de version spéciale de WPF disponible, nous avons donc simplement utilisé les fichiers binaires WPF du répertoire .NET Framework sur notre ordinateur de laboratoire. En passant, cet exercice a permis de découvrir un bogue inconnu dans le threading dans .NET Core, qui était corrigé pour .NET Core 2.1. Beau travail, Paint.NET!

Mouais mouais mouais ... et bla et bla qu'en est-il dans la vraie vie ?

Prochaine étape

Déterminer et corriger ce qui empêche .NET Framework de fonctionner sur .NET Core pour faire de .NET Core 3 une version géniale !

Pour terminer

En 2019, il y aura une nouvelle version de .NET Core 3 et la version 4.8 de .NET Framework.

Have fun!

C'est quoi .NET Core ?

C'est la bonne question, je fais du .NET depuis toujours sans le savoir et pourtant aujourd'hui je veux savoir exactement ce qu'est .NET Core. .NET Core 1.0 a été releasé le 27 juin 2016 cela fait donc un bail mais comme pour toutes les technos Microsoft, il faut attendre que ceux qui ont du temps payent les pots cassés sinon vous allez devoir les recoller vous-même.

https://github.com/dotnet
https://github.com/dotnet

Bref, c'est derniers temps, j'ai été occupé avec ASP.NET aspx ASP.NET MVC avec JQuery  ASP.NET avec Angular, rattrapons le retard.

Définition : .Net Core c'est une réécriture du .NET Framework en composants modulaires distribués via Nuget, embarqués dans votre application. Je pourrais ajouter Cross-Plateformes et Open Source.

.NET Core comporte deux parties :

  • CoreFx : l’implémentation de .Net Core sous la forme d'assemblies (DLL)
  • CoreCLR : le moteur d’exécution de .Net Core (garbage collector, compilateur JIT, types de base .Net)

Pour le reste absolument toute la documentation est sur GitHub, je vous laisse avec la .NET Core Roadmap

Et le GitHub .NET Core Home

Est ce que cela à t-il encore à voir avec Microsoft ? C'est ma question cela a-t-il un grand avenir c'est aussi la question à 100 millions d'euros.

Mon application Todo avec Xamarin en .NET Standard

Nous avons vu que l'application des Samples du Forum, le projet Todo est de la forme "Bibliothèque de classes portables" qui ne doit plus être utilisé aujourd'hui. Nous allons donc tout naturellement faire ce petit projet de créer la même application en partant d'un projet de type ".NET Standard".

C'est une bonne façon de mettre la main à la pâte, le pied à l'étrier.

Création du projet Todo avec .NET Standard

Classiquement je fais : Fichier -> Nouveau -> Projet
Visual Studio : Fichier -> Nouveau projet
Visual Studio : Fichier -> Nouveau projet

Dans la liste des Templates : Xamarin.Forms
Todo Application mobile (Xamarin.Forms)
Todo Application mobile (Xamarin.Forms)
Je choisie le Template "Master Detail" c'est toujours plus sympa d'avoir un menu et je prends bien sûr l'option ".NET Standard" :



Xamarin Todo .NET Standard
Xamarin Todo .NET Standard

Installation du Nuget sqlite-net-pcl

Pour travailler avec une base de donnée comme dans le projet Todo des Samples Xamarin on installe le nuget "sqlite-net-pcl".

Je note que le projet Template Master Detail est configuré avec le pattern MVVM alors que le projet Todo ne l'est pas, il est en "code behind". C'est une nouvelle bonne raison de faire évoluer ce projet.

Couche de données

Répertoire Data dans Todo Sample :

Couche de Data dans Todo
Dans mon nouveau projet .NET Standard :


Couche Data dans mon projet
Je conserve l'Interface c'est bien plus propre. Elle demande aux objets qui en dérivent d'implémenter des fonctions asynchrones de gestion des éléments dans la liste.

L'objet database : SQLiteAsyncConnection est implémenter dans MockDataStore :



Code Database
Code Database
L'objet Database est instancié au démarrage de l'application dans App.xaml.cs.

Création de la Base de données SQLite

Complétion de la méthode OnAppearing pour afficher la liste des Items :

Todo Sample vs Todo modèle .NET Standard

Pour la couche de données c'est quasiment terminé, il suffit de continuer à procéder.

Exécution du projet

J'exécute ce projet sur l'émulateur Android Accelerated Nougat 7.1 API25, voici le résultat de l'exécution :
Exécution de mon Projet Todo en .NET Standard
Vous pouvez voir les deux Items que j'ai créé et qui sont maintenant dans la base de données SQLite.
De mon côté, je vais poursuivre le CRUD des cette liste de Todo afin de terminer ce projet.

Gestion de configuration avec Github

Ce projet est connecté dans mon Repo Github je fais donc un petit Push pour livrer .


Push dans Github

C'est ainsi que les sources de ce projet sont accessibles à l'adresse suivante :

Todo Sample en .NET Standard sous Github
Todo Sample en .NET Standard sous Github
https://github.com/mabyre/Xamarin

Voilà tout est prêt pour démarrer le développement de nouvelles applications avec Xamarin.

Have fun !