dimanche 1 novembre 2009

Premiers pas en Sharepoint (étape 4)

Activation de la feature

Pour activer une feature, il faut aller dans les actions du site.
Si la feature a Scope="Site", il faudra aller dans le "Site collection features" ("fonctionnalité de la collection de site").
Si la feature a Scope="Web", il faudra aller dans le "Site features" ("fonctionnalité du site").

Vous verrez votre feature dans la liste, cliquez sur Activate.





Maintenant cliquez sur la site action bar, et vous verrez en bas de ce menu, le titre de votre element defini dans Premiers pas en Sharepoint (étape 2)




















Vous aurez cette page qui s'affiche après avoir cliquer sur votre feature :











Voilà, Félicitation, vous avez créer votre première feature, mainteannt il ne vous reste qu'a développer tous ce que vous savez pour faire tous ce que vous voulez.

N'hésitez pas à commenter.

Premiers pas en Sharepoint (étape 3)

Suite de Premiers pas en Sharepoint (étape 2)


Pour la création de la page, nous aurons besoin de l'ID de l'assembly, pour ce faire nous aurons besoin de reflector à télécharger ici.
Pour connaitre cet ID, il vous faut compiler le projet, verifiez bien que le GAC accepte bien l'assembly.
Une fois le projet compiler, lancer Reflector, puis File->Open-> allez dans le dossier de comilation du projet, puis ouvrez le fichier FirstFeature.dll.

En bas de la fenetre vous verrez :







Name : c'est cette ligne qu'il faudra copier pour la page.

Passons à la création de la page aspx.


Pour commencer, où allons-nous mettre cette page???
Nous allons la mettre dans le dossier LAYOUTS/FirstFeature.
Click droit -> add new Item, selectionnez Web Form, nommez ce fichier FirstFeaturePage.aspx.
Dans le context de sharepoint, nous pouvons utiliser les placeholder de la master page.
Donc, à cette étape supprimez le contenu de cette page et coller ce code:

<%@ Assembly Name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Assembly Name="FirstFeature, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b6897623fa5e9b8b" %>
<%@ Page Language="C#" MasterPageFile="~/_layouts/application.master" Inherits="FirstFeature.ApplicationPage"
EnableViewState="false" EnableViewStateMac="false" %>

<%@ Import Namespace="Microsoft.SharePoint" %>

<asp:Content ID="Main" runat="server" contentplaceholderid="PlaceHolderMain" %>
<table border="1" cellpadding="4" cellspacing="0" style="font-size:12">
<tr>
<td>Site Title:</td>
<td> <asp:Label ID="lblSiteTitle" runat="server" /></td>
</tr>
<tr>
<td>Site ID:</td>
<td> <asp:Label ID="lblSiteID" runat="server" /></td>
</tr>
<table>
</asp:Content>

<asp:Content ID="PageTitle" runat="server" contentplaceholderid="PlaceHolderPageTitle" >
Hello World
</asp:Content>

<asp:Content ID="PageTitleInTitleArea" runat="server" contentplaceholderid="PlaceHolderPageTitleInTitleArea" >
The Application Page of My First Feature
</asp:Content>

A la deuxième déclaration d'Assembly, il faut mettre ce qui est écrit dans reflector.

la partie <% @Page donne le langage, le fichier master page, et la classe de reference du code behind.

La première partie Content, va utiliser 2 labels qui vont accueillir l'ID et le titre du site.

La deuxième partie va change le titre de la page.

La troisième partie va inscrire le titre de la section principal.

Passons à la création du code behind

Pour créer le code behind, utilisons la classe qui est déjà créé, renommez la ApplicationPage.

Copiez ce code :


using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;

namespace FirstFeature
{
public class ApplicationPage : LayoutsPageBase
{
//add control fields to match controls tags on .aspx page
protected Label lblSiteTitle;
protected Label lblSiteID;

protected override void OnLoad(EventArgs e)
{
//get current Site and Web
SPSite siteCollection = this.Site;
SPWeb site = this.Web;

//program against controls on .aspx page

lblSiteTitle.Text = site.Title;
lblSiteID.Text = site.ID.ToString().ToUpper();
}
}
}

En surchargeant la méthode OnLoad, on va éxécuter du code au chargement de la page.
Ce bout de code, va écrire dans les labels, l'ID et le titre du site.

Compilez votre projet, puis lisez le prochain article.

Premiers pas en Sharepoint (étape 2)

Pour réaliser ce tutoriel allez voir Premiers pas en Sharepoint (étape 1).

Creation d'un nouveau projet de feature sharepoint

Pour créer votre premier projet sharepoint, lancez VS2008, créez un nouveau projet, et selectionnez FeatureTemplate:






La première chose à faire, est de renommer les dossiers qui s'appelle "FeatureTemplate" en "FirstFeature".

Ensuite, il faut signer l'assembly, pour faire ça allez dans les propriétés du projets, puis dans "signing", cochez la case "sign the assembly", puis selectionnez new, entrez le nom que vous voulez :











Ajout du schema wss.xsd

Pour vous facilitez le codage des fichiers indispensable a la feature (feature.xml et elements.xml) il faut ajouter le schema wss.xsd, pour ce faire, click droit -> propriété sur les fichiers, puis sur schema, cliquez sur les ... et selectionnez wss.xsd.

Passons à la feature

Principe de cette feature:

Le principe de cette feature est de lancer une page, qui va afficher le titre et l'ID du site.

Commençons par le commencement : description du fichier feature.xml.

Ce fichier permet de décrire le scope, le titre, la description de la feature, et associe les fichiers elements.

voici le code de la feature :

<?xml version="1.0" encoding="utf-8"?>
<Feature xmlns="http://schemas.microsoft.com/sharepoint/"
Id="A4067C54-B303-4b0e-AF9F-1CF51207D735"
Title="First Feature"
Description="This Is My First Feature"
Scope="Web"
Hidden="FALSE">
<Elementmanifests>
<Elementmanifest location="elements.xml"></elementmanifest>
</Elementmanifests>
</Feature>

Explication des différents champs:

Id : GUID créer grâce à l'outil disponible dans VS2008 (Tools -> Create GUID, puis copy )
Title : Titre de la feature
Description : Decription de la feature
Scope : ciblage de la feature :
  • Site : Site Collection
  • Web : Site
  • WebApplication : Web Application
  • Farm : Ferme de serveur
Hidden : indiquer si la feature doit être cachée ou non.

<Elementmanifests> : liste les fichiers elements
<Elementmanifest> : un fichier element.

voyons maintenant : elements.xml.

voici le code de ce fichier:


<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomAction
Id="FirstFeature"
GroupId="SiteActions"
Location="Microsoft.SharePoint.StandardMenu"
Sequence="2000"
Title="First Feature Element"
Description="Display Site Title and ID"
RequireSiteAdministrator="True"
ImageUrl="/_layouts/images/DECISION.GIF">
<UrlAction Url="~site/_layouts/FirstFeature/FirstFeaturePage.aspx"/>
</CustomAction>
</Elements>


<CustomAction> : indique une zone d'action, pour ouvrir une page différentes il nous faut utiliser cette action
Id : identifiant
GroupId : ou afficher le bouton d'accès à l'element
Location : classe d'affichage du bouton
Sequence : la sequence sert a determiner la priorité, plus ce chiffre est bas, plus l'element sera prioritaire.
Title : titre à afficher dans le menu.
Description : Description à afficher dans le menu.
RequireSiteAdministrator : défini si l'utilisateur doit être administrateur pour afficher le bouton de cet element.
<UrlAction> : zone qui défini l'url de la page à afficher.

Les fichiers de base pour la création de feature sont faits, il ne reste plus qu'a créer la page et le code behind de cette page.

suite de l'article

vendredi 25 septembre 2009

Premiers pas en Sharepoint (étape 1)

Ce post va vous permettre de comprendre l'architecture de Sharepoint.

Ce tutoriel, utilisera ces outils:
La première chose à comprendre c'est vraiment la plus importante, c'est l'organisation du dossier Sharepoint. Il se trouve à l'emplacement : "C:\Program Files\Common Files\Microsoft Shared\web server extensions\12", c'est ce qu'on appelle le 12 hive. Dans ce dossier se trouve tous les dossiers qui seront accessible sur votre site, le dossier principal est le dossier TEMPLATE il renferme l'architecture de votre site, et dans ce dossier vous trouverez les dossiers FEATURES et LAYOUTS, FEATURES contint toutes les features de vos sites et LAYOUTS contient toutes les pages auxquelles vous voulez accéder.

Création du projet template pour la création d'une feature

Avant de commencer à faire quoi que ce soit je vous conseil cette étape, elle vous permettra de gagner un temps précieux lors de la création de feature.

1) ouvrez Visual Studio et créer un nouveau projet Class Library appelez le FeatureTemplate.
2)Fermez votre projet... Je sais ca parait stupide, vu qu'on vient à peine de le créer, mais vous allez comprendre pourquoi.
3)Allez dans le dossier de votre projet par défaut "Mes Documents\Visual Studio 2008\Projects\FeatureTemplate\FeatureTemplate"
, ouvrez le fichier FeatureTemplate.csproj avec notepad. Remplacez


<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>

par


<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectTypeGuids>{349c5851-65df-
11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>


Fermez ce fichier et enregistrez le bien sur, ce qui aura pour effet de pouvoir accéder à tous les types de documents possibles, notament les aspx et autres composants web.

4) Rouvrez votre solution.
5)Pour pouvoir utiliser les composants Sharepoint comme il se doit vous devez ajouter 2 références, la première est "C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\ISAPI\Microsoft.SharePoint.dll", la deuxième se trouve dans le premier onglet (.NET) c'est System.Web. Ces 2 références sont les principales, celles que vous allez obligatoirement utiliser.
6)Maintenant, il faut créer l'architecture du 12 hive ce qui permettra a WSPBuilder de mettre les bons fichier à l'endroit que vous voulez dans l'architecture Sharepoint. Pour ca, créez un dossier "12" à la racine de votre projet, ajouter le dossier "TEMPLATE", puis ajouter les dossier "FEATURES" et "LAYOUTS" sous "TEMPLATE", ensuite en dessous de ces derniers créez un dossier qui s'appelle "FeatureTemplate". Vous devriez obtenir ceci :


















7)Vous pouvez déjà ajouter les fichier feature.xml et elements.xml au dossier "12\TEMPLATE\FEATURES\FeatureTemplate"

8)Comme je le dit dans ma prése
ntation, un autre point important de sharepoint c'est le déploiement, c'est pour cette raison qu'il est nécessaire d'utiliser un fichier d'installation, sinon vous aurez a faire toutes les manipulations a chaque fois que vous compilerez votre projet. Créez un nouveaux fichier texte à la racine du projet, appelez le install.bat.
pour ma part je n'ai telecharger que l'executable de WSPBuilder, que j'ai mis dans le dossier du projet template avec CabLib.dll et WSPBuilder.exe.config.

Ajoutez ces fichier à votre projet.



Ce fichier va :

  1. enregistrer dans le GAC le fichier dll compilé
  2. créer le WSP qui contient toutes l'arborescence
  3. supprimer la solution si elle existe
  4. ajouter et enregistrer la nouvelle solution générer
  5. redémarrer IIS, pour que le serveur prenne en compte les dernières modifications



@SET TEMPLATEDIR="c:\program files\common files\microsoft shared\web server extensions\12"
@SET STSADM="c:\program files\common files\microsoft shared\web server extensions\12\bin\stsadm"
@SET WSPBUILDER="WSPBuilder"
@SET WSP=%1

echo Install in GAC

"%programfiles%\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" -if bin\Debug\%1.dll

echo call WSPBuilder

%WSPBUILDER%

echo retract the solution
stsadm -o retractsolution -local -name %WSP%.wsp

echo delete the solution
stsadm -o deletesolution -name %WSP%.wsp

echo add the solution
stsadm -o addsolution -filename %WSP%.wsp

echo deploy the solution
stsadm -o deploysolution -name %WSP%.wsp -local -force -allowGacDeployment

echo Restart IIS Worker Process
IISRESET


Vous devriez avoir une hiérarchie qui ressemble à ça.






















9)Maintenant il ne faut plus que de dire à Visual Studio qu'après la compilation il doit éxécuter le fichier install.bat.
Faites un click droit sur le projet, puis propriétés, build events. Dans le post-build event :


cd $(ProjectDir)
install.bat $(ProjectName)





10)Votre projet Template est prêt, pour le mettre en tant que Template, File->Export Template->Next->Finish.

Félicitation vous avez un Template qui va vous servir beaucoup vous verrez.

Suite de ce tutoriel.

Présentation

Pour commencer, bonjour à tous ceux qui liront ce blog.

Je m'appelle Aurélien GIRARD, j'ai 23 ans et je m'intéresse depuis tout petit à l'informatique et à tout ce qui s'y rapporte.

Je suis diplômé d'une licence en Automatisme et Informatique Industriel.

Au niveau professionnel, j'ai participé au développement d'un logiciel de pilotage de carte d'axe écrit en C# et utilisant des ActiveX et des Dll C++.NET. J'ai également participé à l'élaboration d'un client Live Mesh implanté sur clé USB cryptée.

Ce blog va principalement parler des technologies Microsoft, je m'intéresse depuis peu à Sharepoint, c'est vraiment une technologie à part, mélangeant l'ASP.NET à une bonne partie en Code behind, et ajoute une complexité supplémentaire : le déploiement.

J'espère que vous apprécierez ce blog, n'hésitez pas à me contacter si vous avez des problèmes en .NET, je me ferai une joie de pouvoir vous aider.