vendredi 26 février 2010

Les problèmes liés au nombre de connexions simultanées sur IIS avec Windows XP

0 commentaires

Sur les postes Windows XP, le nombre de connexions simultanées est de 10. Ce qui peut poser des problèmes dans certains cas, lors d'appels successif à des services Web locaux.

Pour changer cela, on peut utiliser la commande suivante :

C:\Inetpub\AdminScripts\adsutil set w3svc/MaxConnections 40

 

Par contre, si cela vous arrive sur un poste de développement, en testant votre applicatif, cette solution ne peut être que temporaire. Car elle est le signe qu’il y a sûrement une erreur de conception et que des problèmes de performance risquent d’être mis en évidence rapidement.

 

Les pistes d’amélioration sont alors l’optimisation de la gestion du cache, et la rationalisation des interfaces de services : plus concises et orienté Métier.

jeudi 25 février 2010

L’informatique de demain vue par Microsoft : synthèse sur les techdays

0 commentaires
Cette année, les TechDays ont été l'occasion de faire le point sur nouveautés des produits Microsoft. Cette années est particulièrement riche, car la plupart des produits sont renouvelés. Ce billet vas donc synthésiter l'orientation que Microsoft à choisie pour les années à venir.

Vision globale

- L’orientation vers le Cloud : que ce soit un Cloud privé d’entreprise, ou public. Le Cloud est Infrastructure As A Service (basé sur Hyper-V), Platform As A Service (Windows Azure), ou Software As A Service (Office Live, ou Dynamics CRM Live).

- L’orientation vers les interfaces naturelles : voix et touch. Avec l’intégration de ses fonctionnalités dans Windows 7, ainsi que dans le Framework .NET 4.0. Ainsi que le projet Natal permettant d’effectuer des actions par rapport aux mouvements d’une personne (notamment pour des jeux vidéo).

- L’orientation vers la messagerie unifiée. Office Communication Server permet de centraliser via Outlook tout type de messages (Communicator, messages téléphonique et emails)

- L’orientation vers un accès « anywhere » à Office : que ce soit sur le poste de travail, ou via un portail Sharepoint (Office Web Apps) accessible via un portail Sharepoint. Cela permet une accessibilité en lecture et en modifications des documents même hors de l’entreprise, par simple connexion à office Web Apps.

Visual Studio 2010 et Framework .NET 4.0 : Une plateforme d’ALM complètement intégrée et un Framework de développement tout-en-un

Microsoft Visual Studio 2010 propose maintenant un ensemble de fonctionnalités permettant de couvrir l’ensemble du cycle de développement : Conception, développement, tests et recette. La gestion de configuration et l’analyse de code y sont aussi grandement simplifiées ainsi que le suivi de projet. Au niveau du Framework .NET 4.0, ce dernier comble un grand nombre de lacune de son prédécesseur en intégrant un grand nombre de Framework Tiers et de fonctionnalités manquantes pour faire face aux nouveaux usages des applications : applications Web riches et utilisation des interfaces naturelles (voix et touch).

Domain Specific Langage : Vers une nouvelle rupture dans le développement d’application

Après le paradigme « objet », qui permet de modéliser la logique applicative à travers un « modèle de données », le Domain Specific Language va encore plus loin. Il est plus appréhendable, et permet aux designers de pouvoir coder en spécifiant les comportements des éléments d’une IHM à l’aide d’un designer de flux, semblables à des workflows. Le DSL peux bien sur aussi s’appliquer à d’autres domaines que l’IHM. Aux techdays, une démonstration à été faite présentant la configuration de la logique de déplacement d’un robot. De même que le « Kodu », basé sur un DSL permettant à des enfants de configurer le comportement d’animaux et de végétaux dans un environnement virtuel.

Politique de gestion de l’innovation à Microsoft

Globalement, Microsoft consacre 15 à 20% de son CA en R&D. En 2007, ce chiffre atteint 5,5 Md€ pour un CA de 44et prend ainsi la tête du classement mondial « 2008 EU Industrial R&D Investment Scoreboard » établi par la Commission européenne, sur 2000 entreprises dans le monde. Sa politique d’innovation passe par la mise en place de deux divisions dédiées, MS Research (http://research.microsoft.com/en-us/) et MS Labs (http://livelabs.com/).

MS Research sert d’incubateur et développe des projets de recherche avec une vision au-delà de 5 ans. Ces projets ne sont donc pas directement utilisables pour en faire des produits mais permet de développer des concepts (Proof Of Concept), des méthodologies ainsi que les futures technologies qui seront utilisées. Par exemple, les projets de systèmes d’exploitation « Helios » et « Singurality » développés par MS Research sont écrits à 98% en code managé (C# et Sign#). Cela laisse présager de toute l’importance qu’aura le C# dans les futurs OS de Microsoft.

Les innovations de MS Research sont tranférés à MS Labs pour pouvoir en faire des produits, tels que MS Photo Synth, MS Pivot (http://getpivot.com/). Ce dernier est très intéressant, car il propose une interface de recherche RIA très réactive permettant de visualiser de grands volumes d’images de manière optimale.

Vers une infrastructure Agile

Virtualisation des applications. En plus de la virtualisation de serveur, Microsoft propose désormais des solutions de virtualisation des applications.

Cela permettant de pouvoir exécuter des applications sans les installer sur le poste de travail. L’utilisateur y accède de manière classique, à travers le menu Démarrer, rendant à ses yeux la solution de virtualisation complètement transparente. Cela fonctionne avec les applications Offices, et théoriquement avec n’importe quels autres.

L’avantage est la centralisation de l’administration des applications pour un meilleur contrôle du parc applicatif. Pour un poste de travail Windows 7, il est maintenant possible de définir quelles applications classiques ou virtualisées peuvent être exécuté.

Un autre avantage de la virtualisation des applications est que les applications ne pouvant s’exécuter que sur des anciennes versions de Windows (comme Access 97 par exemple) sont directement intégré dans le poste de travail. Le processus s’exécute bien dans une VM, mais les fenêtres de ces applications sont intégrées au bureau Windows 7 (visible par un liseret rouge entourant ces fenêtres).


Internet explorer 6 exécuté avec Enterprise Desktop Virtualization

Optimisation des datacenters. La virtualisation Hyper-V à été amélioré avec le support de basculement automatique des VM d’un node Hyper-V à un autre lors des phases de maintenance des nodes. Ceci est complètement transparent au niveau des VM et n’implique aucune interruption de service pour l’utilisateur final.

Optimisation de la sécurité. L’offre sécurité Microsoft gamme de produit de sécurité comprend ForeFron et Remote Desktop Gateway. ForeFront propose une solution de firewall et d’antivirus global, tandis que Remote Desktop Gateway est une solution d’accès unifié aux ressources de l’entreprise. Techniquement, Remonte Desktop Gateway utilise une application cliente sur le poste de travail. Cette application utilise une connexion HTTPS pour encapsuler les requêtes RDP à travers des requêtes RPC via HTTPS.

Ci-dessous, le portail d’acceuil Remote Desktop Gateway de Microsoft CORP. L’écran propose l’installation du client RDG et propose un accès au ressources de l’entreprise (applications, sites Web, partages réseau)



Toujours chez Microsoft CORP, l’écran permettant de lancer directement des applications de l’entreprise sans les installer sur son poste de travail.



En synthèse, on peut dire que l’infrastructure Agile vue par Microsoft se base sur un cloud privé. Ce cloud est composé de Nœuds Hyper-V, de serveurs d’applications virtualisés, et de Remote Desktop Gateway, et permet un accès aux ressources depuis n’importe où, avec des performances optimisées en fonction de l'usage, et des niveaux de services approchant les 365 par ans (grâce à la configuration de Hyper-V en cluster).

lundi 23 novembre 2009

Test your site with old Internet Explorer versions

0 commentaires
If you want to test your Web pages on IE 6 or older version and if you use Windows XP, you can install Multiple IE. Multiple IE will install IE 3.0, IE 4.01, IE 5.05, IE 5.5 and IE 6.0

jeudi 22 octobre 2009

Open Portal Foundation v1.2 : First public release

0 commentaires
Open Portal Foundation is the ASP.NET foundation framework I have developed for building web portals by completly separating Web Design, Web content and Web engine. It provides Content Management extensibilities, Agnostic authentication support (NTLM, Passport, Form and other based on HttpContext.Current.User object), design customization and theming extensibilities.

More information is available on the CodePlex project page :
http://portalfoundation.codeplex.com/wikipage

mercredi 21 octobre 2009

WCF proxy dispose pattern

0 commentaires
Proxy error and disposing management is a common issue when you start with WCF. When you use a proxy, a channel is open and it's your responsability to close connection and manage errors and ressource disposing.

All these operations are fastidious, time consuming and make code more complexe.

The solution is to wrap all these operations into a single generic class who implements IDisposable in order to use it in an using block.

For example,


DocumentDTO[] list;
using (ServiceProxyWrapper<ContentClient>
    wrapper = new
    ServiceProxyWrapper<ContentClient>())
{
  list = wrapper.Proxy.List(channel);
}


Thanks that, your code become more readable, more solid and more business oriented.

Complete wrapped implementation are below :


public class ServiceProxyWrapper : IDisposable
  where TProxy : class, ICommunicationObject, IDisposable, new()
{
  private bool disposed;
  private TProxy proxy;

  public ServiceProxyWrapper()
  {
    this.proxy = new TProxy();
  }

  public TProxy Proxy
  {
    get
    {
      if (this.proxy != null)
      {
        return this.proxy;
      }
      else
      {
        throw new ObjectDisposedException
          ("ServiceProxyWrapper");
      }
    }
  }

  #region IDisposable Membres
  public void Dispose()
  {
    this.Dispose(true);
    GC.SuppressFinalize(this);
  }

  ~ServiceProxyWrapper()
  {
    this.Dispose(false);
  }

  private void Dispose(bool disposing)
  {
    if (!this.disposed)
    {
      try
      {
        if (this.proxy != null)
        {
          if (this.proxy.State !=
            CommunicationState.Faulted)
          {
            this.proxy.Close();
          }
          else
          {
            this.proxy.Abort();
          }
        }
      }
      catch (CommunicationException)
      {
        this.proxy.Abort();
      }
      catch (TimeoutException)
      {
        this.proxy.Abort();
      }
      catch (Exception)
      {
        this.proxy.Abort();
        throw;
      }
      finally
      {
        this.proxy = null;
      }

      this.disposed = true;
    }
  }
  #endregion
}


Référence :
http://weblogs.asp.net/cibrax/archive/2009/06/26/disposing-a-wcf-proxy.aspx

jeudi 17 septembre 2009

Configuring Sharepoint Search Service

0 commentaires
Présentation

La configuration de la recherche MOSS à pour but de disposer d’un système d’indexation et de recherche globale sur l’ensemble des documents, ainsi que des données métiers de l'entreprise et repose uniquement sur les fonctionnalités natives de MOSS.

La procédure que je décrit correspond à la configuration de base de la recherche sur les documents stockés dans le portail MOSS, et il est possible de mettre en place sur le portail un site de recherche plus avancé, ainsi que de configurer très finement ce service :

Le document Search in Microsoft® Office SharePoint® Server 2007 explique tout cela en détail :
http://office.microsoft.com/download/afile.aspx?AssetID=AM102140171033

En ce qui concerne la recherche des données métiers, je vous conseil cette série d'article très bien expliqué :

http://dnt91.developpez.com/tutoriel/sharepoint/a-la-decouverte-du-bdc-partie-1/

http://dnt91.developpez.com/tutoriel/sharepoint/a-la-decouverte-du-bdc-partie-2/


Resumé de la configuration de la recherche documentaire
La configuration de la recherche se fait en quatre ou cinq étapes :

1 - Dans le cas d’un portail MOSS utilisant une authentification par formulaire, définition d’un site intranet utilisant une authentification NTLM.

Un portail utilisant une authentification par formulaire est inaccessible pour le moteur d’indexation, car ce dernier utilise une authentification NTLM. Un nouveau site distinct doit donc être utilisé uniquement par le moteur d’indexation de MOSS, afin qu’il puisse analyser l’ensemble des pages du portail. Ce site doit uniquement être utilisé par le moteur d’indexation et ne doit pas être accessible par les utilisateurs.

2 - Configuration de la source de contenu

Définition des sources et mappage des résultats de la recherche. L’indexation s’effectuant sur un site serveur de la ferme de serveurs frontaux, il faut modifier les url qui ont été indexées afin de les faire pointer sur le portail web public.

3 - Initialisation de l’index de la recherche

L'initialisation de l'index doit se faire en le réinitialisant, afin de ne conserver que les informations correspondantes aux sources de contenu configurées dans l'étape précédente.

4 - Tester la recherche

Une fois que l'indexation est terminée, saisissez des mots clés pour tester que la recherche fonctionne bien. Par exemple le mot clé "doc", pour lister les documents Word présents.

Référence :

http://www.asp-php.net/tutorial/asp.net/sharepoint-search-moss.php

jeudi 23 juillet 2009

Table field search with SQL Server Management Studio 2005

0 commentaires
La fonction de recherche de champs n'existe pas dans SQL Server Management Studio 2005, ou alors je ne l'ai toujours pas trouvé.

On dispose uniquement de la fonctionnalité de filtrer les tables d'une base, ce qui permet d'en afficher qu'un sous ensemble. Très pratique lorsque lorsque l'on travail sur des référentiels de plusieurs centaines de table.

Pour faire une recherche sur les champs d'une table, il faut alors passer par une requête SQL :


SELECT o.name ObjectName, c.name ColumnName
FROM sys.columns c INNER JOIN sys.objects o ON c.object_id=o.object_id
WHERE c.name LIKE '%MyField%'


Où l'on remplace MyField par le champ recherché.

Référence :

http://blog.namwarrizvi.com/?p=7