• Stéphanie Hertrich

    Un TimeSpanPicker pour le Toolkit Windows Phone 7

    • 2 Comments
    English speaker ? jump to English version of this post
    [21/01/2011 : Le TimeSpanPicker fait à présent partie du Toolkit Coding4Fun http://coding4fun.codeplex.com/]
    image

    J’avais besoin d’un joli picker pour représenter une durée dans une application Silverlight pour Windows Phone 7.

    Les pickers du toolkit pour WP7 sont parfaits mais n’existent que pour les types DateTime sous la forme DatePicker et TimePicker.
    J’ai modifié les sources du toolkit et rendu le code du DateTimePicker générique, pour qu’il prenne en charge un type TimeSpan aussi bien qu’un type DateTime.

    Voici donc le toolkit complété d’un nouveau contrôle : le TimeSpanPicker qui possède les propriétés additionnelles suivantes :

    • Value : la durée affichée par le picker
    • Max : la durée maximale proposée par le picker
    • Step : le pas d’incrément du picker

    Elles sont toutes les trois de type TimeSpan.

    Il y a 3 sélecteurs pour sélectionner respectivement le nombre d’heures, de minutes, de secondes de la durée à saisir.

    Utilisation

    Voici comment vous pourrez l’utiliser :

    1. Référencez l’assembly Microsoft.Phone.Controls.Toolkit dans votre application Silverlight pour WP7
    2. Ajoutez le namespace dans votre page xaml :
      xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
    3. Déclarez le contrôle TimeSpanPicker dans votre page xaml, par-exemple :
      <toolkit:TimeSpanPicker Value="{Binding Duration}" Max="{Binding MaxDuration}" Step="{Binding StepDuration}"/>
      ou 
      <toolkit:TimeSpanPicker ValueChanged="TimeSpanPicker_ValueChanged"/>

    Fonctionnement

    Le contrôle bénéficie de certains comportements dynamiques comme par-exemple n’afficher que les sélecteurs nécessaires, en fonction de la durée max et du step.
    Les valeurs par défaut sont:

    • Max = 24 heures
    • Step = 1 seconde

    Et vous obtiendrez ce résultat :

    image

    Et après validation:

    image

    Evidemment, vous pouvez personnaliser ces valeurs à votre convenance, comme dans les exemples suivants.

    Exemples

    Si vous souhaitez proposer une durée avec une précision à la minute vous obtiendrez uniquement l’affichage des sélecteurs de heures et minutes

      public TimeSpan StepDuration
    {
         get
         {
            return TimeSpan.FromMinutes(1);
         }
    }

    image

    Si vous précisez en plus  une valeur Max inférieure à 1 heure, le sélecteur des heures disparaitra:

            public TimeSpan MaxDuration
            {
                get
                {
                    return TimeSpan.FromMinutes(40);
                }
            }

            public TimeSpan StepDuration
            {
                get
                {
                    return TimeSpan.FromMinutes(1);
                }
            }

    image

    Précisez un step de 5 minutes, et vous obtiendrez :

            public TimeSpan MaxDuration
            {
                get
                {
                    return TimeSpan.FromMinutes(40);
                }
            }

            public TimeSpan StepDuration
            {
                get
                {
                    return TimeSpan.FromMinutes(5);
                }
            }
    image

    Voici les sources et les binaires:

    Signalez-moi si vous rencontrez des soucis avec le TimeSpanPicker.

    A bientôt !

  • Stéphanie Hertrich

    A TimeSpanPicker for Windows Phone 7

    • 7 Comments
    [01/21/2011 : The TimeSpanPicker is now part of the Coding4Fun toolkit http://coding4fun.codeplex.com/]
    image_thumb3

    I needed a nice picker to handle a duration in a WP7 Silverlight Application.

    WP7 toolkit pickers are the ideal choice, but they only support DateTime types through DatePicker and TimePicker controls.
    I updated the toolkit source code and made the DateTimePicker base generic so that it supports TimeSpan as well as DateTime types.

    The updated toolkit (v1.1) contains a new control : the TimeSpanPicker which has some specific behaviours:

    • Value : the duration value
    • Max : the maximum value for duration
    • Step : the increment step

    All 3 properties are TimeSpan types.

    The 3 pickers represent respectively the hours, minutes, and seconds parts of the duration value.

    Usage

    How to use it in your own project:

    1. Add a reference to Microsoft.Phone.Controls.Toolkit assembly in your WP7 Silverlight project
    2. Add the toolkit namespace in your xaml page:
      xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
    3. Declare a TimeSpanPicker control in your xaml page, for example :
      <toolkit:TimeSpanPicker Value="{Binding Duration}" Max="{Binding MaxDuration}" Step="{Binding StepDuration}"/>
      or
      <toolkit:TimeSpanPicker ValueChanged="TimeSpanPicker_ValueChanged"/>

    Behaviour

    The control look is dynamic and will depend on the max and step property values. You will see only pickers that make sense according to the maximum value and the step.

    Default values are:

    • Max = 24 hours
    • Step = 1 second

    In this case you would get this result :

    image_thumb10

    And after validation:

    image_thumb11

    Of course, it’s up to you to customize Max and Step properties to fit your needs, just like examples below.

    Examples

    If you need a duration with a minute-based precision, you would not see the picker for seconds.

      public TimeSpan StepDuration
    {
         get
         {
            return TimeSpan.FromMinutes(1);
         }
    }

    image_thumb8

    If additionnaly the Max value is less than a hour, then the hour picker will also disappear:

            public TimeSpan MaxDuration
            {
                get
                {
                    return TimeSpan.FromMinutes(40);
                }
            }

            public TimeSpan StepDuration
            {
                get
                {
                    return TimeSpan.FromMinutes(1);
                }
            }

    image_thumb5

    Add a 5 minutes step and you will get the minutes picker going from 5 to 5:

            public TimeSpan MaxDuration
            {
                get
                {
                    return TimeSpan.FromMinutes(40);
                }
            }

            public TimeSpan StepDuration
            {
                get
                {
                    return TimeSpan.FromMinutes(5);
                }
            }
    image_thumb1

    You can download the source code and binaries here:

    Feel free to contact me if you’re in trouble with the TimeSpanPicker.

    Hope it helps !

  • Stéphanie Hertrich

    De nouveaux articles sur le Centre de Développement Sharepoint du MSDN

    • 0 Comments

    Le centre de développement Sharepoint va être réorganisé et actualisé bientôt pour mieux répondre à vos attentes.

    A cette occasion, de nouveaux articles fleurissent grâce à notre communauté très active de Sharepointeurs de choc Sourire

    Voici les deux premiers articles :

    Pour soumettre un article à publication, voici la procédure :

    Envoyez-moi un document Word avec:

    • Un titre
    • Votre bio (et une photo éventuellement)
    • Votre article avec un sommaire

    Contactez-moi si vous souhaitez un template/exemple.

    NB : Les tutoriaux où l’on vous prend par la main sont toujours très appréciés…

    A bientôt

  • Stéphanie Hertrich

    Mais c’est quoi à la fin OData ?

    • 0 Comments

    J’aborde OData dans différents articles, aussi pour éviter de me répéter dans chacune des introductions, voici un petit rappel.

    Mais c’est quoi à la fin OData ?

    OData est un protocole de manipulation de données basé sur http en REST. On peut filtrer, paginer, trier mais aussi modifier et supprimer ces données grâce à une simple URI (c’est à dire un “chemin web” comme ceux que vous saisissez dans la barre d’adresse de votre navigateur).

    En simplifié:

    • la question est une URI
    • la réponse est un flux XML (Atom ou JSON)

    Avantages et caractéristiques:

    • n’importe quelle plateforme supportant http pourra accéder à des données publiées en OData (= des plateformes très simples, sans avoir besoin d’installer de framework ou d’outil particulier)
    • grâce à http, le passage de firewalls se fera facilement
    • pour le développeur, l’utilisation de données accessibles par OData s’effectue plus ou moins facilement, selon que des SDK clients OData existent sur cette plateforme. Au pire, il faudra construire la demande (l’URI) soi-même et parser manuellement le flux de données Atom ou JSON (XML) en retour. Au mieux (et c’est certainement votre cas), un SDK client vous aidera en fournissant une API de plus haut niveau et en créant des classes proxy qui correspondent à la structure des données fournies par le flux Atom.
    • des SDK clients sont disponibles pour .NET, Silverlight, Windows Phone 7, PHP, AJAX, Javascript, Ruby, Objective C et Java
    • la liste non exhaustive des produits MS mettant à disposition des données via OData sont SharePoint 2010, Excel 2010 (via SQL Server PowerPivot for Excel), Windows Azure Storage, SQL Server 2008 R2.
    • Vous pouvez utiliser les services OData existants pour les intégrer dans vos applications
    • Microsoft WCF Data Services (anciennement Astoria) est le composant de .Net qui permet d’implémenter OData.

    Exemple:

    Un petit exemple sur un service OData http://odata.microsoftpdc.com/ODataSchedule.svc/ qui nous renseigne sur les évènements de la PDC 2010 :

    La requête: http://odata.microsoftpdc.com/ODataSchedule.svc/ (vous pouvez la tester dans votre navigateur préféré)

    Nous renvoie les éléments accessibles à la racine : collections de sessions, speakers, … :

    <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
    <service xml:base="http://odata.microsoftpdc.com/ODataSchedule.svc/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns="http://www.w3.org/2007/app">
      <workspace>
        <atom:title>Default</atom:title>
        <collection href="ScheduleOfEvents">
          <atom:title>ScheduleOfEvents</atom:title>
        </collection>
        <collection href="Sessions">
          <atom:title>Sessions</atom:title>
        </collection>
        <collection href="Tracks">
          <atom:title>Tracks</atom:title>
        </collection>
        <collection href="TimeSlots">
          <atom:title>TimeSlots</atom:title>
        </collection>
        <collection href="Speakers">
          <atom:title>Speakers</atom:title>
        </collection>
        <collection href="Manifests">
          <atom:title>Manifests</atom:title>
        </collection>
        <collection href="Presenters">
          <atom:title>Presenters</atom:title>
        </collection>
        <collection href="Contents">
          <atom:title>Contents</atom:title>
        </collection>
        <collection href="RelatedSessions">
          <atom:title>RelatedSessions</atom:title>
        </collection>
      </workspace>
    </service>

    Pour filtrer à la source, il suffit de suffixer le nom du service par l’arborescence nous amenant à un élément ou une collection d’éléments et d’y ajouter (ou pas) une requête (OrderBy, Take, Skip, …) et son prédicat.

    Dans notre exemple, nous souhaitons consulter les 2 premiers speakers triés par ordre alphabétique.

    La requête devient: http://odata.microsoftpdc.com/ODataSchedule.svc/Speakers/?$orderby=FullName&$top=2 (plus d’info sur les requêtes ici http://www.odata.org/developers/protocols/uri-conventions#QueryStringOptions)

    Et renvoie: Adam Wilson et Amit Chopra

    <?xml version="1.0" encoding="utf-8" standalone="yes" ?> 
     <feed xml:base="http://odata.microsoftpdc.com/ODataSchedule.svc/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
      <title type="text">Speakers</title> 
      <id>http://odata.microsoftpdc.com/ODataSchedule.svc/Speakers/</id> 
      <updated>2010-11-05T13:27:16Z</updated> 
      <link rel="self" title="Speakers" href="Speakers" /> 
     <entry>
      <id>http://odata.microsoftpdc.com/ODataSchedule.svc/Speakers(guid'7553a0ea-159f-452e-bb5e-a94edfb0cd9d')</id> 
      <title type="text" /> 
      <updated>2010-11-05T13:27:16Z</updated> 
     <author>
      <name /> 
      </author>
      <link rel="edit" title="Speaker" href="Speakers(guid'7553a0ea-159f-452e-bb5e-a94edfb0cd9d')" /> 
      <category term="Shared.Model.Speaker" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> 
     <content type="application/xml">
     <m:properties>
      <d:Id m:type="Edm.Guid">7553a0ea-159f-452e-bb5e-a94edfb0cd9d</d:Id> 
      <d:FullName>Adam Wilson</d:FullName> 
      <d:PhotoUrl m:null="true" /> 
      <d:Bio m:null="true" /> 
      </m:properties>
      </content>
      </entry>
     <entry>
      <id>http://odata.microsoftpdc.com/ODataSchedule.svc/Speakers(guid'758b9c4f-5b12-4ef2-8cf9-5e3652f5dd3e')</id> 
      <title type="text" /> 
      <updated>2010-11-05T13:27:16Z</updated> 
     <author>
      <name /> 
      </author>
      <link rel="edit" title="Speaker" href="Speakers(guid'758b9c4f-5b12-4ef2-8cf9-5e3652f5dd3e')" /> 
      <category term="Shared.Model.Speaker" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> 
     <content type="application/xml">
     <m:properties>
      <d:Id m:type="Edm.Guid">758b9c4f-5b12-4ef2-8cf9-5e3652f5dd3e</d:Id> 
      <d:FullName>Amit Chopra</d:FullName> 
      <d:PhotoUrl>http://pdccms.istreamplanet.com/content/AmitChopra.jpg</d:PhotoUrl> 
      <d:Bio>Amit Chopra is a Senior Program Manager with the Visual Studio Test and Lab Team which is responsible for creating the Visual Studio 2010 Test Professional Product and the Lab Management Features. Amit has spent over 10 year in the Developer Division working on variety of IDE Features targeted towards Office Developers, Windows Phone Developers and most recently on features aimed to enhance Developer / Test collaboration in teams that are using Visual Studio Team Foundation Server as the core ALM Platform. Prior to working for Microsoft, Amit has worked for companies such as PricewaterhouseCoopers, Sun Microsystem, CANON and DEC in various capacities in the engineering and developer evangelism groups.</d:Bio> 
      </m:properties>
      </content>
      </entry>
      </feed>

    L’introduction à OData s’arrête ici.

    Pour aller plus loin :

  • Stéphanie Hertrich

    Nouvelle doc sur le cycle de vie d’un projet Sharepoint

    • 0 Comments

    Une doc toute fraiche et agréable à lire sur le cycle de vie d’un projet Sharepoint :

    Application Lifecycle Management in Microsoft SharePoint 2010

    On y trouve des conseils et des best practices sur beaucoup de sujets :

    • Les outils Sharepoint Designer, Visual Studio 2010 et leurs cas d’utilisation dans un cadre projet
    • L’environnement de développement avec TFS, serveurs de build, machines virtuelles (ou pas)…
    • Gestion des upgrades et versionnement

  • Stéphanie Hertrich

    Thumbnail Extender pour Sharepoint 2010 par Xavier Vanneste

    • 0 Comments

    Ce projet étend les fonctionnalités de SharePoint 2010 et des Office Web Apps en permettant d’afficher des miniatures de documents sur l’ensemble du portail SharePoint.
    Voici quelques impressions d’écran qui montrent le Thumbnail Extender for SharePoint en action.

    Les formats suivants sont supportés :

    • Page Web
    • Fichier XPS
    • Fichier DOCX
    • Fichier PPTX

    http://thumbextsp.codeplex.com/

    Merci Xavier Sourire

  • Stéphanie Hertrich

    Retour sur la PDC : Multi-targeting avec The Portable Library

    • 2 Comments

    Comment développer une application déployable sur plusieurs plateformes en capitalisant le maximum de code ? On pense souvent à l’intérêt de la factorisation durant la phase de développement, pour ne pas coder 2 fois le même fonctionnel. Mais il est peut-être encore plus grand pendant la phase de maintenance de votre application, où chaque modification doit être appliquée et testée sur le code correspondant à chaque plateforme. C’est évidemment une source d’erreur importante sans parler du côté rébarbatif de la chose et de la perte de temps qu’elle entraine.

    La session de Shawn Burke à la PDC donne l’occasion de reparler de ce sujet qui tient à cœur beaucoup de développeurs, moi y compris Sourire .

    1.     Les cas d’application

    De nombreuses applications client-serveur du domaine pro sont aujourd’hui disponibles en version « lourde », avec des fonctionnalités complètes, mais également en version web (ou pour le téléphone), avec parfois des fonctionnalités allégées. Par-exemple, une application WPF permet d’éditer, d’ajouter du contenu, d’accéder facilement aux ressources de sa machine, et la version Silverlight permet la consultation du contenu et quelques réglages simples.

    Dans cette configuration, l’application est souvent d’abord développée en WPF et le client web - qui n’est finalement qu’un sous-ensemble fonctionnel de l’existant - est ajouté par la suite. Ou une application est développée en Silverlight, et son homologue sur Windows Phone 7 ensuite, etc...

    Le but est donc de réutiliser un maximum de code, principalement pour les couches métier qui resteront inchangées que l’écran soit un 3” ou un 27” .

    Quelques points clés pour aider à gérer au mieux ce contexte d’application multi-plateforme :

    2.     Utilisation de l’architecture 3-Tiers MVVM

    La première étape pour tendre vers une factorisation massive et propre du code est l’utilisation d’une architecture N-tiers. Le choix se porte assez naturellement sur MVVM qui permet le découplage du modèle, de ses cas d’utilisation ainsi que de la vue. L’approche MVVM permet une interaction facilitée aux technos fournissant un mécanisme de Binding comme WPF et Silverlight.

    Même si les couches “Vue “diffèrent selon les plateformes, on pourra espérer partager les couches Model et ViewModel autant que possible.

    WPF Apps With The Model-View-ViewModel Design Pattern

    3.     Maximiser la compatibilité côté XAML

    Quid du partage de la couche « Vue » ? Silverlight et WPF utilisent tous deux le XAML avec une syntaxe de plus en plus proche.

    Pour gagner du temps de développement mais aussi de maintenance, autant tenter d’utiliser une syntaxe qui soit la plus compatible possible entre les deux technos. Cette approche peut avoir des détracteurs et le but n’est pas forcément de partager tous les fichiers xaml (d’ailleurs ce sera certainement impossible J ). Mais à partir du moment où une vue existe et fonctionne, pouvoir réutiliser le maximum de xaml apporte un gain de productivité non négligeable, que ce soit lors de la conception, mais aussi et surtout pour la maintenance de l’application.

    C’est moins vrai avec Silverlight pour WP7 où la couche vue sera spécifiquement adaptée à un écran de l’ordre de 3 pouces avec une ergonomie à la Metro et donc très différente des autres plateformes.

    A ce compte-là, je vous propose quelques pointeurs bien pratiques qui aident à définir les syntaxe XAML qui fonctionnent aussi bien en WPF qu’en Silverlight ou qui vous permettront de connaitre les spécificités de chaque plateforme en terme de XAML.

    4.     Le partage d’assemblies et de fichiers

    Le partage de code peut s’envisager sous différents angles :

    • Partage de projets
    • Partage de fichiers source
    Partage de projet

    Qui dit partage de projets dit partage d’assemblies. Une application Silverlight ne peut référencer que des assemblies de type Silverlight. Par-contre, il est possible de référencer une assemblie Silverlight (utilisez Silverlight 3) depuis un projet WPF. Pour cela, l’assemblie Silverlight ne doit pas contenir de code spécifique à l’UI Silverlight, mais uniquement des classes métier, et le référencement doit sur faire sur les binaires et non sur les projets.

    Partage de fichiers source

    Dans Visual Studio, il est possible d’ajouter des fichiers sous forme de liens. Ainsi, plusieurs projets peuvent référencer le même fichier facilement mais évidemment c’est une pratique assez risquée puisque pas de versionnement du code comme c’est le cas pour les assemblies.

     

    image

    Le gros inconvénient de ces deux approches est que vous ne maitrisez pas du tout avec quelles plateforme le code que vous écrivez sera compatible. Vous développez une assemblie Silverlight, donc vous aurez accès aux espaces de noms et assemblies Silverlight-compliant. C’est votre responsabilité de développeur, de vous documenter, de tester et de n’utiliser que des objets compatibles dans les différents mondes. Or c’est très contraignant de savoir ce qui est réellement compatible entre les différentes plateformes (accès au système de fichier, sérialisation, …).

    C’est là qu’intervient le nouveau type de projet “Portable library” pour Visual Studio qui est prévu pour le début d’année prochaine. 

    5.     Le nouveau type de projet Visual Studio : Portable Library

    Le but est de “typer” un projet librairie de classe comme une librairie “portable”. Dans cette librairie, vous n’aurez accès qu’aux espaces de noms qui sont communs aux 3 plateformes .Net/Silverlight/Phone. De plus, la Portable Core Lib se veut être le minimum fonctionnel sur toute plateforme et c’est pourquoi elle ne contient pas directement l’intersection des plateformes existantes : elle doit également être valable pour les plateformes à venir.

    image

    Vous serez évidemment guidés par l’Intellisense et contrôlés par la compilation.Cela force le développeur à ne pas écrire de code spécifique à une plateforme donnée dans ce projet.

    Cette librairie peut ensuite être utilisée par des application .Net, Silverlight, Windows Phone. Dans la première version de la Portable Library, les espaces de nom disponibles seront assez réduits.

    image

    Mais au fil des versions, ils seront complétés pour arriver à un vrai sous-ensemble fonctionnel commun et minimal à toutes les plateformes.

    image

    Dans la roadmap, la portable library est prévue pour début 2011.

    image

    Cela nous aidera côté développement à être explicite en terme de plateforme ciblées dans la création de nos librairies. Mais pratique également pour la maintenance en nous empêchant d’employer un fonctionnel donné dans une librairie dite portable qui ne serait pas supporté sur toutes les plateformes ciblées par le projet.

    La Portable Library règle la question du référencement statique des librairies. Néanmoins, il serait intéressant que l’on puisse déterminer dynamiquement le comportement (ou l’activation) de telle ou telle fonctionnalité suivant la plateforme sur laquelle elle s’exécute. C’est là qu’interviennent les mécanismes d’injection de dépendances.

    6.     L’injection de dépendances : mettre en commun un comportement quand on ne peut pas capitaliser le code

    Grâce à MEF (Managed Extensibility Framework) ou Unity, vous pouvez charger des assemblies dynamiquement, sur la base d’un comportement défini par une interface. Votre application chargera les assemblies que vous avez déployées sur votre plateforme, plutôt que celles que vous auriez référencé dans votre projet.

    Dans ce cas, vous capitalisez non pas du code, mais un comportement générique (signature) grâce aux interfaces.

    7.     Et aussi

    Modélisez, développez en OO

    La modélisation et la conception orientée objet de votre application conditionne très fortement la réussite de votre multi-targeting. Pensez à découpler, pensez fonctionnel…

    La compilation conditionnelle

    La compilation conditionnelle (#if SILVERLIGHT…#endif,  …) peut également permettre de sauver la mise, dans des situations désespérées, mais elle n’est pas à recommander en règle générale.

    En effet, c’est à votre architecture en couche et à votre modèle de conception objet de spécialiser les différentes approches et d’apporter la souplesse nécessaire pour garantir une bonne lisibilité et maintenabilité du code.

    Les classes partielles, les méthodes d’extension

    Permettent de rajouter du comportement à une classe sans modifier le code existant.


    Le multitargeting est un sujet passionnant qui touche une majorité de développeurs. Je reviendrai très bientôt sur ce sujet, pour la sortie de la Portable Library !

  • Stéphanie Hertrich

    Erreur : The Silverlight Developer Runtime is not installed. Please install a matching version

    • 2 Comments

    Si vous êtes développeur Silverlight et que vous rencontrez (comme moi en pleine session MsDays de Nantes !) l’erreur suivante lorsque vous tentez d’exécuter votre application à partir de Visual Studio:

    image

    C’est que le runtime end-user de Silverlight et le runtime développeur sont installés avec des versions différentes et incompatibles. Vous avez certainement installé la dernière release de Silverlight sans y avoir prêté attention, durant une balade sur la toile.

    Mettez à jour votre runtime développeur grâce à ce lien: http://go.microsoft.com/fwlink/?LinkID=188039

  • Stéphanie Hertrich

    Téléchargez le supplément pour Windows Phone 7 du magazine Programmez

    • 0 Comments

    Le cahier sur le développment Windows Phone 7 du magazine Programmez est disponible en téléchargement Sourire

    Il vous reste à télécharger gratuitement Visual Studio Express 2010 pour Windows Phone, et vous voilà parti  !

  • Stéphanie Hertrich

    Devenez speaker aux prochains TechDays 2011 !

    • 0 Comments

    Vous vous sentez l’âme d’un speaker ?

    Proposez-nous votre session, ou venez co-animer une session sur un sujet que vous connaissez comme votre poche.

    Cette année, vous pourrez faire vos propositions par l’intermédiaire d’un outil en ligne.

    Toutes les infos ici

  • Stéphanie Hertrich

    Tour d’horizon de Sharepoint Online pour les développeurs

    • 0 Comments

    Une nouvelle documentation dédiée aux développeurs Sharepoint Online est disponible sur le MSDN :

    Sharepoint Online : An Overview For Developers

    Les sujets abordés sont:

    Introduction to Sharepoint Online
    Customizing Sharepoint Online Using Sharepoint Designer 2010
    Developing Sharepoint Online Solutions

    Accessing Sharepoint Data Through the Client Object Model

    Sharepoint Web Services Available in Sharepoint Online

    Comparison of Sharepoint Online Features and Sharepoint Server Features

    Vous y trouverez une comparaison intéressante des fonctionnalités de dev disponibles entre la version OnPremises et Online.

     

  • Stéphanie Hertrich

    MsDays : les slides de la session Développement Sharepoint sont ici

    • 0 Comments

    [AddOn : La vidéo est ici !]

    Fin des MsDays sur les chapeaux de roues !

    C’est toujours intéressant de vous rencontrer et d’avoir un retour live (ou différé via ce blog Sourire ) de votre part. Cela nous permet d’évaluer les sujets qui vous ont le plus intéressés pour écrire plus d’articles dans ce sens.

    En retour à ma session “Développement Sharepoint”, je constate que OData vous intéresse particulièrement ainsi que le développement d’applications Silverlight exploitant Sharepoint. Les sandbox qui sont très intéressantes ont suscité moins de retour, mais c’est peut-être simplement parce que c’est un peu moins…sexy, à première vue en tout cas.

    Si vous n’avez pas pu assister à la session (ou que vous êtes Nantais Sourire !), vous pourrez la voir en webcast. D’habitude, les sessions sont webcastées en live durant l’événement mais cette fois elles ont été enregistrées en studio et devraient donc être plus agréables à suivre. Je vous posterai le lien sur ce blog dès qu’il sera disponible.

    En attendant, voici les slides en pfd :

    A bientôt !

Page 1 of 1 (12 items)