SharePoint 2007 : Création d'environnement SharePoint automatisée

Après en avoir fini avec toute la plomberie nécessaire au fonctionnement de l'application Quizz dans le dernier post, je vais enfin pouvoir vous parler du développement de l'application en elle-même.

Mais avant, ça je vous voulais faire un petit post pour vous présenter comment je déploie simplement l'application sur mon environnement de développement.

La plupart d'entre vous sont déjà en train de se dire que je vais vous parler de WSPBuilder ou de ce genre d'outil mais il n'en est rien.

Quand je vous parle de déploiement de l'application, je parle effectivement du déploiement de la solution mais plus encore :

  1. Upload de la Solution
  2. Création de la WebApplication
  3. Déploiement de la Solution
  4. Création de la SiteCollection
  5. Activation des Features
  6. Création de la liste Quizz Catégories
  7. Ajout de catégories dans la liste Quizz Catégories
  8. Création d'une liste Quizz Animaux basé sur notre ListDefinition
  9. Ajout de Questions à la liste Quizz Animaux.

L'idée étant d'obtenir un environnement complet en y passant le moins de temps possible.

Pour ceux qui surveillent la blogosphère SharePoint, vous devez savoir qu'il existe quelques outils qui me permettraient de réaliser certaines de ces opérations (mais pas toutes) :

Malheureusement Adrien et moi même souhaitions un outil qui puisse être simplement intégré à un Server de Build et à une intégration continue dans le cadre d'un projet SharePoint. Ce qui impliquait non seulement la création d'un environnement complet mais aussi son nettoyage. Du coup, nous l'avons développé nous-même :)

Au final, sans rentrer dans les détails, l'outil se base sur le modèle objet SharePoint et un fichier XML pour recréer tout l'environnement. L'outil se présente sous la forme d'une partie client et une partie serveur qui communiqueront ensemble via WCF. Le serveur en lui-même est un service Windows qui est installé sur la machine qui host SharePoint.

Concernant le projet Quizz dont je parle depuis quelques posts, le fichier XML de déploiement ressemble à ceci :

   1:  <?xml version="1.0" encoding="utf-8" ?>
   2:  <Farm xmlns="http://***/SharePointDataPopulate">
   3:    <Solutions>
   4:      <Solution Name="Demo.SharePoint.Quizz.wsp"
   5:                Path="C:\Users\Administrator\Documents\Visual Studio 2008\Projects\
   6:                Demo.SharePoint.Quizz\Quizz.Solution\Demo.SharePoint.Quizz.wsp"
   7:                IgnoreIfExists="true" />
   8:    </Solutions>
   9:    <WebApps>
  10:      <WebApp Port="80"
  11:              SQLPassword="Password0"
  12:              SQLUserName="SVC-SPCONF"
  13:              APidType="SpecificUser"
  14:              APidLogin="ORIJIN-HV\SVC-SPCONP"
  15:              APidPwd="Password0">
  16:        <Solutions>
  17:          <Solution Name="Demo.SharePoint.Quizz.wsp"
  18:                    Force="true"/>
  19:        </Solutions>
  20:        <Sites>
  21:          <Site Url="/"
  22:                Title="Intranet"
  23:                Description="Description Intranet"
  24:                LCID="1036"
  25:                WebTemplate="STS#1"
  26:                OwnerEmail="administrator@orijin.local"
  27:                OwnerLogin="ORIJIN-HV\Administrator"
  28:                OwnerName="Philippe Sentenac">
  29:            <Features>
  30:              <!--Quizz Features-->
  31:              <Feature Id="{321BBA1F-47A9-4B0F-BB17-3A34CFD58CCE}"
  32:                       IgnoreIfExists="true"/>
  33:             </Features>
  34:            <Web Description="NotUsed"
  35:                 Title="NotUsed"
  36:                 LCID="1033"
  37:                 UniquePermissions="false"
  38:                 Url="NotUsed"
  39:                 WebTemplate="NotUsed">
  40:              <Lists>
  41:                <List Title="Quizz Catégories"
  42:                      ListTemplate="Generic"
  43:                      Description="">
  44:                  <ListItems>
  45:                    <ListItem Title="Carnivore" />
  46:                    <ListItem Title="Herbivore" />
  47:                    <ListItem Title="Reptile" />
  48:                  </ListItems>
  49:                </List>
  50:   
  51:                <List Title="Quizz Animaux"
  52:                      ListTemplate="10042"
  53:                      Description=""
  54:                      FeatureId="{65E774A0-0B40-4341-B694-429B61A6EE15}"
  55:                      QuickLaunch="true"
  56:                      Url="Lists/QuizzAnimals">
  57:                  <ListItems>
  58:                    <ListItem Title="">
  59:                      <FieldsValues>
  60:                        <FieldValue FieldName="QuizzQuestion"><![CDATA[Dans quel pays, 
  61:                        le chat domestique était vénéré à l'époque des pharaons ?]]></FieldValue>
  62:                        <FieldValue FieldName="QuizzChoices"><![CDATA[Egypte;Tunisie;Espagne]]></FieldValue>
  63:                        <FieldValue FieldName="QuizzAnswers"><![CDATA[0]]></FieldValue>
  64:                        <FieldValue FieldName="QuizzCategory"><![CDATA[1;#Carnivore]]></FieldValue>
  65:                      </FieldsValues>
  66:                    </ListItem>
  67:                    <ListItem Title="">
  68:                      <FieldsValues>
  69:                        <FieldValue FieldName="QuizzQuestion"><![CDATA[quelle est le reptile le plus grand ?]]></FieldValue>
  70:                        <FieldValue FieldName="QuizzChoices"><![CDATA[le cochon d'inde;l'autruche;le crocodile]]></FieldValue>
  71:                        <FieldValue FieldName="QuizzAnswers"><![CDATA[2]]></FieldValue>
  72:                        <FieldValue FieldName="QuizzCategory"><![CDATA[3;#Reptile]]></FieldValue>
  73:                      </FieldsValues>
  74:                    </ListItem>
  75:                  </ListItems>
  76:                </List>
  77:              </Lists>
  78:            </Web>
  79:          </Site>
  80:        </Sites>
  81:      </WebApp>
  82:    </WebApps>
  83:  </Farm>

L'avantage de cet outil est qu'il cumule à la fois la création d'un environnement (qui aurait pu être scripté via PowerShell ou STSADM) et l'ajout de contenu SharePoint (GED, WCM, Contenu personnalisé).

De plus dans le cadre de la série de post liée au Quizz, il me permet de vous décrire simplement le contenu (grâce au fichier XML) sur lequel je vais m'appuyer dans la suite des développements

Ainsi après lancement, voilà ce que l'on obtient :

  • Une WebApp créée sur le port 80 avec une SiteCollection sur "/" nommée Intranet

    image 

  • La feature Quizz déjà activée

    image

  • Une liste catégorie créée et pré-remplie

    image

  • Une liste Quizz Animaux créée en utlisant la définition adéquate et pré-remplie

      image 

Le tout en 2-3 minutes, juste le temps qu'il faut pour se préparer un bon café :).

Voilà, je ne vais pas m'attarder sur cet outil, j'en parlerais plus à l'occasion de la session que je co-presente avec Adrien au Techdays, je voulais simplement vous montrer comment je crée mon environnement SharePoint pour chacun des projets sur lequel je travaille.

Dans le prochain post, on abordera toute les écrans nécessaire au bon fonctionnement de l'application Quizz.

<Philippe/>

Publié mercredi 21 janvier 2009 17:20 par phil
Classé sous , , ,
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

# re: SharePoint 2007 : Création d'environnement SharePoint automatisée @ mercredi 8 avril 2009 09:33

Salut,

Dis moi, as-tu mis à disposition ton tools ?

crazyht

About phil

Philippe Sentenac est Consultant SharePoint à Wygwam en région Parisienne. Il intervient essentiellement sur des missions liées à SharePoint (2007 et 2010 ) mais aussi autour du Web 2.0. Plus généralement, il s'intéresse à l'ASP.Net (MVC) , à Silverlight, et à tout ce qui est orienté Web en rapport avec les nouvelles technologies, qu'il pratique depuis 2006. Féru de développement, il est passionné par les problématiques de méthodologies et d'industrialisation du développement.

Les 10 derniers blogs postés

- [SharePoint] Roadshow Microsoft SharePoint Solutions par Le petit blog de Pierre / Pierre's little blog le il y a 3 heures et 8 minutes

- Les actualités de c2i.fr : 28 Mai - 3 Juin par Richard Clark le il y a 22 heures et 5 minutes

- [Office 365] Utiliser le modèle objet client SharePoint en PowerShell vers SharePoint Online par Blog de SPBrouillet (Pierrick BROUILLET) le 06-03-2012, 19:07

- Roslyn fluent APIs: RoslynHelper NuGet package par Matthieu MEZIL le 05-31-2012, 01:24

- Pour rappel ! Les spécifications des protocoles Office et SharePoint sont disponibles sur MSDN par Julien Chable le 05-29-2012, 12:33

- Joyeux anniversaire Nix par The diary of EBArtSoft le 05-29-2012, 01:00

- Imagine Cup 2012, Make a Sign en finale par Le Blog (Vert) d'Arnaud JUND le 05-23-2012, 12:57

- Kinect 1.5 is out ! par Cyril Sansus le 05-21-2012, 17:47

- Les actualités de la semaine sur c2i.fr (14 mai - 20 mai) par Richard Clark le 05-21-2012, 08:50

- Reactive Extensions : Consommer des services avec Rx Partie 3, les pièges à éviter par Léonard Labat le 05-20-2012, 23:45