Welcome to MSDN Blogs Sign in | Join | Help

Ecrire des applications .NET appelant des bases de données MySQL, c'est possible !

Nous venons de publier sur MSDN, une série de 6 webcasts que j'ai produits et qui montrent comment réutiliser la puissance du Framework .NET 3.5 et de l'outil de développment Visual Studio 2008 pour écrire une application .NET attaquant une base de données MySQL.

Voici la liste de ces webcast :

Introduction et présentation des outils DevArt
Dans ce WebCast, nous allons voir quels sont les outils à ajouter à Visual Studio 2008 pour bénéficier du support intégral de MySQL

Développement RAD avec Visual Studio 2008 et MySQL
Dans ce WebCast, nous allons voir comment, avec Visual Studio 2008, faire du développement RAD pour administrer le contenu de bases de données MySQL. Dans cette démonstration, et bien qu’aucune ligne de code ne sera écrite manuellement, nous aurons au final une application permettant de lire, ajouter, modifier et supprimer des données d’une table.

ADO .NET et MySQL
Dans ce WebCast, nous verrons comment écrire du code bas-niveau pour accéder à nos bases de données MySQL en utilisant le fameux modèle universel permettant d’accéder à toute base de données et baptisé ADO .NET

Entity Framework (ORM) et MySQL
Dans ce WebCast, nous mettrons à profit la nouvelle plateforme ORM (Object-Relational Mapping) appelée Entity  Framework et disponible dans le .NET Framework 3.5 pour attaquer nos bases de données MySQL.

ASP .NET MVC et MySQL
Dans ce WebCast, nous verrons comment utiliser la toute nouvelle plateforme ASP.NET MVC pour construire des applications Web basées sur le pattern MVC (Model View Controller) en attaquant une base de données MySQL.

Pour aller plus loin
Dans ce WebCast, nous verrons quels sont les liens qui pourraient vous être utiles pour utiliser au mieux Visual Studio 2008, le .NET Framework 3.5 avec MySQL

Les vidéos (disponibles en stream mais aussi en téléchargement), présentation et codes sources sont disponibles sur cette page : http://msdn.microsoft.com/fr-fr/netframework/dd742324.aspx.

Je suis preneur de vos feedbacks sur ces webcasts !


 

Le code source de l’application Microsoft TechDays 2009 Agenda Planner est maintenant disponible

Chose promise, chose due !

Comme promis ici, je viens de publier le code source de l’application MS TechDays 2009 Agenda Planner. Vous pouvez donc le télécharger à l’adresse suivante :

http://www.mstechdays.net/PDA/SourceAgendaPlanner.zip

Enjoy !

 

Microsoft TechDays 2009 : accéder à votre agenda Web maintenant que le site d'inscription est fermé

Comme vous le savez, nous avons fermé le site d'inscription des Microsoft TechDays 2009 ce samedi midi, c'est complet de chez complet :-)

Si vous avez besoin d'accéder au fichier MSTD09.Inscription nécessaire à la synchronisation de votre agenda WEB avec l'application pour Windows Mobile Agenda Planner, il faut vous rendre sur l'URL suivante :

http://galilee.microsoft.fr/Techdays2009/Deja-Inscrit.aspx

De là, vous pourrez demander à recevoir votre URL d'inscription, qui vous permettra de vous rendre à nouveau sur votre agenda WEB (en mode lecture seule cette fois-ci) pour télécharger ce fameux fichier.

 

J-2 pour les Microsoft TechDays 2009

Comme vous le savez, l'édition 2009 des Microsoft TechDays démarre dans deux jours maintenant. Cette conférence va se dérouler sur trois jours, les 10, 11 et 12 février 2009 prochains. Cette année, c'est 323 sessions qui vous sont proposées ! Ces 323 sessions impliquent 313 speakers différents !

Pour vous retrouver dans le méandre de ces sessions, je ne peux que vous recommander l'application pour Windows Mobile qui a été développée tout spécialement pour l'occasion et qui s'appelle "MS TechDays 2009 Agenda Planner" : http://www.mstechdays.net/PDA

Depuis la création de Microsoft, ses partenaires ont toujours constitués la véritable clef de voûte de la société. La meilleure démonstration en sont les chiffres suivants :

  • Sachez que 186 des 323 sessions sont justement présentées par des partenaires, soit 58% des sessions tout de même !
  • Encore mieux, parmi les 313 speakers impliqués dans l'événement, 191 d'entre eux sont des partenaires, soit 61% de l'ensemble des speakers.

Ces chiffres parlent d'eux-mêmes je crois...

Alors, pour revenir à mes moutons :-), sachez que, naturellement, je suis l'un de ces 313 speakers et que je vais intervenir 7 fois cette année :

Journée du mardi 10 février 2009

  • Plénière : on vous a concocté, avec toute mon équipe, un maximum de démos ! Vous n'allez pas être déçu !, 09H30-10H30, Amphi principal
  • FRA213 : ADO.NET Sync Services : Synchroniser votre portable et votre mobile, présenté par Sébastien Pertus [Bewise] et moi-même, 11H00-12H00, salle 221M/222M
  • AZU209 : SQL Data Services ou le stockage de vos données dans le Cloud, présenté par moi-même, 14H30-15H30, salle 252A
  • FRA217 : Visual Basic 10 (VB10), présenté par Grégory Renard [Wygwam] et moi-même, 16H00-17H00, salle 242A
  • FRA214 : Vélocity, le cache distribué de demain, présenté par moi-même, 17H30-18H30, salle 251

Journée du mercredi 11 février 2009

  • FRA419 : Windows Communication Foundation (WCF) dans le Framework .NET 4.0, présenté par moi-même, 14H30-15H30, Amphi Bordeaux

Journée du jeudi 12 février 2009

  • DAT209 : Les nouveaux types dans SQL Server 2008, présenté par Christian Robert [MVP SQL Server] et moi-même, 14H30-15H30, salle 241

Je vous recommande de vérifier sur notre site web (en cliquant sur les liens devant chacune des sessions) si l'heure ou la salle n'ont pas été modifiés entre-temps. Si vous utilisez l'application pour Windows Mobile et que vous mettez à jour votre base de données régulièrement, vous aurez la bonne information tout le temps sur vous !

A mardi donc !

MS TechDays 2009 Agenda Planner, utiliser l'application sans avoir de PDA ? C'est possible !

Et oui, vous n'avez pas forcémenent besoin d'un PDA pour pouvoir utiliser l'application Agenda Planner qui a été développée tout spécialement pour organiser votre agenda des prochains Microsoft TechDays 2009 ! Vous pourrez organiser votre agenda depuis votre ordinateur de bureau également, tout en utilisant Agenda Planner !

Vous trouverez toute la procédure à suivre, ainsi qu'un webcast explicatif, dans la section Foire Aux Questions du site dédié à cette application :

http://www.mstechdays.net/PDA

Enjoy!

MS TechDays 2009 Agenda Planner, l'application pour Windows Mobile est maintenant disponible gratuitement !

Alors, pour ceux qui ont suivi les étapes précédentes, ici puis ici, vous savez que je me suis en tête de développer une application pour Windows Mobile Professional qui permette à toute personne se rendant aux Microsoft TechDays 2009, les 10, 11 et 12 février prochains au Palais des Congrés de Paris, de pouvoir construire son agenda !

De plus, on pourra synchroniser son agenda PDA avec celui du site Web d'inscription, et ce dans les deux sens ! On pourra faire des recherches très sophistiquées et on pourra même envoyer des informations sur nos sessions favorites à nos amis et collègues, via SMS ou email !

Et bien, cette application s'appelle MS TechDays 2009 Agenda Planner et c'est avec un grand plaisir que je vous annonce, en exclusivité pour vous les lecteurs de mon blog, que cette application est désormais disponible publiquement et gratuitement à l'adresse suivante :

http://www.mstechdays.net/PDA

Un WebCast de démonstration est disponible pour en expliquer le fonctionnement à l'adresse suivante :

http://www.mstechdays.net/PDA/Demo.wmv

<Update heure="21H55"> Dans la vidéo de démonstration, vous pouvez me voir transmettre un fichier MSTD09.Inscription à l'application pour effectuer ma synchronisation. Pour le moment, vous ne trouverez pas de lien sur le site d'inscription vous permettant de générer de fichier. Une petite astuce en attendant la mise à jour du site :

Cele devrait provoquer le téléchargement de ce fichier qui ne contient rien d'autre que votre identifiant d'inscription, sous la forme d'un GUID, à copier sur votre PDA pour effectuer la fameuse synchronisation bidirectionnelle.</Update>

Une bonne nouvelle ne venant jamais seule, sachez que j'ai décidé également de publier les sources de cette application dès la fin des TechDays 2009. Stay tuned!

Voilà, je me suis bien "donné" sur cette application et il est temps que je passe à la préparation/finalisation des sessions techniques que je vais présenter pendant cet événement :-)

 

Preview : Agenda Planner, l'application Windows Mobile pour les personnes se rendant aux Microsoft TechDays 2009

Je vous faisais part dans ce post du fait que je m'étais mis à développer une application Windows Mobile qui allait vous permettre de planifier de manière beaucoup plus aisée votre agenda des Microsoft TechDays 2009. Cette application va d'ailleurs être une première mondiale chez Microsoft !

J'ai, grâce aux TRES nombreux beta-testeurs (qu'ils en soient tous remerciés ici !), bien avancé dans le développement de l'application, et je peux, d'ores et déjà, vous annoncer que je compte rendre publique cette application d'ici quelques dizaines d'heures :-)

En attendant, j'ai enregistré un WebCast qui démontre toutes les fonctionnalités de cette application. Si, en attendant la release finale de cette application, vous souhaitez voir dès maintenant cette vidéo, c'est par ici :

http://www.mstechdays.net/PDA/Demo.wmv

Tout feedback sera le bienvenu !

Capture1  Capture2  Capture3  Capture4

Beta-test : une application Windows Mobile pour les Microsoft TechDays 2009, volontaires demandés...

Si je vous dis :

  • Microsoft TechDays 2009
  • Sessions techniques
  • Calendrier
  • Recherche multicritères
  • Données toujours à jour sur soi
  • Windows Mobile Professional
  • .NET Compact Framework
  • SQL Server Compact Edition

vous pensez à quoi ? Et si je vous dis que tout ceci ne fait qu'un ? Et si je vous dis que cela sera disponible très bientôt pour tout le monde ?

En attendant, j'ai besoin de personnes volontaires pour beta-tester le résultat de cette devinette. Pour être très précis, j'ai besoin de personnes dont les caractéristiques sont :

  • Vous disposez d'un Windows Mobile Professional (ex. PocketPC), à partir de la version 5.0
  • Depuis ce périphérique, vous avez un accès à Internet (WIFI, GPRS, ActiveSync)
  • Vous disposez d'au moins 3 Mo de stockage libre (sur la mémoire centrale ou sur une carte CompactFlash/SD externe) [attention, si WM 5.0 prévoir également le stockage pour l'installation du .NET Compact Framework 2.0]
  • Vous avez un petit peu de temps tout de suite pour les tests
  • Vous êtes d'accord pour beta-tester cette application

Si vous répondez à ces critères, contactez-moi en privé via ce blog en me précisant :

  • Votre prénom et nom
  • Votre adresse de messagerie
  • La référence de votre périphérique
  • La version de Windows Mobile installé dessus

Si vous êtes sélectionné(e)s, vous recevrez très vite des instructions et le CAB d'installation de l'application.

 

L’agenda des TechDays 2009 a été entièrement construit avec Microsoft Solver Foundation

Comme vous devez le savoir, l’agenda des TechDays 2009 a officiellement été publié ce lundi 12 janvier 2009 au matin et le site d’inscription à cet événement est désormais ouvert :

http://www.mstechdays.fr

Je tenais, dans ce billet, à partager avec vous la manière dont cet agenda a été construit cette année. Comme certains d’entre vous le savent peut-être déjà, le backend qui gère les TechDays s’appelle Vinci et a été  développé par mes soins à l’occasion des TechDays 2008. Malgrès cela, le processus de création d’un agenda tel que celui des TechDays a, jusqu’à présent, été quelque chose de très lourd et surtout de très manuel et donc, par définition, très imparfait.

Voici donc l’envers du décor de la création de l’agenda de de l’édition 2009. En première mondiale chez Microsoft, il a été entièrement résolu à l’aide d’une toute nouvelle bibliothèque appelée Microsoft Solver Foundation :

Microsoft Solver Foundation

Quelques chiffres sur la difficulté du problème à résoudre :

  • 294 sessions dont 50 fixées à l’avance, soit 244 sessions à répartir sur 244 paires créneau horaire/salle
  • Plus de 240 speakers impliqués
  • Aucun speaker ne doit présenter plus d’une session à un créneau horaire donné (14 créneaux horaires disponibles sur les 3 jours de l’événement)
  • 1 743 contraintes de créneau horaire (La session X doit être présentée à tel créneau horaire)
  • 105 contraintes de salle (La session X doit être présentée dans tel type de salle, en terme de capacité)
  • 42 contraintes de TrackPrecedences (La session X doit avoir lieu avant la session Y)

soit près de 2 000 contraintes à respecter.

De plus, une des contraintes supplémentaires était de minimiser le nombre de sessions d’un même parcours jouées au même moment.

Si on devait tester systématiquement toutes les combinaisons possibles, il faudrait passer en revue 1E478 ( = 244! ) combinaisons pour l’agenda des TechDays 2009 ! A raison de 1 seconde de calcul par itération, il faudrait donc 1E470 années de calcul sur un seul ordinateur. En supposant que l’on dispose de 1 000 000 d’ordinateurs pour effectuer ces calculs en parallèle, il faudrait donc 1E464 années pour tester toutes les combinaisons possibles, à mettre en rapport avec l’âge de l’Univers qui est 1E9 années ou encore le nombre d’atomes estimés dans l’univers qui est 1E79. Autant dire impossible ! :-)

Microsoft Solver Foundation nous a permis de résoudre notre problématique en 52 secondes sur un laptop dual core de dernière génération et 32 secondes sur un 24 cores avec 16Go de RAM. Cependant, il a fallu un travail de 9H d’affilée pour préparer les données et éliminer les contraintes qui rendaient le problème infaisable, et ce à chaque nouvelle itération (= tout changement de données). Pour information, il y’a eu 10 itérations avant de construire cet agenda.

La solution trouvée répond à 99.4% des contraintes exprimées, c’est à dire que seules 13 contraintes sur près de 2 000 n’ont pas pu être respectées !

Un grand merci à l’équipe Corp. de Microsoft Solver Foundation qui nous a énormément aidée en écrivant tout le code de déclaration du modèle. Cette mise en œuvre leur a tellement plu qu’ils vont l’intégrer comme un sample de leur SDK. Il est possible que j'écrive un article technique sur le sujet.

A noter qu'une session sur Microsoft Solver Foundation sera justement présentée lors de ces TechDays, par Lucas Bordeaux de Microsoft Research Cambridge :

Microsoft Solver Foundation  (REC313)

Pour finir, voici ce qui se passait sur le 24 cores pendant que je faisais les optimisations :

clip_image001

 

 

Un dossier MSDN entièrement consacré à SQL Server 2008 est désormais disponible

Nous venons de publier, sur notre site MSDN, un dossier entièrement consacré à SQL Server 2008 :

http://msdn.microsoft.com/fr-fr/sqlserver/msdn.dossier-sql08.aspx

N'hésitez pas à le consulter. J'espère que vous le trouverez utile. Et pour tester vos connaissances, il y'a même un quizz !

Si vous trouvez ce dossier utile, alors n'hésitez pas également à transférer cette URL à qui pourrait être intéressé(e) !

 

Barack Obama est le nouveau président des Etats-Unis !

Bon ceci n'est pas un post technique mais ce qui vient de se passer aux Etats-Unis ne peut pas ne pas être relevé !

Barack Obama vient d'être élu confortablement il y'a quelques minutes président des Etats-Unis ! Seul ce pays peut nous réserver de telles surprises, parfois très négatives, et parfois tellement remplies d'espoir comme dans le cas présent. Barack Obama va clairement avoir du travail pour relever son pays, tant du point de vue national mais également, et c'est là que cela m'intéresse tout particulièrement, sur le plan international.

Voilà, je suis vraiment positivement touché par cette élection et j'avais besoin de l'exprimer :-)

 

PDC 2008 : Visual Basic 10 (VB10) et les "Auto Properties"

En Visual Basic, lorsqu'on veut déclarer une propriété dans une classe, voici la syntaxe habituellement utilisée :

Public Class Client

    Private interneNom As String
    Public Property Nom() As String
        Get
            Return interneNom
        End Get
        Set(ByVal value As String)
            interneNom = value
        End Set
    End Property

    Private internePrénom As String
    Public Property Prénom() As String
        Get
            Return internePrénom
        End Get
        Set(ByVal value As String)
            internePrénom = value
        End Set
    End Property

End Class

Bonne nouvelle, à partir de Visual Basic 10, voici que, comme en C#, les "Auto Properties" sont maintenant implémentées ! Le code précédent se résume désormais à :

Public Class Client

    Public Property Nom As String
    Public Property Prénom As String

End Class

Evidemment, à la compilation, le compilateur VB (vbc.exe) va émettre pour vous le code que vous n'avez plus à écrire :

.class public auto ansi Client
    extends [mscorlib]System.Object
{
    .method public specialname rtspecialname instance void .ctor() cil managed
    {
        .custom instance void [mscorlib]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor()
        .maxstack 8
        L_0000: ldarg.0 
        L_0001: call instance void [mscorlib]System.Object::.ctor()
        L_0006: nop 
        L_0007: nop 
        L_0008: ret 
    }

    .property instance string Nom
    {
        .get instance string Demos_VB10.Client::get_Nom()
        .set instance void Demos_VB10.Client::set_Nom(string)
    }

    .property instance string Prénom
    {
        .get instance string Demos_VB10.Client::get_Prénom()
        .set instance void Demos_VB10.Client::set_Prénom(string)
    }

    .field private string _Nom
    {
        .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor()
    }

    .field private string _Prénom
    {
        .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor()
    }
}

 

PDC 2008 : Visual Basic 10 (VB10) et "AsParallel"

De plus en plus de PC arrivent désormais avec au moins deux processeurs. Quand on voit qu'à la PDC 2008, on a annoncé que Windows 7 allait supporter jusqu'à 256 processeurs, on se dit que l'exécution de code parallèle va devenir une réalité.

Cependant, comme les développeurs vont-ils appréhender cette approche ? Et bien, pour les développeurs Visual Basic 10, cela va être très simple, il suffira d'utiliser le mot-clé AsParallel. Voici un premier exemple :

Dim mesChiffres = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

mesChiffres.AsParallel.ForAll(
                                Sub(valeur)
                                    Console.WriteLine(valeur)
                                End Sub)

Le résultat de l'exécution sur un multi-core pourrait donner la série suivante : 6 7 8 9 10 1 2 3 4 5

Dans ce second exemple, on va, cette fois-ci, déléguer à Linq l'exécution en parralèle de la requête :

Dim mesChiffres = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}


Dim mesChiffres2 = From monChiffre In mesChiffres.AsParallel
                   Where monChiffre > 5
                   Select monChiffre

Attention tout de même à ce que l'on fait ! Ce n'est pas parce que c'est possible et facile qu'il faut en mettre partout ! Il y'a des moments où l'exécution en parallèle ne vous donnera pas le résultat attendu ! Méfiance donc :-)

 

 

PDC 2008 : Visual Basic 10 (VB10) et les "MultiLines Statements Lambdas"

Dans ce post, je vais vous présenter la nouvelle fonctionnalité appelée "MultiLines Statements Lambdas" et introduite dans Visual Basic 10 (VB10). Prenons le code suivant :

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim mesChiffres = {2, 3, 4, 5, 6}
    Dim monThread As New Threading.Thread(AddressOf maMéthode)


    monThread.Start(mesChiffres)
    monThread.Join()

End Sub

Private Sub maMéthode(ByVal valeurs As Integer())

    For Each valeur As Integer In valeurs

        Console.WriteLine(valeur)

    Next

End Sub

Le problème dans ce code est qu'on est obligé de créer une méthode simplement pour pouvoir exécuter du code dans un nouveau thread. En effet, le constructor de la classe Thread attend un pointeur vers une fonction (AddressOf).

Et bien grâce aux "Multlines Statements Lambdas", nous allons pouvoir incorporer le code que l'on souhaite exécuter en lieu et place du paramètre AddressOf dès que nécessaire. Voici ce que le code va donner avec Visual Basic 10 :

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim mesChiffres = {2, 3, 4, 5, 6}
    Dim monThread As New Threading.Thread(
                                Sub()
                                    For Each valeur As Integer In mesChiffres

                                        Console.WriteLine(valeur)

                                    Next
                                End Sub)


    monThread.Start()
    monThread.Join()

End Sub

On peut également déclarer des fonctions si nécessaire. Imaginons que nous ayons la définition d'un Delegate comme suit :

Private Delegate Function MonDelegate(ByVal valeur As Integer)

Imaginons maintenant qu'une méthode attende en paramètre ce Delegate :

Private Sub MaMethode(ByVal leDelegate As MonDelegate)

    MessageBox.Show(leDelegate(1993))

End Sub

Et bien grâce aux "Multilines Statements Lambda", voici comment on peut incorporer le code de notre fonction directement dans l'appel de la méthode :

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    MaMethode(
        Function(valeur As Integer)
            If valeur < 1993 Then
                Return "Rien dans l'histoire des clubs Français"
            Else
                Return "Marseille seul club champion d'Europe"
            End If
        End Function)

End Sub

Je vous laisse deviner ce que va renvoyer la MessageBox après l'appel ! :-)

 

PDC 2008 : Visual Basic 10 (VB10) et "Implicit line continuations"

De tout temps, lorsqu'on voulait écrire du code Visual Basic sur plusieurs lignes, nous étions obligés d'utiliser un "underscore" (_) pour indiquer que l'instruction était éclatée sur plusieurs lignes :

Dim maVariable _
    As Integer _
    = 2

Désormais, le compilateur VB10 n'a plus besoin, dans la plupart des cas, de ce signe. On peut désormais écrire un certain nombre de choses sur plusieurs lignes directement. Voici quelques exemples :

Exemple1 :

<
    MonAttribut1(),
    MonAttribut2(),
    MonAttribut3()
>
Public Sub MaMethode()

End Sub

 

Exemple 2 :

If  1 = 1 And
    2 = 2 And
    3 = 3 Then


End If

 

Exemple 3 :

Dim mesProcesses = From monProcess In Process.GetProcesses()
                   Where monProcess.WorkingSet64 > 10 * 1024 * 1024
                   Order By monProcess.ProcessName Ascending
                   Select monProcess.ProcessName

 

Exemple 4 :

Dim monXML = <Football>
                 <Clubs>
                      <Club nom="OM" ville="Marseille"/>
                 </Clubs>
             </Football>

 

Il y'a encore des cas où le signe _ sera nécessaire comme par exemple :

Public Sub Test()
    End
Sub

 

Dans ce cas, le mot clé End existant déjà en Visual Basic, le compilateur n'a pas de moyen de savoir ce que vous voulez exactement faire. Dans ce cas, voici le message qu'il affichera :

Statement cannot appear within a method body. End of method assumed

Vous serez alors obligé d'utiliser le signe _ pour les cas comme celui-ci.

 

More Posts Next page »
 
Page view tracker