30 novembre 2012

SHAREPOINT 2013 : Déploiement de solution

Aujourd'hui un article concernant SharePoint 2013 et une grande nouveauté concernant le déploiement des solutions.
 
A présent, SharePoint dispose de 2 répertoires dans le file system nommés "14" et "15".
  • Le répertoire "14" permettant de gérer le sites migrés en mode de compatibilité SharePoint 2010,
  • Le répertoire "15" permettant de gérer les nouveaux sites et les sites migrés en SharePoint 2013.
 
En effet, la grande nouveauté dans le déploiement est qu'un site migré peut toujours utiliser la définition 2010 puis pourra à tout moment être upgradé vers la définition 2013! Cela permet de proposer une migration rapide et transparente vers les nouvelles versions de SharePoint.
 
Par contre, il est évident que ce principe de double répertoire entraine une problématique dans le déploiement des fonctionnalités!
Il existe un nouveau paramètre : "CompatibilityLevel" (sur la commande "Install-SPSolution") permettant de préciser le mode de déploiement de la solution dans l'administration centrale:
Les valeurs possible pour ce paramètre sont les suivantes:
  • "14" : Installe la solution dans le répertoire "14" de SharePoint 2013,
  • "OldVersions" ou "Old" : Installe la solution dans le répertoire "14" de SharePoint 2013,
 
  • "15" : Installe la solution dans le répertoire "15" de SharePoint 2013,
  • "NewVersion" ou "New" : Installe la solution dans le répertoire "15" de SharePoint 2013,
 
  • "14,15" : Installe la solution dans les deux répertoires de SharePoint 2013,
  • "AllVersions" ou "All" : Installe la solution dans les deux répertoires de SharePoint 2013,
 
Il faudra donc retravailler quelques peu certains WSP afin de les adapter à leur cible!
Par exemple certains modèles de sites personnalisés devront faire partie d'un nouveau WSP dédié au répertoire 15 tandis que certaines fonctionnalités pourront être déployées dans les 2 répertoires sans ajustement.
 
Une grande attention devra être apportée à cette nouvelle méthode de compatibilité et à la méthodologie de repackaging des solutions car cette architecture sera amenée à perdurer dans les prochaines versions.

25 novembre 2012

INFOPATH : Supprimer lignes extensibles

Aujourd'hui un petit article relatif à une question récurrente sur les éléments extensibles d'InfoPath. Bien souvent, les utilisateurs ont besoin de supprimer toutes les lignes d'un tableau ou d'une section extensible.
Il n'existe aucun moyen simple de réaliser ceci en travaillant par l'interface. Par contre cela se fait assez facilement en utilisant du code managé.
 
Pour se faire, il est possible d'utiliser la procédure C# ci-dessous.
Comme son nom l'indique, cette procédure permet de supprimer tous les nœuds enfants d'un nœud spécifié en paramètre :
 
        private void RemoveAllChildren(string strNode, XPathNavigator formNavigator)
        {

            try
            {
                XPathNavigator rowsNav = formNavigator.SelectSingleNode(strNode, NamespaceManager);
                XPathNavigator lastChild = rowsNav.SelectSingleNode("child::*[position() = last()]", NamespaceManager);
                XPathNavigator firstChild = rowsNav.SelectSingleNode("child::*[position() =1]", NamespaceManager);

                if ((firstChild != null) && (lastChild != null))
                {
                    firstChild.DeleteRange(lastChild);
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Une erreur est survenue lors de la fonction 'RemoveAllChildren' appliquée sur le noeud '" + strNode + "'.", ex);
            }
        }
 
 
Pour appeler cette procédure, il suffit d'utiliser le code de la manière suivante:
      RemoveAllChildren("//my:NomParentExtensible", this.Maindatesource.CreateNavigator());

5 novembre 2012

SharePoint 2013 : Cache distribué

Aujourd'hui, un nouvel article sur SharePoint 2013 et l'optimisation des ses performances sur nos machines de développement!
 
Comme cela a été évoqué dans un article précédent, la version de SharePoint Server 2013 nécessite 24 Go de RAM disponible pour un serveur en mode Standalone...

Malheureusement tout le monde n'a pas la chance de pouvoir jouer avec du SSD sur un PC portable, donc le besoin d'optimisation des performances devient vite très important.

Après l'article permettant de diminuer l'impact de la recherche sur la RAM (lire ici), nous allons à présent nous attaquer au cache distribué utilisé par SharePoint 2013. En effet, le service "Distributed cache" se situe souvent dans le haut du panier lorsque l'on cherche les services gourmands dans le gestionnaire des tâches.
Il est possible d'éteindre tout simplement ce service mais une solution plus élégante reste tout de même de le paramétrer correctement...
Il est donc possible d'influer sur la taille de ce cache distribué en suivant les actions suivantes:
  • Se connecter à l'administration centrale de votre serveur SharePoint,
  • Se placer dans la catégorie "Services sur le serveur",
  • Arrêter le service de cache distribué,
  • Lancer la commande Powershell suivante : "Update-SPDistributedCacheSize -CacheSizeInMB CacheSize", où CacheSize représente l'allocation maximale autorisée en MB (équivalent à : (RAM maximale sur la machine - 2Go) / 2).
  • Redémarrer le service de cache distribué
  
En combinant le paramétrage de la recherche rédigé dans l'article disponible ici, et ce paramétrage du cache distribué, il est possible de lancer une machine virtuelle de démonstration SharePoint Server 2013 (embarquant SQL Server 2012 et Visual Studio 2012 et Office 2013) avec seulement 5 Go de RAM.