Wednesday 2 November 2011

SharePoint Center or Excellence

Overview: What is a SharePoint Centre of Excellence (CoE)?  I suppose that all CoE's share the maxim of "Realising the potential of SharePoint".  There are a lot of consulting firms and large organisations claiming to have CoE's.  I have come across different meaning for a SP CoE, ranging from a group of developers that are assigned out on projects; to CoE's providing guidance on development, customisations, infrastructure, processes, governance and advising on IT pro tasks/administration.  I'm far more in the advisory/governance camp for your CoE to add the most value.

Sonny Mian describes a SharePoint CoE as "In its simplest form a SharePoint CoE is a team of SharePoint experts which promotes collaboration and best practices around SharePoint in order to assist business adoption of SharePoint solutions by establishing and governing information architecture, defining platform strategy, addressing challenges and evolving SharePoint practice/development to economize delivery of SharePoint solutions while mitigating ever increasing security, privacy, regulatory and compliance risks.
The purpose of a successful SharePoint CoE is then to ensure that it remains closely aligned with business strategy by managing Cost, Risk and Adoption of SharePoint."

My Answer: I guess it all comes down to what you need for your CoE, I see it as predominately a solutions mapping advisory service that maps solutions based on your Infrastructure.  Customers bring an application in for review/suitability on SharePoint, the project/solution is verified for it's suitablility to SharePoint (on-premise or SharePoint 365), I get the high level requirements and map each of these to a Work Breakdown Structure (WBS) and lastly do solution mapping.  The solution mapping allows me to choose a suitable way to achieve the requirement.  This allows me then to estimate the time for each piece of the solution mapping.  It works well for both creating your high level design and estimating efforts/cost on a project.  An added bonus is that external agencies/consultancies don't go out and over engineer coded solutions that SharePoint can easily achieve. 

For me CoE is for guidance, making sure all development and usage fits in with the SharePoint Governance document.  This keeps the farm stable, reduces delivery time, improves service to the business ... the list goes on.

SharePoint governance should focus on the implementation of standards, roles and responsibilities, and processes to extract value from SharePoint data while managing risks, dealing with compliance requirements and keeping people and entity information secure.

CoE needs to be tied closely to your platform providers i.e. infrastructure.  You need to know what is available on your farms, capacity considerations, patches, service running, this allows me to map solutions that are appropriate given our capability while maintaining the integrity of the farms.

Another nice benefit is all code and architecture needs to be reviewed and meet our CoE development standards.  So we minimise risk as the architecture developed has to be approved, code is checked, and it is pushed through the correct environments and testing is required to move the application to the next environment. 

The CoE should also speak to infrastructure to highlight missing features, potential changes to the service and review the architecture with the Infrastructure team.  In my experience Infrastructure can get useful information from the CoE about forthcoming requirements that they need to respond to.

The CoE should also provide core coding library's for code that is shared across custom developed applications.  The best example of this is a common logging block.  In my CoE we used Microsoft's SharePoint logging block and customised it for simplicity and to ensure uniform use.  We also have a developer standards document that we require all development to adhere to.  Another core block is a configuration list that is used at a site collection level.  This is like a property bag but can be edited using SharePoint as it goes to a SharePoint list.  The list values are cached for 2 minutes to ensue optimum resource usage.

In large enterprises, the various business units benefit as the CoE provides concise advice as generally it has been seen before.  The SME working on spefic rojects are aware of similar or re-usable code.  The CoE can also assist with vendor selection and building relationships with partners.  This centralised pool of expertise also allows for providing expertise in more specific areas of SharEPoint such as search, workflows or BI are good examples.

What Does the CoE SME need to know
  • Farm(s) architecture
  • Governance - What service is offered and how is it offered via SharePoint
  • Experience in building a wide range of technical solutions using OOTB features, SPD, InfoPath, PowerShell, Visual Studio, 3rd party software such as Ninetex and web parts.   This includes consulting, implementation
  • Experience in integrating SharePoint with various technologies to build business solutions.
  • Migration experience such as SP2007 upgrades, moving sites and content databases, migration tools such as Metalogix, Quest, AvePoint, the list goes on...
  • Upgrading solutions - How to upgrading deployed solutions, how to install patch and service packs safely, change control in your DTAP environments.
  • Good communication skills.
This list really does go on and it's hard to find the right candidates for a CoE but I think they key takeaway is you need good communicators to interact with each other, the business service divisions and the clients (projects requested).
Other opinions:
Sonny Mian - has written a series of posts on CoE for SharePoint - Part 1.

ShareFest session on Coe for Shire

Also See:

Tuesday 1 November 2011

Routing Email within a Document Library Overview

Overview: The Content Organizer feature (configurable at the site level) allows you to move a file to a specific document library or a folder within a document library. Content Organizer Rules allows you to create routing rules for your documents. Any rules created here are used to route individual documents based on metadata attributes that you choose

The Content Organizer feature only works on document content types.

"Emails can be treated as records and routed just like any other document"
Source http://office.microsoft.com/en-us/sharepoint-server-help/create-content-organizer-rules-to-route-documents-HA101807927.aspx

More Info:
http://blogs.technet.com/b/speschka/archive/2009/10/30/sharepoint-2010-content-organizer-part-1-a-cool-new-feature-for-managing-your-content.aspx
http://www.sharepointanalysthq.com/2010/05/content-organizer-routing-limitations/

So useful for files but not useful for email routing.

Saturday 29 October 2011

The SharePoint 2010 Handbook

I have been busy lately, setting up a Centre of Expertise for a large organisation for both their SharePoint 365 and there SharePoint 2010 on prem. environment.  In my free time I've been putting together a community book (The SharePoint 2010 Handbook) for the last 5 months.

I have learnt a lot from the other 12 authors and personally I have been exposed to concise chapters that I would not normally look at.  I have found a lot of useful pointers and it's helped me gather my thoughts on SharePoint more clearly.

Order of Chapters
1. Structuring a SharePoint 2010 Practice - John Timney

2. SharePoint Test Environments - Justin Meadows

3. SharePoint Adoption - Veronique Palmer

4. Social SharePoint - Jasper Oosterveld

5. The Art of SharePoint Success - Symon Garfield

6. Exploring Different Options for Implementing SharePoint Solutions - Rene Modery

7. SharePoint Server-based Data Storage and Data Access - Paul Beck

8. SharePoint 2010 Automated Code Deployment - Suzanne George

9. SharePoint Security and Authentication Notes - Conrad Grobler

10. InfoPath 2010 – What is new? - Ashraf Islam

11. Governance in SharePoint - John Stover

12. Creating Dashboards using Business Connectivity Services, SharePoint Designer and other related technologies - Giles Hamson

13. Building Business Intelligence Solutions with SharePoint 2010 - Mark Macrae

Anyway, the formating, editorial is done and now it's time to get the book printed.  So if anyone wants to get the book, the title is "The SharePoint 2010 Handbook".
ISBN-13: 978-1466486744
ISBN-10: 1466486740

Tuesday 11 October 2011

Book contributer you should know in the SP Community

I have been reading & reviewing John Timney's chapter for our new upcoming book "Structuring a SharePoint 2010 Practice".  It is a great chapter and anyone that hasn't seen John present his roles and salaries session should or at least read the chapter.

Structuring a SharePoint 2010 Practice by John Timney
I won't spoil it but it boils down to SharePoint is a big product, make sure you are recruiting the right person for your role.  It's a lot more detailed and I think will greatly help companies build better SharePoint capabilities using John insights.

Symon Garfield (@symon_garfield) has contrilbuted a chapter called "The Art of SharePoint Success", this covers a lot of areas of making SharePoint succesful from the business perspective, so governance and all that good stuff.

Ashraf Islam (@AshrafSP) has contributed a chapter on InfoPath, I saw him present this topic in April.  I've worked with Ashraf, great developer.  His chapter gets to the point and helps techies get into InfoPath quickly.

Wednesday 28 September 2011

Creating a shared logging block

Overview:  A client host multiple applications on there SharePoint on premise farm and these need to be logged consistanly.

Hypothesis:  SP2010 provide easy logging ability to the ULS, Microsoft have the SharePoint Best Practices that includes the assemblies for logging, these can be extended to create a easy re-useable set of logging functions.  Key areas to cover are where are you logging to: ULS, Event Viewer.  Sandbox solution can be logged to ULS and the event viewer using a full trust proxy solution.  SharEPoint Online will need to log to a list on the hosted farm.

Microsofts Patterns and Practices code library for SharePoint 2010, is useful for providing the core logging functionality.  The Parrerns and Practices can be extended so the custom method for all application on the farm would call the logging code block that is hosted in the GAC.

More Info:
http://technet.microsoft.com/en-us/library/ee748656.aspx
http://blog.mastykarz.nl/logging-uls-sharepoint-2010/
http://www.alexangas.com/blog/2011/09/intro-to-sharepoint-2010-patterns-practices-logging/
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=23919

Updated 28 May 2020:
For C#, Power Platform, React, .... I advise to use: App Insights or https://serilog.net/
Log4Net is still very common

SharePoint 2010 Language Packs MUI & Variations

Language Packs, MUI & Variations


Multi-lingual User Interfaces (MUI) differ from Multi-lingual Sites (Variations). I.e. application may need labels change but content is not translated. I think of MUI as chrome language resource switching whereas variations are used for translating content.

Language packs I would load :
  • en-US (default & in place)
  • fr-FR
  • es-ES
  • zh-CH (Chinese)
  • Japanese?  But it really comes down to your situation. 
Note: If you do not run the SharePoint Products and Technologies Configuration Wizard after you install a language pack, the language pack will not be installed properly. From MS but I believe this can be done using Powershell. There will be down time on the production farm.

  • MUI can be added at any time and allow the site/application to display multiple languages.
  • MUI can be enabled at site collection or web level.
  • Not all site definitions and templates support MUI so we should apply it only at the web level, is my current thinking.
  • Language packs cannot be uninstalled.
  • Variations may be needed either for translating content in SP2010 or for delivering to specific devices such as Smart Phones and tablets. Having the language packs is the easy part, implementing variations needs design/is complex.
  • Install language packs on all WFE and app servers in the farm
  • Language packs are a good idea to install even if you are not using MUI or Variations as it helps index documents in search when the documents are run in another language.
Update 8 July 2015: Regional browser setting dictate which language is used in SharePoint 2013 and SP2013 does not allow you to change between languages via the UI as it did in SP2010 on the Welcome Menu. 

More Info:
References:
MSDN

Monday 12 September 2011

CBA for Developement

Problem: Claims Base Authentication (CBA) requires swapping certificates with each machine that will use CBA on a development domain, if you have 20 dev machines you will need to swap certs with ADFS and 20 developer machines. 

Note: This post assumes all dev machines are on a single domain however several approaches will work on a standalone machine however.  If ADFS is present on the local dev use it for CBA in your development environment.

Initial Hypothesis:
If your VM's are all on the same domain you can always use classic mode authentication and test the CBA on a build server.  This does not make the dev env mimic the test, QA & production servers that are using claims for authentication.
 
Resolution:You could setup your own STS server/Service (feeding off SQL or LDAP) or use the WIF toolkit to create a claims service.
Or use SelfSTS tool to generate claims that SharePoint can consume.

More info:
Setting up and testing your own STS Service
http://msdn.microsoft.com/en-us/library/ff955607.aspx
http://blogs.msdn.com/b/sharepointdev/archive/2011/09/12/claims-architecture-for-sharepoint-2010-developers.aspx
http://archive.msdn.microsoft.com/SelfSTS/
Simple channel 9 Video explain CBA & WIF