mardi 29 janvier 2008

Problème avec les API Excel après le déploiement

Si vous développez en utilsant des API d'Office (notament Excel) vous avez peut être déjà été confronté au fait que tout se passe très bien en local mais après déploiement sur le serveur de production plus rien ne fonctionne.
Cela peut être du au fait que les paramètres régionaux du serveur ne sont pas les même que ceux de votre version d'Office. voici un morceau de code qui permet de contourner ce problème (en admettant que vous utilisez un Excel en anglais US) :

try{ System.Threading.Thread.CurrentThread.CurrentCulture = new
System.Globalization.CultureInfo("en-US"); //Utilisation de
l'API office ........}finally{
System.Threading.Thread.CurrentThread.CurrentCulture = oldCulture;}

mardi 22 janvier 2008

Insérer du Flash dans une animation Silverlight (Workaround)

Pour un futur projet je serai amené à développer des animations Silverlight contenant des fichiers flash (swf).

Il semble qu'il n'existe actuellement aucun contrôle Silverlight permettant d'insérer une animation flash.

Voici donc le workaround que j'ai trouvé pour contourner cette "limitation".
Tout d'abord il faut modifier le fichier javascript utilisé pour créer l'objet javascript et ajouter le paramètre isWindowless

Silverlight.createObjectEx({ source: "Page.xaml", parentElement: document.getElementById("silverlightControlHost"), id: controlID, properties: { width: "100%", height: "100%", version: "1.1", isWindowless:"true" }, events: { onError: function(sender, args) { var errorDiv = document.getElementById("errorLocation"); if (errorDiv != null) { var errorText = args.errorType + "- " + args.errorMessage; if (args.ErrorType == "ParserError") { errorText += "
File: " + args.xamlFile; errorText += ", line " + args.lineNumber; errorText += " character " + args.charPosition; } else if (args.ErrorType == "RuntimeError") { errorText += "
line " + args.lineNumber; errorText += " character " + args.charPosition; } errorDiv.innerHTML = errorText; } } } });

Ensuite il faut modifier la page qui contient l'animation silverlight et utiliser la notion de "calque" DHTML grâce au positionnement absolu des contrôles et à une iFrame.

L'iFrame contiendra une page qui contient elle-même le controle flash :
Au final l'iFrame viendra se positionner au dessus de l'animation silverlight.

lundi 7 janvier 2008

SharepointPedia

Un site plein d'informations sur Sharepoint par Microsoft :
http://sharepoint.microsoft.com/pedia/Pages/Home.aspx

Forcer le logout en Windows Authentication

Il arrive parfois lorsque l'on travaille en Basic Authentication que l'on désire forcer IIS à redemander une identification. Pour cela voici l'attribut à ajouter par exemple à votre bouton logout :
OnClientClick='document.execCommand("ClearAuthenticationCache");'