Defining custom Site Columns and Content Types is the very basis of almost every SharePoint project. Using Site Columns and Content Types you can define the information architecture of your Solution. And although this process is something that is very important and something you do very often, it is surprising how little support there is for it from the development point of view that would allow you to do it in a productive manner. CKS:DEV has already had some support around Content Types and Site Columns but still it was far from ideal, so including some improvements in that area was something we couldn’t really leave behind…
Creating custom Site Columns is something you do in almost every single SharePoint Solution. Unfortunately even in spite of great SDK documentation and intellisense for SharePoint XML files, it’s still a tedious process to create new columns directly in the XML. Using the SharePoint web UI is way easier but then again: how would you get that out of SharePoint and put into your Solution? There is an answer to that question and it is: use CKS:DEV!
One of the great capabilities of SharePoint Server is the ability of including reusable content: standard snippets of HTML which you can use in different places over and over again without having to copy & paste it. The great thing about Reusable Content is that you have the option to insert a reference instead of the copy of the content so that if the content snippet ever changes, you won’t have to manually check every single page in your site to ensure that the content is correct: SharePoint will do this for you automatically. While this piece of functionality is really great you wouldn’t believe how inconvenient it is to get to this list to add new content snippets in there.
While working on Microsoft Office SharePoint Server (MOSS) 2007 Web Content Management (WCM) Solutions you might have relied on the fact that the name of the Pages Library was always Pages. Well almost always, because in some languages, like German, it was translated along with the Title. Given that fact, changed the way we had to deal with the Pages Library in code. Instead of hard coding the URL part of the Pages Library, all of a sudden we had to retrieve it dynamically, just because someone accidentally translated the URL of the Pages Library. But looking at SharePoint Server 2010 tells us otherwise. Now the URL parts of Pages Libraries in all languages are translated. So was it a mistake in MOSS 2007 that in German the Pages Library was called Seiten or was it a mistake that the Dutch one was called Pages instead of Paginas?
When working on SharePoint Solutions one of the common requirements is delivering multilingual solutions. Depending on your scenario you might either need to localize a single Web Part or a complete Solution. Thinking of multiple languages you have to take into account not only the development but also the packaging process for all the different assets in your Solution. One of such assets, where implementing support for multiple languages in SharePoint 2010 might seem complex at first sight, are Site Definitions. However you can easily create a multilingual Site Definition using nothing more than the standard capabilities of the new Visual Studio 2010 SharePoint Developer Tools.