07 octobre 2010

Formation MVVM: une première

MVVM, c’est le design pattern qui permet de contourner deux défauts du code-behind: sa liaison avec la vue et sa non-testabilité. Il n’est pas simple à comprendre, mais une fois pris en main c’est un vrai plaisir.

Afin de former vos équipes à MVVM, j’ai le plaisir de proposer la première formation à MVVM en France*. Les prochaines sessions sont déjà programmées à Paris pour le 19 novembre et le 17 décembre. Ca ne dure qu’une journée, mais nous prenons le temps de comprendre pourquoi et quand faire du MVVM, et de réaliser plusieurs travaux pratiques pour bien s’y faire la main.

A noter qu’il ne s’agit pas complètement d’une première pour moi: j’ai déjà fourni ce contenu une bonne dizaine de fois dans mes formations Silverlight et WPF.

*Première formation publiquement programmée en inter-entreprise –précision importante pour ne pas faire d’ombre au très compétent Julien Dollon.

Silverlight et XNA pour Windows Phone 7

SDC12938 Note: ceci est un résumé d’une session des Microsoft Days, pas mon point de vue.

Par Pierre Cauchois, relations avec les développeurs chez Microsoft France

Rappel sur la plateforme

Une cible commune: même résolution, même capteurs, même carte graphique.

Lors du développement Silverlight, le graphiste utilise Expression Blend 4, le développeur utilise Visual Studio 2010. Le langage XAML sert à faire la navette entre ces deux environnements.

Le SDK est gratuit: il y a une version Expression Blend for Windows Phone gratuite, et pour le développeur ça tourne sur Visual Studio 2010 Express.

Le graphiste utilise Metro. Ce sont des règles associées à l’ergonomie Windows Phone. En tant que développeur on a des outils qui permet d’y adhérer facilement.

Développement d’applications avec Silverlight

Les outils, le design, les API

SDC12939 Démo: une liste de pilotes est récupérée et affichée depuis un Web Service. Utilisation de XAML (ListBox), WebClient, LINQ to XML.

Démo: accès au GPS et à l’accéléromètre grâce aux classes GeoCoordinateWatcher et à Accelerometer.

De manière générale il y a des API pour le multitouch, les Web Services avec WCF, les capteurs, les données, les contacts, les photos, l’appareil photo, et un accès indirect au cloud: push (même si l’application n’est pas lancée) avec mise à jour de l’icône de l’application, géolocalisation, …

Le pattern MVVM

SDC12940 Le but de MVVM est de séparer la couche graphique de la couche métier. La vue est entièrement bindée sur le ViewModel. MMVM Light de Laurent Bugnon permet d’en faire plus facilement.

Marketplace

L’utilisateur est au centre, et il y a donc une version d’essai de l’application. Tout ce que nous avons à faire c’est appeler l’API IsTrial. La désactivation au bout d’un certain temps se fait automatiquement.

Il faut payer 100$ pour pouvoir publier autant d’application payantes que souhaitées et 5 applications gratuites.

Windows Azure – Outils et bonnes pratiques

SDC12935 Note: ceci est un résumé d’une session des Microsoft Days, pas mon point de vue.

Par Pierre Couzy, Microsoft France.

Un tour d’horizon d’Azure

Le principe est de prendre un DataCenter de Microsoft et d’y poser nos applications. C’est du Platform as a Service (PaaS), là où d’autres (comme Amazon) proposent de l’Infrastructure as a Service (IaaS).

Avantages

  • gérer les pics de charge immédiatement, là où en PaaS la montée en charge peut prendre plusieurs jours.
  • traditionnellement, une application n’est pas conçue pour permettre les fermes de serveur frontaux/UI/base de données; sous Azure, le mode de développement rend au contraire cela obligatoire.
  • l’identification de l’utilisateur se fait avec des moyens divers (Active Directory, OpenId, base de données, …) de manière transparente pour l’application (c’est intégré à l’identification traditionnelle .NET)
  • on peut uploader dans le Cloud public les données publiques de l’entreprise à publier, voire la logique l’accompagnant. On cloisonne ainsi bien les données privées, qui restent chez moi, et celles publiques, mises à disposition des autres dans Azure (JSON, AtomPub).

Comment se préparer

SDC12937 Si l’application est du type serveur web + base de données, il n’y a pratiquement pas de travail pour la porter sur Azure.

Par contre, si on utilise d’autres sources de données, comme des fichiers, c’est plus compliqué. Pour les fichiers, mieux vaut utiliser:

SorageHelper.GetContainer()
RoleEnvironment.GetLocalStorageResource()

Inconvénient: cela ne marche que pour du stockage temporaire: c’est perdu en cas de plantage, et ça peut subir de la répartition de charge.

Sinon, il y a le cloud storage pour stocker:

  • Blobs (données)
  • Queues (messages): adapté pour des logs, par exemple, là où un Blob prend trop de ressources si on fait des ajouts
  • Tables

Inconvénient: il faut utiliser des API spécifiques pour y accéder, notamment parce que c’est du HTTP.

Gérer un déploiement

Dans une démo, on peut déployer via le portail en uploadant le package réalisé par Visual Studio. Mais en pratique c’est lourd en manips et ça prend environ 15 minutes.

En pratique, pour éviter ça:

  • Grâce à l’identifiant unique Azure on peu automatiser le déploiement. Pour cela il faut un certificat dont on fournit juste la clé publique (même un certificat généré personnellement fonctionne).
  • CloudBerry Explorer permet une vue à la Norton Commander

Quand on fait F5 dans Visual Studio, on a un environnement Azure local pour simuler un DataCenter. Mais un vrai DataCenter est un peut différent. Le programme “Azure Diagnostic Manager” permet d’en savoir plus sur ce qui s’est passé dans Azure.

Autre façon d’avoir des informations: activer IntelliTrace, qui recueille énormément d’informations.

Instrumenter l’application est une bonne idée, car avec le Cloud on n’a pas assez d’informations. L’instrumentation permet de comparer ce qui se passe côté Cloud et côté serveur.

Comme on n’a pas de garantie sur l’odre de déploiement, il va falloir ajouter du code d’initialisation qui déploie le bouts d’infrastructure nécessaires s’ils n’y sont pas déjà.

Spécificités Sql Azure

Il est pratiquement comme Sql Server, mais:

  • il est “loin” du code: si on enchaîne 80 petites requêtes, ça ne fonctionne pas bien.
  • une surveillance constante de notre serveur SqlAzure est effectuée contre les attaques, qui coupe l’accès au serveur: si on ne respecte pas des bonnes pratiques de développement, on aura des surprises.

06 octobre 2010

Introduction à Visual Studio LightSwitch

SDC12927 Note: ceci est un résumé d’une session des Microsoft Days, pas mon point de vue.

Par Eric Vernié, Microsoft France division DPE

Introduction

Le développement Windows a été démocratisé par Visual Basic, et a décollé à partir de Windows 3.1. Plus récemment, Access a aussi démocratisé le développement autour des bases de données.

Problème aujourd’hui, le développement s’est complexifié: EntityFramework, RIA Services, Silverlight… cela ne permet plus un accès aisé. LightSwitch permet de masquer la complexité pour les applications simples, tout en gardant la possibilité de faire plus compliqué quand c’est nécessaire.

Avec LightSwitch, le développeur réalise des applications 3 tiers pour le bureau et le cloud, basées sur Entity Framework, RIA Services, MVVM, Silverlight 4

Architecture

SDC12930 Couche présentation

  • Silverlight 4
  • MVVM

Couche logique

  • WCF RIA Services (ASP.NET 4.0) en déploiement local, IIS ou Windows Azure.

Couche données

  • SQL Server, Express
  • SQL Azure
  • SharePoint
  • WCF RIA Services

En pratique

Installation: en autonome ou bien en plus de Visual Studio 2010.

Extensibilité:

  • on peut développer des “groupes” avec Visual Studio: ce sont des contrôles Silverlight décorés avec des attributs.
  • on peut développer d’autres “thèmes” ou “shells”

Applications d’entreprise avec .NET 4.0 et Silverlight

Note: ceci est un résumé d’une session des Microsoft Days, pas mon point de vue.

Par Mitsu Furuta et David Rousset, relations développeurs chez Microsoft France.

De ADO au Cloud

ADO: connexion directe à la base.

Web Services / WCF: pour distribuer les applications, c’est à dire ne pas mettre l’ensemble de l’applicatif sur la machine qui l’exécute. Le framework 1.0 faisait bien les Web Services, mais WCF (Framework 3.0) a permis d’abstraire le développeur des couches transport et formattage, avec une flexibilité à tout moment.

SDC12923 Standardisation de la manière d’exposer des données: RSS, REST (NDLR: ni RSS, ni REST ne sont des standards) sont apparus comme une des manières largement utilisées pour requêter des données.

Requêtage: LINQ uniformise la manière de requêter.

Asynchronisme: qui dit service di latence, donc nécessité de code asynchrone côté client.

Démo: outils

WCF permet d’exposer un service, méthode par méthode, et de choisir le format dans le fichier de configuration.

WCF Data Services permet d’exposer automatiquement les méthodes CRUD en tant que service Atom et REST. Il suffit de lui fournir une source de données LINQ.

Quand on attaque un WCF Data Service par un client .NET, le proxy est requêtable en LINQ. Il convertit alors la requête en sa représentation REST pour qu’elle soit exécutée par le service.

WCF RIA Services offre un peu plus de services mais en étant lié à la pile de développement Microsoft, il est donc propriétaire. (NDLR: Non, c’est bien un service WCF standard qui est exposé, mais le but de RIA Services est de simplifier l’appel par un client Silverlight, car on n’a pas la facilité de proxy WCF DataServices de WPF en Silverlight).

Architectures n-tiers

SDC12926

L’évolution du Datacenter en Centre de Services

image Créer votre nuage privé “Infrastructure as a Service”

Note: ceci est un résumé d’une session des Microsoft Days, pas mon point de vue.

Par Emmanuel Sache, Christophe Dubox, Fabrice Meillon

Cela fait suite à l’offre de cloud privé de HP et Microsoft.

Le DataCenter Dynamique et les “Nuages”

Le DataCenter arrive rapidement à ses limites de resources: matériel, consommation énergétique, espace disponible. Il s’agit de répondre à cette problématique. L’évolution du DataCenter a lieu en plusieurs étapes:

  • virtualisation du DataCenter
  • DataCenter dynamique privé: provisionning, allocation, variation de charge dynamiques

Le Cloud Computing, c’est des technologies, disciplines et modèles commerciaux qui délivrent des capacités informatiques comme un service à la demande.

SDC12918

Les avantages et motivations du Cloud:

  • maîtrise des coûts et flexibilité de l’IT (on va des coûts matériels CAPEX aux coûts opérationnels OPEX)
  • agilité de la gestion des ressources
  • agilité métier: le métier passe avant l’infrastructure
  • réduction de l’emprunte carbone

Terminologie: tout dépend de l’emplacement des différentes couches:

SDC12921

Du Centre de Données au Centre de Services

Le DataCenter optimisé

Hyper-V a évolué pour le permettre, avec notamment Live Migration qui permet une optimisation de la disponibilité, en permettant la migration à chaud d’une machine virtuelle entre deux environnements physiques.

Exemple: paramétrage dynamique de la mémoire sur les machines virtuelles:

SDC12922

System Center s’occupe de la gestion:

  • System Center Virtual Machine Manager gère les environnements hétérogènes: Microsoft Hyper-V et Virtual Server mais aussi VMware ESX
  • System Center Configuration Manager gère l’inventaire, le déploiement, la configuration et la sécurité
  • System Center Operation Manager: supervision, reporting
  • System Center Data Protection Manager: sauvegarde, restauration

Windows Intune – Demo Extravaganza

image Note: ceci est un résumé d’une session des Microsoft Days, pas mon point de vue.

Avec Fabrice Meillon et Stanislas Quastana, architectes infrastructure chez Microsoft France

Qu’est-ce que Windows Intune

SDC12914 Service en ligne, dans le Cloud, pour l’administration des postes de travail (pas des serveurs) au sein de l’entreprise. Notamment:

  • protection contre les malwares
  • gestion des mises à jour
  • inventaire matériel et logiciel
  • assistance à distance
  • administration proactive des PC: pour chaque machine configuration matériel, problèmes récents, …

Pour qui? Pourquoi?

SDC12916 Pour les entreprises avec au moins un informaticien à plein temps, ou celles faisant appel à une société de services pour l’infogérance. (NDLR: les PME, donc)

Permet une solution centralisée pour administrer et sécuriser l’ensemble des postes, y compris les postes nomades.

Conçu pour gérer jusqu’à 500 PC environ. Windows Intune est en beta aujourd’hui, la sortie se fera dans quelques mois.

Demos

SDC12917 Portail en ligne avec dashboard d’infos résumées. Le portail utilise notamment la technologie Silverlight.

On installe un agent sur chaque poste, le portail résume l’état des agents sur les postes. Windows XP SP2, Vista ou 7. L’agent téléchargé est signé avec notre identifiant.

Il y a plusieurs solutions de sécurité chez Microsoft, le choix se fait sur le nombre de postes gérés:

image

NDLR: le nom Intune est-il bien choisi? Les speakers ont parfois prononcé “iTune”, par lapsus…

Les Microsoft Days version texte

Les Microsoft Days, c’est aujourd’hui et demain pour faire le plein d’infos sur ce qui bouge dans le monde Microsoft.

Vous trouverez sur ce blog la version texte résumée. Car comme à mon habitude je ferai un résumé session par session:

On trouvera plus tard sur le Web les vidéos des sessions (elles n’étaient pas enregistrées aujourd’hui, ce sera fait plus tard).