Le blog d'Alti Expertease

jeudi 18 février 2010

Framework MT4J et les technologies tactiles



La technologie Multi-touch n'est pas une technologie nouvelle mais le succès de l'iphone fait que cette technologie rentre dans sa phase d'utilisation à grande échelle. Les équipements multi-touch se multiplient, que ce soit avec les OS mobiles comme Android / Iphone, les ordinateurs tout-en-un sous windows 7 ou les écrans d'ordinateurs supportant le multi-touch et dernièrement avec l'annonce de la sortie de l'ipad de Apple.
La technologie multi-touch peut aussi être appliquée en utilisant le touchpad multi-point des pc portables ou en utilisant une palette graphique wacom multi-point.
Le domaine d'utilisation est assez varié, il va de la conception 3D, au dessin, à la consultation de plans et d'images et pour finir au jeu.

Lire la suite

Techdays 2010 - Jour 3 - Windows Identity Foundation

La gestion de l'identité (utilisateurs et rôles) est une problématique récurrente dans nos applications. Mais elle n'est pas simple à mettre en place en plus d'être un sujet sensible car il s'agit de sécurité.

Lire la suite

mardi 16 février 2010

TechDays 2010 - Développements SharePoint 2010 et TFS 2010


2010 est un grand cru pour les développeurs. Nouvelle version de SharePoint, nouvelle version de TFS, et le résultat vaut le détour !

Une session en 3 volets, simples et efficaces :

1.       Etat des lieux de l’industrialisation des développements sous MOSS 2007

2.       Nouveautés de TFS 2010

3.       Best Practices

Lire la suite

TechDays 2010 - Workflow Foundation 4

Une session pour un tour d’horizon de la dernière version de Workflow Foundation.

Une session présentée par Florent Santin de AccessIt, et Pierre Couzy pour le côté MS (C’est marrant comme on retrouve toujours les mêmes personnes…).

Une session sur un axe : « Créer un WF et l’héberger », rythmée par quelques exemples.

Lire la suite

TechDays 2010 – Jour 1 – Les nouvelles technos d’accès aux données

Cette session, présentée par Roch Baduel (MCNext), Pierre Couzy (Microsoft) et Mathieu Mezil (Access it), avait pour but de répondre à la question suivante :

> Quelle technologie d’accès aux données doit-on utiliser dans un contexte donné ?

Cette question est effectivement cruciale et peut avoir des conséquences sur un développement que l’on viendrait d’entamer. Mieux vaut donc éviter les erreurs. Afin de ne pas commettre d’impairs et de faire le bon choix, les intervenants ont ainsi parcouru les techniques d’accès aux données, depuis le Framework 1.1 à nos jours, en expliquant leurs avantages et inconvénients.

Lire la suite

lundi 15 février 2010

Techdays 2010 - Jour 1 - Le futur de XAML dans le framework .NET et Silverlight

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é.

Lire la suite

Techdays 2010 - Jour 1 - Comment tirer parti de Windows 7 dans vos applications .NET

Cette session, présentée par Sacha Leroux et Patrice Lamarche, visait à expliquer comment, grâce au Windows API Code Pack for .Net Framework (qui est actuellement en version v.1.0.1), on pouvait tirer parti des nouveautés apportées par Windows 7, notamment dans son UI.

Lire la suite

dimanche 14 février 2010

Techdays 2010 - Jour 3 - Ergonomie web, principes et pratiques

Cette session, présentée par la pétillante et spontanée Amélie Boucher, a traité de l'ergonomie web. En plus de donner quelques principes et bonnes pratiques, elle a mis en évidence les idées reçues sur l'ergonomie.

Lire la suite

vendredi 12 février 2010

Spring BlazeDS Integration et rappel sur BlazeDS

BlazeDS est un projet open source d'Adobe permettant de connecter un front-end Flex à des services dans un back-end Java. Par défaut BlazeDS ne supporte pas les services gérés par Spring mais il est possible de le faire en utilisant une factory qui va faire le lien entre BlazeDS et Spring mais ce qui implique de faire un fichier de configuration BlazeDS séparé.

Le projet Spring BlazeDS Integration a été initié afin de simplifier les choses en faisant du MessageBroker un objet géré par Spring, ce qui ouvre la voie à une intégration plus poussée dans l'esprit Spring.

Lire la suite

Techdays 2010 - Jour 2 - Détecter et éviter les fuites de mémoire et de ressources dans les applications .NET

Fabrice Marguerie et Yann Schwartz nous sensibilisent à cet effet secondaire qui est la fuite de mémoire ou memory leak. Démonstration du phénomène à l'aide de différents outils, et explication de techniques pour éviter ce comportement à ne pas négliger sont au programme.

Lire la suite

jeudi 11 février 2010

TechDays 2010 Jour 2 – Architecture : Quoi de neuf avec Visual Studio 2010 ?

Pour cette dernière session de la journée, Benoit Laut et Sacha Leroux nous ont fait découvrir les nouveautés de VS 2010 ayant trait à l’architecture.

Comment modéliser et valider l’architecture ?

On peut remarquer que la plupart des anciens diagrammes présent dans l’édition Architect de VS 2008 ont disparu au profit d’un nouveau type de projet dédié totalement à la modélisation :

Modeling Project

Ce projet permet l’ajout de diagrammes principalement orienté UML 2.0 :
  • Use Case
  • Sequence
  • Class
  • Component
  • Activity
  • Layer
  • Directed graph

Les éléments ajouté au sein de ces diagrammes apparaissent au dans l’UML Model Explorer et peuvent ainsi y être paramétré directement, réutilisé entre les différent diagrammes (ex : réutiliser les acteurs et les interactions d’un use case dans un diagramme de séquence…) ou alors lié à un workitem dans TFS.

Les diagrammes de classe peuvent être enregistrés en tant de modèles afin d’être réutilisés par simple drag’n’drop depuis une toolbox (pratique pour les design patterns récurrents).

Le diagramme de couches permet entre autres d’attacher à une couche divers éléments de la solution comme un projet ou des classes afin de vérifier si ces éléments ne cassent pas les dépendances entre les couches. Cette validation peut se faire à la demande ou être intégrés au processus de Build.

Autre outil sympathique : il est possible de faire du reverse engineering pour générer un diagramme de séquence directement à partir du code d’une fonction.

Il est bien entendu possible intégrer tout ces diagrammes au contrôleur de source.

Comment analyser le l’architecture ?

Pour cela 2 nouveaux outils à notre disposition :
  • Les Dependency Graphs
    • Visualise un diagramme de dépendance à partir d’un ensemble d’éléments, que ce soit les projets de la solution ou des composants externes.
    • Propose une matrice des dépendances, très efficace pour identifier les problèmes de couplages entre les composants. (se rapproche beaucoup de l’outil NDepend de Patrick Smacchia.)
  • L’Architecture Explorer
    • Autre outil pour analyser les dépendances, il permet d’effectuer intuitivement des requêtes dans votre code (un Hand-On Lab est en cour de rédaction sur le skydrive de Brian A Keller)

Techdays 2010 - Jour 3 - Optimiser la qualité de son code (Code Contract)

Bien qu’initialement destinée à traiter le sujet de la qualité du code en général, cette session s’est attardée sur Code Contracts for .Net.

Le concept de programmation par contrat a été introduit dans le langage Eiffel par Bertrand Meyer à la fin des années 80. Plus de vingt ans après, les laboratoires de Microsoft Research livrent un framework pour Visual Studio et C#, Code Contracts, qui permet de vérifier de manière statique (et dynamique) si le code et son exécution respectent les pré/post-conditions et les invariants posés par le développeur sur les classes.

Ayant moi-même écrit pas mal de code Eiffel dans le passé, je ne pense pas que le principe de programmation par contrat fera beaucoup d’émules dans la communauté Microsoft. Il a en effet l’inconvénient de multiplier le nombre de lignes de code à écrire, et de l’encombrer d’assertions souvent évidentes. En revanche, utilisé correctement, ce principe permet de détecter dès la compilation un certain nombre de bugs ou de mauvaise utilisation d’une API ; bugs qui n’apparaitraient qu’à l’exécution dans le cas d’un code « classique ».

Ainsi, Code Contracts permettra peut-être à C# de faire un pas dans le monde des applications critiques.

Techdays 2010 - Jour 2 - Les tests fonctionnels avec Visual Studio 2010

La suite Visual Studio 2010 permet aujourd’hui d’adresser un aspect du cycle de développement jusque-là négligé par Visual Studio : les tests fonctionnels (manuels).

Avec Visual Studio 2008, les outils de tests, par leur nature technique, s’adressent principalement aux développeurs et aux testeurs « techniques », le support des tests fonctionnels se limitant à un template MS Word de script de tests.

Grâce à « Test Elements », petit nouveau dans la gamme Visual Studio, le fossé entre les développeurs et les fonctionnels se réduit enfin. En effet, cet outil développé en WPF est très intuitif et s’adapte aux besoins des testeurs fonctionnels tout en assurant une parfaite collaboration avec les développeurs grâce à son intégration complète à TFS.

Le principe est simple et réaliste : le développeur fournit la build à tester et le testeur crée ses plans de tests et les exécute sur cette build.

Grâce au Test Runner, le testeur bénéficie d’une assistance précieuse lors du déroulement de ses scripts de test :

  • Les étapes du script sont présentées une à une au testeur, en regard de la fenêtre de l’application à tester. Le résultat (succès ou échec) de chaque étape peut être saisi très facilement.
  • Un script de test peut être enregistré et rejoué automatiquement avec un jeu de valeurs différent
  • Lorsqu’une erreur survient, le testeur peut créer automatiquement un bug dans TFS et lui associer un screenshot, ou même une vidéo des actions qu’il a effectuées avant que l’erreur ne survienne.

De son côté, le développeur dispose ainsi de toutes les données nécessaires pour analyser et corriger rapidement le problème rencontré. Ces données sont principalement un screenshot ou une vidéo, mais peuvent aussi contenir un fichier Intellitrace qui permet de reconstituer l’état de l’application avant erreur dans l’environnement du développeur.

Des tests fonctionnels manuels outillés pour plus d’efficacité et de traçabilité, une collaboration développeur/testeur renforcée pour plus de fluidité dans le process (et notamment la fin des bugs non reproductibles) : voilà de quoi espérer des livraisons de meilleure qualité.

Techdays 2010 - Jour 1 - Les nouveautés de WPF 4.0

Dans une salle pleine à craquer, Mitsuru FURUTA et Thomas LEBRUN nous ont présenté les nouveautés de WPF 4.

De façon générale WPF 4 apporte son lot d'améliorations des performances, des corrections de bugs et est orienté vers un rapprochement encore plus marqué entre WPF et Silverlight (plus de détails encore dans la session sur les nouveautés de XAML 4.0). Les autres grandes nouveautés sont orientées autour de quatre grands axes que voici :

Nouveaux contrôles et outils :

  • De nouveaux contrôles (que vous pouviez retrouver dans WPF toolkit) font leur apparition, ce sont notamment : le Datagrid, le DatePicker, le Calendar,
  • Il est de plus désormais possible de paramétrer les correcteurs orthographiques, par exemple en ajoutant de nouveaux dictionnaires au format .lex,
  • L'intégration à Visual Studio 2010 est bien améliorée avec de nouveaux éditeurs de binding, de couleurs, etc....
  • L'intellisense fait sont apparition pour les markupsExtensions( enfin !!)

Nouvelles fonctionnalités de binding : Plusieurs choses sont présentes sous ce topic :

  • Le support du DataBinding pour les DynamicObjects,
  • Le support du DataBinding pour les éléments run dans les FlowDocument (enfin !),
  • Le support du DataBinding pour les commandes est amélioré (compatible avec l'architecture M-V-VM sans avoir a utiliser de proxy),

Intégration à l'OS, notamment Windows 7 :

  • Intégration des APIs de Windows 7 (jumplist, taskbar, etc.),
  • Compatible avec le multiTouch : ajout des différents nouveaux événements ainsi que des différents processeurs (inertie et animation). Ceux qui ont déjà travaillé avec le framework Touch ou Surface ne verront pas de grandes différences,
  • Le support de multiples souris (se comportant comme plusieurs contact tactile) fait aussi son apparition. Bien pratique pour pouvoir tester une appliction multiTouch sans avoir d'écran tactile...

Amélioration des animations et des fonctionnalités graphiques : Plusieurs nouveautés :

  • il est possible d'améliorer les performances de vos applications en utilisant un cache CachedComposition, celui-ci vous prive cependant des apports du vectoriel en remplaçant vos contrôles par des bitmaps,
  • autre nouveauté tout droit venue de silverlight 3 : les EasingAnimations qui permettent de produire des animations plus fluides et plus naturelles,
  • la propriété LayoutRendering de Silverlight 2 fait son apparition dans WPF pour corriger les éventuels problèmes de flou sur les bordures des contrôles,
  • un effort a été fait pour améliorer la lisibilité des textes présentés à l'écran en ajoutant deux nouveaux attributs paramétrant l'utilisation de l'anti-aliasing : ClearTypeHint et TextFormatingMode,
  • le VisualStateManager, lui aussi provenant de Silverlight fait son apparition dans WPF.

Ce fût donc une session très intéressante !

Techniques abordées: Visual Studio 2010, WPF4, Model-View-ViewModel

Techdays 2010 - Jour 3 - Plénière : Le futur de l'informatique

Ce n'est pas Emmett "Doc" Brown qui nous y a envoyé, mais nous avons eu un avant-goût du futur (de l'informatique) chez Microsoft lors de cette session. Allez Marty, démarre la DeLorean !

Lire la suite

Techdays 2010 - Jour 1 - Pex et Moles

Jonathan de Halleux de Microsoft Research a présenté un cas concret d’utilisation de ses deux frameworks - Pex et Moles – dans le cadre de tests unitaires de services Sharepoint. Moles est un framework de mocking qui, à partir d’une assembly donnée, génère des proxies pour toutes les classes qu’elle contient. Ces proxies exposent des propriétés permettant de remplacer (par injection de delegate ou de lambda expression) l’implémentation originale des méthodes de la classe par une implémentation mieux adaptée à un test unitaire.

En effet, du code reposant par exemple sur DateTime.Now est impossible à tester (car sa valeur dépend fortement de l’heure à laquelle le test est exécuté). Grâce à Moles, il est possible d’intercepter les appels à DateTime.Now et ainsi de contrôler la valeur retournée, ce qui améliore la testabilité du code.

Dans le contexte de Sharepoint (mais c’est le cas pour d’autres API), certaines classes ne peuvent pas être instanciées car leur constructeur est privé. Moles permet de contourner ce problème. Autre problème de testabilité pour Sharepoint (et autres API) : les objets à tester peuvent avoir de fortes dépendances sur d’autres objets. Là encore, Moles permet de contrôler la totalité du graphe d’objets et donc d’en assurer la testabilité.

Pex est un framework de génération de tests unitaires qui permet d’inférer automatiquement des jeux de valeurs pour assurer une couverture optimale du code à tester.

Pour cela, Pex effectue une « exploration » des méthodes de test et analyse l’ensemble des conditions qui sont évaluées au cours de leur exécution. A l’issu de cette exploration, Pex génère une batterie de tests unitaires afin d’exercer les tests avec les jeux de valeurs ainsi identifiées.

Il est certain que le taux de couverture est un facteur essentiel pour des tests unitaires de qualité et Pex assiste le développeur pour lui permettre d’atteindre rapidement un taux de couverture élevé, limitant ainsi le nombre de bugs dans son code.

Techdays 2010 - Jour 1 - PowerPivot

Avec PowerPivot, Microsoft met l’accent sur la démocratisation et la simplification de la BI (Business Intelligence).

PowerPivot est un add-in gratuit pour Excel 2010, reposant sur SQL Server 2008 R2.

PowerPivot (code named Gemini) est issu du constat (réaliste) suivant :

  • Excel est l’outil de choix pour le travailleur de l’information. Avec Excel, les analystes disposent de fonctionnalités puissantes pour présenter, filtrer, consolider une masse importante de données.
  • La mise en place de nouveaux rapports dans le cadre d’une solution BI classique prend beaucoup trop de temps car nécessite de faire collaborer experts métier et développeurs.

Cependant, Excel n’est pas une solution idéale car :

  • pas assez puissant pour manipuler une quantité importante de données
  • pas sécurisé
  • pas adapté au partage et la collaboration

PowerPivot est la réponse à ces limitations. Il apporte toute l’autonomie nécessaire aux fonctionnels sans sacrifier à la sécurité et à la bonne exploitation des sources de données de l’entreprise, pour lesquelles l’IT reste partie prenante. PowerPivot, grâce à son moteur BI en mémoire (IMBI), permet la manipulation de volumes énormes de données (plusieurs centaines de millions de ligne). Il supporte le mode déconnecté et peut être alimenté par des sources de données hétérogènes. L’avènement des « Slicers » permet une expérience utilisateur plus riche que les classiques Pivot Tables.

L’aspect collaboration est assuré par l’intégration de PowerPivot à Sharepoint 2010.

mercredi 10 février 2010

TechDays 2010 Jour 2 – Windows Azure AppFabric

Cette session animée par Thomas Conté, Rochdi Chakroun et Geoffrey Daniel commence tout d’abord par une vue d’ensemble de la plateforme Azure, solution proposée par Microsoft pour permettre la création et l’hébergement d’applications et services sur le « cloud »:

Azure Platform

Composée de 3 briques :
  • Windows Azure: environnement d’exécution pour des applications et services sur le cloud
  • Microsoft SQL Azure: Base de données intégrée au cloud
  • Windows Azure platform AppFabric: Facilite la connection et, au besoin, sécurise les échanges entres application et services, que ce soit en « local » ou hébergé sur le cloud.
Après cette première approche, Azure AppFabric nous a été illustré par un cas pratique :
- Comment interconnecter les différents acteurs d’une application de prise de commande, nécessitant une haute disponibilité et sécurité sachant que ces applications se trouvent sur des infrastructures isolées (réseau différent, Firewall, NAT…) ?

La solution nous est ensuite exposée en pratique via l’utilisation d’Azure AppFabric comme intermédiaire avec la mise en œuvre de ses 2 briques logiques:
  • Le Service Bus
    • Passerelle relais entre les services.
    • Passe à travers les firewalls ou NAT, et peut même si besoin négocier des connections directes entre les différents communicants.
    • Relaye les appels, gère les messages et le multicast.
    • Compatible avec les technos non .NET (via SOAP ou REST)
    • Offre la découverte des services via http au travers d’url simples
  • L’Access Control
    • gestion très fine de la sécurité des services via des règles d’accès.
    • Fédère l’authentification entre différents fournisseurs d’identité.
    • Gère des protocoles standards comme Oauth, WRAP, SWT et s’intègre aussi avec ADFS v2

Pour ce qui est de l’outillage, le SDK de AppFabric nous offre une surcouche à WCF par l’ajout de toute une panoplie de nouveaux Bindings, qui pour certains étendent les bindings existants (BasicHttpRelayBinding, NetTcpRelayBinding…) et quelques petits nouveaux, notamment le NetEventRelayBinding permettant le multicast de messages one-way entre plusieurs publishers et plusieurs subscribers.

Techdays 2010 - Jour 2 - Asp.Net 4 et Ajax 4

ASP.Net 4

Concernant ASP.NET 4, plusieurs choses intéressantes malgré rien de révolutionnaire :

  • Un Web.config réduit à son stricte minimum (environ 8 lignes de base), tous les anciens tags ont été migrés dans le machine.config
  • Un nouveau template de site web qui contient maintenant toute la partie authentification Forms déjà intégrée (MembershipProvider, RoleProvider, ProfilProvider) connecté à une base de données ainsi qu'une master page et un thème.
  • Des snippets assez évolués pour chaque contrôle pour augmenter la productivité
  • La gestion de plusieurs fichiers de configuration (web.config) en fonction du mode de compilation (debug, release) avec l'utilisation d'un moteur de transformation XML
  • Pas mal d'optimisation au niveau rendering pour optimiser le code généré par les différents contrôles à l'aide de propriétés (RenderingMode pour l'aspNetMenu, RepeatLayout pour les RadioButtonList et CheckBoxList, et RenderOuterTable pour les FormView, LoginView, ListView, ...).
  • La possibilité de gérer l'activation du ViewState de manière plus précise qu'auparavant, chaque contrôle à maintenant une propriété ViewStateMode qui peut prendre les valeurs Enabled, Disabled et Inherit (par défaut).
  • La gestion des ClientID pour les contrôles grâce au ClientIDMode qui peut prendre les valeurs AutoID (auto-générés comme c'est le cas dans .NET 3.5), Static (ClientID = ID, attention aux contrôles répétés dans une GridView par exemple) et Predictable (permet de prédire le ClientID grâce à l'utilisation conjointe avec la propriété ClientIDRowSuffix des contrôles type GridView)
  • Un contrôle Chart qui fait son apparition et qui gère 35 graphiques différents (dont la majeure partie en 2D et 3D). C'est un contrôle Bindable qui génère des images.
  • Le QueryExtender qui permet un filtrage de données basées sur une LinqDatasource sans code behind. La génération de la requête Linq se fait de façon déclarative dans la page web directement grâce à des SearchExpression, PropertyExpression, RangeExpression, OrderByExpression, ThenByExpression ou encore CustomExpression.
  • L'ajout de classes CSS automatiques pour les contrôles HiddenField et les contrôles en mode Enabled=false ce qui permet de facilement changer leur design.
  • L'ajout d'une classe HttpUtility qui regroupe toutes les fonctions d'encodage et décodage HTML et JavaScript qui évite d'accéder au contexte de la page.
  • L'ajout d'un tag <%: X %> équivalent à un Response.Write(HttpServerUtility.HtmlEncode(X))
  • Le Search Engine Optimisation (SEO) :
    • Avec notamment le routing qui est intégré aux Webforms 4.0 et qui gère la réécriture de l'action d'un formulaire. La configuration se fait dans l'event handler Application_Start du fichier Global.asax. L'accès aux "route parameters" dans les DataSource avec Page.RouteData ou avec le tag <%$ RouteValue:name %>.
    • La redirection permanente pour ne pas perdre le référencement d'une page à l'aide de RedirectPermanent et RedirectToRoutePermanent.
    • La gestion des balises Meta de façon dynamique à l'aide de Page.MetaKeywords et Page.MetaData.
Ajax 4

AJAX 4 a changé et ça se voit :) Microsoft a vraiment planché sur le sujet et on sent clairement la volonté de faire évoluer ce Framework.

Visual Studio 2010 intègre maintenant jQuery ainsi que le Framework AJAX et tous l'AJAX control Toolkit sous forme de fichiers debug (fichiers originaux) et release (fichiers réduits au maximum).

Le Framework AJAX qui avant se limitait à quelques fichiers JavaScript a entièrement été découpé en multiples fichiers (1 pour chaque fonctionnalité), de façon à ne pouvoir charger que ce qui est nécessaire. Le chargement des fichiers (script loading) se fait maintenant à l'aide d'un fichier (Start.js) et grâce à une ligne de commande JavaScript "Sys.require(Sys.script.WebService);" par exemple pour charger la bibliothèque relative aux Web Services. Tous les fichiers dépendants seront automatiquement chargés pour pouvoir faire fonctionner la bibliothèque demandée.

On peut également charger des fichiers à la demande, imaginons qu'une fonctionnalité dans un site à besoin d'une partie du Framework, on ne peut charger les bibliothèques correspondantes qu'au moment de l'utilisation de cette fonctionnalité ce qui est plutôt une bonne chose.

Concernant l'AJAX control Toolkit, il a entièrement été réécrit sous forme de plugin jQuery ce qui permet par exemple de charger qu'une seule instance JavaScript d'un AJAX control et de l'appliquer à plusieurs contrôles de votre page (là où avant on avait autant d'instances que de contrôles). On voit également apparaître 2 nouveaux contrôles dans ce toolkit, le contrôle SeaDragon qui permet de faire du DeepZoom et l'AsyncFileUpload qui permet d'uploader des fichiers de manière asynchrone.

Une grosse nouveauté également est la création de la librairie AJAX Client Template. Cette librairie permet de déporter toute la logique événementielle, le databinding ainsi que de datacontext côté client (tout comme Silverlight). Je ne présenterai pas ici la manipulation de cette librairie qui s'avère assez complexe, mais on a vu une application utilisant cette librairie, qui communiquait avec un WebService et qui permettait de gérer les groupes et les classements des équipes de la coupe du monde de football avec seulement 400 octets de données qui transitaient en JSON entre le client et le serveur à chaque requête ce qui est plutôt un bon point côté bande passante.

mardi 9 février 2010

TechDays 2010 Jour 2 – SQL Server 2008 R2 Demo Festival

Aujourd’hui Pascal Belaud et Jean-Pierre Riehl nous ont présentés par la pratique un vaste panel des nouvelles fonctionnalités d’administration qu’offre SQL Server 2008 R2.

Au programme :

Sql Server 2008 R2 Report Builder 3.0
  • Nouvelle interface plus accessible
  • Nouveaux éléments graphiques : les Sparklines et DataBars, petits graphiques à insérer en colonne :
  • Prise en charge des données cartographiques avec de nouveau contrôles associés :
  • Reports Mashup : Possibilité de combiner les rapports (données d’un rapport pouvant servir de paramètre à un autre)
  • Reports Parts : Exporter et partager les rapports afin d’en combiner plusieurs graphiquement. (utile pour un dashboard)
Sql Server 2008 R2
  • Toujours composé de 4 briques majeures, ici pas de nouveauté:
    • Le moteur de base de données : Sql Server Engine
    • Le module de BI : Analysis Services
    • L’ETL : Sql Server Intergration services
    • Le module de reporting : Reporting Services, complété par Report Builder 3.0
  • Data Auditing : via les DDL on pouvait déjà tracer les changements effectués sur la définition même de la base (ex : ajout table), il est maintenant possible de tracer les mises à jours effectués au niveau même des données. (plus d’info sur msdn)
  • Transparent Data Encryption : permet de crypter entièrement une base de donnée ainsi que ses backups, ceci de façon totalement transparente pour les applications clientes. (attention crypter une base activera implicitement l’encryption sur la base tempdb de l’instance)
  • Policy-Based Managment : possibilité de créer des stratégies pour contraindre ou logger des actions réalisées sur une base ou instance (par exemple forcer une convention de nommage pour les tables…)
  • Administration par PowerShell
  • Mise en place d’un mirroring d’une base réalisé avec une facilité déconcertante ! Démonstration à l’appui avec simulation d’une panne (coupure d’une instance ou corruption d’une page) : le basculement est très rapide et totalement transparent pour les clients.
  • Data Collector : service offrant la possibilité de planifier des collectes de différents indicateurs : Utilisation du disque, Activité du serveur et les requêtes exécutées (notamment avec leur plan d’exécution, très pratique pour identifier une surcharge à une certaine heure)
  • Resource Gouvernor : gère l’allocation CPU ou mémoire en fonction de profiles. Ces profiles sont affectés à la connexion et sont personnalisables via une implémentation simple d’une fonction sql. (exemple : l’utilisateur GestionPaye aura le maximum de ressources lors des clôtures de paye en fin de mois)
  • Change Data Capture : moyen relativement simple d’ajouter l’historisation des changements sur une table spécifiée (exemple sur mssqltips)
  • Data Compression : permet d’activer la compression des données au niveau des lignes ou des pages. (exemple : pour une ligne d’une table avec une colonne char(200), seules les données non vides seront persistées comme un varchar.)
  • Point important : les backups aussi bénéficient d’un système de compression.

Techdays 2010 - Jour 1 - Laboratoires de test virtualisés avec Microsoft Test and Lab Manager(MTLM)

Nouveau venu dans les outils ALM de Microsoft, MTLM sera disponible en version standalone ou avec la suite Visual Studio 2010 Ultimate.

La partie Lab Manager de cet outil permet d’instancier, à partir de modèles de machine ou d’environnements complets, une série de machines virtuelles sur lesquelles seront déployés l’ensemble des composants du système à tester.

Les environnements de test peuvent être sauvegardés sous forme d’instantanés, ou restaurés vers un état (stable) antérieur en quelques minutes.

L’outil Environment Viewer permet de se connecter aux machines virtuelles et interagir avec elles. De plus ces environnements de test sont accessibles de manière centrale et partagée à l’échelle d’une équipe ou d’un projet.

Jusque là, rien de bien extraordinaire. Cela ressemble à du pilotage de System Center Virtual Machine Management (SCVMM) s’appuyant sur l’hyperviseur Hyper-V de Windows 2008.

Les choses commencent à devenir intéressantes quand la partie Lab Manager est utilisée conjointement avec la partie Test Center de l’outil.

En effet, le Test Center, qui permet de définir et organiser les plans de test pour le système à tester, a la possibilité de les exécuter sur les environnements contrôlés par le Lab Manager. Ce qui ouvre une multitude de possibilités en termes d’automatisation.

Tout d’abord, automatisation du déploiement du système à tester sur un environnement qui est soit pris en l’état soit « monté » à partir d’un snapshot (ou état de la VM) donné. Ainsi dispose-t-on d’une configuration complètement contrôlée lors du démarrage d’une campagne de tests, ce qui permet d’éliminer un certain nombre d’effets de bord.

Ensuite, automatisation de la capture de l’état de l’environnement soit à l’issu du déploiement du système à tester, soit lors de l’occurrence d’une exception ou toute autre erreur.

Ce dernier point, notamment, représente un gain de productivité important pour l'itération test-débuggage. En effet, le Test Runner permet d’attacher au work item de bug un snapshot de la totalité de l’environnement de test (e.g. la machine client, le serveur de base de données…) au moment de l’erreur. Ainsi le développeur qui se voit assigné ce bug peut en quelques secondes reconstruire l’environnement virtuel dans l’état exact où il se trouvait lorsque le problème est survenu, le dispensant d’avoir à reconstituer lui-même les conditions exactes de reproduction de ce problème (ce qui peut représenter une économie substantielle : plusieurs heures ou journées).

MTLM représente donc une avancée réelle dans l’offre de Microsoft concernant l’ALM puisqu’il permet d’outiller les tests fonctionnels, tout en en conservant la nature manuelle inhérente.

Techdays 2010 Jour 1 - Entity Framework 4

Visual Studio 2010 nous apporte pour cette année son lot de fonctionnalités, notamment la très attendue nouvelle version d’Entity Framework que nous ont aujourd’hui présenté Alexandre Equoy et Matthieu Mezil.

Au menu des nouveautés présentées:

  • Amélioration générale des designers :
    • Définition des types complexes depuis le designer d’entity-model EDM (sous structure encapsulant un ensemble de propriétés mais ne correspondant pas directement à une entité du model. ex: le type complex « Adresse » susceptible d’apparaitre dans plusieurs entités)
    • Types complexes auto-générés selon le retour d’une procédure stockée.
    • La fonction « Pluralize or Singularize » permettant lors de la génération des entités de mieux gérer automatiquement le nommage des EntitySet en fonction du nom de la Table. (semble ne fonctionner qu’avec les mots anglais)
    • Ajout des types d’association et de propriété « ForeignKey » avec possibilité de les définir via le designer.
  • Prise en charge du « Lazy-loading »de façon transparente. (activation simple via la Propriété context.ContextOptions.LazyLoadingEnabled)
  • L’approche « Model First » : Possibilité de commencer la modélisation directement par le designer d’Entity-Model (EDM) puis de générer le modèle de stockage (SSDL), les Mappings (MSL) et les scripts de génération de la base de donnée.
  • Gestion des POCO (Plain Old CLR Objects), Fonction très attendue !!
    • Utilisation d’Entity pour persister un modèle objet sans dépendance avec le Framework Entity. (EF utilise de manière transparente des proxy pour gérer le lazy-loading ainsi que le change-tracking)
    • Possibilité d’auto-générer ces classes POCO à partir de l’entity-model EDM par l’intermédiaire d’une template T4 fournie.
  • Amélioration des requêtes générées par EF

Techdays 2010 - Jour 1 - Développement Web avec outillage Microsoft

ASP.NET 4.0, ASP.NET MVC, AJAX, SOAP, JSON, REST... Cette session avait pour objet de faire un état des lieux des technologies et outils disponibles aujourd'hui pour le développement web.

Lire la suite

lundi 8 février 2010

TechDays 2010 - Jour 1 : Silverlight 4 - Cas pratique du mode déconnecté

Par Bertrand Jurado - ALTI

Lire la suite

Techdays 2010 - Jour 1 : La Programmation Orientée Aspect en .Net

Avec le temps, les technologies rendent nos applications de plus en plus complexes. Certaines problématiques sont adressées par les méthodologies (DRY, SOLID, SoC, SRP, etc.), les patrons de conception (design pattern), la programmation orientée objet (OOP) ou les architectures orientées services (SOA), par exemple.
Mais il vient un moment où le développeur ne peut plus découpler les fonctionnalités. La programmation orientée aspect permet d'adresser cette problématique.
Cette conférence nous a présenté cette méthode et les outils disponibles en .Net.

Lire la suite

Techdays 2010 - Jour 1

Sébastien Blanchard - ALTI

Lire la suite

Techdays 2010 - Jour 1 - Les WCF RIA Services

Par Arnaud Lemettre - ALTI

Lire la suite

Alti – Expertease

Crée en 2005, l’entité ALTI Expertease rassemble l’ensemble des experts et architectes du pôle technologies d’Alti.
Fort d'une trentaine de consultants, ALTI Expertease accompagne les clients d’Alti dans le choix et la mise en œuvre de technologies de plus en plus complexes.