Blogs CodeS-SourceS

Blogs, blogs, blogs et encore des blogs ! Ici les développeurs vous font
partager leurs expériences, trouvailles mais également des informations funs.
Bref la vie de tous les jours des développeurs pas forcément braqués sur du code !

Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide
dans Rechercher

Aleks's Blog

Un framework pour les dominer tous

  • Powershell c'est puissant ... même pour les développeurs :)


    Etape 4 : On ajoute le type correspondant à notre classe dans le session Powershell courante en spécifiant les assemblies externes nécessaires (celles qu'on a chargé dans l'étape 3)

    Etape 5 : On appelle la méthode de notre code

    Personnellement, cette technique m'a particulièrement été utile pour créer des scripts destinés à valider/tester un programme (appel à un web service, exécution du code d'une DLL, etc.)

    Je m'intéresse depuis quelques temps à Powershell car je dois faire des scripts pour faire installer ou migrer des systèmes que j'ai conçus/développés. J'insiste sur le "faire installer" car la plus part du temps ce n'est pas un membre de l'équipe de développement qui déploie les applications mais plutôt un membre de l'équipe de production.

    PowerShell est normalement suffisamment puissant pour pouvoir faire ces tâches. Cependant, il arrive que certaines tâches requiert du code supplémentaire. Et, étant donné notre background, pourquoi ne pas faire du C# ?!

    Etape 1
    $resolver = @"
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Reflection;
    namespace Utils
    {
    public static class AssemblyResolver
    {
    private static Dictionary<string, string> _assemblies;

    static AssemblyResolver()
    {
    var comparer = StringComparer.CurrentCultureIgnoreCase;
    _assemblies = new Dictionary<string,string>(comparer);
    AppDomain.CurrentDomain.AssemblyResolve += ResolveHandler;
    }

    public static void AddAssemblyLocation(string path)
    {
    // This should be made threadsafe for production use
    string name = Path.GetFileNameWithoutExtension(path);
    _assemblies.Add(name, path);
    }

    private static Assembly ResolveHandler(object sender,
    ResolveEventArgs args)
    {
    var assemblyName = new AssemblyName(args.Name);
    if (_assemblies.ContainsKey(assemblyName.Name))
    {
    return Assembly.LoadFrom(_assemblies[assemblyName.Name]);
    }
    return null;
    }
    }
    }
    "
    @

    # Ajout du code C# du resolver dans la session powershell
    Add-Type -TypeDefinition $resolver -Language CSharpVersion3

    Etape 2
    $Source = @"
    using System;
    using System.Windows.Forms;

    namespace TestApplication
    {
    public class Program
    {
    public static string Test()
    {
    MessageBox.Show("
    $message");

    return "
    OK";
    }
    }
    }
    "
    @


    Etape 3 : On charge les assemblies nécessaires à l'exécution du code
    [Utils.AssemblyResolver]::AddAssemblyLocation("System.Windows.Forms.dll")
    $Assem = @(
    "System.Windows.Forms.dll"
    )

    # Ajout de notre code c# et de ses références dans la session powershell
    Add-Type -ReferencedAssemblies $Assem -TypeDefinition $Source -Language CSharp

    $result = [TestApplication.Program]::Test()
    write-host $result -foreground "green"

    # Paramètre du script
    Param([string]$message="toto")

    # Obtenir le chemin du répertoire du script c'est toujours bon
    $scriptpath = $MyInvocation.MyCommand.Path
    $dir = Split-Path $scriptpath

    # Code permettant de charger les assemblies en mémoire (voir un peu plus bas)
    $resolver = @"
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Reflection;
    namespace Utils
    {
    public static class AssemblyResolver
    {
    private static Dictionary<string, string> _assemblies;

    static AssemblyResolver()
    {
    var comparer = StringComparer.CurrentCultureIgnoreCase;
    _assemblies = new Dictionary<string,string>(comparer);
    AppDomain.CurrentDomain.AssemblyResolve += ResolveHandler;
    }

    public static void AddAssemblyLocation(string path)
    {
    // This should be made threadsafe for production use
    string name = Path.GetFileNameWithoutExtension(path);
    _assemblies.Add(name, path);
    }

    private static Assembly ResolveHandler(object sender,
    ResolveEventArgs args)
    {
    var assemblyName = new AssemblyName(args.Name);
    if (_assemblies.ContainsKey(assemblyName.Name))
    {
    return Assembly.LoadFrom(_assemblies[assemblyName.Name]);
    }
    return null;
    }
    }
    }
    "
    @

    # Ajout du code C# du resolver dans la session powershell
    Add-Type -TypeDefinition $resolver -Language CSharpVersion3

    # Le code source
    $Source = @"
    using System;
    using System.Windows.Forms;

    namespace TestApplication
    {
    public class Program
    {
    public static string Test()
    {
    MessageBox.Show("
    $message");

    return "
    OK";
    }
    }
    }
    "
    @

    # Chargement des assemblies
    [Utils.AssemblyResolver]::AddAssemblyLocation("System.Windows.Forms.dll")

    $Assem = @(
    "System.Windows.Forms.dll"

    # On peut également charger toutes les assemblies d'un répertoire !
    #ForEach ( $assembly in $Assemblies)
    #{
    # "$dir\Assemblies\$assembly"
    #}
    )

    # Ajout de notre code c# et de ses références dans la session powershell
    Add-Type -ReferencedAssemblies $Assem -TypeDefinition $Source -Language CSharp

    $result = [TestApplication.Program]::Test()
    write-host $result -foreground "green"

    # On attend que l'utilisateur appuie sur une touche avant de quitter
    Write-Host "Press any key to continue..." -ForegroundColor Magenta
    $null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

  • VS 2010 : Placer rapidement un breakpoint

    Scénario : Vous avez une solution avec beaucoup de fichiers et beaucoup de ligne de code. Vous voulez placer un Breakpoint sur une méthode ou propriété dont vous connaissez le nom. Plutôt que de tenter de la retrouver dans cette "pelotte de laine", faites un CTRL + B et taper le nom de la méthode/propriété.

     

     

    Vous pouvez également taper le nom de la méthode/propriété dans la textbox "Find" (ou CTRL + D) puis appuyer sur la touche F9 du clavier.

     

  • Y'a des erreurs qui peuvent rendre le développeur violent

    Quand on a ce genre d'erreur sans log :

     

    IsInvalid

     

    Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye !

  • Build Windows Acte 4 - Scene 1 - Windows Runtime internals: Understanding "Hello World"

    Le Windows Runtime fait vraiment le Buzz dans cette édition du Build. Beaucoup d'inconnues existent concernant ce composant et j'ai pu participer à pas mal de discussion au sein de la communauté de développeurs francophone.

    • Qu'elle est le lien avec le Framework .NET ?
    • Peut-on utiliser les DLL .NET ?
    • Qu'est-ce qui change pour les développeurs .NET ?

    Autant de question dont on espère avoir des réponses aujourd'hui.

    Pas à pas sur le cycle de vie d'un projet "Hello World"

    Archi WinRT

    La vie d'une application Windows Runtime et Metro c'est (grosse maille) :

    • Installation
    • Touch (lancement)
    • Exécution

    Installation

    • Le  projet d'application WinRT possède un fichier manifest (XML) qui décrit l'application.
    • Lors de l'installation, toutes les informations sur l'application sont enregistrées dans la base de registre
      • La classe d'entrer de votre application (la seule connue par Windows 8)
      • Le type d'activation (In-process ou out of process)
      • L'application qui va exécuter votre application (wwahost.exe pour les applications html 5, par exemple)

    Exécution

    Lors du lancement de l'application, l'explorer parcourt toutes les clés de registre liées à l'application.

    • Création d'un extention Catalog
    • Création d'un Extension Registration et activation (lancement de l'application)

    En arrière plan, Explorer va utiliser un composant nommé RPCSS qui lui même va utiliser un composant nommé DCOM Launch. C'est ce dernier qui lance réellement l'exécutable.

    C'est un peu compliqué d'expliquer tout ça en live, mais ce qu'il faut retenir c'est que toutes les informations nécessaires à l'exécution de votre application est dans la base de registre et que le trio Explorer, RPCSS et DCOM Launch est en charge du lancement de votre application.

    Deep dive dans le Windows Runtime

    • Tous les composants de Windows Runtime sont référencées dans la base de registre (sous Current machine).
    • Lors du lancement d'une application, les premières étapes vont charger les composants nécessaires à l'application à l'aide d'un ActivationID unique par composant.
    • Lors des premiers moment de vie de l'application, on peut retrouver l'appel à des fonctions tel que QueryInterface, AddRef, Release ... souvenir souvenir.

    Remarquez quand même comme tout ces processes ressemble étrangement au fonctionnement des objets COM ... Bonne nouvelle ou mauvaise nouvelle ?

    En tout cas, ce qui est sur, c'est qu'on n'a pas besoin de connaitre tout ça pour faire des applications sous WinRT.

  • Build Acte 3 - Scene 2 - Delivering notifications with the Windows Push Notification Service adn Windows Azure

    Live tiles avec les Push Notifications

    Pour rappel, les live tiles sont les "icônes" animées dans la nouvelle interface de Windows 8.

    Ces live tiles, peuvent être mise à jour même quand votre application est suspendue. Cela passe par les Windows Push Notifications (WNS). Ce n'est pas la seule façon d'intéragir avec ces "icônes" (Tiles notifications, Toast notifications) mais ce n'est pas le but de cette session d'expliquer les autres possiblités.

    WPNS est basé sur un service que vous devez développer et qui va demander à un service chez Microsoft d'envoyer des notifications. L'application que vous développez doit demander une URI à Windows 8 qu'elle va transmettre à votre service.

    Windows Push Notifications

    Quand le service MS enverra une notification à un device, c'est Windows 8 qui saura mettre à jour votre Tile (votre application est peut-être en mode suspendue).

    Pour avoir accès à cette fonctionnalité, il faut d'abord s'enregistrer au près de Microsoft : https://manage.dev.live.com

    Windows Azure Toolkit for Windows 8

    Windows Azure Toolkit for Windows 8 permet de créer un service pour le Push Notifications. En fait, il ajoute un template de projet dans Visual Studio 2010. Lorsque l'on crée un projet de type Windows 8 Cloud Notification : 

    • un projet de type Cloud service est créé (dans VS 2010)
    • un projet de type application Windows 8 est créé (à ouvrir dans VS 2011)

    Windows 8 Cloud application template

    A noter que, pour l'instant, l'application Windows 8 est en Javascript. Espérons qu'on pourra choisir un autre langage.

    Voici le lien pour télécharger ce SDK : http://watwindows8.codeplex.com/

    Discours commercial

    Pourquoi utiliser Windows Azure pour héberger votre service de notifications ? Il y a aujourd'hui potentiellement 450 millions de machine (celles qui ont aujourd'hui Windows 7) qui vont, potentiellement, avoir votre application.

    Il y a donc un vrai risque d'avoir un problème de charge rapidement. Windows Azure permettra de répondre à cette problématique avec tous les services qu'il propose (cache, load balancing, CDN, etc.)

  • Build Acte 3 - Scene 1 - Working on an agile team with Visual Studio 11 and Team Foundation Server 11

    Prioritize

    La première étape de la méthode Scrum est d'avoir un backlog (tâches, Bugs, users stories, etc.) avec des priorités.

    L'applicatin Web de TFS 2011 a complètement été refaite en MVC et est maintenant beaucoup plus rapide.

    Cette application contient un onglet BackLog qui permet de gérer tout le backlog des sprints par l'intermédiaire de Drag & Drop vraiment bien fait. Et en plus, cela fonctionne sur tous les navigateurs du marché.

    Backlog

    A noté que TFS 2011 viendra, par défaut, avec les deux templates de projets connu (CMMI et MSF Agile) plus un template Scrum.

    Planning

    Dans cette étape, le but est de plannifier le travail. Le premier travail à faire est rééstimer ce qui a été fait dans l'étape précédente. Il existe plusieurs techniques mais la plus connu est le "Planning poker" (réstimation avec des cartes).

    Ensuite, on va mettre les eléments du Backlog dans le Sprint et en déterminer des tâches.

    Dans le site web de TFS server 2011, toujours dans la partie Backlog, il est possible de gérer toutes ces étapes. La vue montre, notamment, la capacité de l'équipe (combien de travail elle peut fournir) et la capacité nécéssaire pour réaliser le sprint. Le tout est recalculé directement lorsque l'on change les valeurs (par exemple, la capacité par jour d'une personne de l'équipe).

    Une vue "Board" permet de voir les eléments du sprint et des tâches en fonction de leur états. Le Drag & Drop est, biensur, toujours de la partie.

    Au niveau fonctionnalités, on a également un Burndown chart qui se met à jour en temps réel.

    Burndown Chart

    Execute

    La méthode mis en avant pendant la présentation pour réaliser (développer) les tâches est "Red, Green, Refactor". L'idée est :

    • de créer un test,
    • de voir qu'il est "rouge" (failed),
    • de développer la fonctionnalitée,
    • de rejouer le test et de voir qu'il est "vert" (success)
    • Après plusieurs développement, on refactor (on néttoie) le code pour avoir plus de cohésion.

    Pour faire tout ça, on utilise les fonctionnalités de test unitaire de Visual Studio 2011.

    Respond

    Une fois que le produit est développé et en production, il faut répondre aux demandes des clients. Cela va impliquer la mise à jour du Backlog (nouveaux éléments -> nouvelles tâches -> nouveaux tests -> nouveaux développements).

    Afin d'améliorer ce processus, nous pouvons maintenant nous baser sur les indicateurs récoltés du/des sprints précédents pour être, par exemple, plus précis dans ses estimations en regardant la velocité.

  • Build Acte 2 - Scene 4 - Using the Windows Runtime from C# dans Visual Basic

    Introduction

    Jusqu'ici, pour avoir accès aux périphériques systèmes en C# ou autre, il fallait passer par l'obscure P-Invoke. Cela n'était pas naturel.

    Avec Windows Runtime (WinRT), nous pouvons maintenant accéder à ces ressources de manière beaucoup plus naturelle grace à des classes dédiées.

    D'une certaine manière, WinRT remplace P-Invoke.

    Généralités

    • Designé pour être utilise depuis les langages .NET (classe, events, etc.).
    • Encore une fois, un XAML quasiment complètement compatible (quelques changements dans les namespaces).

    Usages

    • CameraCaptureUI() : Donne accès à la web cam.

    var ui = new CameraCaptureUI();

    ui.PhotoSettings.CroppedAspectRatio = new Size(4,3);

    var file = await ui.CaptureFileAsync(CameraCaptureUIMode.Photo);

    • DataTransferManager : Permet d'avoir accès aux fonctionnalités de partage entre application (exemple : partage une photo qu'on vient de prendre sur Facebook)
    • Il existe deux cas où le match n'est pas complet entre le frameowk .net et WinRT
      • IInputStream : Pour obtenir un System.IO.Stream -> monStream.AsStream()
      • IBuffer : Cette interface est utilisé dans WinRT. Il peut arriver qu'on est besoin de convertir un tableau de byte en IBuffer. Voici comment faire data.AsBuffer() (où data = byte[])

    Création de ses propres composants WinRT

    • Pour créer son propre composant il faut respecter certaines règles :
      • la signature de ce qui est exposé (public) ne doit comporter que des types WinRT.
      • Si vous exposé un Struct, il ne doit contenir que des variables publiques.
      • Les classes doivent être sealed.
      • Le quatrième, désolé, mais je ne m'en souviens plus.
    • Un petit point ... "marant". Quand vous utilisez un composant WinRT depuis du code Javascript, le compilateur converti automatiquement le Pascal Case en Camel Case (exemple : Première lettre d'une propriété publique en majuscule devient minuscule)
  • Build Acte 2 - Scene 3 - What's new in Visual Studio 11 for Application LifeCycle Management

    J'ai pris cette session en cours car celle où je souhaitais aller (sur Windows Runtime) était complète. On se croirait aux TechDays ...

    Le but principal des modifications qui ont été apportées à Visual Studio 11 au niveau ALM est de garder les membres de l'équipe dans leur "zone". L'idée c'est d'être le moins polué possible par des demandes diverses.

    Visual Studio 11 en général

    • Preview Tab : Encore une autre fonctionnalité qui vise à ne pas "poluer" votre Visual Studio lorsque, par exemple, vous débugger du code. En effet, jusqu'ici, si vous vous lanciez dans un débuggage, au fur et à mesure que vous pourrez le code, des fichiers sont ouverts et vous vous retrouvez facilement avec 50 fichiers ouverts. Preview Tab permet d'ouvrir ces fichiers dans un seul Tab.
    • Via une commande PowerShell, il est maintenant possible d'activer l'intellitrace directement sur un serveur (de production par exemple) afin d'obtenir l'ensemble des informations de débuggage. Cela aura pour conséquence de créer un fichier qui pourra être en suite ouvert dans Visual Studio pour analyser les problèmes potentiels.

    Team Explorer

    • La fenêtre Team Explorer a été revu. On a maintenant une vue sur le travail qu'on a faire.
    • Une nouvelle fonctionnalité permet de simplement "suspendre" le travail en cours. L'idée, c'est que, si en cours d'un développement, on vous demande corriger en urgence quelque chose, vous suspendez votre travail pour y revenir plus tard. Cela mettra en étagère vos modifications (Shelve) mais également l'état de votre visual studio (point d'arrêt, fenêtres ouvertes, etc.)
    • Vous pouvez également maintenant demandez la revue d'une modification que vous avez effectuée.

    Unit test

    • La fenêtre de test unitaire a également été revu
    • Visual Studio 11 permet maintenant d'intégrer l'utilisation d'autre framework de Test unitaire tel que NUnit.
  • Build Acte 2 - Scene 2 - Metro style apps using XAML - what you need to know

    Cette session doit nous présenter les spécifités de XAML dans Metro ou, en tout cas, ce qu'on doit savoir pour développer une application. En tant que développeurs, on sera rassuré de savoir que nos acquis ne seront pas remis en cause.

    Autre petite chose qui, à mon avis, à son importance pour comprendre la phylosophie derrière Metro, depuis le début de la conférence, il y'a une phrase qui ressort tout le temps et qu'on va, à mon avis, entendre très souvent : "Fast and Fluid". On entend également souvient : "Touch First". Cela montre que Microsoft veut investir massivement dans les interfaces tactiles.

    On nous rassure et on nous explique

    • Le fonctionnement de XAML pour une application "Metro" est tout à fait similaire au XAML d'une application WPF ou Silverlight.
    • Les contrôles XAML sont natifs à l'API WinRT. On peut donc, à priori, utiliser exactement le même XAML que ce qu'on a l'habitude de faire en WPF ou Silverlight.
    • L'intégration à WinRT apporte, notamment, le support à la fois des actions utilisateurs via la souris mais aussi via le Touch. Les évènements sont maintenant concentrés au tour de l'objet "Pointer" pour connaitre les actions réalisées.
    • Le namespace Windows.UI.Xaml fait son apparition
    • L'accès aux différentes ressources (réseau, système de fichier, etc.) se fait d'une manière très similaire à ce qu'on pouvait faire avec le framework.net standard. Cependant, étant donné que nous passons maintenant par l'API de WinRT, les objets utilisés sont légèrement différents.
    • Une application dans Metro est composé du Tile ("l'icône" représentant l'application), du SplashScreen et de l'application en elle même.
    • Quelques nouveaux contrôles

      • GridView, ListView
        • Nouvelle méthode pour sélectionner un item (checkbox intégré), g
        • Grouping intégré,
        • Data et UI virtualisation
      • MediaPlayer : Plus besoin de construire son propre contrôle. Il est maintenant intégré et permet de faire toutes les actions de base (pause, position de lecture, stop, etc.)
      • FlipView : Permet de visualiser une image à la fois. Les animations sont intégrées par défaut.
      • ToggleSwitch
      • ProgressRing
      • JumpViewer
      • ApplicationBar

        • Comme sous Windows Phone 7, nous avons maintenant accès à une applicationBar qui vient remplacer le menu des applications standards.
        • C'est ici qu'il est conseillé d'ajouter les actions spécifiques aux contextes de l'application.
        • Pour contrôler cette barre, il suffit d'utiliser le contrôle ApplicationBar et de mettre ce qu'on veut dedant (StackPanel, Button, etc.)
        • Quelques fonctionnalités supplémentaires

          • Les actions graphiques, tel que les animations, sont gérés par le GPU et plus par le CPU
          • Gestion des Gestures et des manipulations avancées.
          • Possibilité d'afficher du texte sur plusieurs colonnes.
          • Nouveautés liés à la gestion de device varié

            • Résolution
              • La résolution courante peut-être obtenu comme-ça : Window.Current.Bounds
              • L'évènement associés : Window.Current.SizeChanged
            • Orientation
              • L'orientation courante peut-être obtenu comme-ça : DisplayProperties.CurrentOrientation
              • L'évènement associé existe.
            • Layout
              • Le Layout courant peut-être obtenu comme-ça : ApplicationLayout.Value
              • L'évènement associé existe.
            • Application LifeCycle

              • Active
              • Suspended : On peut être notifié
              • Terminated : On ne peut pas être notifié
              • Build Acte 2 - Scene 1 - Keynotes

                Visual studio 2011

                • Avec la dernière version du SDK Azure, il est maintenant possible d'instrumenter le code d'une application azure.
                • L'éditeur d'image a été revu pour intégrer des fonctionnalités plus avancées comme, par exemple, la gestion de l'alpha.
                • Un editeur d'objet 3D a été ajouté. Le but n'est pas du tout de remplacé un 3DS MAX mais juste de pouvoir des opérations très simple comme, par exemple, changer l'image d'une texture.

                Nouveautés pour les développeurs Web

                • Nouvelle vue pour les développeurs Web dans Visual Studio : DOM explorateur. Je ne pense pas qu'une explication soit nécessaire pour comprendre ce que ça fait :)
                • Une nouvelle fonctionnité dont le nom est difficile à retenir (désolé) permet de configuré un répertoire pour déterminer ce qu'il contient (CSS, JS). Cela permet à Visual Studio d'automatiquement combiner et compresser ces fichiers. Cela permet également d'éviter d'avoir des noms de fichiers spécifiques (site.css par exemple). On peut y mettre n'importe qu'elle fichier css et il s'aura les utilisers.
                • Comme prévu, les WebSockets ont été intégrées pour les développeurs web. Celles-ci sont utilisables depuis un client Web mais également via WCF.
                • Windows Azure

                  • Amélioration de l'Access Control pour permettre l'utilisation de provider d'indentité divers (Yahoo, Facebook, Google, Live). La classe centrale pour mettre en place ce type d'authentification est Windows.Security.Credentials.PasswordVault()
                  • L'identité obtenu peut en suite être utilisé pour accéder à d'autres informations dans Azure (Data Marketplace)
                  • Il va être possible de synchroniser les données sur plusieurs datacenter Azure via le service de Geo-replication.
                  • Divers

                    Si vous avez accès à Discovery Channel, vous pourrez suivre la construction d'une voiture à base de Mustang avec une tonne de technologie Microsoft intégrée (réalité augmenté via l'affichage d'informations sur le parebrise, système de géo-localisation et de gestion de la voiture basé sur Azure, etc.)

                  • Build Windows Acte 1 - Scene 2 - Big Pictures

                    Tiles

                    Les tiles sont les "icônes" de l'interface Metro. Une grande partie de la session leur a été consacré pour montrer qu'ils sont vraiment important et qu'il faut les voirs comme la porte d'entrée de votre application. Ils permettent de donner envie à l'utilisateur d'entrer pour voir les nouveautés.

                    Développement avec Metro

                    Un des principes de Windows 8 est de s'assurer que l'application répond toujours (comme sous Windows Phone 7 pour ceux qui connaissent). Pour aider les programmeurs, deux nouveau mots clés sont introduit : async / await.

                    La nouvelle API WinRT (Windows Runtime) offre une grande simplification de l'accès aux périphériques. 2 lignes de code suffisent pour prendre une photo avec une caméra intégré.

                    Une application qui n'est plus ouverte dans Metro est suspendue au bout de 5 secondes. A ce moment, l'application est toujours en mémoire, mais elle ne consomme plus de ressource processeur.

                    Autre changement lié à Metro et à l'utilisation des doigts pour intéragir avec le système, il n'est plus possible d'afficher plusieurs écrans. Vous pouvez donc oublier les MessageBox.

                    Concernant le développement en Javascript, Microsoft fournit des scripts js pour accéder à l'API WinRT. Le moteur HTML/Javascript est exactement le même que celui utilisé par Internet Explorer 10. Cependant, l'application s'exécute bien directement dans Metro et pas dans IE. Les développeurs Windows se demanderont certainement pourquoi supporter ce language ? L'idée est de données accès aux développeurs Web à Windows 8 afin de créer des applications plus évoluées ayant accès directement aux ressources du système et notamement aux périphériques.

                    D'ailleurs, à propos des ressources, à chaque fois qu'une application voudra accéder aux ressources, une autorisation sera demandé à l'utilisateur. On se retrouve dans un contexte assez similaire à Silverlight ou Flash lorsqu'on voulait accéder à la Webcam, par exemple.

                    Déploiement d'applications

                    Comme vu dans le précédent post, il est possible de déployer vos applications dans le Windows Store. Mais, pour pouvoir tester ou faire tester ses applications, il également possible de créer un package local.

                    La question en suspend dans ma tête, quid du déploiement d'applications d'entreprises ? Doit-on oublier Click once ? J'essaierais de poser la question dans une autre session.

                    Visual studio 11 express

                    Juste quelques petites choses à propos de cette version de Visual Studio, Microsoft a intégré le designer de Blend. On va donc enfin pouvoir vraiment l'utiliser.

                    D'autre part, il est possible très simplement (configuration du projet) de débugger l'application sur laquelle on travail sur une autre machine distante. Le scénario visé c'est un développeur sur ça machine de travail sur-puissante qui souhaite débugger sur un périphérique moins puissante (une tablette pc, par exemple).

                    Vous pouvez également debugger dans un simulateur (comme pour Windows Phone 7). Cela vous permettra de tester plusieurs configuration (résolution, simulation des actions aux doigts, rotation du device, etc.)

                  • Build Windows Acte 1 - Scene 1 - Keynotes

                    Nous venons d'assister à la Keynotes de la Build 2011. Et voici un aperçus de ce qu'on y a appris.

                    Introduction
                    • 450 000 000 de licence windows 7 vendu
                    • Pour la première fois, Windows 7 compte plus d'utilisateur que Windows XP
                    Présentation globale de Windows 8
                    • Tout ce qui fonctionne sur Windows 7 fonctionnera sur Windows 8
                    • De vrai gain en performance (windows 8 consomme, par exemple, beaucoup moins de ram que Windows 7)
                    • Le spellchecking est disponible directement pour toutes les applications.
                    • Les applications peuvent échanger des données entre elle (exemple : copier du texte dans IE et l'envoyer par mail, lié la fonction de recherche windows à sa propre application)
                    • Nouveau windows Task manager (photo) :
                      • Une vue permet de voir l'historique de l'utilisation des ressources d'une applicaiton (processeur, mémoire, etc.)
                      • Une vue montre, en temps réel, l'utilisation des écritures/lectures disque
                      • Généralement, le blog http://blogs.msdn.com/b8 a déjà montré ses nouveautés

                    • Nouvellement façon de récupérer le système (Recovery)
                      • Mode Refresh : fichiers personnels et applications non touchées. Seule le système est réinitialisé
                      • Mode Reset : tout est remis à l'état origine. Fichiers personnels perdus, applications perdu, etc.)
                      • Il existe une ligne de commande pour que l'état actuel du pc devienne la base line du refresh (si on a installé VS par exemple et on veut qu'il soit conservé après un refresh)
                    • Windows assessment console : Nouvel outil avec plein d'informations sur la machine (capacité de la machine en multimedia), état de la batterie, etc.
                    • Le remote Desktop a été réécrit pour supporter l'interface Metro
                    • Hyper V intégré
                    • Gestion intégré des ISOs. Possibilité de monter une ISO comme si c'était un nouveau disque, par exemple.

                    Globalement, je trouve qu'on dirait vraiment un windows phone 7 sur un plus grand écran avec plus de menu. Mais finalement, ce n'est pas si mal que ça. Ca permet de garder une forte cohérence dans l'utilisation de tous les devices.

                    Building applications

                    • winRT = Windows Runtime = nouvelle API pour faire des applications plus simplement et intégrées à Windows 8
                    • Visual Studio 11 express for windows developper (version dédié pour développer des applications sous Windows 8)
                      • Language dispo : Javascript, C#, VB, C++
                      • System de template comme pour les applications web
                      • Application = HTML + CSS + JS ou c# ou VB ou C++ ... c'est du pure web
                    • Expression Blend 5 : Permet maintenant d'éditer du HTML et CSS
                    • Depuis ce visual studio, on peut uploader l'application sur le Windows Store (Marketplace) et la distribuer (vendre)
                    • Le Windows Store permettra également de des applications qui sont distribuées par d'autre canaux (site web par exemple)
                    Le Hardware
                    • Boot ultra rapide (- 8 secondes)
                    • Securité : antivirus, antispyware intégré
                    • Un système entre le shutdown et l'hibernation permet de démarrer immédiatement tout en consommant un minimum d'énergie en veille.
                    • Une gros travail a été effectué pour permettre la détection du mouvement du doigt à partir d'un seul pixel (pour les menus au tour de l'écran).
                    • Support du NFC, de l'accélérateur gyroscopique, du magnetometre, 3G, compass, etc.
                    Connection au Cloud services (windows live)
                    • Toutes les applications live ont été réécrites pour avoir le style Metro
                    • Nouvelle APIs (notamment pour Skydrive)
                    Remarques supplémentaires
                    • Les applications présentées dans le keynotes étaient réalisées par des lycéens américains (17 equipes, 2-3 developpers par equipe, 10 semaines)
                    • La roadmap génrale est la suivante
                      • La preview de Window 8 sort maintenant
                      • Après ça sera la Beta puis la RC puis la RTM et enfin la GA (glabal availability)
                    • La preview de Windows 8 sera téléchargeable le 13 septembre à partir de 20 heure (Pacific time) ici : http://dev.windows.com

                    Et enfin, les rumeurs étaient fondées, un Samsung windows developer preview pc sera offere à tous les participants !!!! En voici les caractéristiques :

                    Posté le mardi 13 septembre 2011 21:22 par Aleks | 0 commentaire(s)
                    Classé sous :

                    Attachment(s): tASK.jpg
                  • Il y a des choses plus graves ... mais je voulais vous tenir au courant tout de même

                    Juste un petit post pour vous indiquer que je ne suis plus MVP depuis début Avril. C'est à ma demande que je n'ai pas été renouvellé cette année mais il ne faut pas se voiler la face, je ne méritait plus vraiment de l'être. Cela s'explique tout simplement par mes activités professionnelles qui ont changées et une vie de famille de plus en plus prenante. Je resterais néanmoins le plus actif possible dans la communauté.
                  • Bravo et merci Microsoft !

                    Ca fait quelques mois déjà que des spams sont envoyés depuis mon compte hotmail. Non ce n'est pas un virus puisque :

                    - 1 : j'ai installé 150 antivirus et qu'ils n'ont rien détectés

                    - 2 : Les e-mails sont envoyés alors que je n'ai aucun PCs de connectés.

                     

                    J'ai beau envoyer des messages d'assistances à l'équipe Live de MS, je n'ai aucune réponses.

                    Cerise sur le gâteau, la semaine dernière je change de mot de passe (et la question secrète) pour voir si ça améliore.

                    Résultats :

                    - Je lance Live Messenger et là, comme par magie, tous mes contacts disparaissent petit à petit.

                    - Je vais sur la gestion des contacts sur le Web, 0 contacts

                    - Le soir qui suit, de nouveau des spams mais cette fois-ci à des adresses que je ne connais pas (pas dans mon ancienne liste de contacts).

                     

                    J'écris ce message parce que j'ai l'impression que de plus en plus de gens sont touchés par l'envoi de ces spams (plus de réponse sur google concernant le contenu des spams qu'au début) et j'espère qu'il aidera à faire avancer les choses dans le bon sens (gmail c'est bien mais quand tout est sur live, c'est compliqué de migrer :p)

                  • 1 + 1 = 3

                    Et bien non, pour une fois on ne va pas parler C#, Visual Studio mais plutôt bout de choux, ptit bout, bébé quoi.
                    Et ce ptit bout c'est :
                     
                    - Sasha (Saša)
                    - 50 cm
                    - 3 kg 4
                    - Terrien depuis le 14 juin 2008 3h23
                     
                     
                    Au moment ou j'écris ce message, me femme me fait savoir qu'une sage femme viens de le peser et qu'il est maintenant à 3 Kg 630 !
                    Quel glouton ! On va déjà devoir le rationner.
                    Bien sur, de ce coté là il tient de la maman Rire
                     
                    En voici quelques une pour agrémenter ce mesage :
                     
                     
                    P1030191
                     
                    P1030194
                     
                    P1030206
                     
                    P1030213
                     
                    P1030246
                     
                    Pour ceux qui ne l'ont pas encore vue, il est :
                    - Mignon
                    - Trognon
                    - Glouton
                    - Magnifique
                    - Gentil
                    - Beau
                    - Il ne peut pas se passer de sa tétine (comme son papa quand il était petit)
                    - Il laisse dormir ses parents (dernière nuit dodo à 0h30, tété à 4h et après je ne sais pas parce que je suis parti au travail à 7h30 et il dormait toujours)
                    - PARFAIT
                  • Je vous présente ...

                    ... Mon "future" bébé :

                     

                     

                     

                     

                    Et oui, après le mariage il fallait bien continuer selon les bonnes pratiques d'architecture concernant les constructions d'un famille Big Smile

                     

                  • Pointui ... c'est génial

                    J'ai des amis qui ont achetés l'Iphone (ou se sont fait offrir).

                     

                    Jusqu'ici, rien de spécial. Sauf que je commençais à en avoir assez de les voir se la raconter avec leur interface.

                    Oui c'est vrai, l'Iphone c'est beaucoup plus jolie que Windows Mobile. Mais ça n'apporte rien de plus !

                     

                    Et puis je me suis dit que la plus part des choses étaient faisable sur Windows Mobile aussi. Mais avant de lancer mon Visual Studio, j'ai fait un petit tour sur le Web. Et j'ai trouvé ça : http://www.pointui.com/

                    Franchement, n'hésitez pas à le tester avec le votre. C'est tout simplement génial ! J'imagine ceux qui ont un Touch Flow, ils vont s'en donner à coeur joie !

                     

                     

                    Il s'agit d'un soft qui prend totalement la main sur l'interface de Windows mobile. Le tout avec une expérience utilisateur de navigation totalement inédite.

                    Je vous conseil vivement de suivre le tutorial avant de toucher à tout. Mais après, c'est vraiment super. Moi j'ai testé avec mon M200 et ça marche du feu de dieu.

                     

                    Si vous l'essayez (ou que vous en connaissez d'autres de mieux si ça existe) faite moi signe !

                  • Elu poule aux oeufs d'or ... Microsoft

                    Comme on pouvait s'y attendre, l'UE n'allait pas s'arrêter en si bon chemin. Apres Windows Media Player, c'est IE et la suite Office qui sont la cible.

                    Je vous laisse lire la source : http://www.lemonde.fr/web/depeches/0,14-0,39-33900158@7-37,0.html

                    Et voici mes remarques :

                    • Quand y'aura plus de navigateur par défaut dans Windows, comment fera-t-on pour en récupérer un ? On ira à la Fnac en acheter un ? Ou peut-être faudra-t-il acheter un magazine fournissant un CD avec un navigateur ?
                    • Donc les fichiers Open Office qui fonctionnent nickel avec Office. C'est une très bonne idée. Mais dans ce cas, je vais attaquer Peugeot en justice parce je ne peux pas mettre le pot d'échappement Clio que j'ai acheté hier ... A oui, et puis j'ai acheté la carte Europe Tomtom pour mon GPS mais je n'arrive pas à la faire fonctionner avec mon MIO. C'est vraiment allucinant ça. Il faut pas laisser faire ! Mais que fait l'UE ?!
                  • L'architecte vue par un développeur :D

                    Un de mes collègues m'a envoyé cette image aujourd'hui (pour rigoler) :

                     

                     

                    Je l'ai trouver plutôt drôle et ça m'a bien fait rire alors je vous la fait partager Big Smile

                  • Mariage FR OK

                    Ouf ... je trouve enfin un moment pour faire un petit post pour revenir sur l'un des trois jours le plus important de cette année pour moi. Il s'agit, bien entendu, du 16 juin 2007 date de mon mariage avec Priscilla LUKIC
                     
                    Et bien que dire d'autre que c'était super. On a vraiment passé un super moment. Tout c'est très bien passé et contrairement à ce qu'on nous (les déjà mariés) disait, on a bien profité de la journée et on a savouré les moments comme il se doit.
                     
                     
                    Petit retour sur la journée :
                    Vers 14h je rejoignais ma chérie pour une séance photo. En sortant de la voiture on a reçu 2 gouttes de pluie chacun et après ... soleil. N'est ce pas merveilleux ? Heureusement que Méteo France prévoyait des orages parce que si il prévoyait du soleil quesque ça aurait été ?
                    Ensuite, après un détour par chez ses parents, direction mairie de Draveil pour une séance signature à 16h30. Priscilla m'a fait l'honneur de déposer quelques larmes de bonheur devant et dans la marie preuve que pour elle (tout comme pour moi), c'était une journée vraiment exceptionnelle et pleine d'émotion.
                    Après la mairie et une séance de plus d'une heure de photo avec les invités on a réussi à former un cortège d'une bonne vingtaine de voiture. On s'excuse au près de la mairie et des habitants de Dravail pour les désagréments que cela a pû entrainé. Mais après tout, ce n'était pas le mariage de n'importe qui ... c'était quand même celui de Priscilla et Aleksandar LUKIC (excusez du peu )
                    Ce cortège a donc prit la direction de Gournay pour arriver vers 19h15 au restaurant Gournay Plage.
                     
                    Voilà. Je ne vais pas rentrer dans les détails de la soirée. Sachez simplement que la salle est tout simplement grand diose. Les chanteurs et musiciens étaient supers.
                     
                    Alors comme je disais au début de ce message, il y a trois jours super important cette année :
                    • La signature et la récupération des clés de notre nouvelle maison
                    • Le mariage dont je viens de vous compter l'histoire
                    • Le mariage Bis (religieux) en Serbie (Belgrade) le 11 août prochain dont je vous compterais l'histoire
                  • Plus de Messages Page suivante »


                    Les 10 derniers blogs postés

                    - Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

                    - Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

                    - Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

                    - Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

                    - Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

                    - Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

                    - Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

                    - Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

                    - SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01

                    - SharePoint Online: Script PowerShell pour supprimer une colonne dans tous les sites d’une collection par Blog Technique de Romelard Fabrice le 11-27-2018, 18:01


                    Propulsé par Community Server (Personal Edition), par Telligent Systems
                    Chargement...