Archives de catégorie : Veille

Meetup .net Toulouse : Docker sous Windows pour les dév .net le 21 Novembre

Vous êtes développeurs ASP.net WebForms, ASP.net MVC ou ASP.net Core et vous n’avez pas encore trop regardé Docker car vous n’êtes pas intéressé par l’hébergement de vos applications sous Linux ?

Et bien rejoignez-nous pour découvrir l’intégration de Docker au sein de Windows Server 2016 (et de Windows 10 Anniversary Update) !

Que cela soit pour vos applications on-premises ou pour le cloud, nous vous présenterons les containers Windows et les containers Hyper-V, et nous aborderons les avantages de ce type de déploiement : réversibilité, blue/green deployment, etc.

image

Nous verrons comment mettre en place une démarche DevOps avec Visual Studio Team Services.

Le tout sous entièrement sous Windows, avec les technos .net que vous utilisez !

S’inscrire au meetup du 21 Novembre sur Docker sous Windows : https://www.meetup.com/fr-FR/Meetup-NET-Toulouse/events/234939602/

S’inscrire au groupe meetup .net Toulouse (nous sommes déjà presque une 100 aine !) : https://www.meetup.com/fr-FR/Meetup-NET-Toulouse/

1er meetup .net à Toulouse : Done !

Je vous l’avais annoncé au début du mois de Septembre, nous avons créé avec les amis Ionut, David et Guillaume un nouveau meetup dédié au développement avec les technos Microsoft.

Le 1er meetup était organisé hier afin de partager des infos diffusées par Microsoft lors de la nouvelle grande messe annuelle : les Microsoft Experiences.

Et c’est avec plaisir que nous avons accueillis les 40 inscrits, qui sont tous venus pour cette première !

20161017-197A3664

Je vous propose les slides des deux présentations que j’ai effectué :

image

image

Vous pouvez trouver les photos du meetup à cette adresse : https://www.meetup.com/fr-FR/Meetup-NET-Toulouse/photos/all_photos/?photoAlbumId=27355380 ou en cliquant sur les photos :

image image

Vous n’étiez pas là et vous souhaitez nous rejoindre pour les prochains meetups ?

Rien de plus simple, rejoignez-nous dans le groupe (près d’une centaine de membres actuellement), et inscrivez-vous pour les meetups dont les sujets vous plaisent !

A très bientôt !

MS Experiences : Plus business et moins geek

Réaction à chaud suite à l’évènement Microsoft de l’année qui s’est terminé hier et qui a réuni 14 000 personnes au Palais des congrès à Paris.

Changement de nom, changement de date, changement de durée, l’évènement phare de Microsoft en France a vraiment changé de formule.

La transformation numérique est au coeur de l’évènement, avec comme objectif de partager des expériences réussies afin que l’ensemble des visiteurs aient bien conscience des évolutions du marché, et des opportunités de transformation offertes par le digital.

WP_20161004_014

Pour ce faire, terminés les témoignages de petites startup de quelques personnes, ou de SSII partenaires historiques présentant des projets clients pendant les keynotes, cette année, Microsoft France a fait le très bon choix d’avoir une liste d’invités de très grande classe : Satya Nadella himself, Alexandre Bompard PDG de Fnac Darty et Bernard Ourghanlian pour le keynote business, Scott Guthrie et Scott Hanselman pour le keynote “technique”.

De très belles têtes d’affiches, avec notamment une très bonne prestation d’Alexandre Bompard, il a été particulièrement plaisant de voir de très belles et importantes réussites françaises mises en avant durant ces keynotes.

WP_20161004_022

AccorHotels, Fnac, Renault-Nissan, Schneider Electric, Dassault Systèmes sont les références 100% locales citées durant les deux keynotes de l’évènement afin de montrer comment des acteurs historiques ont pu se transformer grâce au numérique avec succès malgré, pour certains, leur présence sur des marchés très impactés par le numérique (ex : Retail et hôtellerie).

Légitimité et crédibilité de Microsoft dans l’industrie informatique et dans le domaine de la transformation digitale sont les sentiments ressentis à l’issu de ces keynotes.

Loin des échecs très importants tel que Windows Phone, le Store de Windows, etc. Microsoft a pris un virage fondamental avec le cloud et le SaaS, et à réussi une transformation qui n’est pas assez mise en valeur.

On évoque souvent les virages raté d’Internet et du mobile, le virage industriel du Cloud et le changement de modèle vers le SaaS ont été réalisés avec brio, en devenant rapidement leader dans ces domaines. Un exploit qui ne doit pas être sous-estimé et qui permet à l’éditeur de rester au coeur des projets informatiques des entreprises dans une époque plus cruciale que jamais.

Vous l’aurez compris j’ai beaucoup apprécié les deux keynotes de cette année, même si le keynote technique n’était pas assez technique à mon goût.

Et il s’agit là du principal reproche que je pourrais faire à cette nouvelle formule, les sessions de la journée technique ne m’ont pas semblé assez techniques. Entre les sessions de 45 minutes où 3 sociétés ayant chacune 2 ou 3 intervenants viennent présenter un sujet, et les sessions d’overview où on ne rentre pas dans le “dur”, je ne sais pas si mon choix de sessions était raté ou si ce sentiment sera partagé par d’autres développeurs. L’absence remarquée de sessions phares telles que “Geek in da house” et “Coding for fun”  rajoute à ce sentiment de manque d’excitation autour des technos MS.

En résumé, mon ressenti global de Microsoft s’est amélioré, mais à l’exception  des cognitives services, je reste un peu sur ma faim d’un point de vue technique.

Peut-être que les webcasts des sessions auxquelles je n’ai pas assisté me feront changer d’avis.

Création d’un meetup .net à Toulouse

Après les projections annuelles du 1er keynote de la Build, j’ai le plaisir de vous annoncer que nous allons avoir la possibilité de nous retrouver plus régulièrement grâce à la création d’un meetup dédié aux technologies de développement Microsoft.

Afficher l'image d'origine

Nous pourrons nous retrouver tous les 3ème lundi du mois pour échanger autour de plusieurs sujets.

1er rendez-vous : Lundi 17 Octobre à la Cantine (27 rue d’Aubuisson 31000 Toulouse) à partir de 18h30 pour faire un tour d’horizon de ce qui aura été présenté durant l’évènement Microsoft Experiences qui a lieu à Paris le 4 et 5 Octobre.

Vous ne serez pas à Paris ?! Pas grave, on vous racontera tout !

N’hésitez pas à rejoindre le meetup, et à vous inscrire pour notre 1ère rencontre !

A la découverte d’Hololens !

Vous avez très probablement tous vu plusieurs vidéos de démonstration des lunettes de réalité augmentée proposée par Microsoft : Hololens.

Et c’est avec un grand plaisir que j’ai pu essayer ces lunettes grâce aux copains d’Infinite Square.

image

Je ne vais pas ici vous proposer une n-ième description du device, mais plutôt vous proposer une petite synthèse de mon ressenti.

Les points forts :

  • Ces lunettes sont en réalité un vrai PC sous Windows 10 ! Même si nous avons maintenant l’habitude d’avoir des monstres de puissance dans nos poches grâce aux smartphones, avoir un PC autour de la tête reste une prouesse technologique impressionnante, d’autant plus que les lunettes ne sont pas lourdes, elles sont confortables et se laissent porter tout naturellement.
  • Très bonne fluidité de l’image (applications, et hologrammes), on ne ressent pas de lag gênant lorsque l’on bouge la tête, le ressenti est naturel.
  • La précision des gestures. Le tracking de la position de la main et des doigts et la reconnaissance des gestures sont plutôt bluffants. Les manipulations effectuées dans les vidéos de démonstrations sont tout à fait réalistes, la prise en main est vraiment aisée.

Les points faibles :

  • Je vais rejoindre l’ensemble des articles sur le sujet : le champ de vision ! Alors que les différentes vidéos de démonstration du device nous vendent du rêve, en nous faisant croire que l’ensemble du champ de vision est couvert grâce aux lunettes, le résultat final est assez éloigné de ce que l’on a pu voir dans les démonstrations de la Build, ou encore de TED :
    image
    Cela ne supprime pas toute utilité aux lunettes, loin de là, mais cela réduit l’adoption de scénarios nécessitant d’avoir l’intégralité du champ de vision disponible.

Microsoft n’arrive pas en tant que pionnier dans le domaine de la réalité augmentée via des lunettes spécialisées car Google avec ses célèbres Google Glass a permis de mettre la lumière sur ce domaine prometteur, même si les approches et les possibilités proposées par les deux devices sont très différentes.

Même si les lunettes disponibles sont une vraie prouesse technique, le vrai défi sera d’arriver à faire d’Hololens un vrai produit ! Google a, pour le moment, échoué sur ce point, et il n’est pas simple d’arriver à percevoir si Microsoft va réussir à convertir ce qui peut être considéré comme un prototype très prometteur en succès commercial.

L’augmentation du champ de vision serait un atout vraiment considérable qui pourrait positionner les lunettes comme étant un must-have dans de nombreux scénarios. Un positionnement clair du géant de Redmond est également indispensable afin de démarrer une vraie phase de commercialisation.

Et même si des projets comme Hololens nous démontrent que de gros progrès techniques sont faits dans le domaine, il y a bien une chose de sûre :  nous allons encore devoir attendre un temps certain avant d’avoir un device grand public qui nous permettrait de nous guider dans les gares et aéroports, qui nous donnerait des informations sur notre environnement proche, etc.

Il est d’ailleurs frappant de constater que Google et Microsoft ont tous deux présenté leurs premières démonstrations en montrant des usages orientés “consumer” (démonstration à la maison, dans son salon, dans la cuisine, ou dans la vie quotidienne) pour finalement indiquer que la cible des devices est le monde professionnel. Preuve que le chemin est encore long avant de disposer d’un device répondant à toutes les promesses de la réalité augmentée.

Un grand merci à Thomas et Florent pour avoir passer pas mal de temps à me montrer cette belle innovation conçue par Microsoft.

Build 2016 : Building a conversational bot in 60 minutes B821

Comme annoncé lors du premier keynote, Microsoft lance son framework de bot simplement baptisé Microsoft Bot Framework.

Ce framework vous permet de créer un nouveau type d’UI où au lieu d’interagir avec une application avec une interface graphique, vous pouvez directement discuter en langage naturel avec un bot. Vous pouvez penser à un Cortana ou Siri personnalisé et spécialisé et accessible via le channel que vous souhaitez : chat web, slack, sms, mail, skype, etc.

Ainsi au lieu de faire l’effort de traduire ce que vous souhaitez faire en manipulations, vous pouvez directement demander ce que vous souhaitez faire, à charge au bot de répondre à votre demande et de réaliser les actions souhaitées.

L’intelligence du bot ne se situe pas au niveau du Bot Framework qui n’est “qu’” une couche technique, mais vous allez pouvoir utiliser les différentes briques d’IA proposées par Microsoft (ou par d’autres) afin d’apporter cette intelligence. Si vous souhaitez comprendre les phrases formulées naturellement, vous pouvez par exemple utiliser le service Langage Understanding Intelligent Service (LUIS) qui est directement accessible via les API du Bot Framework.

Briques du Bot Framework

Le Bot Framework se compose d’un Bot Builder SDK, qui permet de créer la logique du bot en étant appelé lors de la réception d’un message et en permettant d’y répondre, et ceci “manuellement” ou en utilisant une analogie de formulaire qui permet de décrire les différentes étapes d’une conversation.

Le service Bot Connector reçoit techniquement les messages et envoie les réponses à l’utilisateur, et fournit des services additionnels tels que de la traduction à la volée des messages, ou de la télémétrie.

Ce service reçoit envoie des messages via les différents channels déjà cités précédemment.   

Un bot créé via le Bot Builder SDK est en réalité un endpoint HTTP appelé par le Bot Connector, et qui renvoie des informations au format json à celui-ci.

Cet endpoint doit donc être accessible de manière publique afin d’être appelé par le Bot Connector.

Le développement d’un bot se fait via un template de projet Visual Studio qui vous permet de vous abonner aux différents évènements de réception de messages utilisateurs ou système.

Une API assez simple vous permet de répondre aux messages reçus de l’utilisateur. D’un point de vue débogage il vous ait possible d’utiliser un émulateur qui vous permettra d’interagir avec votre bot sans avoir à le publier et à le configurer.

LUIS

Le service d’interprétation de langage naturel proposé par Microsoft fonctionne selon un principe simple : il faut définir des “intentions” c’est à dire des actions paramétrables que vous souhaitez être capable d’interpréter. Ainsi si vous souhaitez être capable de comprendre que l’utilisateur souhaite “formater un disque dur”, vous pouvez créer une intention décrivant cette demande, et ensuite entrainer le moteur de LUIS afin de lui apprendre à reconnaitre les différentes formulations de cette intention (“formater lecteur C:”, “formater disque D:”, “ressusciter le drive E:”, etc.”).

Cet apprentissage se fait en donnant différents exemples de formulation et en identifiant  les valeurs que vous souhaitez récupérer via la notion d’Entity. Dans notre précèdent exemple, il faudra identifier la lettre du lecteur (C:, D: , etc.) pour que le service LUIS nous renvoie directement cette valeur sans avoir besoin de parser manuellement celle-ci.

Il n’est donc pas utile d’écrire du code pour parvenir à avoir une IA capable d’interpréter du langage naturel, il suffit d’utiliser l’UI de LUIS, puis de consommer le service exposé par LUIS pour ajouter ce type de fonctionnalité dans une application !

Création de “formulaires”

Le Bot Builder SDK permet la création de “formulaires” qui ne sont pas réellement des formulaires mais un template de dialogue. Vous pouvez définir les différentes informations souhaitées (les “contrôles”) sous forme de propriétés, et créer automatiquement une conversation grâce à ce mécanisme :

A noter la possibilité d’ajouter de la validation, et de combiner cela avec LUIS pour toujours bénéficier de la reconnaissance de langage naturel à chaque étape.

Build 2016 : Building a 3D Game with Unity and Visual Studio T607

Unity est environnement de création de jeux qui propose un moteur graphique 2D et 3D ainsi qu’un moteur physique.

Permettant de déployer un jeux sur une variété impressionante de plates-formes différentes (iOS, Android, Windows, PS4, WiiU, 3DS, XBox, etc. etc.), Unity est devenu ultra-leader sur un marché qui a beaucoup changé suite à l’explosion de l’adoption des smartphones.

image

Unity revendique une communauté de 5 millions de développeurs et dispose un eco-système très riche grâce à cette très importante communauté. Près de la moitié des développeurs de jeux (tout support confondus – mobiles, consoles, etc.) sont des développeurs Unity, et 90% d’entre eux sont sous Windows.

En plus de proposer le développement de jeux, Unity est également présent dans un secteur prometteur qui débute à peine : la réalité virtuelle mais également la réalité augmentée. Unity est en effet le moteur utilisé par Oculus et par Hololens.

Il est possible d’écrire du code pour Unity dans une variété de langages : C#, Javascript ou encore Boo.

Depuis Unity 5.2, Visual Studio est l’éditeur de script par défaut de Unity sur Windows ! Les créateurs de jeux utilisant cette plate-forme installent donc par défaut Visual Studio Community 2015 et les Visual Studio Tools for Unity afin que chacun utilise C# comme langage de script :

image

Il s’agit clairement d’un big win pour Microsoft et pour Visual Studio, .NET est une brique importante de la plate-forme ultra-leader sur le développement de jeux pour mobiles parce qu’Unity utilise la VM de Mono pour exécuter les scripts C# et Visual Studio pour l’édition de ce code.

Visual Studio peut donc être utilisé en tant que complément de l’éditeur d’Unity, celui-ci s’intègre directement au sein de cet éditeur. Dès lors où l’on souhaite éditer un fichier C# dans un projet Unity ouvert depuis l’éditeur d’Unity, Visual Studio s’ouvre :

Ne cherchez donc pas de templates de projets particulier dans Visual Studio. Le workflow n’est pas l’habituel File\New Projet dans VS, mais bien d’éditer les fichiers C# depuis Unity pour accéder aux Visual Studio Tools for Unity.

Pour consulter une démonstration complète : https://channel9.msdn.com/Events/Build/2016/T607

Build 2016 : How Cortana Can Proactively Drive Engagement With Your Apps B834 / B833

Le résumé de ces deux sessions va être à l’image de ma déception, et du contenu de celle-ci : rapide et sans trop d’intérêt. Bien que largement plus dynamique que la B834, la B333 illustre bien ce “ratage” : une session qui dure moins de 23 minutes au lieu d’1h. C’est dire si le contenu ciblé était intéressant et fourni…

Ces deux sessions décrivent comment s’intégrer au panneau de Cortana via des “Proactive Actions”. On parle donc ici uniquement de la manière d’accéder à vos applications depuis Cortana.

L’idée est que Cortana a différentes connaissances au niveau du contexte de l’utilisateur et sur l’utilisateur de manière générale, et qu’elle va être capable de communiquer certaines de ces informations à votre application, afin que vous puissiez proposer et exécuter certains actions :

image

Ces actions sont enregistrables et paramétrables sur http://developer.microsoft.com/cortana

N’hésitez pas à consulter uniquement les slides de ces sessions si vous êtes intéressés, tout y est indiqué, inutile de regarder les sessions qui n’ont malheureusement que peu d’intérêt.

Il est dommage d’avoir ce type de sessions et de contenu sur un sujet aussi intéressant avec autant de potentiel que Cortana… Espérons que Microsoft nous proposera des intégrations riches et pertinentes afin que nous puissions interagir avec Cortana avec une vraie dose d’intelligence !

Build 2016 : .NET Overview B891

.NET Everywhere

.NET change radicalement de dimension en permettant de développer n’importe quel type d’application et sur n’importe quel type de plate-forme :

L’environnement de développement et d’exécution de .NET se trouve à présent décomposé au sein de 3 frameworks distincts :

  • L’historique Framework .net maintenant livré avec chaque version de Windows. Destiné au développement d’applications desktop sous Windows (en Windows Forms ou en WPF), aux applications serveurs sous Windows
  • .NET Core : framework .NET cross-platform pour Windows, Linux, OS X, etc. 
  • Xamarin : Le framework de développement d’applications managées en C# pour iOS, Android et MacOS.

Ces 3 frameworks disposent chacune de ses propres libraires de base. Un travail d’uniformisation doit être fait afin d’uniformiser l’ensemble et ne plus avoir 3 frameworks complètement distincts.

Une .net Standard Library est donc en cours de conception afin d’uniformiser les bibliothèques de base de ces 3 plates-formes de développement. La réutilisation/partage de code sera donc réél, et non dépendant de « bidouilles » techniques comme cela peut être le cas actuellement.

Avant :

clip_image002

Après :

clip_image004

Open Source

De plus en plus de briques de l’eco-système .NET sont Open Source, EF 6, EF Core, ASP.NET Core, .NET Core, Mono, Xamarin, Roslyn, NuGet, et tout cela est fait sans compromettre la qualité et la stabilité des produits finis car toutes les soumissions sont validées et suivent le même processus d’intégration/validation que les développements effectués en interne par les Microsoftees.

De plus, bien qu’Open Source, et bien qu’utilisant des technologies tierces (bootstrap, jQuery, etc.) l’intégralité de la plate-forme est supportée par Microsoft.

Signe de l’investissement de Microsoft sur l’open source, une organisation spécifique a été créé afin de gérer les projets Open Source liés à la plate-forme de développement de l’éditeur : .NET foundation.

Le rôle de cette organisation est de gérer l’ensemble des projets Open Source dont elle est a la responsabilité. Par gestion, on n’entend gestion des problématiques légales, gestion des secrets (certificats SSL, etc.), cette gestion n’inclue évidemment pas l’écriture de code qui par définition est ouverte à tous.

Cette organisation doit également dynamiser et animer tout l’éco-système Open Source autour de .NET, deux nouveaux membres ont rejoint cette organisation :

  • RedHat : pour leur inclusion de .NET Core au sein de RedHat Enterprise Linux
  • Unity : pour leur utilisation de C# et de Mono au sein de leur produit

Nouveautés de .NET

Les premières nouveautés décrites dans cette session sont détaillées dans les résumés des deux session suivantes :
The future of C#
Building Desktop Apps

La conversion de FxCop en tant qu’analysers Roslyn. Au lieu de vérifier des règles statiques lors de la compilation, il est désormais possible d’avoir une analyse en temps réél comme peut l’être la vérification syntaxique de code.

Déjà disponible en F#, une nouvelle fenêtre C# Interactive permet d’exécuter du code C# en live, sans effectuer la traditionnelle boucle écriture de code + F5 pour lancer l’exécution de l’application ainsi que le débugger.

Ajout d’un « super using » qui permet d’ajouter une référence à un namespace mais surtout de récupérer les assemblys nécessaire directement depuis nuget ! Ainsi au lieu d’accéder aux métadonnées d’assemblys Open Source référencées, nous aurons la possibilité de directement à leurs sources. A noter également la possibilité de débugger directement le code ainsi récupéré sans avoir à télécharger des PBDs ou autre fichier.

Build 2016 : EF Core B852

Tout comme ASP.NET 1.0 Core qui fut renommé à juste escient, EF Core a également été baptisé plusieurs fois avant de posséder ce nom (final ?). Entity Framework Everywhere, Entity Framework 7, et EF Core désignent donc un seul et même framework.

Comme pour la plupart des autres technos de développement Microsof, Entity Framework a évolué avec le temps avec d’être plus agile et livrer de nouvelles versions beaucoup plus rapidement :

image

Tout comme ASP.NET Core, EF Core ne couvre pas le même périmètre fonctionnel qu’EF 6, et est cross-platform :

De la même manière qu’EF cherche à tourner sur différentes plates-formes, Entity Framework cherche à être capable de consommer d’autres types de sources de données.

Les sources de données non relationnelles deviennent en effet de plus en plus présentes, et EF Core va donc s’adapter afin de supporter ces scénarios. Même s’il est à noter que la V1 ne contiendra que les providers relationnels. Des providers pour Azure Table Storage, et Redis devraient être disponibles ultérieurement.

Comme pour ASP.NET Core, EF est basé sur une architecture modulaire et extensible, avec la possibilité de rajouter les briques proposées par Microsoft ou utiliser des briques tierces.

Microsoft positionne EF 6 comme étant la version mature de d’EF, la version stable et fonctionnellement la plus avancée. A noter qu’il est probable que cette version n’évolue plus de manière importante. Vu le discours tenu, on peut penser que Microsoft la considère comme étant feature-complete, et ne fera pas d’investissement significatif dessus.

Quand à EF Core, il s’agit d’un développement from-scratch. Il s’agit donc d’une reélle V1. Il sera possible de porter du code d’EF 6 vers EF 1, mais il s’agira d’une migration avec probablement des adaptations manuelles à faire pour être compatible avec ce nouveau framework.

EF Core

Passons donc enfin à EF Core. Ce nouveau framework abandonne le principe du designer d’EDMX qui permet de manipuler plusieurs fichiers XML pour représenter le modèle. Il sera néammoins bien évidemment possible de gérer les scénarios database-first et code-first. Il n’y aura juste plus de designer usine à gaz, qui manipule des fichiers XML qui ne sont quasiment pas modifiables manuellement.

D’un point de vue performance, Microsoft annonce d’importants gains. Une démonstration est faite sur de la lecture simple d’une table à partir de modèles générées à partir de la BDD :

Les mêmes résultats ont été obtenus avec une requête ayant des critères Where assez simples ainsi qu’un regroupement, mais également sur des requêtes de modifications. Si les gains de performances annoncés sont rééls dans de réélles conditions d’utilisation, il s’agira là d’une très importante amélioration !

L’API de consultation des méta-données a été grandement simplifiée :

La gestion des applications multi-devices et cross-platform est supportée via la gestion de deux scénarios :

  • Partage d’un modèle unique utilisé par des applications sur différentes plates-formes
  • Partage d’un modèle unique stocké sur plusieurs bases de données et synchronisées au sein d’une BDD centrale

Des améliorations au niveau de la génération du code SQL sont également apportées avec notamment le support du batching de mise à jour et d’insertion :

La possibilité de composer une requête mixteà partir d’une requête SQL et d’un requête LINQ :

image

image