Archives de Catégorie: SharePoint 2010

[SharePoint2010] Comment ajouter du javascript sur une Liste créé dynamiquement

Imaginons que vous avez un formulaire avec un bouton sur une page d’un de vos site SharePoint, et que vous souhaitiez créer une nouvelle page lors de la validation de celui-ci.
Sous SharePoint Designer 2010 il est très facile de modifier le code source de vos pages. De ce fait, modifiez votre page et ajoutez y votre bouton comme suit :

<asp:Button runat="server" Text="Valider le formulaire" OnClick="Valider_Click" id="Valider"></asp:Button>

Maintenant nous allons ajouter notre codebehind afin de gérer l’évènement click de notre bouton. Afin de pouvoir ajouter du code directement dans notre page, il suffit d’ajouter la balise script comme suit :

<script type="text/c#" runat="server">
</script>

Nous allons donc créer notre Liste dynamiquement:

public void Valider_Click(object sender, EventArgs e)
{
     using (SPSite siteCollection = new SPSite("http://demosharepoint:80/monsite/"))
     {
        using (SPWeb site = siteCollection.OpenWeb())
        {
               site.Lists.Add(“Ma Liste Dynamique”, "", site.ListTemplates["Custom List"]);
               site.Update();
               nouvelleListe = site.Lists.TryGetList(“Ma Liste Dynamique”);
        }
     }
}

Nous venons donc de créer notre liste dynamiquement.

Imaginons maintenant que nous souhaitions que lors que l’on consulte notre liste une popup nous affiche un message.
Voici donc le javascript plutôt simpliste que nous pourions avoir :

<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.4.js"></script>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script>

<script type="text/javascript">

$(document).ready(function() {
     alert("Hello World !");
});

</script>

Afin de pouvoir l’ajouter à notre page nous allons placer ce javascript dans un fichier texte (par exemple « Script.txt »), puis nous allons l’ajouter dans les « Shared Documents » de notre Site.

Une fois tout cela fait, retournons dans SharePoint Designer et reprenons notre code. Afin de pouvoir ajouter notre javascript nous devons créer une WebPart ContentEditor que nous allons linker sur notre fichier texte puis que nous l’ajouterons à une des pages de notre liste. (par une des pages de notre liste je comprend soit la page View, Edit, New, etc.) :

ContentEditorWebPart ceWebPart = new ContentEditorWebPart();
ceWebPart.ContentLink = "/monsite/Shared Documents/Script.txt";
SPForm formNew = null;
foreach (SPForm form in nouvelleListe.Forms)
{
    if (form.Type == PAGETYPE.PAGE_VIEW)
    {
        formNew = form; // Recuperation du formulaire sur le quel nous allons ajouter notre javascript.
    }
}

if (formNew != null)
{
    using (SPLimitedWebPartManager webPartManager = site.GetLimitedWebPartManager(formNew.Url, PersonalizationScope.Shared))
    {
        webPartManager.AddWebPart(ceWebPart, "0", 0); // Ajout de la Webpart ContentEditor linké sur notre fichier javascript.
    }
}

Pour voir tous les « PAGETYPE » possible, rendez vous sur ce lien :

http://msdn.microsoft.com/fr-fr/library/microsoft.sharepoint.pagetype(v=office.12).aspx

Ansi, à chaque fois que vous validerez votre formulaire, une liste sera créé et lors que vous vous rendrez sur la page de votre liste, vous aurez le message « Hello World ! » qui s’affichera.


			

Application Sharepoint 2010 avec un SharePoint Server 2010 distant

Vous le savez certainement, l’outil SharePoint est très puissant et permet de faire des choses assez géniales. Cependant, si vous voulez développer des applications pour SP via un poste différent que celui du poste sur lequel tourne SP Server (parce que, par exemple, vous êtes plusieurs à développer sur SP), Visual Studio vous dit qu’il est impossible de créer une application si SP Server n’est pas installé sur la même machine que celle sur laquelle vous développez.

Cet article est donc la pour vous montrer comment contourner ce problème.

Pouvoir créer des applications SharePoint

Afin de pouvoir suivre cette méthode, vous devez avoir une connexion distante à votre SP Server.

  1. Dans un premier temps, connectez vous à votre machine SharePoint 2010 Server à l’aide de l’outil Remote Desktop.
  2. Faites Démarrer, Exécuter  (touche Windows + r) et tapez « regedit »  avant d’appuyer sur la touche Entré.
  3. Une fois, la fenêtre de registre ouverte, parcourrez l’arborescence et exportez la clé « HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\14 ».
  4. Importez la sur votre poste « Développeur » (double clic dessus suffit à ajouter la clé a votre registre).
  5. Retournez sur le serveur afin de récupérer toutes les dll SharePoint se trouvant dans « C:\Program Files\Common Files\Microsoft Shared\web server extensions\14\ISAPI ».
  6. importez-les dans le même chemin d’accès sur votre poste Développeur (Cela facilite l’accès à celles-ci lors du développement d’application).

Une fois toutes ces étapes terminées, vous devez être capable dans Visual Studio 2010 de créer des projets de type SharePoint via votre poste « Développeur ».

Déployer une solution SharePoint sur votre SharePoint Server

Puisque notre serveur et notre « client » sont sur deux postes différents, le clic droit, « Déployer » ne fonctionne pas. De ce fait voici la méthode à suivre.

  1.  « Générez » la solution et la « packagez ». Importer ensuite tout le dossier « Debug » ou « Release » suivant votre cas, sur le serveur.
  2. Connectez vous au serveur et ouvrez SharePoint 2010. Naviguez dans « Site Action » -> « Site Settings », puis sélectionnez « Solution ».
  3. Dans le Ribbon, cliquez sur « Upload Solution » et ajoutez votre solution par le biai du fichier wsp se situant sur dans le dossier que vous avez importé.
  4. Sélectionnez la solution ajouté, puis cliquer sur « Activate » (dans le Ribbon).

NB : Dans le cas d’une SandBoxed solution, il ne faut pas oublier de vérifier que le service permettant le déploiement de SandBoxed Solution est bien activé : Dans SharePoint, dans la partie « Application Management » rendez vous dans « Manage services on server » et vérifiez que le service « Microsoft SharePoint Foundation Sandboxed Code Service »  est bien démarré. Activez le si besoin.

Remote Debugging

Le fait de développer des applications SharePoint depuis votre poste Développeur est une bonne choses, mais cela serait encore mieux si l’on pouvait debugger nos applications.

Nous allons nous placer dans le cas ou vous avez déjà développé une application SharePoint et que vous l’avez déjà déployé une fois (ce qui vous a retourné une erreur, c’est pourquoi vous voulez debugger 😉 )

Voici les étapes à suivre :

  1. Sur votre machine Développeur, récupérez le dossier « Remote Debugger » se trouvant dans « C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ « .
  2. Importez tout le dossier sur le serveur.
  3. Lancer en mode Administrateur (toujours sur le serveur)  msvsmon.exe se trouvant dans le dossier que vous venez d’importer, plus exactement dans le dossier x64 de celui-ci.
  4. Récupérez le « server name » qui vous a été attribué souvent de la forme DOMAINE\user@NOM-DE-LA-MACHINE.
  5. Sur le serveur, se rendre dans « C:\ProgramData\Microsoft\SharePoint\UCCache » (dossier caché). Ici figure, des dossiers avec des noms très peu parlant.
  6. Faites une rechercher de la dll portant le nom de votre solution. Si vous ne la trouvez pas c’est que vous n’avez pas encore déployé votre solution sur le Sharepoint.
  7. Dans le même dossier que la dll, ajoutez le fichier pdb (ce fichier est le fichier de Debug de l’application, c’est lui qui permettra le Remote Debugging).
  8. Sur la machine Développeur et dans Visual Studio (avec la solution à debugger ouverte), rendez vous  dans le menu « Debug » -> « Attach  to process … ».
  9. Dans la partie Server name, entrez le nom récupéré plus haut et faire un refresh afin de voir la liste des processus.
  10. Cochez la case « Show processes from all users » et sélectionner le process « SPUCWorkerProcess.exe » puis cliquer sur « Attach ».

Afin de vérifiez que cela ait bien marché, ouvrez le menu « Debug » -> « Windows »-> »Modules ». Dans la liste qui vient d’apparaitre doit figurer une ligne dont la valeur de la colonne « Symbol Status » est à « Symbols loaded ».

Il ne vous reste plus qu’a mettre un breakPoint dans votre code, et rechargez la page devant afficher ce que vous avez développer sur le site Sharepoint. Lors du chargement de celle-ci, Visual Studio doit s’arrêter sur votre BreakPoint.