Bienvenue sur notre blog !

MCNEXT devient Infeeny en 2017 !

Retrouvez ici tous les Posts (+ de 600) des consultants et experts du groupe Infeeny (330 collaborateurs, pure player Microsoft).

Vous voulez en savoir plus sur Infeeny ou vous souhaitez nous rejoindre ?
Consultez notre site infeeny.com

Vous pouvez aussi nous suivre sur :
Twitter : @Infeeny_fr – https://twitter.com/Infeeny_fr
LinkedIn : https://www.linkedin.com/company/infeeny
– et vous abonner à notre chaîne YouTube Infeeny !

Actus : Devices – Juin / Juillet 2017

Actus Devices

Juin-Juillet 2017

 

Au sommaire :

  • Windows 10 1703 validé pour le déploiement en Entreprise

  • Windows 10 et la fin des branches CB, CBB, LTSB

  • Windows 10 et la désactivation de VBS dans IE

  • Windows 10 et la fin des mises à jour de Build pour certains processeurs

  • Fin de support pour SCCM 2012

  • Les nouvelles possibilités fournies par SCCM 1706

  • Migrer ses GPO dans Intune

  • A la découverte de Windows Analytics ou comment exploiter la télémétrie en Entreprise

Lire la suite

[Azure] Optimisation de vos chargement dans Azure Datawarehouse

Contexte :

Suite à la mise en place de données dans un projet Azure chez un client nous avons été confronté à des problèmes de performance lors de l’intégration des données dans notre Azure Datawarehouse

Afin de gagner du temps nous récupérons différentes interfaces sous format Csv que nous transformons en format .parquet

L’intérêt du format parquet est de gagner du temps lors de l’exploitation de ces différentes interfaces car le format parquet permet de structurer les données et de stocker les données de manière pré formaté.

Dans notre cas nous avons souhaité héberger ces données dans un service distribué comme Azure Data Lake.

Ce service est un service distribué qui permet de stocker les fichiers « formatés ». L’intérêt de ce système de stockage est de gagner du temps sur l’interrogation de ces fichiers car nous sommes sur un système distribué.

Lire la suite

Démo du Snapshot debugger de Visual Studio 2017

Annoncée à la //Build 2017 cette fonctionnalité propose la possibilité de prendre un snapshot (une image) de l’état de l’application en production et pouvoir débugger cette image dans Visual Sutdio.

Disponible en Preview depuis fin aout 2017.

Je vous propose de voir une démo de la mise en place et de l’utilisation de cette fonctionnalité.

Quelques liens :

[Azure] Installation d’une Gateway DataFactory

Contexte : Dans notre exercice nous essayons de réaliser une copie de données entre des données en local et Azure Data Lake store.
Pour réaliser ce transfert nous allons utiliser le service Azure Data Factory et nous avons besoins de réaliser une Gateway pour sécuriser les données entre notre machine local et notre Azure Data Lake Store.

Lire la suite

//Build 2017 – EF Core 2.0 / UWP streamable install / WinForms-WPF

Entity Framework Core 2.0: data, mobile, server, IoT, and more
Rowan Miller

This session presented the new features brought by EF Core 2.0, which is out as Preview 1 right now.

Like .NET Core, EF Core is built against .NET Standard 2.0 which means that it can be used on any platform: Windows, Xamarin, HoloLens, IoT, Linux, etc.

Here’s the summary of the new features demonstrated

  • Global Query Filters
  • Flexible Mapping
  • Context Pooling
  • Compiled Queries
  • Some currently in development features were also shown like complex type mapping (which already exists in EF6) and better migration with « SeedData ».

    Global Query Filters allows to define filters at the DbContext level.
    For example in soft delete scenario, instead of excluding « IsDeleted = True » in every queries, we can define in the configuration of the DbContext to exclude it globally.
    This is done with the following code:

    modelBuilder.Entity<Blog>().HasQueryFilter(p => !p.IsDeleted)

    The interesting part of that line of code is that the QueryFilter part is evaluated at every query.
    This allows to do things like this.

    public class MyDbContext : DbContext
    {
        public string TenantId {get; set; }
    
        public void OnConfigure(...)
        {
            modelBuilder.Entity<Blog>().HasQueryFilter(b => b.TenantId == TenantId);
        }
    }
    

    Flexible Mapping allows more possibilities when mapping a C# object to a table.
    One possibility is mapping a private field to a column.

    modelBuilder.Entity<Blog>.Property<string>("TenantId").HasField("_tenantId")
    

    When we want to retrieve the value of the column, we can write that line

    var value = EF.Property<string>(row, "TenantId")
    

    Context Pooling allows the use a pool of already instantiated DbContext (like a ThreadPool) when working with DI.
    Enabling it is pretty straightforward, just replace « .AddDbContext() » by « .AddDbContextPool() ».
    It has some restrictions because the DbContext needs to be cleaned before each use.

    Compiled Queries are now available in EF Core.

    var query = EF.CompiledQuery((DbContext dbContext, int id) => dbContext.Table.First(a => a.Id == id))
    var result = query(dbContext, id);
    

    During the session, the speaker demonstrated the « EF Everywhere » by running a UWP application with EF Core on a Raspberry Pi named « Unicorn Launcher » that launched a small rocket into the air.

    https://docs.efproject.net
    https://github.com/aspnet/entityframework
    https://github.com/rowanmiller/demo-efcore

    XAML custom controls for UWP: Start to finish
    John Bristowe, Nikola Metulev

    This was a disappointing session.
    I tried my chances with this session based on its description which promised to explain the best pratices and UX design patterns for accessibility and input methods (mouse, keyboard, game controller, HoloLens) when creating custom controls in XAML.

    But in fact, it was a plain simple session on how to use and create controls in XAML (that is the same thing since the introduction of WPF 10 years ago).

    This session was more of an advertisement for UWP Community Toolkit and UI for Telerik.

    Here’s what we saw

    • 1st party controls: Button, TextBox, etc.
    • 3rd party controls: UWP community toolkit, Telerik, etc.
    • Restyled controls (Style, Template)
    • Extended controls (Inheriting controls to add behaviors)
    • Custom controls

    Nextgen UWP app distribution: Building extensible, stream-able, componentized apps
    John Vintzel, Sandeep George

    This session talked about some new features for UWP concerning the distribution of the apps.

    First, we were shown the « App streaming installation » feature that allows to download only a « required » part of the application and run it even before its full download. This can be compared to how Xbox games can be partially downloaded and run.

    This is available right now in the Creators Update.

    All the magic lies in a manifest file named « AppxContentGroupMap.xml » that is included in the UWP app. The Windows Store then uses this file to know how to install it.
    This feature comes with all the needed API to finely manage how to application reacts to missing parts, prioritizes parts to download and gets feedback on the progression of the download.

    APIs are also available to debug the app to simulate a state of partial download.

    For more information, see https://aka.ms/uwpstreaminginstall

    Coming in the Fall Creators Update, optional packages for UWP will be available.
    We can see it as DLC or plugins for existing UWP apps.
    It extends an existing app (or many) by adding contents and/or features and it can be sold separately.
    A UWP app that allows for optional packages can also receive packages from other publishers.

    For more information, see https://aka.ms/uwpoptionalpackages

    Modernize WinForms and WPF apps with maximum code reuse, cross-platform reach, and efficient DevOps
    Joshua Weber, Mike Battista

    This session was also non-surprising.
    It was aimed at those stuck with WinForms/WPF and who didn’t followed the other technologies in the meantime.

    To start, we were explained how to leverage the Desktop Bridge to take advantage of all the new APIs of Windows 10.
    Then, by moving the codebase of an existing app to a .NET Standard 2.0 lib, the code was reused into a Xamarin app.
    To end this session, we were presented Visual Studio Mobile Center to setup CI/CD for the Xamarin app.

//Build 2017 Day 3 – Sessions

Pour ce dernier jour de la build nous avons eu plusieurs sessions sur le future des outils/langages de Microsoft.

1- The future of Visual Studio

Cette session présentée par Amanda Silver, Tim Sneath avec une intro de Sadiq Shaikh que le grand public a découvert lors de la //Build 2016 avec le projet des lunettes connectés pour aveugle.

Sadiq Shaikh est intervenu pour nous montrer comment un aveugle peut coder. Il a commencé par énuméré les différentes nouveautés coté accessibilité dans Visual Studio et enfin il a terminé par une démo époustouflante du développement d’une appli console « Hello World » !

Amanda Silver a enchainé avec les nouveautés dans la version courante de VS 2017 et la prochaine MAJ (l’update 3 qui est en preview) :

    • Live Unit Testing qui arrive sur .NET Core.
    • Les nouvelles fonctionnalités de refactorisation (qui vont visiblement évolués encore plus)
    • L’amélioration de l’intellisense
    • Une nouvelle UI pour la recherche de références
    • Les moyens de rajouter un container Docker (windows ou Linux) dans la dialog de création de projet et avec un clique droit sur un ancien projet web.
    • Une extension Continuous delivery qui permet d’être notifié des differents evenements qui se passent sur VSTS

Tim Sneath a terminé la session sur plusieurs démo qui concerne le développement C++ d’un projet Linux qui s’exécute (avec du debug) en local sans VM en utilisant le subsystem linux de Windows 10.

2- The future of C#

Le nom de cette session est encore une fois trompeur, je n’ai vu que deux ou trois évolution de C# lors des 10 dernières minutes de la session, le reste était plus un rappel des dernières évolution de C# 7 (notamment les out variables, Is-expressions with patterns,  … ).

Les nouveautés présentés sont :

3- What’s new with the Microsoft Bot Framework

Plusieurs annonces:

4- Modern front-end web development in Visual Studio 2017

Dans cette session, Mads Kristensen l’inventeur de Web Essentials nous a fait quasiment que des démos pour nous présenter les fonctionnalités qui améliorent la vie d’un développeur front-end dans Visual Studio 2017 via des plugins:

Avec une mention spécial pour Client-Side Library Installer qui sera proposé dans un premier temps via un plugin et plus tard intégré nativement dans Visual Studio. Ce Plugin permet d’installer (restaurer) et de consommer facilement des bibliothèques côté client tiers: il suffit de précisé la source (cdnjs, npm (à venir), filesystem …) la lib avec sa version, le ou les fichier à récupérer, et la destination (voir le readme sur GitHub). Super plugin !

Et aussi une petite partie sur comment le compilateur TypeScript peut maintenant dans Visual studio (via une option activable dans le tsconfig + doc JSdoc) faire de l’analyse et des contrôles dans un fichier JavaScript sans aucun fichier .ts ou .d.ts

Et pour terminer, une belle découverte JavaScriptServices un ensemble de techno client-side pour ASP.NET Core qui fournit l’infrastructure pour:

  • Utiliser Angular 2/ React / Vue / Aurelia / Knockout / etc.
  • Compiler les ressources du front avec Webpack.
  • Exécuter le JS sur le serveur au runtime.
  • Faire du prerendering coté serveur pour un affichage instantané de l’HTML coté client et pour l’indexation dans les moteurs de recherche.