Link Collection

As I am doing more twittering in the last couple of months I kind of neglected this blog. So here are just a couple of twitter links, I do not want to forget.

Roles in SharePoint Projects (Response to OfficeOverEasy), Part II of IV

Traditional Projects and Project Management

The difference between SharePoint and other projects is basically that everyone thinks when you are doing sharepoint all you need to do is develop c#/.NET. The problem is that SharePoint is more than that. You get in contact with so many different things and concepts (Identity Management (AD), Aspect Orientation (Security, Logging), Abstraction Layers, Performance Considerations (custom vs. ootb components/ controls, legacy application integration), c#, aspx, jscript, silverlight, sql server, database abstraction (entity framework, odbc, bdc and similar) and then of course when you try to acquire knowledge on all of these technologies and concepts you might overlook what can be done with SharePoint ootb. A partner of mine really knows a lot about designing solutions with the content query web part, filters, content editor webparts and javascript. We usually discuss and I learn more about what he does. Only when he says he doesn’t know how to do something we decide to go code!

Then you have the classic discussion: is a project manager a people-leader, a controller or a highly skilled and organized consultant that can also do project work? Usually you can classify projects based on the duration and the number of persons who work in it. That should basically be the criteria to decide what is needed. I like the idea of a project manager, who is kind of an escalation engineer and decides on the facts, priorities and scope and doesn’t know too much about the underlying technology. But he needs to have somebody to rely on or this guy will get screwed if he doesn’t have great people-skills – let’s face it, there are less and less people with outstanding people-skills, right? 😉

I also believe that it is important to have people in different roles and not have too many roles for a single person. The workload will usually overwhelm that one person and he will need to prioritize one role over the other. If you want constructive discussions and subsequently good decisions, get strong-willed people in your project and make them discuss until they get a consensus in place. It will not only benefit the project but also the persons involved as it creates a different type of environment that will help them train better on the job. It’s kind of like inspiration.

Roles in SharePoint Projects (Response to OfficeOverEasy)

This blog-post inspired me write a bit about the project experience I have gained over the last couple of months/ years.

In theory and general I agree with the post that there are certain roles, the names need to have clear meanings, they don’t really in our world today and the architect is one of the most ambigious terms yet.

My take and additions on this topic are regarding

  • Architect Description
  • My Roles
  • Traditional Projects and Project Management
  • General Skills in the SharePoint Context
  • Developer Traits in the SharePoint Context

I will do this as a series of four posts. Today will be the first.

Architect Description and My Roles

In a former company of mine there was a trend or wish of management to have everyone categorized in a system of architects, where everyone was considered an architect and the different levels 1 through 10 were the experience level and mapped to a certain name with the suffix architect. The solution architect being the most senior combining business and technical knowledge. By the way: this would be me in about 10 years, but not if I had stayed with the company, because if your rating gets you a job and the rating is based on experience, how do you actually grow? That’s actually my biggest issue. Personal growth. How do companies today promote personal and professional growth?

Why do I want to be a solution architect and what do I mean by that?
Well, I like drawing images, I like infrastructure, but even more I love talking to the customer. I want to make sure that what I discuss with the customer will flow into the solution that will be delivered in the end.

I strongly believe in requirements engineering and test case design based on these requirements of the project, so there needs to be somebody who can define work packages (wbs – work breakdown structure) and guide the team from zero to hundred (start to end of project). The fact that I have been a developer, a test manager, a business analyst, a designer and a sub-project manager for different projects definitely contributes to this.

Jack-of-all-Trades is a good term, even though it is a bit negative, because people tend to say these guys know everything, but nothing well. That was quite true when I started working, my flexibility being my best trait, my zeal, confidence and will to succeed helped me to contribute in any role that was given and the fact that in SharePoint there are so few resources helped me get these opportunities in the first place.

The reason why I think I can contribute in these different roles is because I am quite curious how things work and I usually want to know everything I can wrap my brain around.

To get back to the architect topic, do I consider myself an architect? not really. I don’t design solutions every day, I do not do performance analyses, scalings, reviews as much as would be required. As officeovereasy says the architect would be the guy who has done this a thousand times and can tell you to do this or not. I am the guy you pick, when you can’t get anyone who has done this a thousand times, because my decisions are usually based on my experience with other programming languages and of course my academic background. I don’t know the solution, I can figure it out and it will probably be a good deal better than lots of other solutions, but I don’t have the confidence of 20 years and a thousand projects – and then of course I am way to modest to say I have all the answers. 😉

Eroom 2 SharePoint Migration Tools

A google search delivered me the following list:

So I will want to evaluate these tools soon, any information or experience on these is very welcome.

How Multilanguage and SharePoint work together

So a colleague of mine had a question and he wanted to put the following four things into perspective and relation to each other:

  1. Custom Solution resource files
  2. Language Packs in SharePoint
  3. Language Settings in Site Settings
  4. Browser Language Settings

So, here is my (lengthy) answer…

Go to microsoft…for example
You can see that there is a sharepoint foundation version in French. So to start with there are language specific installs that always only have the specific language included.

With the language packs (, again in French) you can get any other language pack installed. You install language packs on all servers, because if you don’t you will have trouble getting new servers into your farm later. On the same note you should never mix slipstream installed servers (installed using slipstream installer, installer contains RTM + SP1) and non-slipstream installed servers (RTM installed, then SP1 Foundation + SP1 Server installed). There are known issues.

So if you only install foundation/ server of sharepoint 2010 you have a one language server software (install point 1). But it’s capable of so much more! Once you install the first language pack (e.g. French on English install) and then run psconfig (btw, this is good to know (7 of 9 install steps):

psconfig.exe -cmd upgrade -inplace b2b -force -cmd applicationcontent -install -cmd installfeatures -cmd installcheck -noinstallcheck

(install point 2)

You as an administrator can define on spsite/ spweb level if users can change the language or not (most prominent: mysite). (install point 3).

Code can either use resource files or not. If it does, then there is always a default resource file corresponding usually to one dll (in theory an n:m relationship is possible, but not always sensible) via using statement. It’s basically an xml as data source and a standardized interface that let’s you use the keys of the key-value-pair configuration inside your code like variables. Typically you do not use any constants in code any more, but instead placeholders for maximum language support. The default resource file is necessary so that when a specific language is not implemented (a specific language has the language code like de-DE or en-US as a suffix) that it falls back to use the default language.

The custom resource files are deployed via wsp into the 14 hive of all frontend (those that have the service ‘Microsoft SharePoint Foundation Web Application’ running) servers ([install drive]\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\Resources).

Now if you install custom wsps and you have done 1, but not 2 and 3 then you get the resource files from the custom wsp but they will be useless as nobody will switch from default language to a different one.

If you install 1+2, not 3, then you will still not be using the language, because sharepoint has the capabilities, the custom code has the capabilities, but nobody is leveraging them.

if you have 1,2 and 3, then for those pages, where the different language is set…the resource files are necessary. if they are not there…I think your placeholders will revert to the empty string “”, but I have never tried that.

SharePoint Farm Version

So I found two sites and combined them to get what I needed:

This is how to get the version of the farm via powershell:
Get-SPFarm | Select -ExpandProperty BuildVersion

Farm Versions via Powershell

This is how you find out the corresponding CU/ Service Pack for the build version:

Thanks to Todd on this one.

Windows Server 2008 and Snipping Tool

So I am always confused where I can find my snipping tool. One of my most beloved tools especially on my demo and test machines. So here it is:

activate ‘desktop experience’ feature


check c:\windows\system32\SnippingTool.exe

Extend SharePoint 2010 Web Application Http to Https

So a client of mine wants to use https on production and they have been running http until now. So this production environment has lots of data on it and they don’t want to lose that. Now different information is flowing around that you lose data when you migrate from http to https. Now I was asked to get this move done and of course my due-dilligence requires me to do this once on my demo machine before I dive into the quirks of the company.

Now I thought about three possible ways of doing this:
1) Create IIS AppPool and Site with SSL and unextend the web application in Central Admin and extend it with the newly created IIS Site.
2) Just extend the web application and set require SSL connection in the IIS Site.
3) Add another binding in IIS and add alternative access mapping in CA.

So I read somewhere that 2 and 3 are pretty much the same, MS does recommend the extension of the web app though. I am never sure what happens under the hood, but what I can say is I tried 2 and 3 and both do not cause loss of data. Now possibly the web config is altered (set back to default) or I have to redeploy the solutions, but in the end that’s nothing compared to the cost of losing business data.

Now there is the discussion of how to do this, because there are a few things to keep in mind:
1) IP-Ranges are not IP-Universes (ranges are finite!)
2) Get your certificates in place and hopefully it’s not just a server certificate in an enterprise environment (loadbalancing, anyone?)
3) Don’t forget your DNS-Routing!

So for my client I will try to get the dns routing corrected, the certificates in place and then extend the web-application.

Here some useful screenshots:
Edit bindings


Require SSL

Server Certificates

SSL Settings

SharePoint 2010 Record Center – available ListTemplates (SPWeb.ListTemplates)

So I needed the Record Library ListTemplateId for querying. This is how I found out. Reason for posting is not that you couldn’t figure it out by yourself – it’s not that hard, but having the ListTemplates available quickly (primarily for myself ;-)).

List sortedTypes = new List();
foreach (SPListTemplate current in web.ListTemplates)
sortedTypes.Sort((x, y) => string.Compare(x.ToString(), y.ToString()));
Name Type_Client Type
Survey 102 Survey
Asset Library 851 851
No Code Workflows 117 NoCodeWorkflows
Custom List 100 GenericList
Custom List in Datasheet View 120 CustomGrid
External List 600 ExternalList
Custom Workflow Process 118 WorkflowProcess
Data Sources 110 DataSources
No Code Public Workflows 122 NoCodePublic
Workflow History 140 WorkflowHistory
Pages Library 850 850
Slide Library 2100 2100
Issue Tracking 1100 IssueTracking
Wiki Page Library 119 WebPageLibrary
Picture Library 109 PictureLibrary
Links 103 Links
Record Library 1302 1302
Document Library 101 DocumentLibrary
Form Library 115 XMLForm
Discussion Board 108 DiscussionBoard
Tasks 107 Tasks
Project Tasks 150 GanttTasks
Announcements 104 Announcements
Contacts 105 Contacts
Calendar 106 Events


In a tweet type of blog post I just wanted to mention the topics flying around my way at the moment:
– OpenSuse – on a virtual machine
– Xampp – on the OpenSuse
– WordPress – the downloadable software, for testing
– Tweetdeck – client software for combining all your information (rss, twitter, facebook)
– Alfresco (open source alternative to sharepoint?)
– Windows Server R2 (with different server roles, e.g. Web Server, Domain Controller, Datacenter)
– Laptops: Lenovo vs. Dell
– Promise Pegasus Storage
– Drobo and Airport Extreme – Whatever happened to DroboShare?