VSTO/Outlook et le Global Address List

Et un article barbare ! un ! Donc, comment récupérer les contacts de notre GAL (Global Address List) à partir d’un développement Outlook ?

Apparement ils ont oublié de faire le boulot (là j’parle de nos amis de chez Microsoft). On se limite seulement aux contacts favoris relatif au client Outlook. Pour accéder aux contacts enregistrés sur le serveur Exchange, il faut utiliser des API bien spécifiques. C’est la tâche à laquelle s’est attelé un MVP en écrivant une classe assez complète.

C’est ici que ça se passe: http://www.dimastr.com/redemption
Un petit exemple de code en C# (le VB.NET est largement commenté sur le site de Redemption) :
//On déclare notre application Outlook
Application outlook = Globals.ThisAddIn.Application;
//Puis un NameSpace de type MAPI
NameSpace ns = outlook.GetNamespace(« MAPI »);
//Ensuite une session Redemption
RDOSessionClass rdoSession = new RDOSessionClass();
//L’objet MAPI de notre session mappé avec celui de notre namespace
rdoSession.MAPIOBJECT = ns.MAPIOBJECT;
//Un objet Adress Book
RDOAddressBook rdoAdd = rdoSession.AddressBook;
//On parcoure les entrées du GAL
foreach (RDOAddressEntry rdoEnt in rdoAdd.GAL.AddressEntries)
{
//On récupère le nom de l’entrée
string sName = rdoEnt.Name.ToString();
//Puis le fax
const int PR_PRIMARY_FAX_NUMBER = 0x3A23001E;
string sFaxNumber = (string)rdoEnt.get_Fields(PR_PRIMARY_FAX_NUMBER);
}
Quelques remarques :
  • Petite subtilité concernant le fax. Seules certaines propriétés de l’entrée sont disponibles. Pour les autres -comme dans notre exemple, le fax- ils faut utiliser la fonction get_fields() en lui indiquant la constante héxadecimale correspondante, puis caster la valeur récupérée comme il faut.
  • Les données en question se trouvent ici : http://www.cdolive.com/cdo10.htm.
  • Utilisez le prefixe &H pour le VB.NET, et 0x pour le C#.
  • Pour savoir à quel champ correspond quelle donnée, utilisez l’utilitaire OutlookSpy : http://www.dimastr.com/outspy

SharePoint 2007 – Forces et faiblesses

La formule peut étonner. A priori lorsqu’on utilise une telle présentation c’est avant tout pour vendre son produit (où tout du moins son concept). Pas spécialement ma philosophie.

Ayant l’opportunité de travailler sur plusieurs plateformes, j’ai pris parti de traiter du sujet comme j’aimerais qu’on me le présente. A savoir, comme une solution imparfaite, malgré son leadership annoncé (ou quasi …).

Bien évidemment, tout ceci peut porter à jugement, voir être critiqué, mais dites-vous bien que seul le discours l’accompagnant lui donnera son intérêt (oui, s’il vous plait, arrêtez avec vos slides prêtes à lire …).

Bref, il va falloir revoir tout ça en profondeur. Les dernières annonces SharePoint, etc.

Wait and see …

Hello, Android

Rapide Feedback sur le développement sous Android, la nouvelle plate-forme de développement mobile de Google (pour ceux qui restent terrés dans une grotte).

Je ne vais pas vous abrutir de code ou autre, mais juste vous faire partager ma découverte du Framework de développement et principalement l’installation de ce dernier, avant de vous lancer dans les premiers tutoriaux.

Je tiens également à rappeler qu’à la base je ne suis pas un spécialiste du développement Java. Bien évidemment, avec des yeux, un cerveau et quelques notions de développement tout le monde peut à priori s’auto-former pour venir à bout des premiers ateliers de développement sous Android.

J’utilise l’IDE Eclipse (Ganymede), non-inconnue des spécialistes Lotus Notes. Tiens d’ailleurs, en parlant d’IBM, on trouve également des références à Android sur le developerWorks : Introduction to Android. Encore une vertu de l’Open Source ?

Pour ma part je me suis documenté à partir de la source qui paraissait la plus fiable, à savoir le réseau Android Developer de Google.

android

Première étape, l’ installation du SDK (le 1.6 pour ma part) dont voici les grandes lignes (oui, oui, je suis sous Windows):

  • Télécharger et extraire le SDK dans le dossier de votre choix (au hasard, le répertoire d’Eclipse).
  • Insérer le chemin du répertoire tools du SDK dans la variable d’environnement PATH.
  • Installer les Android Development Tools (ADT)
  • Configurer Eclipse pour qu’il pointe correctement sur votre SDK Android

A partir de ce moment là, votre environnement de développement est fin prêt … histoire de développer notre bon vieux Hello, World (sic !).

emulateur-android

D’ailleurs, ce qui m’a de suite amusé, c’est l’utilisation de l’émulateur de terminal (surtout si comme moi, vous avez un smartphone sous Android). Pour pouvoir lancer cet émulateur, vous allez devoir créer un Android Virtual Device (AVD). Pour se faire il va nous falloir utiliser un utilitaire du SDK :

android create avd –target 4 –name MonAVD

Note : L’option –target représente l’environnement de développement sur lequel l’émulateur s’exécutera (en l’occurrence 4 pour la version 1.6 du SDK).

Pour finir, côté développement, puisqu’il faut bien en parler un peu, la création d’une application se décompose en deux parties, à savoir le code et la mise en page (layout).
Les différents tutoriaux de base fournis par Google, nous permettent donc d’explorer les différentes possibilités du Framework :

  • Disposition graphique
  • Eléments standards (boutons, choix, liste, etc.)
  • Utilisation de Google Maps
  • Localisation d’une application

Bref, voilà de quoi vous forger un avis sur le développement sous Android. Le reste étant plus lié à Java, et donc à vos talents de développeur pur.

Alfresco (vs SharePoint ?)

Sujet un peu vague vu le peu d’informations sur cette solution. Histoire de ne pas mourir idiot je me suis décidé à télécharger l’animal et l’évaluer un minimum.

Analyse succinte d’un expert Alfresco :

Inutile de faire une comparaison fonctionnalité par fonctionnalité sans la confronter à un cahier des charges.
La question n’est pas « quel est le meilleur produit ? », mais « quel est celui qui correspond à mon besoin ? ».
Aujourd’hui les couvertures fonctionnelles sont différentes, la philosophie encore plus.
La meilleure méthode reste donc d’éprouver personnellement le produit.

Au final vous l’aurez compris, le discours de cette personne est plutôt lucide et peut s’appliquer à toutes les plateformes du marché. J’ai néanmoins suivi le dernier conseil pour au final en tirer les enseignements suivants :

  • Alfresco est un ECM de qualité : avec des Features identiques à ce que l’on peut connaître sous SharePoint = Web content, collaboratif, GED, recherche, metadata, workflows, sécurité, versioning, …
  • Alfresco ne nécessite pas de CAL : Le gros point fort du produit comparé à SharePoint. Une version Entreprise existe néanmoins apportant le code source complet, toutes les releases mineures et permettant surtout l’accès au support éditeur (un grand classique)
  • Alfresco est compatible avec les outils bureautique Microsoft Office : suite à la décision de l’UE de condamner Microsoft à la publication des protocoles SharePoint de Microsoft, Alfresco permet de faire de la gestion de contenu Sharepoint … sans SharePoint (sic !)
  • Alfresco = Java, Eclipse, Subversion, Apache, PHP, Linux (ou Windows), OpenOffice, …

Ci-dessous un aperçu du Dashboard par défaut d’Alfresco :

dashboard-alfresco_overview

Plus d’informations sur http://www.alfresco.com/fr/