Nicolas Humann

Aller au contenu | Aller au menu | Aller à la recherche

mardi novembre 2008

C# 4.0, les paramètres nommés et optionnels, y a quoi derrière ?

C# 4.0 ajoute enfin les notions de paramètre optionnel et nommé. Si nous reprenons le code suivant :

static void Main(string[] args) { //Appel de la methode en utilisant le parametre optionel MaMethode1(); //Appel de la methode en utilisant le parametre nommé MaMethode1(maVar: "Valeur par parametre nommé"); // Appel de la methode de facon classique MaMethode1("Valeur standard"); Console.ReadLine(); } static void MaMethode1(string maVar = "Valeur par defaut") { Console.WriteLine(maVar); }

Ouvrons le maintenant avec Reflector :

Notre methode1 devient :

private static void MaMethode1([Optional, DefaultParameterValue("Valeur par defaut")] string maVar) { Console.WriteLine(maVar); }

On constate que le compilateur à ajouté 2 attribut issues du namespace System.Runtime.InteropServices. Ces 2 attributs ne vous sont pas inconnus ? Ils existaient déjà dans la version précédente.

Regardons à présent, comment le compilateur fait l’appel à notre méthode :

private static void Main(string[] args) { MaMethode1("Valeur par defaut"); string CS$0$0000 = "Valeur par parametre nomm\x00e9"; MaMethode1(CS$0$0000); MaMethode1("Valeur standard"); Console.ReadLine(); }

Et bien, nous constatons que pour l’utilisation du paramètre par défaut, le compilateur remonte la valeur par défaut, dans l' appel à la méthode en tant que paramètre.

Concernant le paramètre nommé, le compilateur créer une variable intermédiaire. Comme quoi, c’est bien le compilateur qui fait tout le boulot :)

mardi octobre 2008

Accès anonyme et les pages Forms / viewlsts.aspx...

De plus en plus de site internet sont réalisés avec MOSS 2007. Pour les rendre accessibles à tous, il est nécessaire d’activer l’accès anonyme.

Malheureusement, les pages "/_layouts/viewlsts.aspx" et les pages ".../Forms/AllItems.aspx" restent visible pour tout le monde! Ce qui n'est pas vraiment...

Il existe une solution, les lecteurs réguliers du blog de la team ECM la connaissent peut êtres, il suffit d’activer la feature "cachée" ViewFormPagesLockdown.

stsadm.exe –o activatefeature –url <site collection url> -filename ViewFormPagesLockdown\feature.xml

La feature interdit l’accès a ces pages et demandes-en contre partis une authentification...

Ce blog http://blogs.msdn.com/nay/pages/moss-based-internet-sites-live.aspx regroupe un certain nombre de site basé sur MOSS. J’ai donc essayé quelques urls :)

Certains sites fonctionnent, d’autres non (http://www.wise-woman.net/_layouts/viewlsts.aspx).

 

Bon verrouillage

 

le tips sur le blog de la team ECM.

jeudi août 2008

[MOSS Tip Of The Day] Comment conna&icirc;tre le mode de notre page de publication

Si vous faite des pages de publication, dans le code behind, la page hérite de Microsoft.SharePoint.Publishing.PublishingLayoutPage.

Mais comment faire pour afficher/cacher des éléments si la page est en mode édition ou non. Par réflexe, j' ai recherché une propriété dans la classe PublishingLayoutPage, mais rien...

La solution se trouve dans le SPContext courant.

 

if (SPContext.Current.FormContext.FormMode == SPControlMode.Edit) { // Mon code }

mardi août 2008

[MOSS Tip Of The Day] Ajouter une page de publication &agrave; une biblioth&egrave;que de pages par code

Ça fait quelques temps que je n' avais plus rien posté... Pour me rattraper (un peu) voici un petit bout de code c# qui permet d' ajouter une page de layout dans une bibliothèque de pages.

 

using (SPSite site = new SPSite("http://intranet")) { using (SPWeb web = site.OpenWeb()) { PublishingWeb pubWeb = PublishingWeb.GetPublishingWeb(web); PublishingSite pubSite = new PublishingSite(site); // Récuperation de toutes les pages de layout PageLayoutCollection plc = pubSite.GetPageLayouts(true); // On prend la premiere... PageLayout pageLayout = plc[0]; PublishingPage pubPage = pubWeb.GetPublishingPages().Add("pages/mapages.aspx", pageLayout); pubPage.Update(); } }

mercredi avril 2008

SharePoint 2007 : Feature Stapling

L’un des nouveaux concepts de la plateforme WSS 3, sont les features. Une feature permet de packager des fonctionnalités, qu’il est possible d’activer ou de désactiver, que soit soit au niveau du site, de la collection de site, de la web application…

Une feature peut être composée de :

  • List templates
  • Menu Items
  • Workflows
  • Web Parts
  • ...

Pour plus d’info : http://msdn2.microsoft.com/en-us/library/ms460318.aspx

Lors de la création d’un nouveau site, par exemple pour un site d’équipe, vos features seront désactivées.

Pour résoudre ce problème, il existe le feature stapling, et ce sans modifier les fichiers des définitions de site !

Il faut créer une feature, au niveau de la ferme, qui va  « stapler » une autre feature.

Feature.xml

<?xml version="1.0" encoding="utf-8" ?> <Feature Id="4b112d30-1147-11dd-bd0b-0800200c9a66" Title="$Resources:Title" Description="$Resources: Description" Version="1.0.0.0" Scope="Farm" xmlns="http://schemas.microsoft.com/sharepoint/" DefaultResourceFile="_Res"> <ElementManifests> <ElementManifest Location="Staple.xml"/> </ElementManifests> </Feature>

Staple.xml

 

<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <FeatureSiteTemplateAssociation Id="d53a7070-1147-11dd-bd0b-0800200c9a66" TemplateName="STS#0" /> <FeatureSiteTemplateAssociation Id="d53a7070-1147-11dd-bd0b-0800200c9a66" TemplateName="STS#1" /> <FeatureSiteTemplateAssociation Id="d53a7070-1147-11dd-bd0b-0800200c9a66" TemplateName="BDR#0" /> <FeatureSiteTemplateAssociation Id="d53a7070-1147-11dd-bd0b-0800200c9a66" TemplateName="SPS#0" /> </Elements>

Puis, la feature d53a7070-1147-11dd-bd0b-0800200c9a66 sera attachée à ces définitions de site.

Ceci est très puissant car il vous permet d' ajouter des fonctionnalités aux définitions site existantes sans avoir à modifier les définitions elles-mêmes.

lundi avril 2008

Microsoft Success Stories

Microsoft vient de lancer le site Microsoft Success Stories. Ce site regroupe des témoignages sur les solutions, POC MS qui ont eu du succès :)

Le site est fait en silverlight avec plein de vidéos de partout !!!

 

Bon visionnage

mardi avril 2008

MSDN &amp; TechNet Tour 2008

A l' occasion du lancement de Microsoft Visual Studio 2008, Windows Server 2008 et SQL Server 2008, Microsoft organise du 10 avril au 12 juin MSDN & TechNet Tour 2008.

A Lille, Nantes, Lyon, Toulouse, Marseille : ce rendez-vous incontournable des IT professionnels, vous permettra de faire le point sur les dernières technologies Microsoft.

Construisez dès maintenant votre agenda à partir de plus de 20 sessions.

Vous pourrez me retrouver le 29 Mai à Marseille lors de ma session sur "Présentation générale des technologies SharePoint: Microsoft Office SharePoint 2007, Windows SharePoint Services 3.0 et Microsoft Search server 2008"

jeudi février 2008

[MOSS Tip Of The Day] Renseigner le control PeopleEditor

Cette astuce complète la dernière que j' ai publié sur le control PeopleEditor. Voici comment renseigner le contenu du PeopleEditor avec une personne:

 

PickerEntity entity = new PickerEntity(); entity.Key = @"domaine\login"; ArrayList arL = new System.Collections.ArrayList(); arL.Add(entity); PeopleEditor1.UpdateEntities(arL);

jeudi janvier 2008

[MOSS Tip Of The Day] Ecrire dans les logs SharePoint

Dans vos développement SharePoint (WebPart, EventHandler...), il est bien normal de vouloir écrire dans les fichiers de Log SharePoint.

Pour cela, il y a une jolie petit méthode:

Microsoft.Office.Server.Diagnostics.PortalLog.LogString("Mon Message");

D' autre méthodes sont disponibles dans Microsoft.Office.Server.Diagnostics.PortalLog

[MOSS Tip Of The Day] Ecrire dans les logs SharePoint

Dans vos développement SharePoint (WebPart, EventHandler...), il est bien normal de vouloir écrire dans les fichiers de Log SharePoint.

Pour cela, il y a une jolie petit méthode:

Microsoft.Office.Server.Diagnostics.PortalLog.LogString("Mon Message");

D' autre méthodes sont disponibles dans Microsoft.Office.Server.Diagnostics.PortalLog

1 2 3 4 5 6 7 8 >