Voilà, les sessions sont en lignes !
Pour mes sessions, voici les liens directs :
Bon visionnage !
Et voilà, pour la quatrième année consécutive, BEWISE organise à Toulouse la Bewise Day Conférence !
Cette année encore, venez découvrir les dernières technologies Microsoft, autour de Visual Studio 2010, mais aussi Sharepoint 2010, Framewor 4.0, Azure (biensur !) Silverlight 4, Sql Server 2008 R2 et bien d’autres !
Cette année, parmi les 8 sessions qui vous seront proposées, j’aurai la chance d’animer une session de Haute Disponibilité avec SQL SERVER 2008 avec l’ami Pascal Belaud.
Vous me trouverez autour des ATE (Ask The Expert) relatifs à SQL SERVER. J’ai en charge cette année de promouvoir SQL SERVER dans AZURE, Azure Database.
Bref, si en plus ça vous tente de gagner un grand écran, ou encore une XBOX pour les étudiants, dans un lieu convivial, comme le stade Ernest Wallon, y’a plus qu’à venir !
Voici le planning pour les quelques rares qui ont lu ce post jusqu’ici, et qui ne seraient pas (encore) convaincus :)
La plénière
|
Description |
|
Venez découvrir une intégration complète autour de Sharepoint 2010, Silverlight 4 et Visual Studio 2010., le tout mâtiné de design et de sketchflow ! Nous vous présenterons comment en utilisant les dernières technologies Microsoft vous pourrez développer efficacement, de manière professionnelle tout en travaillant autour de l’ergonomie et du design. |
Les sessions
-
Les nouveautés de Silverlight 4
-
SharePoint 2010 , 40 minutes pour vous convaincre
-
Azure : Le cloud et le développeur
-
VSTS 2010 Tests fonctionnels, tests d'interfaces, tests de charges
-
Communications Unifiées - Accélérez les échanges dans l'entreprise et réduisez vos coûts téléphoniques avec OCS 2007 R2
-
SQL 2008 - Très haute disponibilité & Optimisation des performances
-
Découvrez Microsoft online Services via Business Productivity Online Suite
-
La virtualisation dans tous ses états
Les espaces de démonstrations
Espace Solutions Langages et Framework (SLF)
- Développement parallèle
- Eric Vernié
- La plateforme Windows Azure
- Patrice Lamarche
- Pierre Couzy
- L’accès aux données
- Benoit Laut
- Le développement C++
- Eric Mittelette
- Le Framework .net 4.0
- Jérémy Touyarou
Espace Architecture, Méthodes, Industrialisation (AMI)
- ALM et les tests sous VS 2010
- Alain Marty
- La plateforme ALM avec Visual Studio 2010
- Ionut Milhalcea
- François Merand
Espace Portail & Travail Collaboratif (PTC)
- En 2010 ... Collaborer et partager plus efficacement avec MOSS et CRM
- Laurent Cotton
- Florent Cazenave
- Nos expériences Sharepoint
- Lionel Limozin
- Alexandre Barbier
Espace Décisionnel & Gestion des données (DGD)
- SQL server 2008 R2
- Julien Duprat
- Nicolas Caillard
- SQL server 2008 : VLDB et Haute disponibilité
- Pascal Belaud
- SQL Azure
- Sébastien Pertus
- Le décisionnel avec SQL server 2008 R2
- Philippe Lonvaud
- Jean-Pierre Riehl
Espace Nouvelles Interfaces Utilisateurs (NIU)
- La mobilité
- Pierre Cauchois
- Christopher Maneu
- Le développement sous Windows 7
- Cyril Sansus
- Guillaume Contesse
Espace Administration, Systeme et Communication (ASC)
- Les communications unifiées
- David Diop
- Pascal Clerc
- Windows server 2008 R2/ System conter / Forefront
- Fabrice Meillon
- DirectAccess avec Windows 7 & Forefront UAG 2010
- Stanislas Quastana
Espace Solutions Web Avancées (SWA)
- Silverlight
- Sacha Leroux
- David Rousset
- Créer vos sites internet avec ASP.NET 4.0
- Guillaume Lacasa
- Jocelyn Tricoire
- Lois Gaudebert
- Ergonomie et conception orientée utilisateur
- Olivier Courtois
- Dick Lantim
Espace Partenaires
- Vertice / Vertice Design
- Yann Faure
- Frédéric Colin
- Michel Rousseau
- Anais Cruzel
- MSDN
- Sandra Jousselin
Y’a plus qu’à s’incrire !
On se voit là bas :)
Tiens en même temps, ça sera (ou pas) mon renouvellement MVP. Si tout se passe bien, la journée devrait bien se passer (et se terminer tard :))
“Big Data”
Allez un peu de teasing sur ma session !
Bon d’abord faut le savoir hein, une bonne raison de venir c’est que j’y serai.. aussi. Hein, si déjà là vous êtes pas bluffé, là ! (non ?)
Sinon, si vraiment vous hésitez encore un chouilla (genre y’a Angelina Jolie qui passe pas loin, bon ok là vous hésitez, je comprend …) Sachez que :
Renaud Conté sera là … aussi ! (ouais ça calme)
Accrochez vous, nous parlerons de :
- Création et intégration de Web Role dans une application web existante
- Migration d’une base de données SQL SERVER 2005 vers SQL AZURE
- Portage de code pour gérer l’upload de fichier avec les Blob Container
- Support d’un service sur l’intranet de l’entreprise via l’ AppFabric Azure
Et si tout ça ne suffisait pas, on parlera aussi … Donuts ! (Cherchez pas :))


Retrouvez moi au TechDays 2010 !
Je serai avec plaisir présent cette année encore aux TechDays 2010 à Paris, pour animer 2 sessions.
Chose assez rare (pour moi) je n'animerai ni session sur SQL SERVER ni session sur SYNC SERVICES.
Et oui, les temps changent !
Allez, cette année, vous aurez donc droit à 2 sujets complètements différents :
Xaml Futures
Sorti il y a maintenant 3 ans avec le .NET Framework 3.0, XAML est un langage de sérialisation utilisé pour le support de WPF, WF puis Silverlight.
Ce langage est capable non seulement de sérialiser un graphe de données de tout type mais également d'associer évènements et désormais code...
Avec .NET 4.0, XAML devient une classe unifiée de base du framework, au service de toutes les couches et dévoile un grand nombre de points d'extensibilité.
Découvrez Azure par la pratique en migrant vos applications
Dans cette session, vous découvrirez tous les aspects de Windows Azure au travers de la migration d’une vraie application sur la plate-forme de cloud-computing de Microsoft.Cette session se veut didactique et vous permettra de comprendre les enjeux, les atouts et les choses à savoir pour mettre un peu de « cloud » dans votre système d’informations.
Toutes les technologies liées à Azure seront abordées : SQL Azure, Azure Storage, Service Bus Web Role, AppFabric, etc. n’auront plus de secret pour vous.
Rendez vous à tous là bas !
PS : Petit Jesus, s'il te plait, cette année, promets moi que je pourrai monter à Paris sans encombre .. et que tu ne cloueras pas les avions au sol à cause du mauvais temps, comme l'année dernière :)
Je vais faire un petit topo sur le plan de maintenance que tout DBA se doit de mettre en place sur ses bases de données. Enfin sur un point particulier du plan de maintenance. Aprés une sauvegarde complète, pourquoi la prochaine sauvegarde du journal de transaction est elle énoôôÔÔôorme…. ?
Avant d’aller plus loin, je me base sur les plans de maintenance, mais il y’a ceux qui préfèrent pour tout se cogner à la main, pour plus de contrôle sur leur plan de maintenance, pour ceux là, je vous conseille de voir par ici : All in one by Hallengren
Après y’a ceux qui passent par les plans de maintenance. Solution intégrée dans SQL SERVER 2005 et 2008, s’appuyant sur des lots SSIS.
Avant d’exposer le problème voici un exemple de plan de maintenance que j’ai rencontré :
Dans ce plan j’ai 3 sous plans :
- Le premier (copie d’écran précédente) effectue une sauvegarde complète de la base de données, après avoir fait un CheckDB, une reconstruction complète de l’index et une mise à jour des statistiques.
- Le deuxième sous plan effectue une sauvegarde différentielle, avec une réorganisation de l’index (bon ça c’est pas obligatoire, ça dépend de votre stratégie)
- Enfin le troisième sous plan effectue une sauvegarde du journal de Log
Au niveau du scheduling, partons sur une théorie qui en vaut une autre : Un backup complet la nuit, un différentiel à Midi et le journal de log toutes les heures.
(Note : Le Update Statistics dans la copie d’écran précédente ne SERT à RIEN : Voir le post de Dieu Paul Randal sur le sujet : http://www.sqlskills.com/BLOGS/PAUL/post/Search-Engine-QA-10-Rebuilding-Indexes-and-Updating-Statistics.aspx)
Voici les données du problème : APRES le travail du premier sous plan (sauvegarde complète) la sauvegarde de mon journal de log est énorme (mettons pour l’exemple 100 Mo), alors que ce travail journalier ne représente que peu de transactions et ne génère qu’une petite sauvegarde (mettons 1 Mo)
Voici une copie d’écran de ce qui se passe sur mon poste de dév :
Bon chez moi, avec le peu de données et surtout pas beaucoup de mouvements sur ma base de test, ça représente pas grand chose, mais imaginez ce qui arrive sur une base de données de plusieurs GO ou TB.. ça peut poser très vite un soucis, surtout si celle ci est beaucoup utilisée (ce qui est quand même le principe d’utilisation d’une base !)
Pour exemple, j’ai un client qui travaille sur Team Foundation Server et dont le log sauvegardé après le backup complet fait exactement la taille de la base de données, soit prés de 200 Go…. C’est long et ça prend de la place !
Mais surtout, avant de penser à “comment” résoudre ce problème, c’est “pourquoi” ça grossit comme ça lors de la sauvegarde du premier journal de transaction après la sauvegarde complète ?
Une Fausse idée : Un backup full NE génère PAS d’entrée des données sauvegardées dans le journal de Log (enfin si peu). Bon ça c’est dit, et on l’oublie pas.
Par contre, si, une ré indexation complète EST journalisée, toutes les opérations sont écrites dans le journal de log. Et quand un fait un Rebuild, bah il écrit toutes les données réindexées dans le journal de log (modulo les index non fragmentés non reconstruits) Idem pour la mise à jour des stats par exemple.
Du coup on s’étonne moins de retrouver un log qui correspond presque à la taille de notre base ! (imaginez sur une très très très grosse base) Tout dépend du niveau de fragmentation des index, bref, problématique.
Alors la solution ? En fait, Y’a 2 solutions, tout dépend de votre architecture.
1) Vous disposez de suffisamment de place pour stocker votre log énormissime.
STOP ! Laissez le comme ça le pauvre (enfin pauvre… façon de parler ;)).
NE FAITES PAS de shrink de votre log. SQL SERVER aura besoin de cet espace au prochain backup complet. Ne faites pas de shrink, vous ne ferez que générer de la fragmentation de votre disque dur, inutilement.
NE FAITES PAS DE SHRINK DANS VOS PLANS DE MAINTENANCE (Vous sentez le cri du coeur là ? Y’a pas UNE société où je ne rencontre pas cette hérésie dans les plans de maintenance ! Prenez des bonnes résolutions pour cette année 2010, virez moi ça de vos plans de maintenance)
Ok votre log ne génère que 10% d’espace en journée, c’est un fait. Mais cet espace est NECESSAIRE à SQL SERVER lors de son plan de maintenance. NE FAITES PAS DE SHRINK (on le dira jamais assez)
2) Vous ne disposez pas de suffisamment de place pour stocker un log énormissime.
Bon, là il va falloir faire des concessions. D’abord cette technique ne fonctionnera pas si vous avez votre base de données en mode Mirroir ou en réplication transactionnelle par exemple (dans ce cas, cf solution 1 et achetez du disque dur :))
Si ce n’est pas le cas, on peut créer une solution qui va désactiver le log pendant la reconstruction de l’index complet et le réactiver juste avant le backup (puisque celui ci ne génère pas grand chose dans le log)
SI vous voulez vous convaincre de cette solution, un petit tour sur ce post (de Dieu, encore une fois) devrez vous convaincre de continuer la lecture de ce post :
http://www.sqlskills.com/BLOGS/PAUL/post/Misconceptions-around-the-log-and-log-backups-how-to-convince-yourself.aspx
Bon, l’idée c’est de désactiver l’écriture du journal de log avant la ré indexation et de la réactiver juste après.
Note: je n’utilise pas l’instruction BACKUP LOG MaBase WITH TRUNCATE_ONLY, celle ci est devenue obsolète. Je pointe vers un sujet de Christian sur ce point là : http://blogs.codes-sources.com/christian/archive/2007/08/19/sql-server-interdire-les-op-rations-de-troncation-du-journal-de-transaction-truncate-only-no-log.aspx
Nous utilisons donc une astuce similaire qui consiste à passer du mode de recouvrement Complet au mode de recouvrement Simple (et re hop, re post de Christian sur le sujet : http://blogs.codes-sources.com/christian/archive/2007/02/12/sql-server-faq-sql-pourquoi-mon-fichier-de-log-ldf-est-il-aussi-gros-comment-diminuer-sa-taille.aspx )
Voila ce que ça donne lors de la modification de mon plan de maintenance (Notez au passage que j’ai fais sauter le Update Statistics, qui sert à rien ici)
Etape 1 : Passage en mode simple
Etape 2 : Re passage en mode complet (à placer après la réindexation)
Ce qui donne un plan de maintenance ressemblant à peu prés à ça :

Après exécution de ce plan là, et exécution de la sauvegarde du log, on retrouve quelque chose de plus … concis :)
Voilà une solution qui permet de sauvegarder de l’espace disque, sans passer par du Shrink File ABUSIF ! (on le dira jamais assez !!!)
Bon Plan de maintenances de Noel à tous !
Je ne parle pas souvent de sujet de ce type, me cantonnant la plupart du temps à des astuces liées à l’accès aux données ou à de la synchro, sujets que j’affectionne particulièrement, mais aujourd’hui je vais faire une exception pour vous parler d’un outil qui m’a permis de déceler un horrible bug dans le Framework.Net (Si si c’est rare, mais ça arrive, on est humain !)
Bon… bug certes, mais dans un cas tellement particulier ! Imaginez qu’il vous faut mettre en relation : Une fenêtre mère Parent, une fenêtre fille MDI et un User Control contenant un ToolTip. Oui, faut chercher loin (vous imaginez même pas)
Et bien sachez que le Tooltip génère un memory leak (fuite mémoire en français dans le texte) ! Celui ci gardant une référence sur la fenêtre mère (Cherchez pas pourquoi, moi j’ai tenté de trouver une explication rationnelle, et après je suis allez voir Avatar, j’ai laissé tomber l’affaire).
Pour en arriver à cette conclusion, je me suis d’abord arracher la moitié de la tignasse, j’ai sacrifié 4 pingouins et descendu une quantité non négligeable de férro rocher (merci Mag au passage !)
Ensuite j’ai commencé à faire le tour des outils de diagnostic de mémoire, et le moins qu’on puisse dire, c’est qu’il y a du lourd sur le marché.
Je me suis tourné vers une solution proposé par Red Gate : Memory Profiler
Le principe est assez simple : Vous prenez une photo étalon de votre application à un instant T, puis à un instant T+1 et vous comparez les résultats :

Vous pouvez même obtenir un graphe complet (graphe de rétention) représentant le chainage de votre instance en mémoire avec le GC qui l’empêche de collecter ^^
Grace à cet outil, j’ai pu remonter pas mal de soucis dans l’application que j’ai du auditer, et notamment ce fameux bug du ToolTip.
D’abord, à chaque “ouverture –fermeture” d’une fenêtre la mémoire n’était jamais libérer (même en forçant le Garbage Collector)
Le nombre d’instances en mémoire explosent très vite du coup :
Je note surtout la présence de ma fenêtre MDI, qui contient l’ensemble des autres composants. ah ah ! problème ici :)
Et comme on peut s’y attendre, j’ai bien 7 instances en mémoire, correspondant aux 7 “ouverture fermeture” de ma fenêtre…
Allez hop un petit tour sur le graphe de rétention et voila ce que ça donne :
J’ai passé un bon moment à comprendre que le problème ne venait pas du bouton Valider, mais du Tooltip lui même… C’est vrai, on s’attend plus à avoir un problème dans SON code plutôt que dans le code du .NET en fait :)
Bref, un petit tour dans le user control incriminé, un bon pattern IDisposable qui va bien, et voilà le “patch” :
Petit test pour vérifier tout ça :
La fuite mémoire n’a plus l’air de la partie. On va quand même vérifier les instances en mémoire :
AH ben y’en a quand même beaucoup moins !
Et voilà, un petit soucis de régler :)
Next !!!!
Bon monitoring de Noel à tous!
Et voilà la dernière session de la PDC, enfin la session que j’attendais depuis le début (j’exagère à peine) En même temps on se garde le meilleur pour la fin :)
Présenté par Marc Scurell, Lead PM sur le sujet. Le but de la présentation est biensur de nous présenter SQL Azure Data Sync sorti le jour du KeyNote (bon ça a fait moins de bruit que la sortie de SL4 beta, je vous l’accorde volontiers !)
Basé sur le Sync Framework V2 , Marc nous fait un tour d’horizon du framework, avec pas mal de théorie, intéressant pour ceux qui n’ont pas suivi mes webcasts et articles ;)

SQL Azure Data Sync
Le Wizard qui va permettre de connecter une base de données locale avec SQL Azure, avec une base de données local SQL SERVER 2008.
Tout se passe par le wizard, qui va créer toute l’architecture sur SQL AZURE, parfait réplica de la base locale. A noter que le tracking des changements se fait via le Change Tracking de SQL SERVER 2008, mais j’ai pu voir encore des tables supplémentaires contenant des métadatas encore nécessaires pour faire fonctionner le tout.
Vient ensuite une démo de synchronisation entre SQL AZURE et SQL SERVER CE. Ce qu’est sympa c’est que le template VS pour SQL CE va générer via son wizard non seulement la première synchronisation mais aussi le code nécessaire pour reproduire une synchronisation complète en .NET
Du coup la synchro entre une base de données sql ce et sql azure se résume en 1 ligne !
Pour aller plus loin; on peut meme imaginer des scénarios 3 Tiers, avec de la logique métier officiant entre les bases de données locale et les bases SQL Azure :
Synchronisation avec un client Silverlight
Une démo très très sympa vient conclure ma PDC, une synchronisation entre SQL Azure et un client Silverlight (où je vous rappelle nous n’avons PAS ADO.NET et encore moins la possibilité d’accéder à une base Compact)
Le principe est donc de synchroniser la base SQL Azure avec l ‘IsolatedStorage local disponible depuis SL :
Ca, ça m’a bien bluffé, ils ont écrit le SyncProvider spécial pour l’IsolatedStorage. Espérons qu’ils le fourniront en sample :)
Pour finir la roadmap de Sync Framework : On s’oriente vers début 2010 avec la sortie du Sync Framework V2.1 avec le full support Azure et la V3 en cours d’année.
Voilà la PDC c’est fini pour cette année, et contrairement à l’année passée, aucune prochaine date n’a été annoncée, on va donc je pense revenir à un cycle plus classique de 3 ou 4 ans avant la prochaine PDC !
J’en profite au passage pour remercier Laurent de Techheadbrothers et Thomas de Microsoft qui m’ont permis d’assister cette année à ce grand évènement. Merci !
Voici venir les innovations du langage XAML.
Session assez intéressante sur les apports futurs au langage XAML. On notera surtout la naissance d’un nouveau namespace (et meme sa propre dll) dédié entièrement au XAML : System.Xaml située dans System.Xaml.dll
Au niveau des nouveautés du langage, j’ai pu voir l’ajout de code inline, comme les évènements (bien que je ne sois pas fondamentalement convaincu de l’apport de la chose :)) ou encore l’exécution de code simple comme dans l’exemple suivant :
Ca ca peut m’intéresser dans les expressions de Binding tiens.. mais j’ai des doutes !
XamlDom : Travailler avec un modèle objet Xaml Complet.
Un peu comme un XmlDocument va permettre de se ballader dans un document Xml, XamlDom va nous permettre de nous ballader dans un document Xaml, et récupérer de précieuses informations sur les noeuds xaml. Sur l’exemple on verra même comment récupérer le type de l’UIElement associé au noeud en cours !
Du coup sérialiser un simple bouton XAML devient beaucoup plus aisé !
Dans la copie d’écran suivante vous avez
- Le bouton Xaml
- Le code nécessaire pour sérialiser notre bouton à l’ancienne : avec un XamlXmlWriter
- Le code nécessaire avec XamlDom (utilisation d’un XamlDomObject)
Du coup (encore) ce modèle objet abouti va ouvrir des portes à des outils comme l’analyse statique du code Xaml avec FxCop. D’ailleurs l’équipe chargée de Xaml est trés proche de l’équipe FxCop pour fournir un environnement de travail évolué à ce niveau là.
Nous avons droit enfin à un chapitre consacré à l’amélioration de la localisation Xaml que ce soit en SL4 ou en WPF (On part de tellement loin avec des outils comme LocBaml qu’on ne peut QUE faire BCP mieux) La démo est assez convaincante, un peu comme de l’asp.net, où l’on génère les ressources avec VS 2010 depuis un simple menu qui va lancer un parse complet du document Xaml
Au niveau des designers VS 2010 et Blend, on note des améliorations notables des performances ou encore l’ajout de l’IntelliSense dans Blend :
Vous pouvez d’ores et déjà télécharger la CPT de la Microsoft XAML Toolkit à cette adresse : http://code.msdn.microsoft.com/xaml
Voilà une session animée par Clemens Vaster en personne.
Celui ci va nous parler de la communication entre applications externes et AZURE. Alors forcément, partant de la, on pense forcément Service Bus ! Alors oui la session fut en partie consacrée au service bus, mais pas que :)
Pour nous introduire sa problématique Clemens Vaster (CV) fait mumuse avec DinnerNow.net, un projet démo qu’il utilise depuis des lustres pour aborder des sujets divers et variés.
Chose intéressante, son application existe et comme toute VRAI application, a un historique, des contraintes architecturales fortes. Potentiellement toutes les briques ne sont pas migrables sur AZURE :
Un peu comme je l’ai fais, le contexte est de prendre une application déjà existante et de la porter sur le CLOUD :
- Des choses que vous ne pouvez pas exécuter dans le Cloud
- Des choses que vous ne voulez pas exécuter dans le cloud
Biensur le Sevice bus est LA solution pour mettre en relation un service WCF, quelque soit les contraintes de votre Intranet.
Mais que se passe t’il si le service exposé ne sait pas parler WCF ou ne sait pas communiquer par HTTP ? Prenons par exemple SMPT, SNMP, POP, IMAP … TDS !
TDS est le protocole de communication de SQL SERVER sur un port 1433 en général. Justement nous voudrions (Surtout Clemens Vaster en fait :)) faire communiquer notre Web Role avec une base de données sur un intranet local, serveur situé biensur derrière toutes les barrières des sécurité classiques (firewall, proxy, isa etc …)
CV va donc pendant sa session nous démontrer comment utiliser le Service Bus et un projet Bridge pour réussir à faire ce que l’on appelle communément du Tunneling :
Nous avons deux composants : “Port Bridge Service” et “Port Bridge Agent”
L’agent a pour rôle d’écouter et d’accepter des connexions TCP (ou named pipe) sur un port configurable. le service lui doit accepter ces connexions et établir un duplex channel avec l’agent, via le Service bus. Il a ensuite la charge traiter les données de l’agent avec le sercice à l’écoute et vice versa :
Clemens Vasters a mis à jour son blog pour expliquer comment faire du tunneling grace à son Bridge et le Service Bus AZURE : http://blogs.msdn.com/clemensv/archive/2009/11/18/port-bridge.aspx
Session intéressante, assez technique, enfin …. trés technique :)
Nouvelle sessions sur Azure, et le dévelopement avancé d’application pour la plateforme, présenté par Steve Marx. technical strategist sur azure.
L’application exemple prend un Load Balancer; des noeuds IIS, des noeuds permettant de faire de la recherche, et des noeuds gérant des requetes SMTP externes.
Le principe va etre de monter un architecture comprenant un gros moteur de recherche qui va etre réparti sur plusieurs noeuds azure.

Durant sa session, il nous présentera des points comme : La communication inter roles, les Endpoints non HTTP, les cycles de vies des instances, ou encore les tailles des VMs (ça c’etait le plus simple, un simple attribut dans le fichier xml de config !)
Les noeuds web sont basés sur ASP.NET MVC
Le moteur de recherche est Lucene.net, une API populaire portée de java
Aprés nous avoir bien expliqué la différence entre les messages reçus par un Web Role et un Worker Role (grosso modo, le web role est soutenu par un IIS qui gère les requêtes entrantes, alors que votre Worker Role reçoit n’importe quel type de message) Steve nous parle un peu des Endpoints :
- InputEndpoint. Permet d’écouter sur des ports specifiques des requêtes entrantes
- InternalEndpoint : Permet de communiquer entre différents roles à l’intérieur de votre architecture AZURE : de la communication inter roles
Durant sa session, Steve nous montrera même comment se passer des queues, qui ont l’avantage et l’inconvénient de délivrer un message à un seul Endpoint, là où il nous faut dispatcher le message sur tous les noeuds : Il va passer par les Table Storage (je vais rester assez vague sur sa technique, parce que j’ai d’une part, pas tout suivi, et d’autre part, il est lui meme rester assez flou :))
Bref une démo pur code, bien HardCore, le source code de la session devrait être dispo rapidemment sur le blog du monsieur.
Le blog du monsieur, où le source devrait être rapidemment disponible : http://blogs.smarx.com
Voilà une session qui a été un peu mon heure “détente” de la journée.
La session est animée par deux joyeux lurons, Douglas Purdy et Chris Sells qui nous ont présenté le Projet Quadrant, et le langage “M”
On se retrouve ici avec une application “Quadrant” permettant de naviguer dans les données SQL SERVER; trés facilement.
Mieux il devient possible et intuitif de créeer des vues Maitres Détail de vos données, simplement avec du glisser-déposer.
Chaque écran est finalement une vue de vos données, cet écran est en fait construit à partir de ce fameux langage “M” D’ailleurs, il est facile de faire un “clic-droit” sur le formulaire pour voir le script “M” qui est à l’origine du formulaire; un peu comme vous le feriez avec le source d’un code HTML.
Voilà une session sympa, un peu décalée par rapport à l’ensemble des sujets du jour (AZUuuuuuuuuure) et qui fut ma fois bien fun !
C’est parti pour le keynote de la deuxième journée.
La première partie du keynote est axée sur Windows 7, la volonté de MS de fournir un OS d’excellente facture, en prenant en compte les retours des utilisateurs.
Nous avons droit ensuite à une démonstration de l’UAC, ou encore le “Shake and minimaze”. Bref, rien de particulier, juste quelques features “funs et utilles” de Windows 7.
On passe ensuite au hardware et Windows 7 avec une démonstration de mini PC, et la charge qu’ils sont capables d’accepter avec Windows 7
Quelques démos sur le ScreenTouch, allez on va pas se priver, ils nous montrent du matos !
Bref, un bon début de Keynote, résolument marketing avec une dévotion totale à Windows 7
En même temps, faut bien l’avouer, Windows 7 EST une réussite. Ok, let’s go to the next, show me new Stuff !!!
Internet Explorer 9
Ah tiens, je me remets de mes émotions (http://microsoftpdc.com/tablet) pour voir l’annonce de IE 9, avec des capacités encore plus évoluées et un test ACID3, (presque) concluant.
Ah mais je rêve, IE9 fait du rendu Direct X ! oulà oulà ! un Full Rendering D2D sur IE 9, ça calme !
Scott Guthrie fait son entrée, et nous parle de Silverlight 3. C’est beau, et on est pas en reste en France avec des sites comme Canal +, Le tour de France ou encore Rolland Garros sont alors plein cadre, plein slide :)
ANNONCE DE SILVERLIGHT 4
Avant d’aller plus loin non seulement l’annonce est faite, mais la béta est déjà disponible sur http://www.silverlight.net Y’a plus qu’a !
Allez, c’est parti pour les démos. Une des nouveautés concerne la gestion des médias, webcams et micros.
Scott Gu nous fait une démo, avec des effets appliqués en temps réél au rendu, pixels shaders.
Avec son style bien particulier la salle est pliée quand il prend un screenshot de sa tête déformée par un effet appliquée en live sur sa webcam !
Une démo de scan d’un code barre sur SL4, bref ça donne quelque chose d’extraordinaire dans moins de 5 Mo quand même !
IIS Smooth Streaming : Bon ça c’est pas nouveau, mais peu de personnes connaissent. Je vous conseille de vous rendre ici pour plus d’infos : http://www.smoothhd.com/ Une démo sur IPhone; après on dira que MS est pas ouvert :) Bon ok, la démo a pas marché, mais on y croit ! :)
Sinon au menu de Silverlight 4, on a noté encore :
- Gestion du clic droit (Mais ouiiiiiiiiiiiiiiiiiiii)
- Rich Text Editor
- Printing
- Clipoboard access
- Mouse wheel
- Implicit style (mais ouiiiiiiiiiiiii)
- Drag drop
- CommandBinding (MVVM)
- Additionnal Controls
- Support HTML
S’en suit une démo d’un éditeur HTML dans Silverlight 4.
Ca en jette pas mal, le drag and drop d’un fichier Word dans une fenêtre SL4 contenant l’éditeur wysiwyg
Au niveau des données; quelques améliorations notables comme:
- Le partage d’assemblies entre SL et .NET 4
- Améliorations du Databinding
- Support du multicast UDP
- Améliorations REST
- Améliorations WCF
- Intégrations des WCF RIA SERVICES
Sur ce dernier point Scott Hanselman viendra nous faire une démo de RIA Services. Rien de bien extraordinaire, mais qui fait son petit effet :)
On passe ensuite au support avancé dans Visual Studio 2010. Là au menu, en vrac nous avons :
- Un éditeur Wysiwyg dans VS 2010
- Améliorations de l’IntelliSense dans le XAML
- Améliorations des designers pour le data binding, les layouts et les styles
- Intégration des RIA Services
- Support du Full Trust en mode OOB
Au niveau performance SL4 nous promet d’être 2 x plus performant et de démarrer 30% plus rapidement.
Une démo très très sympa sur une application Facebook sur Silverlight 4.
Y’a pas à dire, ça déchire du taureau des Landes.. avec accès direct au matériel (upload du photo de son device en simple glissé-déposé)
La dernière partie du KeyNote sera axé sur Office 2010 et les nouveautés Sharepoint. Etant loin d’être expert sur le sujet, je laisse le soin à Redo qui est assis à coté de moi, de vous relater la fin de session !
Voilà, direction les sessions. La journée s’annonce chargée !
Et voilà je suis en possession de mon nouveau laptop offert par MS pendant la PDC.
Moi qui voulait en acheter un !!!
Tiens, quelques photos de la bête !

Tiens, en comparaison de ma machine actuelle, ca va me changer ;) (et encore je vous parle pas du poids !!)

Juste aprés la session sur Azure Present and Future, voici la même mais cette fois ci pour SQL AZURE
Les nouveautés présentés vont tourner autour de :
- Intégration avancée dans SSMS SQL SERVER 2008 R2
- Intégration dans Visual Studio 2010
- Reporting
- Synchronisation
Alors bon, un peu déçu sur le coup car au final, aucune démo ni sur la BI, Reporting et encore moins sur Data Sync.
Il faut croire qu’il faudra attendre les sessions dédiées sur ces sujets !
Sinon pour le reste :
J’ai pu voir le plan d’exécution d’une query sur SQL AZURE depuis Visual Studio 2010. Sympa !
Nous avons droit à une présentation du système de backup, bien que cette partie ne nous concerne pas puisque totalement pris en compte par SQL AZURE.
Par contre possibilité de configurer et gérer les backups.
Système de Clone : Possibilité de Cloner les bases de données :
1: Create Database xx.ProdClone as CLONE of xyz.Prod
D’autres points, en vrac:
- Support de providers SaaS (Api, template, Meta-data tracking, Support de scénarios)
- Support du DAC
- Support de Data Sync
- Dynamic database splits
- Merge databases
- Management across group of databases
- Aditionnal database size options
- Multiple database connections
- fan-out query on multiple databases
Les demandes utilisateurs (je n’ai pas su voir si cela allait être intégré)
- Support for profiler
- support spatial
- Full Text Search
- Change Tracking
- CLR
- BI
- Encryption
- Additionnal authentication
Tiens, une info (on s’en serait douté mais bon) “Dallas” utilise SQL AZURE.
Sql Azure codename “Vidalia”
Le principe : Séparer le contrôle des données des données elles-même.
Pas de démo sur le sujet, le principe reste sympa. A tester :)
Voilà une session que j’ai nommé “Killer Session” ! (en fin de journée je vous explique pas !)
Session animée par deux (jeunes) membres de l’équipe WPF Performance (Blogs http://blogs.msdn.com/jgoldb/ et http://blogs.msdn.com/ricom)
Autant le dire de suite, ces deux jeunes envoient du bois !
Je ne vais pas rentrer dans les détails, la session est très technique. Quelques slides pour résumer la philosophie du truc :
Oui les mesures, et surtout l’expérience !
je ne résiste pas à la tentation de vous montrer un des exemples découvert pendant la session:
Il s’agit d’éviter de charger des modules inutilement dans votre code.
Supposons que j’ai dans un “IF” un appel à un objet externe, faisant parti d’une dll supplémentaire :
1: // Some code
2: // /...
3:
4: if (!expected)
5: {
6: using (COMClassLogger log = new COMClassLogger())
7: {
8: log.WriteLog("Error");
9: }
10: }
11:
12: // Some code
13: // /...
Votre module est loadé lors du chargement de l’assembly principal, alors que celle ci peut ne pas être utilisé (Peut être parce qu’on passe pas dans le IF :))
Oui monsieur, l’évaluation du IF est fait au runtime, pas à la compil !!!
Le truc pour éviter ça c’est d’exporter votre appel dans une méthode, “like this” :
Si lors du chargement, votre module supplémentaire ne fait pas parti du corps de la méthode de chargement, il ne sera pas chargé. On fait donc un truc du genre :
1: // Some code
2: // /...
3:
4: if (!expected)
5: {
6: WriteLogEntry();
7: }
8:
9: // Some code
10: // /...
11: }
12:
13: private void WriteLogEntry()
14: {
15: using (COMClassLogger log = new COMClassLogger())
16: {
17: log.WriteLog("Error");
18: }
19: }
Le problème c’est le JIT compiler va optimiser ce code est “coupé-coller” le corps de la méthode au niveau de l’appelant. Donc un coup d’épée dans l’eau !
Bref, il nous faut donc indiquer à .NET de ne PAS faire faire ce qu’on appelle du “Inlining”, en marquant notre méthode avec un attribut MethodImpl, “like that” :
1: [MethodImpl(MethodImplOptions.NoInlining)]
2: private void WriteLogEntry()
3: {
4: using (COMClassLogger log = new COMClassLogger())
5: {
6: log.WriteLog("Error");
7: }
8: }
Et voilà un module non chargé, qui pourrait bien faire ramer (potentiellement) notre application au démarrage !
C’était je pense un des exemples les plus simple de la session :)
Nos deux compères ont beaucoup utiliser les outils de traces à disposition; voici un bon slide qui résume ceux qu’ils ont utilisé :
Voilà, bonne optimisation à tous :)
Plus de Messages
Page suivante »