lundi 23 novembre 2009
Test your site with old Internet Explorer versions
jeudi 22 octobre 2009
Open Portal Foundation v1.2 : First public release
More information is available on the CodePlex project page :
http://portalfoundation.codeplex.com/wikipage
mercredi 21 octobre 2009
WCF proxy dispose pattern
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
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
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/
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
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
<asp:button id="btTest" runat="server" text="muli-line 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
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>