Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

The Mit's Blog

En plus d'intégrer et skier, il sait même écrire !
(Blog de Renaud Comte)

Actualités

[SPC12] : Keynote !!!

Le show commence et a l'Américaine SVP : show light, musique de film, speaker a la voix grave et 10 000 personnes dans une seule salle …

SPC 2012

P1040538P1040543

Le Keynote commence par un grand “Merci” a sa grande communauté de UG, MVP, MCM qui grandit d’année en année

“SharePoint is a way of life”

la SPC en chiffre

  • 10000 personnes de 85 pays
  • 200 partenaires
  • 120 Mvps

Le team SharePoint livre les bases de leur réflexion sur les nouvelles versions

“Que chacune puisse partager et créer son site web”

  • cloud
  • mobile
  • social

Pour cela, SP se doit de permettre d’être plus agile, flexible et rapide et ceux de tous les acces possible

il faut pouvoir permettre aux utilisateurs et aux entreprises de mieux partager et de gagner en agilité

Définir a “ New way to work together”

3 concepts : experience, innovation et ecosystem

Next release : leur plus investissement depuis le lancement de SP
>>> le team SP a été divisé en 2

  • O365 : datacenter + soft + continuous updating
  • le new SharePoint

Jeff Steper insiste sur l’investissement de MS sur les 3 nouveaux concepts

le team User interface a été doublé  : clean UI de OWA a SP15

Longue Demo du nouveau O365

P1040546

  • interface 100% web
    • multiplateforme
    • AJAX, zero AX
  • intégration du stockage personnel avec Skydrive
  • seach everywhere live
  • nouveau system de “Share”
    • on partage a des gens, pas de permissions complexe
  • Drag and drop directement dans les interfaces de liste (Big Applause)
  • Partage interne et externe de l’entreprise via la messagerie
  • synchronisation Skydrive Pro depuis Ipad, Surface, Mobile, …
  • theming de SP
    • drop live des logosm et choix des couleurs, fond, ….
  • Team Site
    • intégration des conversation directement dans le site : Newsfeed
      • vue pleine ecran des WP
      • gestion media in screen
      • reprise par le Mysite
    • tracking et gestion des projets
    • manage everything in one place
      • les tasks se sync entre site et votre propre compte Exchange
      • en bidirectionnel
    • appli SP
      • dispo win phone 7 et 8
      • bientot iphone et android debut 2013

P1040549

Cloud : toutes les demos sont faites via un Datacenter Europe :)

intégration Yammer : une évidence pour les 2 entreprises
le meilleur du collaboratif et du social entreprise

  • number 1
  • rapid innovation via cloud updating
  • Voluntary adoption
  • Grande complicité des équipes

Lol : Yammer et SharePoint en Ganman Style

P1040551

On ne peut plus renier les impacts du social networking : élection US, facebook et autre reseaux, …

  • 200000 enterprises ont Yammer
  • Estimation : 6,5 Billions USD

Social : :

  • connect for communication and made enterprise change and evolve
  • Transform the business
  • be more organise
  • be more involved in his enterprise and its goals

Yammer souhaite connecter les gens de leur outils principal en enteprise : Office bien sur

Demo

  • boutton Socialize this
    • creer un thread yammer depuis un simple doc depuis une doc lib
  • depuis Yammer
    • collaborer
    • synchroniser via Skydrive
    • commenter versionner et éditer les documents
  • appli Win8 de Yammer sur surface

P1040554P1040553P1040556P1040557

Roadmap : Yammer intègre le pack Office 365 gratuitement !

Enterprise Feature

Soit les nouvelles features du SP15

  • Search everything everywhere
    • vignettes et prévisualisation en task pane
    • ouvre les documents en office Web app a la bonne page !
  • Publishing
    • SharePoint  transforme lui meme un html en Master page
    • Snippet : permet de générer des  samples de SP
      • les copier dans un tools comme dreamweaver
      • le recoller dans SP
      • End it’s done
  • ECM
    • Content Search WP
      • au revoir la CQWP
      • instant result instant index (merci Fast framework)
    • ediscovery
      • espace de recherche et de decouverte des bonnes informations
  • Site Mailbox
    • With Exchange
    • SharePoint is in Outlook and vice & versa
    • work closely and sync together

P1040558P1040559P1040560

Innovation dans

  • Sharing ans social
  • Search
  • BI
  • ECM
  • Task mngt
  • Web Publishing

P1040564

Investissement lourd dans le  Cloud : Build from the Cloud up
>>> Ouragan Sandy a pousse plein de société de la cote est a migrer pour avoir rapidement un “recovery plan”

IT integration

  • Upgrade d’une ferme SP2010 : zero impact meme visuel sur vos collections de site
  • demo live

Performance

  • 40% optimisation bandwith
  • 50% faster server side
  • SQL IO faster by binary management

P1040565

Development

  • we are not forget them, we focused on you !
  • bien trop a dire et a montrer : allez voir les sessions

SharePoint 15 fonctionne a merveille on Premise mais tire son maximum avec le Cloud

Cloud App Model

  • consistant entre Premise et Cloud
  • loosely coupled to SP

Demo par Scott Gutthie himself

(Symbole fort pour ceux qui se rappelle les outils vsewss ...)

P1040567

  • from O365
  • développement d’une WP depuis VS2012
  • utilise un déploiement mixte Azzure
    • permet de profiter de toutes les innovations de .net : MVC, SVC
  • Local debug sur 365 sans SP local
    • tout tourne en localhost mais avec les datas en trust de SP Online
    • Merci Client contex et OAuth
    • Jquery et Data Html 5
  • Présentation des 3 modes de dev
    • SP host
      • JS Heaven Hell au choix
    • Auto host (O365 + Azure)
      • tout est automatisé et sécurisé
    • Provider
      • Manifest in SP
      • Web App on Azure ou ailleurs !
  • Workflows
    • ils peuvent tourner sur le long terme sur le Cloud

P1040571

P1040572P1040573

Conclusion

Mais quel effet WAOH !

Steve Balmer avait dit pour SP2010 que MS faisait un ALL IN avec le Cloud

SP 2013 en est une preuve impressionnante voir bluffante, et ca ne fait que commencer …

Renaud Comte [MVP]
Live from Vegas

Mots clés Technorati : ,,
SPC 2012 : Here we are

Après la SPC 2009 in Las Vegas, le retour tant attendu en 2012  avec en guest : SharePoint 2013

image

Ah Vegas :

Certes, il y a la folie purement locale

P1040502P1040506P1040507P1040515
P1040520

Mais bon si la visite du “strip” reste un incontournable, surtout après 11 h de vol depuis Frankfurt, la SPC c’est la première conférence pour et pur SharePoint , et version 2013 SVP !

  • des sessions , trop de bonnes sessions
    • certains créneaux sont de vrais crève cœurs vu les sujets
  • un immense village partenaire pour croiser et échanger avec utilisateurs, client, CP, Experts et MSFTs
  • du réseautage : 10 000 personnes uniquement sur les technologies SP
    • un 50 aine de Français/Suisse, un douzaine de partenaire et votre Wygwam serviteur dévoué
    • des expats comme notre canadien de Nicolas Georgeault

P1040523

(d’ailleurs je ne suis pas seul, Laurent du bureau suisse m’accompagne pour mieux couvrir tout le contenu )

Biensûr le village partenaire et son coin communautaire et sa cohorte de MVP : 120 présents d’ailleurs  avec un Wall of Fame Sourire

 

P1040525

P1040526

j’y suis aussi Sourire

P1040527

 

le programme va être riche de contenu, je vais tenter de vous en “ramener” une petite partie via mon blog

Mais en attendant le keynote, il faut récupérer du décalage horaire …

A demain

Renaud Comte [MVP]

PS : vous saviez qu’il y avait un Microsoft Store temporaire à Las Vegas ?

Vive le dollar Clignement d'œil

P1040529

Onetastic : Oh le sympathique plugin pour Onenote !

Jeu de mot facile mais Onetastic c’est Fantastique Sourire

http://omeratay.com/onetastic/?r=download

   

C’est de la dynamite Sourire

Bon ok, la blague est faite mais plus sérieusement, si vous êtes un utilisateur assidu et forcené de Onenote, ce plug in vas bien vous aider.

>>> Ce plugin a été développé par un des membres du Team Onenote, donc qualité assurée (si si)

Voici un petit détail rapide :

Soit :

  • des raccourcis directes depuis le bureau
  • une gestion de style personnalisable
  • une gestion plus fine des images (enfin) avec
    • le crop !
    • le flip
  • et surtout la vue calendar !

 

Une vue tout simplement génial pour votre suivi de note multi saisie …

Bref, à télécharger en urgence en attendant Onenote 2013 bien sur

Renaud Comte aka TheMit (Onenote Fan 4ever)
Member of WygTeam
http://www.wygwam.com
Mots clés Technorati : ,,
SharePoint 2010 & Variations : Comment connaitre les variations de mes pages ?

/

Certes, le moteur de variation de SharePoint 2010 est riche de nouvelle fonctionnalité avec ses nouveaux timers jobs, son mode manuel et semi auto, il fait presque tout

La navigation multilingue ne concerne pas juste la navigation entre différentes langue d’un site mais aussi la navigation entre les différentes variations de la même page.

Pratique, pour finaliser une navigation contextualisée, des pieds de pages paramétrables ou autres sujets très sensible en multilingue ! Surtout avec le nouveau mode manuel et non automatique, ou certaines pages n’ont que certaines variations …

Soit trouver la version FR de http://monsite/US/Team/pages/welcome.aspx qui devrait être http://monsite/fr/equipe/pages/bienvenue.aspx

A noté, pour rappel !

Donc pour continuer sur le sujet, Comment retrouver sa navigation entre page  (voir en créer une “sur mesure”)

Plusieurs approches

  • Roots de chez roots
    • vous pouvez naviguer et chercher directement dans la liste de management des urls, la fameuse liste cachée : /Relationships%20List/ se trouvant en racine
    • la vous pouvez requêter sur les id de pages et faire la corrélation avec les ID de vos page
  • Utiliser l’OM de Microsoft.SharePoint.Publishing (+1)
if (PublishingPage.IsPublishingPage(SPContext.Current.ListItem)) 
            { 
                PublishingPage page = PublishingPage.GetPublishingPage(SPContext.Current.ListItem); 
                StringCollection peerUrls = page.VariationPageUrls; 
                foreach (var peerUrl in peerUrls) 
                { 
 
                } 
            } 
}
      • Pour retrouver la variantes dans une langue précise : PublishingPage.GetVariation
        • il vous suffit de passer en paramètre le label qui vous intéresse
      • “Pages” en anglais, c’est “Pages” mais en Allemand, c’est “SeitenSourire

Conclusion

2 leçons à retenir :

  1. SharePoint est toujours aussi riche : il faut vraiment explorer l’OM pour trouver les bonnes méthodes mais souvent, elles sont logiques …
  2. SharePoint s’utilise lui même pour sa propre gestion : PropertieBag, Reference list, …

Cependant, même si l’utilisation de l’OM, la version “roots” par exploration de sa propre liste de référence n’est pas à négliger !!!

Pourquoi ?

hum hum, disons que de temps à autre, elle peut être la seule alternative à des soucis de contexte non prévus par Microsoft

Genre : développez des Event Receivers sur vos bibliothèques de publishing
>>> http://www.akshaykoul.com/blog/Home/tabid/40/EntryId/17/Variation-Labels-for-a-site-collection.aspx

Soit la leçon 3 : toujours comprendre comme SharePoint fonctionne en interne !

Bon courage / Good luck / Viel Glück

Renaud Comte aka TheMit ( pas de soucis, juste trop de solution)
Member of WygTeam
http://www.wygwam.com
Mots clés Technorati : ,,,
SharePoint 2013 : installation, soucis et solutions

En rentrant de congés (fini en dépanneuse d’ailleurs), j’ai eu la joie de découvrir 2 choses

  • l’arrivée de mon nouveau monster laptop
  • la sortie publique de Office 2013 et SharePoint Preview

image

Ah ah, les affaires sérieuses vont enfin commencer. Après des semaines à jouer sur du JS, Jquery et le CSOM, on vas pouvoir évaluer tout cela sur une plateforme plus “stable”.

Pour une fois, j’ai décidé de vérifier plusieurs types d’installation, le tout sous Hyper V . Et histoire de revivre la folle aventure de SP2010 et 2007, je monte tout en beta : Win 2012 SRV et SQL 2012 SP1 CTP3 sur Win 8 CP Sourire (courageux ET téméraire )

En résumé, je vais tester sur Hyper V

  • AD + SPF 15 Stand Alone
  • AD + SQL + SPS 15
  • AD + SPS 15 Stand Alone
  • AD + SPS 15 (SQL dessus)

Soit une “simili” prod de dev

Merci le SSD pour les temps d’install et de reboot d’ailleurs

A priori pas de grand soucis mais quelques messages d’erreur bien énervant qu’il faut traiter

Si vous voulez éviter bien des crises, je ne saurais trop vous conseiller les lectures des posts suivants:

SharePoint George

  1. Configuring Active Directory (AD DS) in Windows Server 2012

  2. Installing SharePoint 2013 Preview on Windows 2012 Server with SQL 2012-Part 1

  3. Installing SharePoint 2013 Preview on Windows 2012 Server with SQL 2012-Part 2
  4. Create a Web Application and Site Collection in SharePoint 2013 Preview

Pour la partie réseau :

TechEd 2011 demo install step-by-step (Hyper-V, AD, DNS, iSCSI Target, File Server Cluster, SQL Server over SMB2)

Malgré tout, j’ai vécu quelques soucis bien embêtants et avec des solutions bien souvent

  • AD, AD, AD : cette version preview vit très mal sans AD !
    • créer un AD, utilisez la “dynamic memory”, il ne pèsera jamais plus que 512 meg en mémoire et plus de soucis
    • certes des posts vous conseillent de désactiver certains services comme AppFactory mais vous perdrez aussi des fonctionnalités

  • Pensez en plusieurs comptes de services

Attention, même pour une machine de Dev, Microsoft a durci son install : http://msdn.microsoft.com/en-us/library/ee554869(v=office.15)

The installation wizard will ask for a SQL Server admin account and password. This account will become the Farm Account and services such as the Timer Service will run under that identity. This account must be different from the account that you will use for developing and installing apps on your SharePoint 2013 Preview installation. The SQL Server account can be a local account if the database is installed locally. It must be a domain account if the database runs on other computers. SharePoint 2013 Preview will not allow your apps to install if the SQL Server admin account and the account that you use for installing apps for SharePoint are the same.

  • Configurer bien votre DNS et vérifier le ping sur votre AD
    • les joies du réseautage virtuel …
  • Installation d’une machine en SPF Standalone avec compte domaine autre que “domain\administrator” : OK
    • Impossible pour SPS en StandAlone : erreur en setup et aucun détail
    • le setup log renvoie une erreur qui ne renvoie rien sur google ou autre
    • Après 3 reboot, différent comptes domaines, je relance l’install avec un compte local admin et ca passe ….
      • mystère …
  • Certains conseils ne marchent pas pour tout … dans le cas d’une installation Standalone, votre compte d’install doit être celui de la ferme http://sharepointsolutions.blogspot.ch/2012/07/sharepoint-2013-preview-setup-and.html sinon error incompréhensible

    ErrorCode:ERRCAdmin024 SubStatus:ES0001 Failed to refresh all running servers in the cluster. You may need to restart the cluster for these changes to take effect.

  • Le pire de tous : n’installez jamais une machine en “dynamic memory” sur HyperV !!!
    • J’en ai cauchemardé c’est dire !!!
    • une erreur hallucinante vous déclare lors du déploiement SP qu’il vous manque de la mémoire genre 256 au lieu de 300 attendu
      >>> j’ai retourné ma config plusieurs fois et bien sur, peu de résultat sur le web puis une idée
      • J’ai modifié la mémoire de mes 3 machines SQL, AD ET SP en normal sous HV et l’installation c’est déroulé sans soucis
    • Moralité
      • installer en mémoire “fixe”
      • travailler en “dynamic memory” !!!

L’installation de VS 2012 RC n’est pas sans surprise : surtout pour obtenir les “compléments O2013”

soit bien pensez à votre accès Web virtuel pour obtenir le Web Platform Installer 4.0 RC

Mais sinon, tout vas Sourire

je complèterais ce post, fur à mesure de mes “trouvailles”, sinon

http://office.microsoft.com/en-us/help/sharepoint-server-2013-known-issues-HA102919021.aspx#_SharePoint_Server

Bon testing !

Renaud Comte aka TheMit (rah que j’aime une install qui rerereplante)
Member of WygTeam
http://www.wygwam.com

SharePoint : Mes alertes ne marchent pas … Que faire ? Comment réparer ou agir ?

Ces derniers temps, je vois une recrudescence des soucis d’alerte sous SharePoint.

Effet de mode ou autre ? Ce n’est pas la vrai question. Le technicien que je suis et resterais se demande déjà : comment ca marche et comment on répare ? (puis gouvernance oblige, comment le pérenniser une bonne fois pour toute)

Le fonctionnement des alertes, avouons le, est plus clair pour les utilisateurs que pour les administrateurs.

Mais que faire quand les alertes ne partent pas ?

  • Est ce un soucis de SMTP, load balancing, AD, … ?
  • Est un paramétrage SharePoint, Exchange, Firewall … ?
  • Est un soucis infra, sécurité, patch, … ?
  • Est ce le Timer Job, le compte de service, un mail externe … ?

Comme vous le voyez le cheminement de résolution est plus que complexe, riche voir rébarbatif.

Après bien des recherches et de vécu, voici la liste de mes favoris, ma boite à outil personnelle (des liens surtout basés sur de l’opérationnel )

Bref, de la gestion du “Troubleshooting” des alertes

Troubleshooting SharePoint Alerts
http://sharepointalert.info/troubleshooting-sharepoint-alerts/

Ce post explique simplement et graphiquement le cheminement de problème d’une alerte

Troubleshooting Flowchart

Et bien sur, les résolutions possibles !

Sachant qu’elle peuvent varier de la simple erreur d’adresse ou du soucis de mise à jour des url en cas de migration de votre contenu …

Cependant, je ne saurais trop vous conseiller de le compléter avec le feedback de Steve Chen [MSFT] Support Escalation Engineer

Clairement, cette personne connait son sujet et surtout le pratique vu qu’il assure le support des bugs bloquant à impossible sur SharePoint.

Soit en pratique le TOC correspondant

  • Alerts in SharePoint 2007
  • The typical issue
  • Examples of common issues
  • Alerts are not working ...
  • General troubleshooting steps
  • Additional Links and related resources
  • Some technical details
  • Immediate Alerts
  • Scheduled Alerts
  • Database tables
  • How to troubleshoot alerts?
  • Troubleshooting steps
  • Le fonctionnement avec Timer Jobs des alertes entre 2007 et 2010 restant similaire, ses analyses sont toujours fiables et recommandés !!!

    Eh oui, l’investigation du problème des alertes peut être aussi simple que difficile vue que vous devez identifier en premier la “zone d’erreur”

    Est ce SharePoint ou le SMTP voir le serveur de messagerie … voir le SPAM de votre client de messagerie (si si j’ai eu le cas ou un utilisateur avait des règles vraiment trop exigeante )

    Mais des fois le soucis peut être vraiment caché, bien caché, vous risquez de devoir attaquer l’analyse avec des outils plus direct

    En résumé, pas de panique, mais rapprochez vous de votre équipe IT rapidement

    Bon courage

    Renaud Comte aka TheMit (après un tel post, vous arriverez sans peine à convaincre les gens d’utiliser le RSS !!!)
    Member of WygTeam
    http://www.wygwam.com

    Mots clés Technorati : ,,,,
    SharePoint 2010 & CAS : le GAC n’est pas l’unique solution de déploiement de vos composants

    Un sujet qui revient souvent dans le monde SharePoint mais bizarrement moins depuis la version 14 alors que très à la mode sous 2003 et 2007.

    Le Code Access Security : CAS et la problématique des stratégie de contrainte ..

     

    Référence MSDN (très bonne d’ailleurs)
    http://msdn.microsoft.com/en-us/library/cc768613.aspx ou http://msdn.microsoft.com/fr-fr/library/cc768613.aspx

    Introduction : “Comment gérer le modèle d’exécution de vos composants sous SharePoint 2010 ?“

    Il est vrai que sous SP14, il existe 3 modèles

    • Full trust : déploiement GAC ou Farm Global
      • avantage : pleine puissance
      • inconvénient : disponible de maniére transverse dans toutes les Web Apps de votre ferme
    • Bin/CAS : déploiement en Bin de vos sites IIS SharePoint
      • avantage : des droits dépendants de vos CAS et composants disponibles uniquement sur les Web App ciblés
      • inconvénient : rédiger les dites CAS
    • SandBox : déploiement dans la gallerie de solution de votre Site Collection
      • avantage : isolation assuré par le déploiement par collection avec CAS spéciale
      • inconvénient : aucune ouverture sauf si utilisation des sandbox proxy

    Rappel sur les modèles d’exécution:

    Certes, Microsoft encourage fortement le développement Sandbox, mais bien souvent, sur des problématiques plus complexes (avec des WS, des appels cross collections, …) le modèle Farm est nécessaire, et je ne vous parle pas de certaines problématiques de maintenance de sandbox

    Et la ce pose la question du déploiement Web App ou Global, pardon, ferme ou bin 
    >>> bien souvent, la plupart des développeurs utilise le développement global car simple et TRES efficace

    Le soucis, vos composants deviennent transverses à la ferme et si vous hébergez plusieurs intranets SharePoint, vous vous retrouvez avec une maelstrom de feature toute mélangé (genre l’intranet, le collaboratif, la gestion de projet les blogs) alors que les composants sont fonctionnellement différents …

    D’un point de vue Gouvernance (hello Christian), clairement, il faut mieux travailler en silo et isoler les composants au plus proche de leur application. Donc travailler avec des solutions avec CAS en BIN

    Et d’un point de vue sécurité …  vous évitez aussi d’avoir des dll en GAC qui ont … tout pouvoirs soit dit en passant …

    Mais comment déployer en Bin ?

    Les développeurs SP12 connaissent bien la méthode et surtout WSPBuilder mais sous VS 2010 c’est différent. Il suffit de modifier les propriétés de votre projet

    image

    Mais par contre, vous devez au préalable, préparez les références de CAS … C’est la que le problème devient épineux

    je vous renvoie dans un premier temps sur le MSDN pour que vous puissiez mieux comprendre, découvrir, approfondir le concept qui est pur .Net et non SharePoint, d’ailleurs

    http://msdn.microsoft.com/en-us/library/cc768613.aspx

    image

    Cet ancien article du MSDN sur une WebPart WSS 3 de feu Patrick Tisseghem est d’ailleurs toujours une référence, surtout le dernier chapitre sur Code Access Security and Web Part Solutions

    En pratique, vous devez recenser les permissions minimales pour l’exécution de votre code sous ce format

    <CodeAccessSecurity>
    <PolicyItem>
    <PermissionSet class="NamedPermissionSet" version="1">
    <IPermission class="SecurityPermission" version="1" Flags="Execution" />
    <IPermission class="AspNetHostingPermission" version="1" Level="Minimal" />
    <IPermission class="Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" version="1" ObjectModel="True" />
    </PermissionSet>
    <Assemblies>
    <Assembly Name="$SharePoint.Project.AssemblyName$"
    Version="$SharePoint.Project.AssemblyVersion$"
    PublicKeyBlob="$SharePoint.Project.AssemblyPublicKeyBlob$"/>
    </Assemblies>
    </PolicyItem>
    </CodeAccessSecurity>


    Par défaut SharePoint fonctionne avec la policy WSS_minimal qui ne vous laisse même pas utiliser le modèle objet, c’est dire … Il faut donc préciser les CAS (ou modifier le Trust du Web.config de SharePoint mais je ne préfère pas vous parler de cette option, pas vraiment à conseiller sous 2010)

    Si vous oubliez, SharePoint vous le rappellera sans politesse

    image

    Mais bien souvent, vos WebParts et autres développement se ressemblent souvent, vous pouvez donc partir du modèle précédent et le réutiliser à travers vos différents projets. Et surtout l’adaptez à vos besoins Sourire

    Merci à Waldek pour son template de base très utile

    Liens pratiques :

    Ainsi, dans Visual Studio, la démarche n’est pas si compliqué

    1. Modifier les propriétés de déploiement

      image
    2. Ajoutez le CAS dans le designer de package

      image
    3. Rajouter le tag [assembly: AllowPartiallyTrustedCallers()] dans AssemblyInfo.cs

    Et voila, enfin presque, il existe un bug bien embêtant qui bloque le déploiement depuis VS2010, à priori, un bug est passé à travers la matrice de test de la RTM … mais la KB donne un fix très efficace :

    http://social.msdn.microsoft.com/Forums/en-US/vssharepointdevelopment/thread/eaa2077a-b86b-42c0-9dfd-491c37a1b35e
    >>>  http://support.microsoft.com/kb/2022463

    Il reste cependant une dernière question : Mais comment identifier les bonnes IPermissions de votre CAS ?

    C’est effectivement le point le plus compliqué car il peut dépendre de votre connaissance pleine du fonctionnement de .Net …

    Et si vous en oubliez une, la sanction est sans appel

    image

    Vous remarquerez que l’erreur vous donne de bonne indications sur la permission manquante d’ailleurs Sourire

    A noter que vous pouvez les retrouver aussi via une petite introspection via Reflector

    Mais vous pouvez aussi le chercher via une simple gestion d’erreur et votre débuggeur VS2010. Il vous suffit de traquer une exception de type SecurityException et de cherchez ex.m_demanded

    Waldek (encore lui) a découvert cette astuce

    image

    Au final, rien de bien compliqué, non ?

    Mais bon courage quand même

    Avant de partir, je vous laisse avec un petit dilemme

    "Untrusted solutions – Deploying custom code in bin folders can cause slow server performance. Every time a page containing untrusted code is requested, SharePoint Server 2010 must perform security checks before the page can be loaded.Unless there is a specific reason to deploy untrusted code, you should install custom assemblies in the GAC to avoid unnecessary security checking."

    http://technet.microsoft.com/en-us/library/ff758647.aspx 

    Mais la sécurité n’a pas de prix, à moins de pouvoir l’évaluer dans votre contexte projet

    Renaud Comte aka TheMit (“Waldek fan 4 ever” comme beaucoup d’ailleurs)
    Member of WygTeam
    http://www.wygwam.com

    Mots clés Technorati : ,,,,,

    SharePoint WebControls : oubliez le Label/Literal, il y a le EncodedLiteral

    il faut savoir se méfier de ces vieux réflexes et souvent les mettre en doute pour justement progresser.

    C’est d’autant plus vrai avec des outils qui évoluent de version en version

    • de nouvelles fonctionnalités apparaissent
    • des corrections sont apportés
    • les développeurs et les clients sont écoutés (vraiment)

    Prenons le cas classique d’un libellé à insérer dans une page SharePoint, une visual WebPart ou un usercontrol utilisé en delegate, bref un grand classique

    Asp with text Welcome

    Déjà, partons du principe que vous allez (forcement) utilisé un fichier de resx !

    Pourquoi ? bien rapidement …

    • centraliser les libellés :
      • plus simple pour la maintenance que d’explorer du code C# ou ASP.Net
      • plus facile pour la correction orthographique
    • gérer du multilingues en ajoutant les resx supplémentaires
    • pas de besoin de refactoring

    Donc nous devrions arriver à ce résultat

    Asp with resources

    Bien bien bien, simple et efficace mais ne pourrions pas aller plus loin ?

    Cette réflexion a déjà été mené par le Team SharePoint et comme la plateforme est

    1. une vrai boite à outils de fonctionnalité et de contrôle
    2. assez ouvert pour être personnalisable

    Il serait dommage de ne pas en profiter non ?

    Soit le

    Microsoft.SharePoint.WebControls.EncodedLiteral
    (http://msdn.microsoft.com/en-us/library/ms432507.aspx)

    Ce sympathique contrôle de SharePoint est assez pratique car il peut gérer différents type d’encoding

    EncodedLiteral.EncodeMethod

    Member name Description
      NoEncode Specifies no encoding.
      HtmlEncode Specifies HTML encoding.
      HtmlEncodeAllowSimpleTextFormatting Specifies encoding the specified string for use as text between HTML tags, preserving spaces in the original string and allowing simple text formatting.
      EcmaScriptStringLiteralEncode Specifies ECMAScript encoding.

     http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.spencodemethod.aspx

    Ainsi vous pouvez plus facilement gérer les données de texte simple, de texte riche HTML ou de paramètres de texte pour des variables javascript … ne sait on jamais Clignement d'œil

    SharePoint:EncodedLiteralResources

    Eh oui, SharePoint est toujours plein de bonnes surprises, mais il faut les trouver (ou fouiller la blogosphère et le MSDN)

    A noter qu’on pourrait facilement le dériver pour ajouter encore bien de trucs pratiques non ? (hein Matthieu et JC Clignement d'œil)

    Grand merci à Andy Vansteenbergen pour son post que j’ai retraduis
    http://meligo.blog.com/2011/12/01/do-you-still-develop-old-skool-pre-mui-series/

    Renaud Comte aka TheMit (SharePoint, c’est le mix entre un oeuf kinder et un mikado …)
    Member of WygTeam
    http://www.wygwam.com
    CSOM : Client Object Model ou comment travailler à distance sur votre ferme (même en ADFS) ?

    Un sujet un peu riche mais je fait ce post en l’honneur d’un de mes collègues Laurent qui vient de vivre cette histoire. Donc je me permet de la partager, ne sait on jamais.

    Contexte : comment intervenir sur un site SharePoint en maintenance sans accès directe à la ferme ?

    Il y a bien des situations ou vous devez intervenir pour assister ou corriger un site SharePoint :

    • soucis de sécurité
    • nommage de fichier, de bibliothèques
    • correction de groupe de sécurité
    • création de site dynamique
    • changement de charte graphique
    • ajout de contenu

    Seulement, bien souvent, les fermes de production sont “protégées” des vilains doigts de développeur artistes. A tort ou à raison ? Ce n’est pas la question, la production n’est pas à manipuler de manière inconsidérée, il faut mieux prévenir.

    Certes vous pouvez intervenir avec un compte “admin” et faire vos opérations de maintenance … à la souris mais modifiez une centaine de site ou 240 groupes de sécurité voir renommez 512 fichiers n’est pas une sinécure. Ca peut prendre (beaucoup) de temps, d’énergie et de patience

    Il serait bon de pouvoir automatiser un peu au risque de dépression rapide de votre morale voir seppuku …

    Les possibilités

    Powershell vient souvent en tête et avec raison. Fabrice Romelard nous partage depuis longtemps bien des scripts de maintenance SP, pourquoi s’en priver

    image

    Soucis : il faut pouvoir accéder à un des serveurs de la ferme SharePoint, et c’est rarement le cas pour un développeur

    Certes, vous pouvez passer par une ferme de qualification et une fois le GO et un minimum de documentation, un IT autorisé peut l’exécuter
    >>> C’est un TRES BON processus !!! Je ne saurais trop insister sur l’importance d’un minimum de contrôle, de documentation et de validation

    Cependant, des fois, il faut être rapide et pragmatique. Si vous avez un compte “admin” SharePoint , vous en avez déjà les droits et les responsabilités non ? Mais pas forcement les droits sur les machines …

    Vous pouvez certes profiter du remoting Powershell et exécuter à distance vos batchs depuis votre poste sur la ferme mais rare sont les administrateurs IT téméraires qui l’autorisent. Ces liens sauront vous aidez à le configurer si jamais

    L’alternative

    Des fois, la solution est tellement évidente qu’on ne le voit pas ou qu’on y pense pas. CLOM bien sur Sourire

    image

    Avant Powershell, on codait rapidement de petites applications en ligne de commande mais le script est largement plus intéressant et flexible. Mais ca ne rend pas C# et VS pour autant obsolète et pour accéder à SP en distant il y a : 

    Le Client Objet Model de SharePoint pour .Net, aka Microsoft.SharePoint.Client

    MSDN : SharePoint 2010 Client Object Model

    Exemple basique : Creating a Basic SharePoint Foundation Client Application

    Cette nouveauté de SP2010 vous permet de travailler directement avec SharePoint depuis votre application cliente sans devoir vous exécuter sur le serveur. Et la vous pouvez bénéficier de toute l’assistance de VS 2010 & Linq sans pour autant devoir utiliser la couche des Web Services et leur épaisse documentation

    Soit dans notre cas, coder une petite application ligne de commande ou winform pour “intervenir” sur votre site SharePoint 

    Ce qui marche très bien pour des services back office ou des clients riches, marche tout aussi pour de simple petites applications, merci .Net

    CLOM de SharePoint est vraiment riche, du moins pour toute la partie admin/gestion de collection et de site SharePoint, pourquoi ne pas en profiter. Vous avez quasiment les mêmes objets qu’en OM local à la différence de la notion de contexte mais vraiment rien de compliqué

    Et fini les soucis de maintenance à distance sans accès à la machine !

    Sauf qu’il peut y avoir quelques problèmes mais jamais insurmontables, voyons

    • Je n’ai pas accès à un poste SharePoint de développement, et donc pas la dll cliente … Triste

    Sourire Il vous faut simplement télécharger la bibliothèque SPF 2010 client object model redistributable  : http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=b4579045-b183-4ed4-bf61-dc2f0deabe47

    • Je n’ai pas de poste avec Visual Studio Triste

    Sourire Il reste encore PowerShell qui lui peut instancier le CLOM voir les WS, donc un coup de notepad ++ ou PowerGui et votre script est opérationnel
    http://www.spjeff.com/2012/02/26/powershell-upload-csv-file-to-list-both-server-and-client-om/

    $clientContext = [Microsoft.SharePoint.Client.ClientContext,Microsoft.SharePoint.Client, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c] $context = New-Object Microsoft.SharePoint.Client.ClientContext($siteUrl)

    certaines opérations peuvent demande du C# inline cependant … : http://blogs.technet.com/b/heyscriptingguy/archive/2011

    • Certainement le cas le plus rude : Mon site ne tourne pas sous contexte NT mais en ADFS … comment m’identifiez Triste ?

     Sourire tout est prévu !!! Merci Office 365 de nous fournir une documentation si riche d’ailleurs (eh oui O365 utilise ADFS donc les samples sont aussi bons pour votre réseau)

    Soit le ClaimClientContext.GetAuthenticatedContext qui simplement vous promptera pour vous identifier avant de continuer

    string targetSite = "https://sharepointOnlineURLRoot/sites/siteName";
    using (ClientContext ctx = ClaimClientContext.GetAuthenticatedContext(targetSite))
    {
       if (ctx != null)
      {
         ctx.Load(ctx.Web); // Query for Web
         ctx.ExecuteQuery(); // Execute
         Console.WriteLine(ctx.Web.Title);
       }  
    }

    Ci joins, le sample officiel de la galerie de Code MSDN : http://code.msdn.microsoft.com/Remote-Authentication-in-b7b6f43c

    Conclusion

    Il y a toujours une solution et elle ne passe pas forcement par du code sur le serveur SharePoint ! Et vive la richesse des clients SharePoint d’ailleurs

    Bonne SPjournée à tous et spécialement à Laurent et Arnaud Clignement d'œil

    Renaud Comte aka TheMit (SPCLOM, ca c’est de l’acronyme non ?)
    Member of WygTeam
    http://www.wygwam.com

    101 Samples pour SharePoint 2010 (SPF/SPS et Online s’il vous plait)

    J’ai toujours insisté sur la qualité grandissante du MSDN.

    Avec le temps, je trouve plus souvent de vrais pépites d’information dedans que dans la blogosphére (ce qui semble logique après tout)

    Voici la dernière

    SharePoint 2010 101 Code Samples

    Each code sample is part of the SharePoint 2010 101 code samples project. These samples are provided so that you can incorporate them directly in your code. Each code sample consists of a standalone project created in Microsoft Visual Studio 2010

    http://code.msdn.microsoft.com/SharePoint-2010-101-Code-da251182/view/SamplePack/11?sortBy=Popularity

    Et en VB et C#, pas de jaloux

    On trouve dedans un véritable panorama du développement SP2010 qu’il s’agisse de webpart, silverlight, azure, online et excel service et j’en passe

    bref, à posséder au cas ou Sourire

    Voici un petite liste exhaustive si vous êtes curieux

    • SharePoint 2010 Leveraging HTML5 Objects in SharePoint
    • SharePoint 2010 Developing JQuery-Enabled Web Parts
    • SharePoint 2010 Creating Document Sets Programmatically
    • SharePoint 2010 Developing List Definitions
    • SharePoint 2010 Hosting Silverlight Applications that Call Azure Services
    • SharePoint 2010 Developing AJAX-Enabled Web Parts
    • SharePoint 2010 Developing Styled Master Pages
    • SharePoint 2010 Programmatically Finding Tagged Items
    • SharePoint 2010 Creating Content Types Programmatically
    • SharePoint 2010 Using JavaScript to Enable Notifications
    • SharePoint 2010 Performing Cross-List Queries
    • SharePoint 2010 Using JavaScript and CAML to Query Lists
    • SharePoint 2010 Developing Delegate Controls
    • SharePoint 2010 Developing Connected Silverlight Web Parts
    • SharePoint 2010 Developing Starter Master Pages
    • SharePoint 2010 Developing Application Pages
    • SharePoint 2010 Developing Custom Navigation Providers
    • SharePoint 2010 Working with Disposable Objects
    • SharePoint 2010 Using JavaScript to Show Dialog Boxes
    • SharePoint 2010 Calling RESTful SharePoint Services From Desktop Applications
    • SharePoint 2010 Using REST to Obtain Excel Charts
    • SharePoint 2010 Developing Connected Web Parts
    • SharePoint 2010 Creating List Items from Silverlight
    • SharePoint 2010 Retrieving Single List Items in REST Requests
    • SharePoint 2010 Using REST to Discover the Contents of Excel Worksheets
    • SharePoint 2010 Logging Site Events Programmatically
    • SharePoint 2010 Programmatically Reading User Profile Properties
    • SharePoint 2010 Displaying User Profile Pictures Programmatically
    • SharePoint 2010 Creating Taxonomies Programmatically
    • SharePoint 2010 Using JavaScript to Edit and Save Values in Items
    • SharePoint 2010 Managing Document Sets Programmatically
    • SharePoint 2010 Developing Web Templates
    • SharePoint Online Authenticating Using the Client-Side Object Model
    • SharePoint 2010 Using JavaScript to Create Lists
    • SharePoint 2010 Developing Workflow Activities
    • SharePoint 2010 Creating Custom Timer Jobs
    • SharePoint Online Accessing Web Services
    • SharePoint 2010 Displaying Video Files Stored in Azure
    • SharePoint 2010 Performing Cached Cross-Site Queries
    • SharePoint 2010 Declaring Records Programmatically
    • SharePoint 2010 Developing Custom Expiration Actions
    • SharePoint 2010 Accessing SharePoint Lists from External WCF Services
    • SharePoint 2010 Developing Custom Expiration Formulae
    • SharePoint 2010 Developing Event Receivers
    • SharePoint 2010 Performing Searches from Silverlight
    • SharePoint 2010 Using JQuery to Retrieve List Contents in JSON
    • SharePoint 2010 Using REST to Query Data Ranges in Excel Worksheets
    • SharePoint 2010 Developing Feature Receivers
    • SharePoint 2010 Canceling Synchronous Events
    • SharePoint 2010 Creating Custom SharePoint Service Applications
    • SharePoint 2010 Developing Custom Field Controls
    • SharePoint 2010 Developing Sequential Workflows
    • SharePoint 2010 Creating Custom Field Types
    • SharePoint 2010 Using JavaScript to Get Details About Sites
    • SharePoint 2010 Calling WCF Services from Timer Jobs
    • SharePoint 2010 Developing State Machine Workflows
    • SharePoint 2010 Logging Data to the Developer Dashboard
    • SharePoint Online Deploying Sandboxed Content Types and List Definitions
    • SharePoint Online Creating and Deploying Sandboxed Web Parts
    • SharePoint 2010 Using JavaScript to Retrieve and Interrogate Items in Lists
    • SharePoint 2010 Using JavaScript to Get Details About Site Collections
    • SharePoint 2010 Developing Page Layouts
    • SharePoint Online Accessing Current User Information in Sandboxed Solutions
    • SharePoint 2010 Calling WCF Services from Web Parts
    • SharePoint 2010 Retrieving List Contents and Parsing Atom Responses
    • SharePoint 2010 Developing Editor Web Parts
    • SharePoint 2010 Developing Branded Media Controls
    • SharePoint 2010 Using JavaScript to Delete Items from Lists
    • SharePoint 2010 Using LINQ in REST Requests
    • SharePoint 2010 Uploading SharePoint Library Content to Azure Storage
    • SharePoint 2010 Using JavaScript to Update Site Properties
    • SharePoint 2010 Calling WCF Services Hosted in SharePoint
    • SharePoint 2010 Creating Items in Lists from External WCF Services
    • SharePoint Online Creating Excel Worksheets by Using Excel Web App
    • SharePoint 2010 Developing Sandboxed Web Parts
    • SharePoint 2010 Creating Content Organizer Rules Programmatically
    • SharePoint 2010 Using REST to Create a SharePoint and Bing Maps Mashup
    • SharePoint 2010 Developing Site Definitions
    • SharePoint 2010 Developing Ribbon Drop Down Controls
    • SharePoint 2010 Calling WCF Services from Event Receivers
    • SharePoint 2010 Accessing List Items from Silverlight
    • SharePoint Online Creating and Deploying Sandboxed Event Receivers
    • SharePoint 2010 Performing Searches from Web Parts
    • SharePoint 2010 Deleting Items in Lists from External WCF Services
    • SharePoint 2010 Developing Solution Validators
    • SharePoint 2010 Updating SQL Azure Records from Web Parts
    • SharePoint 2010 Calling Azure Services from Timer Jobs
    • SharePoint 2010 Importing Content by Using the Content Deployment API
    • SharePoint 2010 Calling WCF Services from Custom Workflow Activities
    • SharePoint Online Creating and Deploying Sandboxed Workflow Activities
    • SharePoint Online Creating Documents Using Word, PowerPoint, or OneNote Web App
    • SharePoint 2010 Calling Azure Services from Web Parts
    • SharePoint 2010 Creating SQL Azure Records from Web Parts
    • SharePoint Online Creating and Deploying Sandboxed Feature Receivers
    • SharePoint 2010 Developing Ribbon Actions
    • SharePoint 2010 Querying SQL Azure Data from Web Parts
    • SharePoint 2010 Retrieving List Contents in JSON Format and Parsing Responses
    • SharePoint 2010 Exporting Content by Using the Content Deployment API
    • SharePoint 2010 Calling Azure Services from Custom Workflow Activities
    • SharePoint 2010 Deleting SQL Azure Records from Web Parts
    • SharePoint 2010 Calling Azure Services from Event Receivers

    Bon download

    Renaud Comte aka TheMit (miam encore du sample à tester modifier, bonifier)
    Member of WygTeam
    http://www.wygwam.com
    Rappel sur les licences SharePoint 2010 (on premise) : interne / externe

    Bien que SharePoint 2010 fasse partie intégrante de bien de nos projets, il y a toujours des zones d’ombre qu’il est bon de savoir éclairer … comme le sujet des licences.

    image image 

    Ce post n’a pas pour but de détailler le système de licence de SharePoint 2010 (qui est devenue plus clair je trouve) mais de mettre en avant certains détails qui peuvent surprendre ou restent encore un peu floues …

    Les bases

    Je ne saurais trop vous conseiller de prendre le temps de lire les sites Microsoft dédiés au sujet du Licensing SharePoint

    Tout y est expliqué ainsi que la matrice de fonctionnalité entre SharePoint Foundation / Standard et Entreprise : http://sharepoint.microsoft.com/en-us/buy/Pages/Editions-Comparison.aspx

    Rappel sur les fonctionnalités & les licences

    • SPF : offre gratuite sur Windows qui remplace WSS
       
    • SP Standard :
      • Collaboration,
      • Enterprise Search,
      • Document & Content Management,
      • Social Computing (Wikis, My Sites)
      • Digital Asset Management 
      • Records Management.
         
    • SP Enterprise :
      • Excel Services
      • Performance Point Services
      • Advanced Charting
      • Visio Services
      • Access Services
      • InfoPath Form Services
      • Client line of business integration and web parts
      • Custom Reports

    Sinon, voici un slide de résumé pour les plus “nouveaux” sur le sujet des licenses

    image

    La problématique Interne / Externe

    C’est un grand classique du monde SharePoint : Comment gérer des utilisateurs externes ?

    Il y a plusieurs lectures possibles

    Lecture simple

    Tout dépend de votre payroll : un utilisateur interne est un collaborateur engagé, payé donc salarié de votre entreprise. Un utilisateur externe ne fait pas partie de votre entreprise

    Donc, en interne, vous devez avoir les licences Serveur (entreprise ou standard) avec les CALs correspondantes.

    Attention, les CALs sont cumulatives, ce qui signifie que vous sur un serveur SP Enterprise avec un site possédant de l’infopath service par exemple, vos utilisateurs doivent posséder la CAL Standard + la CAL Entreprise. Eh oui, cependant, si votre serveur SP Enterprise héberge aussi des sites de publishing (Standard), seul la CAL Standard est nécessaire.
    ==> à vous de bien identifier et comptabiliser vos besoins et vos utilisateurs

    Par contre pour les externes, vous devez avoir les licences SharePoint for Internet Site (entreprise ou standard)

    Lecture en détail

    Il y a quelques cas prévu entre le tout interne et tout externe : la notion de partenaires Sourire

    Un partenaire étant quelqu'un qui bien qu’externe à votre société intervient régulièrement auprès de celle ci et travaille ainsi sur vos données avec votre accord : il n’est pas salarié de votre entreprise, j’insiste

    Dans des scénarios mêlant interne et externe, vous pouvez éviter d’acquérir la licence “SharePoint for Interne Site” et conserver votre licence Serveur + CAL uniquement si

    • il s’agit d’utilisateur individuels (et nommés)
      • pas de personnes morales ou sociétés
      • pas de compte générique
    • vous pouvez les comptabilisé réellement
    • vous achetez le nombre de CAL correspondant à vos externes

    Soit en pratique : vous devez définir le nombre de contact identifiable de chacun de vos clients et partenaires qui devront se connecter et vous pouvez les ajouter à votre gestionnaire d’identité reliée à SharePoint. Comme s’il s’agissait d’autre utilisateur interne quelque part.

    Vous ne pouvez pas utiliser de comptes passe partout comme “partner A/B/C” “compta client 1”, il s’agit de compte nommé et individuel pas partagé : de vrais utilisateurs

    Bien sur, en cas de changement/démission/retraite ou autre d’un de vos externes, il suffit de remplacer le compte pas de soucis.

    L’économie est intéressante mais nécessite de faire attention : si vous avez 5 contacts dans 200 entreprises partenaires, vous devez acquérir 1000 CAL supplémentaires donc il s’agit de bien faire attention au solde.

    Idem en ce qui concerne la licence “SharePoint for Internet Site” :

    • si les données du sites sont aussi bien accessibles à des externes qu’à vos internes, vous n’avez pas besoin de CAL pour les internes. Cependant, si une partie de l’extranet est clairement réservée et limitée à vos internes pour diverses raisons, vous devez acquérir les CALs pour eux.  
    • Pas besoin de CAL pour un interne s’il doit créer ou publier du contenu dans le site externe

    (Comme dirait un ami qui se reconnaitra, rien ne précise encore si l’utilisateur interne doit être devant ou derrière le firewall Sourire, faisons comme si de rien …)

    La problématique SQL

    Bien, il ne faut pas l’oublier !!! SP est indissociable de SQL mais ses licences ne les couvrent pas pour autant !!!

    A vous de bien faire le calcul entre :

    1. La licence serveur simple associée au volume de CAL adapté au nombre de comptes identifiés
    2. La licence serveur par processeur physique (un serveur QuadriCoeur est considéré comme un seul processeur)

    Le second choix devient plus avantageux dès qu'on dépasse quelques dizaines de CAL. De plus, ce calcul par processeur permet de pouvoir rapidement mutualiser le moteur SQL Server avec d'autres applications.

    (source : Fabrice Romelard)

    Et encore, je ne vous parle pas de la problématique de SQL Server Denali qui arrive à grand pas

    • changement du plan de license par socket : par coeur désormais
    • le plan illimité en virtuel
    • la license BI

    Ces lectures sauront vous guider :

    (source : Christian Robert)

    J’insiste pour SQL Denali car certaines nouvelles fonctionnalités sont réellement intéressante dans une infra SharePoint dense
    http://www.slideshare.net/Patricg/sql-server-et-sharepoint-le-couple-de-lanne-2012-10601095

    • Groupe de disponibilité Always On
    • De lourdes nouveautés BI
    • Reporting Services devient un service partagé

    La problématique Windows

    Petit détail comme d’habitude, mais si vos serveurs WEB SharePoint ou SQL gèrent un site SP sur internet, vous devez avoir les connecteurs Windows externes pour tous. En plus bien sur, des licences serveurs Windows.

    Même problématique pour AD si vous l’utilisez pour gérer les comptes externes de vos partenaires  sur internet. Ce qui explique que l’on conseille souvent d’utiliser un annuaire tiers pour vos externes comme AD LDS ou autre (il y a d’autre raison plus “sécurité” évidemment mais il y a aussi une raison économique, il ne faut pas le cacher)

    FAST, Office Web Apps, les Webparts, …

    C’est un sujet un peu différent dans le sens que ce sont des licences séparés de SharePoint, comme SQL si vous préférez

    • pour FAST, il vous faut cependant les CALS et le serveur SP Enterprise et/ou SP for Internet Sites Enterprise
      • Idem pour Project (avec les CAL Project)
      • Idem pour PowerPivot qui demande aussi SQL Enterprise Edition
         
    • les Office Web Apps dépendent d’un serveur SPF minimum et leurs licences utilisateurs correspondent à celle de leur Microsoft Office 2010 Volume License
       
    • SharePoint Workspace et Visio demande Office 2010 PRO +

    N’oubliez pas aussi que certaines WP bien connus ne font pas partie de la licence Standard ou SPF comme la Chart WebPart ou la CQWP !!! Donc attention à vos maquettes et vos estimations selon les plans de licence retenus par la DSI

    La pre prod, staging, … ?

    Faisons complet voulez vous Sourire

    Attention, les licences MSDN ne couvent que le DEV / Test pas les serveurs utilisés pour monter une preprod ou un serveur de staging pour le site web. Ces serveurs respectent le même plan de licences que ceux de la production avec la même notion d’interne et externe.

    Certes, on peut jouer sur les mots entre test et pre-prod mais je ne saurais vous encourager de ne pas trop fleureter avec la limite. Un serveur de test avec 10 millions d’entrée, des accès récurrents et qu’on ne peut pas arrêter sans raison ressemble pas vraiment à un simple serveur de test utilisateur … Quoi que…

    En conclusion

    Le sujet n’est pas si facile mais pas pour autant étrange ou complexe, il faut juste bien calculer

    • vos vrais besoins (choix Standard ou Enterprise)
    • vos contacts externes
    • vos niveaux de services (soit le nombre de serveur SP et SQL)

    Et simuler le tout selon vos plans de licence négociés avec Microsoft ou votre revendeur, il arrive encore d’avoir de belle surprise aussi bien positive que négative

    Ce petit simulateur peut vous aider : http://community.bamboosolutions.com/blogs/sharepoint-2010-price-calculator/default.aspx

    Annexes  :

    A bientôt et bonne estimation

    Renaud Comte aka TheMit (je devais me trouver un plan de licence original : au mot ou au poid)
    Member of WygTeam
    http://www.wygwam.com

    Meilleurs Vœux et Plus pour 2012

    Ne sacrifions rien sur l’autel du changement : Bonne année 2012 et tous mes vœux de bonheur et de réussite que ce soit professionnel ou personnel à tous mes chers lecteurs !

    2011 fut une belle année (comme toutes les autres, il faut savoir rester positif)

    • Mon petit garçon grandit ! Un an déjà
    • SharePoint 2010 commence à dépasser MOSS dans bien des esprits
    • Les projets complexes et/ou critiques sous SP deviennent de plus en plus courants
    • Wygwam, son bureau suisse se développent bien et s’ouvre sur le Canada
    • Je me suis fiancé Sourire

    Donc il faut attendre 2012 pour voir de nouvelles choses

    • les prémices d’un beta/alpha de SP2010
    • l’organisation du mariage
    • les interactions BI/SP avec SQL 2012
    • une prochaine SP conférence plus beta ?
    • plein de belles autres innovations (mais que dirait Nestor Clignement d'œil )

    Et pour ceux qui n’avait pas vu le “private joke” dans le titre du post, je suis (encore) renouvelé MVP SharePoint pour 2012… Dire que ça a commencé en 2004 … ah la la que le temps et les versions passent

    A très bientôt sur le SPNuage

    Renaud Comte aka TheMit (2012 me voila)
    Member of WygTeam
    http://www.wygwam.com

    PS : oui, je sais, il y a eu aussi la crise, les chutes de dictateurs, le japon et le nucléaire, … et Mango pour windows phone Sourire

    SharePoint 2010 Dev : cherchez toujours les méthodes GET !

    Depuis quelques temps, je croise régulièrement des soucis dans des développements sur la récupération d’objet SharePoint

    Par exemple, récupérer une liste, un champs, des sous sites

    L’opération n’est pas vraiment compliquée, mais la méthode utilisée n’est pas souvent la plus utile ou la mieux adaptée …

    Comme le fait remarquer souvent Christian Hougardy, mon IT Gouvernance Hero, les “bugs arrivent plus souvent en production que sur la machine du développeur'”

    Et oui, la vrai vie de la production est différente du mode laboratoire des machines de développements

    soit :

    • les utilisateurs ne sont pas tous admin
    • les listes peuvent changer de nom …
    • les colonnes peuvent aussi changer de nom …

    Bref, j’en passe et des meilleurs.

    Pas de solution miracle, il vous faut faire attention, et bien souvent l’OM SharePoint vient vous aider via ses différentes méthodes GETxxxx.

    En pratique, les développeurs SP juniors travaillent souvent avec les index de collections des différents objets comme le SPWeb ou la SPList.

    Certes, ca marche mais bien souvent ces indexeurs ne sont pas super flexibles ou riches en options Sourire. Cependant, il existe des méthodes supplémentaires, moins connus, bien plus pratiques ou plus rapides selon vos besoins

    En voici un petit éventail

    • SPListCollection.TryGetList au lieu de List[“”] : vous obtenez un résultat null plutôt qu’une exception
    • SPListCollection.GetList au lieu de List[“”] : vous obtenez une liste avec ou sans toutes les metadatas de vues ou de formulaire inutile
    • SPFieldCollection.GetField au lieu de List.Fields[FieldName] : vous pouvez récupérer un champs via son internal name ou displayname !!!
    • SPWeb.GetList : pour obtenir directement une liste selon son url et non son titre (pratique en toolpart)
    • SPWeb.GetSubwebsForCurrentUser : permet de récupérer la liste des sous site accessible par l’utilisateur en cours 
    • SPWeb.GetFile : permet de récupérer directement un fichier par son url

    Et bien sur, vérifier aussi les propriétés des collections

    genre,

    En conclusion, pensez toujours à prendre un peu de temps pour explorer l’object model de SharePoint, il y a toujours quelque chose à découvrir

    >>> MSDN : Microsoft.SharePoint <<<

    Bon coding

    Renaud Comte aka TheMit (GetSnowTire(TRUE), on ne sait jamais)
    Member of WygTeam
    http://www.wygwam.com
    SharePoint 2010 : Création des groupes de sécurité à posteriori et gestion de l’héritage des permissions

    C’est un constat : on créé souvent des sites SharePoint plus rapidement qu’on le pense. En pratique, on oublie de casser l’héritage des droits

    image

    Ce n’est pas vraiment gênant mais que ce soit via l’admin, le code ou Powershell, il faut cependant faire attention à quelques détails .

    A) Rappel sur la gestion des droits

    Les permissions sous SP fonctionnent sur le principe d’assignation de sécurité entre un niveau de droit et une identité.

    ACL et WSS

    http://blogs.developpeur.org/themit/archive/2008/06/23/sharepoint-et-la-s-curit-en-d-veloppement-sproleassignment-spbasepermissions-et-leurs-amis.aspx 

    http://blogs.msdn.com/b/joelo/archive/2007/06/29/sharepoint-groups-permissions-site-security-and-depreciated-site-groups.aspx

    Ce qui se traduit en pratique par:

    • je donne un niveau lecteur à une personne ou un groupe
    • je place une personne ou un groupe dans un groupe SharePoint qui possède déjà une assignation sur un niveau

    Par défaut, SharePoint crée 3 groupes SharePoint auxquels sont associés 3 assignations de sécurité :

      • Visiteur de “”
      • Membre de “”
      • Propriétaire de “”

    Comme vous le réalisez, il n’y a pas à proprement dire de vrais groupes de sécurité : il faut des groupes et des assignations

    ==> et c’est exactement de là que viennent souvent les soucis d’admin ou d’incompréhension des powerusers au début

    B ) Depuis l’interface

    Quand vous créez un site avec des permissions uniques, SharePoint vous propose un écran de création automatique de ces 3 groupes par défaut (et des assignations associées)

    image

    Petit souci :  si vous créez le site avec héritage et que vous cassiez l’héritage depuis l’interface, vous n’avez plus aucun moyen de créer rapidement ces 3 groupes ! Pour une raison un peu obscure, Microsoft a retiré de l’admin le lien vers la page de création de ces groupes

    http://sharepointdevsolutions.blogspot.com/2010/11/missing-set-up-groups-page-in.html

    Mais ce n’est pas bloquant, il suffit de recréer les groupes et les assignations … perte de temps plus qu’autre chose
    Bien souvent, on rajoute juste des membres et on garde les visiteurs et admin du site père.

    Heureusement, on peut contourner le souci aisément en tapant directement l’adresse de la page : <URL du site>/_layouts/permsetup.aspx

    C) Depuis le code

    Créer des sites de manières automatisés par code n’est absolument pas à négliger

    • Pour des tests d’industrialisation (bonjour Phil)
    • Pour respecter un plan de gouvernance (bonjour Christian)
    • Pour déployer plus rapidement une nouvelle demande en Shell (Bonjour Fabrice)
    • Pour éviter de donner les droits à des power users un peu jeunes (Bonjour François )
    • Parce qu'on aime le code aussi (bonjour Laurent)

    Certes, le processus est connu, largement utilisé et réutilisé mais il est bon de mettre en lumière certains petit points qu’on pourrait qualifier de gênants à bloquants à

    Casser l’héritage

    2 façons de faire :

    Je préfère de loin utiliser le second car je peux au moins choisir de copier ou non les permissions du site père, ainsi que conserver les “uniques permissions” (on ne sait jamais)

    >>> Attention, SPWeb.BreakRoleInheritance(true) signifie que vous cassez l’héritage et que vous copiez les permissions du père aussi. donc même si vous créez un nouveau groupe auteur, les auteurs du père ont encore accès !!! 
    http://moustafa-arafa.blogspot.com/2010/06/breakroleinheritance-common-mistake-tip.html

    Mais voila, ce n’est pas tout !!! Attention aux problèmes de performance !!!

    Ce genre de code fonctionne sans soucis mais avez vous déjà fait un test de charge sur vos VM SharePoint de Dev avec plus que 3 listes, 4 dossiers et 2 sites ? hum hum, rarement hein ? Je ne vous blâme pas mais si jamais vous faites cette opération sur un grand nombre de sites, sous sites et listes, vous allez constater de fort ralentissements !

    La recopie des permissions du père peut s’accompagner de dizaines de création de permission “limited access” ce qui peut se cumuler avec les items, les listes et le site du fait que vous avez toujours accès “à la racine”

    >>> Soit le problème de la bibliothèque avec des dossiers uniques par utilisateurs. Imaginez une bibliothèque avec 4000 dossiers à sécuriser, vous risquez de créer jusqu’à 4000 dossiers * 4000 accès restreint à la racine (à recopier) = 16 millions de permissions pas vraiment utiles …

    Je ne saurais trop vous conseiller de lire ce post de Chakkaradeep Chandran [MCS]
    http://www.chakkaradeep.com/post/SharePoint-ndash3b-Setting-Item-level-permission.aspx

    Ainsi que celui ci de Jason Ruthkoski
    http://www.sharepointbriefing.com/spcode/article.php/3816551/Solve-ItemLevel-Permission-Performance-Problems-in-SharePoint.htm

    Soit un simple code à connaitre  :

    if (!item.HasUniqueRoleAssignments)
    {
      item.BreakRoleInheritance(false);
    }

    Mais revenons sur le sujet des groupes de sécurité par défaut Sourire

    Donc, nous sommes sur un site SharePoint dont nous avons cassé l’héritage avec ou sans copy des permissions. Comment recréer ces groupes de sécurité ? Et surtout pouvoir les exploiter ensuite?

    Certes, vous pouvez manipuler les roleassignements et refaire tout le travail tel que ce bon exemple

    Ou sinon, vous utilisez la méthode SPWeb.CreateDefaultAssociatedGroups
    http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.createdefaultassociatedgroups.aspx

    Seulement voila, la vie n’est pas toujours aisée … Votre site peut être créé depuis un template ou un site definition particulier et bizarrement vos groupes n’apparaissent pas en gestion …

    Bug or not ? Plus ou moins …

    Un petit tour avec Reflector (ou ses variantes gratuites) nous donne quelques informations intéressantes qu’on recoupe aisément avec les données du MSDN

    CreateDefaultAssociatedGroups créé effectivement les groupes par défaut si et seulement si les propriétés des groupes associés du SPWeb sont nulles. Soit :

    • Web.AssociatedVisitorGroup = null;
    • Web.AssociatedMemberGroup = null;
    • Web.AssociatedOwnerGroup = null;

    Seulement, il ne faut pas oublier ensuite de les associer au SPWeb pour que l’administration de SharePoint en tienne compte dans le menu des groupes par exemple.

    Et là on (peut) tomber dans un vieux piège historique de SharePoint : Bien souvent, l’OM de SharePoint utilise des clés en propertybags de ces objets comme référence plutôt que les propriétés en direct. Certainement pour des raisons de cache. C’était souvent un des points gênants en migration ou à cause de référence ancienne différente des nouveaux serveurs que les injecteurs se plantaient littéralement

    il faut donc renseigner aussi ces fameuses clés que sont :

    • Web.Properties["vti_associatevisitorgroup"]
    • Web.Properties["vti_associateownergroup"]
    • Web.Properties["vti_associatemembergroup"]

    Ce qui donne le code complet que voici !

    Web.AssociatedVisitorGroup = null;
    Web.AssociatedMemberGroup = null;
    Web.AssociatedOwnerGroup = null;
    
    Web.BreakRoleInheritance(true);
    Web.Update();
    
    Web.CreateDefaultAssociatedGroups(SPContext.Current.Web.CurrentUser.LoginName, SPContext.Current.Web.CurrentUser.LoginName, Web.Name);
    
    Web.Properties["vti_associatevisitorgroup"] = Web.AssociatedVisitorGroup.ID.ToString();
    Web.Properties["vti_associateownergroup"] = Web.AssociatedOwnerGroup.ID.ToString();
    Web.Properties["vti_associatemembergroup"] = Web.AssociatedMemberGroup.ID.ToString();
    Web.Properties.Update();
    Web.Update();

    Je pense que tout a été dit, je complèterai le post selon les commentaires évidemment

    Et Powershell ? pas de soucis : http://secretsofsharepoint.com/cs/blogs/tips/archive/2011/09/05/associate-custom-groups-using-powershell.aspx

    A bientôt et bon coding

    Renaud Comte aka TheMit (Félicitations à Mr Delaporte pour son fils Armand né dans la nuit d’Halloween )
    Member of WygTeam
    http://www.wygwam.com

    SharePoint 2010 WCM & multilingues : Comment dites vous pages en allemand ? “Seiten”

    (Oui je suis de retour, toutes mes excuses pour un si long silence mais je reviens doucement entre 2 pauses BB)

    Pourquoi une telle question ? Simple me direz vous, non ?

    image

    Alors petit rappel : Comme vous le savez tous, SharePoint 2010 est multilingue et le moteur de publishing stocke toutes ses pages dans des bibliothèques dédiées “Pages”

    Mais si jamais vous créez un site collection de publishing voir une variation en allemand, d’après vous comment se nomme la dite bibliothèque ?

    !!! Seiten !!! (et non pages …)

    Et devinez donc dans d’autre langues … aussi bien européenne qu’asiatique …

    Eh oui, il est plus que complexe, pardon, dangereux de référencer PAGES dans vos développements qu’il s’agisse de chargement de page, de redirection ou de gestion de menu.

    C’est pourquoi il est toujours important de savoir utiliser les fichiers de ressources, surtout ceux d’origine MS SharePoint tel que le osrvcore.resx

    Vous trouverez des références plus que pratiques telle que List_Pages_UrlName

    Ce qui facilitera bien la vie dans vos développements de code ou de Feature SP comme par exemple :

    <UrlAction Url="$Resources:osrvcore,List_Pages_UrlName;/Mapage.aspx" />

    Il suffit de le savoir, ou de le retrouver d’ailleurs

    Bis bald !

    Renaud Comte aka TheMit (Ach ja, ich bin melomane)
    Member of WygTeam
    http://www.wygwam.com
    Mots clés Technorati : ,,
    Migration de code SharePoint 2007/2010 : différentes pistes et outils

    Basiquement

    Maintenant que SP2010 existe aussi bien en version serveur qu’online, il se pose toujours la douloureuse question de la migration de son existant

    Je ne vais pas parler dans ce post de la migration du contenu mais plutôt de la partie “source code” tant désirée par nos amis les développeurs

    Historique

    La plupart des projets sous SharePoint 2007 ont réussi à être déployés en solution WSP certainement grâce à un projet phare : le WSPBuilder (et ses non moins fameuses extensions VS)

    http://wspbuilder.codeplex.com/

    Oui, certes, qqun  écrivaient fièrement leur MakeCab et Manifest.xml (salut nico) où utiliser les VSeWSS (euh non, salut personne de mes connaissances en tout cas) mais majoritairement, WSP Builder revenait sur le devant de la scène

    imaginez donc :

    image

    Soit de nombreux, nombreux projets VS 2008 avec un répertoire 12 en racine présent dans nos gestionnaires de sources à migrer.

    Migrate the source or not ?

    Je maintiens, la question se pose vraiment : faut il migrer vos sources ?

    Pas vraiment, le code et le packaging de SP2007 fonctionnent toujours sous SP2010 avec ou sans le Visual mode upgrade

    Certes, si la problématique touche à des composantes de l’UI comme la master, on ne se pose pas vraiment la question mais majoritairement, vos “custom devs” continueront à fonctionner assez bien sous SP2007

    Seulement, voila … En cas de maintenance, correction de bug, évolution ou simple petite modification, vous allez devoir réutiliser une ancienne VPC avec

    • SP2007
    • VS2008
    • WSPBuilder ?

    et faire cohabiter des sources sous VS2010 avec en parallèle.

    Bref, le début des soucis pour ne pas dire plus

    Moralité : Si vos apps ne changent jamais, migrer leurs sources en fonction ou définitivement, faites le pas et profitez de la revalidation suite à la migration de votre portail pour convertir vos solutions 2007 en VS 2010

    Et en pratique

    Le travail de conversion peut être éprouvant voir fastidieux :

    • reprendre le code
    • recréer les artifacts et autre SP Items
    • reprendre la structure logique du 12 en mapped folder

    Mais il y a moyen de gagner un peu de temps, en cherchant un peu dans la communauté MS

    Import de WSP sous VS2010

    Simple et très efficace : vous pouvez créer un nouveau projet VS2010 avec le template d’import de solution SharePoint !

    image

    Certes, ce template est prévu pour travailler de concert avec SPD et les galeries  de SharePoint mais vu que le schéma est compatible, pourquoi ne pas en profiter avec nos chez vieux WSP sauce 2007 ?

    Etape 1 : Création du projet + Url du site

    Etape 2 : sélection du WSP et des éléments d’import

    imageimage

    Etape 3 : génération du projet

    image

    Un fois importé, votre WSP se transforme en une vraie solution VS avec l’ensemble des artifacts déjà configurés. Seul petit souci prévisible, le code réside toujours dans une dll qu’il faudra reprendre. Cependant pour des projets tournés autour du déclaratif CAML et les Features, c’est efficace.

    Limite, ça peut être une solution de reprise rapide en cas de perte des sources : vous extrayez les WSP de la central admin pour profiter ensuite de VS 2010 pour reprendre la partie configuration/déclaration de vos solutions !

    http://blogs.developpeur.org/spbrouillet/archive/2010/10/05/powershell-recuperer-les-wsp-d-une-ferme-sharepoint.aspx
    http://manish-sharepoint.blogspot.com/2010/05/retriving-sharepoint-wsp-files-from.html

    Quelques remarques cependant après le test de 4 solutions 2007 issues de projets d’un de mes clients :

    • Les Dlls sont ajoutés en racine de projet dans un dossier “Other Imported Files”
    • Les artifacts de SP, soit les items de feature, module,  Fields, CT et autre WebPart sont reconnus parfaitement : GOOD
    • Les Mapped Folders se résument souvent à des sous dossiers de Template : dommage, on sent l’inspiration du chemin relatif au 12/template mais en rien gênant au final
    • Chaque element.xml est placé dans un module avec un compteur
    • La référence de SP.dll est faite sur la version 14 : tant mieux
    • Reprise des resx dans les noms de Feature, normal mais surprenant à la première lecture
      • Mais le nom des feature items reste Feature 1, 2, 3 …

    En dehors du code et des DLL, parfait pour réorganiser et préparer une version 2010 plus personnelle

    Import des sln de VSEWSS sous VS2010

    J’ai beau plaisanter dessus, mais il y a quand même quelques centaines de projets fait avec ce sympathique VSEWSS. Microsoft joue son rôle d’éditeur et, en plus de nous avoir gratifiés d’une suite d’outils SP pour VS2010, bien ils ont rajouté un outil d’import

    VSeWSS Import Tool for Visual Studio 2010

    image

    Mais je n’irai pas plus loin sur le sujet Sourire

    Import des slns de WSPBuilder

    image

    “Last but not least”

    http://solutionarchitects.org/articles/2011/04/06/migrating-code-from-moss-2007-to-sharepoint-2010.htm

    La dernière version du CKS Developement tool contient un nouveau petit outil : WSPBuilder project importer project template  

    Ce template de projet vous permet de créer une solution à partir du sln de vos sources VS2008 + WSPBuilder.

    Le CKS reconstruit la solution VS2010 en se basant sur le contenu de la solution WSPBuilder de VS2008

    >>> Attention, le projet est encore en beta mais déjà bien efficace

    Vous êtes curieux ? Voici le Webcast : 

    image

    Sinon, quelques captures d’écran de test de certaines de mes applis

    Etape 1 : Création du projet

    image

    le CKS est toujours aussi bien intégré dans VS 2010, c’est vraiment impressionnant pour un projet Codeplex de voir une telle finition

     Etape 2 : Génération de la solution

    image

    Déjà une belle réussite pour une première beta non ?

    Quelques remarques :

    • Meilleure reprise technique des noms des Features + utilisation des RESX : nickel
    • Les Mapped Folders sont repris identiquement à ceux de VS (désolé pour les fans d’un SP Root)
    • Tout est classé par répertoire, ça peut demander un peu de renommage
      • en principe, si vous avez du contenu hors Mapped Folder, tout est classé dans un sous répertoire '”items” ensuite par typeimage
      • Chaque element.xml est placé dans un module avec un GUID
    • Il récupère forcément tous les fichiers de votre solution avec le WSPBuilder, pensez à enlever vos batchs 

    Conclusion

    De quoi être optimiste non ? Mais pour être tout à fait honnête, la conversion avec les outils, même le CKS (en beta) ne couvre pas encore 100% du périmètre.

    Grave ? Pas vraiment car il faut reconnaitre qu’au moins 70/80%  du boulot est viable !!!

    Ce qui vous libère déjà beaucoup de contraintes de copie/revalidation des artifacts SharePoint pour vous permettre de ne vous concentrer que sur la solution 2010 et son réaménagement.  Non ?

    Il serait dommage que vous passiez à coté des ces outils lors de votre migration, le temps restera toujours une denrée précieuse et un ennemi juré en cas de calendrier délicat. Mais restez sur vos gardes, après tout ce sera toujours vous qui lancerez le script de build, donc validez bien les 10 derniers pourcents de votre travail !!!

    PS : Pour ceux qui pensent que WSPBuilder est fini, sachez qu’il existe une nouvelle version beta pour SP2010

    Elle reste toujours aussi intéressante mais il faut souligner le travail et le résultat qu’a produit Microsoft dans sa nouvelle suite SP avec VS2010 (que l’on a attendu si longtemps depuis SPS2001 …)

    [Update]

    Pour tenir compte des remarques passionnés et passionnantes de Nicoboo, je ne saurais trop rappeler que la qualité de votre code et du projet repose plus sur votre méthode de travail et la compréhension de votre outil que la qualité de VS 2010

    N’oubliez pas que SP repose aussi bien sur des DLLs que du déclaratif !!! Evitez donc de créer des DLLS si vous déployez des Master Pages et des gabarits …

    image

    La gestion des ressources de langues et leur référence est bien géré au niveau framework SP mais complètement oublié des modèles de conception de VS2010 pour SP 2010. C’est certes dommage, souvent gênant pour ne pas dire bloquant dans des projets larges ou multilingues

    Prenez donc le temps de lire ces articles lors de la conception de vos solutions SP :

    Et dans le cas des Sandbox !!! (et oui les resx sont pas supportés en SB …)

    Renaud Comte aka TheMit (Migratus, Importas et voilis Deployus omnibus)
    Member of WygTeam
    http://www.wygwam.com

    Mots clés Technorati : ,,,,
    Master SharePoint & intégration Lync/OCS : à savoir

    Si vous travaillez sur la partie graphique de SharePoint, vous devez certainement connaitre Randy Drisgill, MVP SharePoint

    Il est à l’origine des premiers posts sur le sujet mais surtout des Master Pages Vierges, tellement pratique pour faire l’intégration graphique dans SP2010

    Elles sont disponibles sur  :

    Starter Master Pages for SharePoint 2010

    (http://startermasterpages.codeplex.com/)

    Le rapport avec OCS/LYNC ?

    Oh, moins que rien, comme vous le savez, SharePoint et Office 2010 sont de bons compagnons. Chaque fois qu’un utilisateur apparait dans une liste, la connectique OCS intervient sur ce modèle

     

    Mais cette intégration demande d’activer ou de télécharger un ActiveX bien spécifique, ce qui peut être gênant.

    Ce post donne une solution pour l’éviter en forçant SP à ne pas utiliser l’intégration de OCS/Lync via ce morceau de JS
    http://blog.drisgill.com/2010/02/removing-name-activex-control-warning.html

    <script type="text/javascript"> 
        function ProcessImn(){} 
        function ProcessImnMarkers(){}    
    </script>
    Le soucis ?

    Simple, cette astuce est implémentée par défaut dans les Starter Master Pages ! Donc si jamais vous avez besoin de déployer une nouvelle charte graphique, pensez bien à pondérer l’utilisation d’OCS/Lync car si vous laissez le JS en place, point d’intégration, donc de popup OCS possible

    Genre de petit surprise toujours délicate à gérer Sourire

    Bon Charting

    Renaud Comte aka TheMit (J’aime les oeufs de pacques, même ceux cachés dans SP et Codeplex …)
    Member of WygTeam
    http://www.wygwam.com

    Mots clés Technorati : ,,,,
    Reporting Services & SharePoint 2010 : le mode local (ou des Rapports sans l’install serveur SSRS)

    Lors des TechDays Geneva 2011, j’ai noté durant la session de Fabrice Romelard sur SSRS et SP2010 l’ajout d’une nouvelle fonctionnalité : le local mode.

    Toujours curieux de tout dans le monde SharePoint et constatant un manque cruel d’information sur le sujet, j’ai décidé de regarder de plus près

      image

    Reporting sous SharePoint en Local Mode

    Avec SP2010 et SSRS, vous avez la possibilité de coupler directement le serveur de reporting avec les bibliothèques et les sites de SharePoint 2010 via des content types et une WebPart Report Viewer dédiée.

    Seulement voila, que faire si vous voulez évaluer ou profiter des capacités de reporting de SSRS sans forcément avoir installé SSRS avec vos datas SharePoint ?

    Je m’explique :

    • imaginez une ferme SharePoint sur un réseau ayant déjà une solution de reporting ou plus ? Difficile de justifier l’installation (et son sizing) d’un nouveau serveur de reporting ?
    • Imaginez que vous voulez utiliser les données d’une liste SharePoint dans un rapport, genre liste personnalisée avec formulaire infopath métier mais que votre équipe de reporting ne sait que requêter … du SQL (et hop j’exporte mes listes … Hello Mr CB Clignement d'œil)

    Soit en pratique le mode local : permettre d’utiliser le Report Viewer dans SharePoint 2010 pour exécuter et consulter les rapports dont les données sont stockées dans des listes de votre site.

    Si vous fouillez un peu, vous pouvez réaliser que ce mode local permet surtout de pouvoir faire fonctionner le publish sous SP des bds Access : les rapports sont convertis en rapport RDL pour le Reporting Service local de SharePoint.
    http://technet.microsoft.com/en-us/library/ff487969(SQL.110).aspx

    En tout cas, ce mode vous offre une possibilité supplémentaire, et gratuite (elle fonctionne sous SPF !!!) de pouvoir intégrer de vrais rapports graphiques sur vos datas SharePoint avec règles, filtres, regroupement et de multiples couches graphique

    image

    Un exemple ? Pas de soucis

    Soit une liste de station de ski

    image

    Et un joli rapport à l’accueil en remplacement de la listview Web Part

    image

    Ca y est vous réalisez mieux le potentiel ? Sourire

    Très pratique pour améliorer l’interface de ces listes de tâches, agendas ou toutes autres listes customs ?

    Soit une vraie alternative à certains développements ou feuilles XSL bien complexes : vous pouvez rajouter à votre boite à outil le Report Builder

    [Update]
    Sinon coté liçense ?

    Difficile d’obtenir des informations tout à fait clair mais si on se reporte au Cluf d’install et des licenses SSRS, Report Builder est gratuit du moment que vous avez une liçense (CAL/CPU…) SQL Server en règle. Soit le contexte idéal pour une ferme SharePoint qui est relié à … un SQL Server, tout simplement.

    Bon maintenant que le sujet du reporting est lancé, si on rentrait dans le concret ?

    Soit une revue pas à pas de la configuration et du Report Builder par l’image, ne vous inquiétez pas

    Installation du Addin SSRS en Local Mode

    Comme précisé en préambule, il est assez difficile de trouver de l’information concrète sur le local mode. Clairement, beaucoup utilisent le mode connecté, ce qui revient à rapprocher votre serveur SP d’un serveur SSRS. Ce qui est loin d’être un mal !!!

    Dans notre cas, rassurez vous, le déploiement du SSRS en Local mode est finalement … vraiment simple. En effet, ce mode vous dispense de toute configuration car vous n’avez pas à déployer de SSRS. Vous n’utilisez que l’addin, soit le service de rapport pour SharePoint.

    La seule documentation fiable reste celle de la configuration du report pour Access Service :
    http://technet.microsoft.com/en-us/library/ee662542.aspx

    A) Téléchargez et installez l’Addin sur vos Front end (comme si vous aviez vraiment SSRS en fait)
    SQL Server® 2008 R2 Reporting Services Add-in for Microsoft SharePoint® Technologies 2010

    B) Ne surtout rien configurez en Central Admin (pas de Report Server)

    C) Obligatoire : activez pour SharePoint Server l’ASP.NET Session State Service
    http://geekswithblogs.net/naijacoder/archive/2010/06/14/140408.aspx

    Soit 1 simple ligne de PowerShell SP en admin : Enable-SPSessionStateService -Defaultprovision

    Pour une config plus avancée, voir http://blogs.msdn.com/b/markarend/archive/2010/05/27/using-session-state-in-sharepoint-2010.aspx

    En pratique, l’ASP.Net Session State sous SharePoint utilise des sessions en DB SQL, DefaultProvision créée une DB avec un Guid (SessionStateService_<GUID>” ) sur le serveur SQL relié à votre ferme. Donc pas de soucis de load balancing mais attention à la montée en charge évidemment.

    D) IISRESET

    E) Activer la Feature “Report Server Integration” dans vos Site Collections et vous pouvez utilisez vos rapports !!!

    En cas de soucis ou erreur, ce lien MS récapitule toutes les erreurs possibles et connues, bien utile pour certaines configurations exotiques
    http://msdn.microsoft.com/en-us/library/ff487876(v=sql.110).aspx

    Utilisation du Addin SSRS en Local Mode

    L’utilisation de l’Addin est malheureusement moins intégrée en mode local que son équivalent en mode connecté. Vous ne pouvez pas utiliser le report builder ou la configuration de source depuis une liste SharePoint. Ce fonctionnement bien ergonomique est réservé au mode connecté …

    Mais je ne saurais trop vous conseiller d'utiliser quand même la démarche propre à SSRS pour faciliter la gestion le tri et toute future évolution de votre ferme avec le reporting

    Soit

    A) Créer une bibliothèque de document avec l’utilisation des Content Types

    B) Ajouter les CT de Reporting
    image

    C’est à ce point que vous subissez la première restriction du mode local, vous ne pouvez créer directement votre rapport en cliquant sur nouveau. Vous devez déployez sur votre poste Report Builder 3.0 ou sinon utiliser Business Intelligence Development Studio

    Création d’un Rapport

    Pour rester dans l’esprit du mode local, je vais utiliser le RB 3.0

    A) Une fois installé, lancer RB

    image

    B) Créer votre DataSet ou utiliser une source partagé

    Soit pour nous, forcement, une source de données SharePoint, local mode oblige…
    http://msdn.microsoft.com/en-us/library/ff487969(v=SQL.105).aspx

    • Microsoft Access 2010 reporting
    • SharePoint list data extension
    • une Datasource embarquée
    • une Datasource partagée


    >>> la Connection String correspond à l’url de votre site web SP

    image

    N’oubliez pas de configurer le compte d’exécution, sinon votre rapport demandera les credentials, ce qui n’est pas forcément pratique

    image

    C) Ensuite, vous pouvez utiliser le Query Designer sur vos listes SharePoint (soit la requête CAML )

    image

    D) Vous choisissez le style du rapport, les distribution X/Y de vos données et son thème graphique

    imageimage

    E) Vous finissez le rapport en mode Design, voire affinez les regroupement et le positionnement

    image

    A noter la richesse de l’outil qui n’a pas à rougir de comparaison avec d’autre outil de reporting …

    Vous sauvegardez le rapport en fichier RDL que vous uploadez dans votre site SharePoint (idéalement, vous lui donnez le CT Report Builder Report)

    image

    Cliquez et testez votre rapport !!!

    image

    Je vous avez prévenus que c’était simple non ?

    Utilisation du Report Viewer

    Maintenant que vos rapports sont dans une liste, vous pouvez les présenter via la Report Viewer WebPart

    A) Ajoutez la WP dans votre page

    image

    B) configurez

    • le lien à votre Rapport
    • les paramètres de Toolbar

    image

    C) consultez et partagez votre rapport

    image

    Remarque de configuration

    Dans certaines de mes configs de test, j’ai déjà constaté quelques soucis d’erreur de ressources javascript avec la WP Report Viewer. Pas de soucis, une KB existe : http://support.microsoft.com/kb/2407088/

    • changez le mode Debug a False du noeud compilation  du Web.config
    • ou déployez le Cumulative Update package 4 for SQL Server 2008 R2

    Conclusion

    Clairement, le mode local soit sans SSRS permet quand même à SP 2010 de proposer une vrai solution de reporting de ses propres données. Certes, vous ne bénéficiez pas de la création ou la gestion en ligne des sources ou des modèles, bénéfice réservé à l’intégration complète de SSRS, mais ce n’est pas si handicapant.

    La flexibilité de Report Builder dans ses règles de conception ou de requête des rapports offre aussi une vrai alternative au développement de WebPart de présentation de données que ce soit via SharePoint Designer ou Visual Studio.

    Je ne saurais trop vous conseiller d’évaluer SSRS en mode local pour mieux réaliser les bénéfices de la solution aussi bien pour des besoins

    • Techniques : développement de solution complète
    • Business : Rapport Métier
    • Design & ergonomie : enrichissement de l’accueil de vos sites

    L’essayer, c’est l’adopter (voir prévoir le déploiement futur de SSRS aussi)

    Renaud Comte aka TheMit (Jeu : qui peut mettre un nom sur la photo de ski Sourire ? Seul un vrai SharePointeur peut trouver !!!)
    Member of WygTeam
    http://www.wygwam.com

    Rappel : lien vers la RTM de la machine de Demo IW, soit SP2010 + quelques kits pour débuter

    Quelques clients m’ont redemandé le lien de la machine de demo SP2010 de Microsoft

    Certes, vous la retrouvez rapidement par un moteur de recherche mais la plupart des posts parle de la version beta et le lien est désormais indisponible

    Hum hum, don’t worry, la voici

    image 

    http://www.microsoft.com/downloads/details.aspx?FamilyID=751fa0d1-356c-4002-9c60-d539896c66ce&displaylang=en

    Cette machine séparé en 2 : 1 pour AD , l’autre avec SP complet possède un jeu de demo complet du système comme FAST, PerformancePoint et ECM.

    Petit conseil, seul la machine SP a besoin d’être démarré en pratique (sauf pour qques scénario d’import)

     

    Soit une belle machine pour tester, évaluer tranquillement la plateforme !

    Un peu lourde en mémoire, cependant pour faire du Dev, dans ce cas, je ne saurais trop vous conseiller une simple machine sous Seven et d’utiliser l’Easy Setup :

    http://blogs.msdn.com/b/cjohnson/archive/2010/10/28/announcing-sharepoint-easy-setup-for-developers.aspx

     

    En résumé, de quoi faire, surtout si vous voulez tester les différents kit d’autoformation comme :

    Soit 

    Learn SharePoint Development

    Pour finir, un  lien vers donovanf's Office : Download Office 2010 and SharePoint 2010 RTM VHD for Evaluation

    Il rajoute quelques précision si jamais vous voulez travaillez sur le Office 2010 Developper Training Kit.

     

    Voila, un petit post dans le genre Favori bien utile

    Renaud Comte aka TheMit (Tiens de retour ?)
    Member of WygTeam
    http://www.wygwam.com

    SharePoint 2010 : PowerShell et Stsadm, les équivalences

    Les bonnes vieilles habitudes ont souvent la vie dure …

    Difficile de passer au tout PowerShell quand pendant des années, STSADM a été votre meilleur compagnon

    Mais bon, il faut savoir évoluer surtout quand le remplaçant est largement meilleur non ?

    imageimageimage

     

    Donc si vous avez du mal, pas de soucis, voici un tableau d’équivalence entre PS et STSADM : http://technet.microsoft.com/en-us/library/ff621084.aspx 

    Oui je sais la liste est longue mais si vous êtes fan de PowerShell, sachez que vous pouvez ruser pour trouver vous même l’équivalence !!!

    Chaque commande PS est souvent liée littéralement à son exécution, genre pour ajouter une solution, Add-SPSolution donc vous pouvez utilisez un “filter” facilement Sourire

    Exemple

    get-command –PSSnapin Module Microsoft.SharePoint.Powershell | Where-Object { $_.Name –like “*Solution” }

    Merci Andrew Connell pour le truc !!!

     

    Sinon, voici ma sélection personnelle, du moins pour les opérations les plus courantes :

    Stsadm operation

    Windows PowerShell cmdlet

    Activatefeature

    Enable-SPFeature

    Addcontentdb

    Mount-SPContentDatabase

    New-SPContentDatabase

    Addpath

    New-SPManagedPath

    Addsolution

    Add-SPSolution

    Addtemplate

    Install-SPWebTemplate

    Adduser

    New-SPUser

    Addwppack

    Install-SPWebPartPack

    Backup

    Backup-SPConfigurationDatabase

    Backup-SPFarm

    Backup-SPSite

    Createsite

    New-SPSite

    Createsiteinnewdb

    New-SPSite Use the ContentDatabase parameter.

    New-SPContentDatabase

    Createweb

    New-SPWeb

    Deactivatefeature

    Disable-SPFeature

    Deleteconfigdb

    Remove-SPConfigurationDatabase

    Deletecontentdb

    Dismount-SPContentDatabase

    Deletesite

    Remove-SPSite

    Deletesolution

    Remove-SPSolution

    Deletetemplate

    Uninstall-SPWebTemplate

    Deleteuser

    Remove-SPUser

    Deleteweb

    Remove-SPWeb

    Deletewppack

    Uninstall-SPWebPartPack

    Deploysolution

    Install-SPSolution

    Deploywppack

    Install-SPWebPartPack

    Displaysolution

    Get-SPSolution

    Enumalternatedomains

    Get-SPAlternateURL

    Enumcontentdbs

    Get-SPContentDatabase

    Enumdataconnectionfiledependants

    Get-SPDataConnectionFileDependent

    Enumdataconnectionfiles

    Get-SPDataConnectionFile

    Enumsites

    Get-SPSiteAdministration (To run this cmdlet, you must be a member of the Farm Administrators group.)

    Get-SPSite (To run this cmdlet, you must be a local administrator on the computer where SharePoint 2010 Products is installed.)

    Enumsolutions

    Get-SPSolution

    Enumsubwebs

    Get-SPWeb

    Enumtemplates

    Get-SPWebTemplate

    Enumusers

    Get-SPUser

    Enumwppacks

    Get-SPWebPartPack

    Enumzoneurls

    Get-SPAlternateURL

    Execadmsvcjobs

    Start-SPAdminJob

    Export

    Export-SPWeb

    Extendvs

    New-SPWebApplication

    Getproperty

    Get-SPFarmConfig

    Get-SPTimerJob

    Disable-SPTimerJob

    Enable-SPTimerJob

    Set-SPTimerJob

    Start-SPTimerJob

    Import

    Import-SPWeb

    Installfeature

    Install-SPFeature

    Mergecontentdbs

    Move-SPSite

    Osearch

    For the Osearch parameters farmcontactemail, farmperformancelevel, farmserviceaccount, and farmservicepassword, use the Get-SPEnterpriseSearchService and Set-SPEnterpriseSearchService cmdlets.

    For the Osearch parameters start and stop, use the Start-SPEnterpriseSearchServiceInstance and Stop-SPEnterpriseSearchServiceInstance cmdlets, respectively.

    For the Osearch parameter defaultindexlocation, use the Get-SPEnterpriseSearchServiceInstance and Set-SPEnterpriseSearchServiceInstance cmdlets.

    Renameserver

    Rename-SPServer

    Renamesite

    Set-SPSite

    Use the Url parameter.

    Renameweb

    Set-SPWeb

    Use the RelativeUrl parameter.

    Restore

    Restore-SPFarm

    Restore-SPSite

    Retractsolution

    Uninstall-SPSolution

    Setconfigdb

    Connect-SPConfigurationDatabase

    Setlogginglevel

    Set-SPLogLevel

    Siteowner

    Set-SPSiteAdministration

    Syncsolution

    Install-SPSolution

    Use the Synchronize parameter.

    Uninstallfeature

    Uninstall-SPFeature

    Updateaccountpassword

    Set-SPManagedAccount

    Upgradesolution

    Update-SPSolution

    Upgradetargetwebapplication

    None

    Uploadformtemplate

    Install-SPInfoPathFormTemplate

    Userrole

    Get-SPUser

    Move-SPUser

    New-SPUser

    Remove-SPUser

    Set-SPUser

    Bon courage et bon PS

    Renaud Comte aka TheMit (l’évolution ?, 3eme liste, 2eme sous site dans le portail central, pas de soucis)
    Member of WygTeam
    http://www.wygwam.com



    Les 10 derniers blogs postés

    - Etes-vous yOS compatible ? (2/3) : la nouvelle plateforme Yammer–Office 365–SharePoint par Le blog de Patrick [MVP SharePoint] le 04-22-2014, 09:27

    - [ #Yammer ] [ #Office365 ] Quelques précisions sur l’activation de Yammer Entreprise par Le blog de Patrick [MVP SharePoint] le 04-22-2014, 09:03

    - Après Montréal, ce sera Barcelone, rendez-vous à la European SharePoint Conference 2014 ! par Le blog de Patrick [MVP SharePoint] le 04-19-2014, 09:21

    - Emportez votre sélection de la MSDN dans la poche ? par Blog de Jérémy Jeanson le 04-17-2014, 22:24

    - [ #Office365 ] Pb de connexion du flux Yammer ajouté à un site SharePoint par Le blog de Patrick [MVP SharePoint] le 04-17-2014, 17:03

    - NFluent & Data Annotations : coder ses propres assertions par Fathi Bellahcene le 04-17-2014, 16:54

    - Installer un site ASP.net 32bits sur un serveur exécutant SharePoint 2013 par Blog de Jérémy Jeanson le 04-17-2014, 06:34

    - [ SharePoint Summit Montréal 2014 ] Tests de montée en charge SharePoint par Le blog de Patrick [MVP SharePoint] le 04-16-2014, 20:44

    - [ SharePoint Summit Montréal 2014 ] Bâtir un site web public avec Office 365 par Le blog de Patrick [MVP SharePoint] le 04-16-2014, 18:30

    - Kinect + Speech Recognition + Eedomus = Dommy par Aurélien GALTIER le 04-16-2014, 17:17