Jiri's Shared IT knowledge

samedi, juin 25, 2005

Windows SharePoint Services, Service Pack 2 : quoi de neuf ?

L'annonce est passé à travers pas mal de blog, j'en ai brièvement parlé lors de mon dernier post, le Service Pack 2 de Windows SharePoint Services est bel et bien disponible.
Les nouveautés que j'ai retenues :

  • Support d'ASP.NET 2.0
  • Support de SQL Server 2005
  • Support de Windows Server 2003 64 bits
  • Support du "reverse proxy" (modification des hosts headers)
  • Support de l'IP Bound

Une description du SP2 de WSS est disponible sur le site de Microsoft, http://support.microsoft.com/?id=887624.
Je vous renvoie également vers ce lien, http://support.microsoft.com/?id=894903 car j'ai eu des petits problèmes de conflits entre les différentes versions d'ASP.NET installé sur mon portable.
Et pour finir, une liste des problèmes résolus par ce Service Pack : http://support.microsoft.com/?id=906336

mercredi, juin 22, 2005

Atelier : Utilisation des outils de design Visual studio 2005 pour la modélisation des applications orientées services (SOA).

Pour ceux qui veulent passer à l’action, voici l’atelier qui a été proposé à l’événement NDC2005.
Cet atelier va vous permettre d’étudier la manière d’utiliser Visual Studio 2005 pour modéliser des applications SOA.

Contenu de l’atelier :
1. Modélisation de la structure d’Application : Création de la structure de l’application
2. Validation de la structure de l’application : Création de Datacenter logique

Télécharger l’atelier ici : http://www.dotnet-maroc.com/docs/labsoa.zip

vendredi, juin 17, 2005

SOA pour architecture orientée services.

Le point sur une méthode d'intégration dont l'appellation barbare cache une réalité qui l'est beaucoup moins. Décryptage d'une approche liée à XML, aux Web Services et au "couplage lâche".

Comment définir une architecture orientée services ?
Lancée par le Gartner, la notion de SOA (pour architecture orientée services) définie un modèle d'interaction applicative mettant en oeuvre des connexions en couplage lâche entre divers composants logiciels (ou agents). Ici, on entend par "service" une action exécutée par un composant "fournisseur" à l'attention d'un composant "consommateur", basé éventuellement sur un autre système.

Quels sont ses éléments constitutifs ?
La mise en oeuvre de connexions en couplage lâche implique l'utilisation d'interfaces d'invocation et de vocabulaires de description de données qui soient communs à l'ensemble des agents, à la fois côté fournisseurs et côté consommateurs. Plus ces éléments seront avancés, en termes de schémas de structuration d'informations et de fonctions de requêtage, plus les services délivrés pourront supporter de possibilités de traitement différentes et plus leur marge d'évolution sera importante.
Une fois généralisée à l'ensemble du système d'information, ce dispositif de communication universelle permet en principe de réutiliser et de combiner à loisir les applicatifs métier, au sein de processus par exemple. Et ceci de façon très réactive. C'est d'ailleurs le principal apport que le Gartner perçoit dans ses analyses. Selon l'institut, le SOA contribuera à accélérer la capacité des entreprises à s'adapter à un nouveau contexte de marché.

Quelle différence entre une architecture orientée objet et une SOA ?
Au sein d'une architecture orientée objets, les données manipulées sont directement associées au mode de traitement qui leur est appliqué (cf. les méthodes et les classes du langage Java). Ce n'est pas le cas au sein d'une architecture de SOA dans laquelle ces deux éléments sont dissociés. Le terme de "service" vient d'ailleurs de cette caractéristique. Par définition, un service a en effet pour but de proposer un résultat particulier, en fonction d'informations qui lui sont envoyées par un tiers. Ce dernier pouvant d'ailleurs très bien décider de transmettre parallèlement ces données à un service complémentaire ou même concurrent qui les prendrait en charge de la même façon.

A quelles technologies d'adosse une architecture de type SOA ?
Apparues assez récemment sous l'impulsion de plusieurs grands éditeurs (dont Microsoft, IBM et Sun), les interfaces XML de type Web Services reposent une bibliothèque de standards conçus précisément pour construire une architecture orientée services. Les uns couvrant les questions d'invocation de composants (WSDL, etc.), les autres les problématiques liées au transport et à la description des informations transmises (SOAP, etc.).
Force est de constater que des technologies plus anciennes (nées à la fin des années 1990) poursuivaient les mêmes objectifs. Les plus connues d'entre-elles sont Corba et DCOM. Ces alternatives qui peuvent se révéler intéressante pour certains projets n'en demeurent pas moins limitées : à la différence des Web Services, elles restent cantonnées à des environnements d'exécution bien particuliers - les serveurs d'applications J2EE pour Corba et les systèmes Microsoft dans le cas des composants DCOM.

Quel lien entre SOA et bus de services d'entreprise (ESB) ?
Alors que les SOA font avant tout référence à un concept d'architecture, les bus de services d'entreprise désignent les plates-formes d'intégration du marché mettant en application cette notion. Schématiquement, ces produits sont conçus pour administrer et orchestrer des liens entre services applicatifs, pourquoi pas au sein de processus métier. Bref, il ne s'agit ni plus ni moins que d'EAI dont les connecteurs s'appuient sur des Web Services.

source : http://solutions.journaldunet.com

jeudi, juin 09, 2005

Master page dans ASP.NET 2.0

Dans la nouvelle version de ASP.NET, Microsoft va un pas plus loin dans la simplification du design de page. Déjà on voyait ce type d’approche dans des applications comme DotnetNuke ou ASP.Net community portal fonctionnant sous ASP.NET et on appelait cela des thèmes de sites.

Maintenant cette approche de thèmes ou de skining est intégrée dans la logique de base du framework.

Cette approche s’appelle dans la nouvelle version de ASP.NET des mater page.
On design une master page et on laisse les places dynamiques avec des ContentPlaceHolder. Dans la version ASP.NET 1.1 on pouvait le faire avec des PlaceHolder. Toutefois dans la version 2.0 on introduit une nouvelle extension de mage .master qui contient le master page. Voici un exemple de master page :

//Template.master
<%@ master language="C#" %>


Ma page
















Ma compagnie


Navigation
id="ContentPlaceHolder1"
runat="server">









//Default.aspx
<%@ page language="C#" master="~/Template.master" %>
contentplaceholderid="ContentPlaceHolder1"
runat="server">
Je mets mon contenu ici…


Le contenu est généré directement sur les pages aspx. En effet, sur la page default.aspx par exemple qui appelle le master, la page contient toutes les routines de génération de contenu dynamique ou statique.

Il est possible de définir sa page template directement dans web.config comme suit :

lundi, juin 06, 2005

SPS 2003 : Implémentation du moteur de recherche

Pour beaucoup (moi le premier), SPS 2003 est surtout considéré comme un produit portail. Simple, évolutif et assez puissant, il permet de mettre rapidement en ligne des portails de contenu de tous genre.

Mais pour une autre partie (moi aussi mais encore plus convaincu ), c'est surtout une superbe boite à outil, un framework de site complet dédié à .Net :

  • Modéle de site
  • Stockage documentaire
  • Gestionnaire de contenu
  • Profiling de contenu
  • Systéme d'alerte
  • Plateforme de Web service
  • SSO
  • ...
  • ET Moteur de recherche
C'est surtout ce dernier point qui m'interesse aujourd'hui.
Bien souvent, le volume de donnée d'un intranet ne permet plus une navigation assez fluide. Un bon moteur de recherche est souvent la solution

>>> Mais je ne parle pas d'un moteur de recherche dédié au site, mais plus d'un aggrégateur capable d'indexer tout et n'importe quoi quelle que soit sa provenance (indexeur crawleur)

Les données peuvent provenir d'un systéme tier, voir d'un fournisseur via HTTPS, ou encore d'un partage disque voir une boite de messagerie

Si le moteur Search de SPS sait gérer tout cela, pourquoi ne pas l'exploiter, le "consommer" de facon externe pour l'implémenter comme une brique de votre application?

Manque de documentation, de temps ? Pas de soucis , le MSDN vient a votre secours avec l'article suivant
How to Customize Your Search Using SharePoint Portal Server 2003 de Patrick Tisseghem U2U

J'insiste sur cette article car grand Fan de Site Server 3.0 à l'époque de NT4 + option pack, je mettais souvent en place des architecture de recherche sur des sites distants avec du contenu documentaire qu'il soit en BDD, Notes, filesystem, le tout lié à l'intranet métier

Plus une recherche libre style google mais plus une recherche metier et orienté

Voici un peu les possibilités

1. Recherche par le modéle object SPS :

  • Pour vos propres applications
  • Pour des WebParts métiers du styles : les 10 derniers documents word publiés

using Microsoft.SharePoint.Portal;
using Microsoft.SharePoint.Portal.Search;
using Microsoft.SharePoint.Portal.Topology;
TopologyManager topology = new TopologyManager();
PortalSite portal = topology.PortalSites[new Uri("
http://limassol:83
")];
PortalContext context = PortalApplication.GetContext(portal);
QueryProvider qp = new QueryProvider(context.SearchApplicationName);
string queryTemplate = "SELECT \"DAV:href\",\"DAV:displayname\", " + "\"urn:schemas.microsoft.com:fulltextqueryinfo:description\" " + "FROM ( TABLE Portal_Content..Scope()" + "UNION ALL TABLE Non_Portal_Content..Scope() ) " + "WHERE CONTAINS('\""+ textBoxKeyword.Text.Replace("'","''").Replace("\"","\"\"")+"\"') ";
DataSet ds = qp.Execute(queryTemplate);
DataGrid1.DataSource = ds;
DataGrid1.DataBind();

2. Extension et utilisation des controles SPS de recherche
Pas le temps de mettre au point un frontal de recherche : utiliser directement les controles SPS dans votre propres appli et spécifier les !
Leur comportement dépend de 4 propriétés simples :

  • QueryTemplateSelectPart for the SELECT part of the template.
  • QueryTemplateFromPart for the FROM part of the template.
  • QueryTemplateWherePart for the WHERE part of the template.
  • QueryTemplateOrderByPart for the ORDER BY part of the template.

3. La recherche via WebService : encore plus simple et plus utilisable
Dans une appli locale ou distante voir comme un service multi site (pour l'entreprise, un moteur global pour toute les applis).
Directement dans le pavé Office pour faciliter la rédaction de document.

En bref, un article indispensable à lire pour tout ceux qui veulent pousser encore un plus loin leurs applications existantes via l'utilisation, allez :) , l'intégration de modules SharePoint !!!

Et pour ceux que seul le concept de recherche passionne mais qui n'ont pas de SharePoint (les mahleureux ...), il existe NLucene, la version.Net du projet Lucene en Java

Site : http://sourceforge.net/projects/nlucene
Exemple : http://cephas.net/blog/2003/11/16/queryparser_in_nlucene.html