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


mercredi 22 juillet 2009

Multi-line ASP .NET Button

0 commentaires
Pour faire un bouton multiligne en ASP .NET, rajouter simplement l'équivalent ISO de la séquence d'échappement traditionnelle \r\n


<asp:button id="btTest" runat="server" text="muli-line &#13;&#10;example" />


Référence :
http://developmenttips.blogspot.com/2006/08/multiline-html-buttons.html

vendredi 17 juillet 2009

Time Tolerance with Web Services Enhancement 2.0

0 commentaires
WSE mets en place une gestion de la validité des requêtes dans le temps. Par défaut, une requête est valide 5 minutes.

Cependant, si il y a un décalage trop important entre les horloges du poste client et du serveur hébergeant le service Web (par exemple, à cause du décalage horaire), les requêtes sont invalidées et on obtient une Exception de type "Server unavailable, please try later"

La solution est discutée à l'adresse suivante :
http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/thread/b29bb243-19a1-46a2-beef-98efd7c7196a

Il suffit donc de mettre en place une tolérance de temps plus grande en définissant le paramètre timeToleranceInSeconds dans les fichiers Web.config de l'application cliente et du service Web.
http://msdn.microsoft.com/en-us/library/ms824668.aspx



<microsoft.web.services2>
<security>
<timetoleranceinseconds>86400</timetoleranceinseconds>
</security>
</microsoft.web.services2>


jeudi 8 janvier 2009

Ouverture

0 commentaires
J'ai choisi d'ouvrir ce blog afin de vous faire partager ma passion des technologies de développement Microsoft .NET. Ce blog contiendra différents posts qui j'espère pourrons vous aider dans votre quodien au travail.