July 17th, 2012

SharePoint 2013: Standalone Installation Issue

Hey guys,

So the new SharePoint has arrived! Or has it? When I tried to install the standalone version of the new SharePoint Server 2013, I encountered a few issues. Let me show you the errors:

SharePoint Server 2013 Standalone Installation Issue #1

SharePoint Server 2013 Standalone Installation Issue #2

Before talking about the issues, let me first detail the setup.

As I didn’t have a domain setup and didn’t want to install a full SQL server and , I choose for a standalone installation. This will install a SQL express instance for SharePoint to use.
Everything went pretty fine (the server vhd was a big time saver), until the configuration wizard. After 2 steps, the installation of the config db gave this error:

ErrorCode:SubStatus:
Service running under Network Service account in workgroup environment is not supported.

After reviewing the default SharePoint services, I found a reference to the AppFabric component. This service was indeed running under the NETWORK SERVICE account. After fiddling around with write permissions on the config file of the service, I managed to pass that step, only to hit another road block:

ErrorCode :SubStatus:
TCP port 22234 is already in use.

This error also related to the AppFabric component. However, when reviewing MSDN it mentioned installing the component on another machine… which I didn’t have.. and which I didn’t want. This actually gave me an idea. Instead of making each error pass, maybe instead I should just deactivate AppFabric. Distributed cache in a single environment is not really that useful. ;-)

After decompiling, I found that SharePoint, when joining the local machine to the farm, has a conditional cache host registration. This lead to further decompiling into psconfig.exe which lead me to the psconfig command variable “SkipRegisterAsDistributedCacheHost”. This means: not running the configuration wizard by clicking on it, but running it through the command prompt. Easy peasy:

PS C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\BIN>
.\PSCONFIG.EXE -cmd Configdb create SkipRegisterAsDistributedCacheHost

And just like magic, psconfig created my new config db in three wonderful steps. After this, I just needed to rerun the configuration wizard through the UI to finish off the complete configuration. (if you have an issue when creating the sample data, don’t worry too much: the central admin is up and running. You are good to go!)

And there you have it! The madness can begin, once again! Have fun discovering SharePoint 2013!

UPDATE: This little trick will deactivate AppFabric. Microsoft acknowledged the issue and are updating the info. In the meantime, be aware that some features might be disabled by applying this. (Thx Pieter) Now that the RTM bits are out, I hope the issue is solved. :-)

April 28th, 2012

Speed up your SharePoint development #spsbe

Hey guys,

I just gave my #spsbe session on how to speed up your SharePoint. And as promised (huh, Ben), here are the links of the tools I used:

Environment

Visual Studio

SharePoint

  • CKSDev – http://visualstudiogallery.msdn.microsoft.com/a346880f-2d29-47a6-84a2-f2d568dd6997/
  • CKSDev - http://cksdev.codeplex.com/
  • ULS Viewer – http://archive.msdn.microsoft.com/ULSViewer

Languages

FrontEnd

Have fun developing!

July 31st, 2011

SharePoint 2010 Tricks: MapFile Element

Hello everyone and welcome to another exciting blog post in the SharePoint Gems series. It’s been some time since the last one and this is the first for SharePoint 2010. The goal of SharePoint Tricksis to shed some light on unknown features in SharePoint. Most of the time, those features have little to no documentation on msdn and are not really feature in posts on the net. So, it’s always nice to find a bit of info, right here. :-)

On my current job, I’m working on a migration to SharePoint 2010. SharePoint 2010 features a couple of new items towards migration and upgrading and it’s in this last category I’ve found a gem.
As most of you know, features can be upgraded now. Unfortunately this procedure is quite cumbersome and contains a lot of manual steps (customactions, custom upgrade looper, etc). Chris O’Brien blogged a nice series on the basics of this upgrade mechanism. Basicly, the upgrade code will process some new CAML elements (eg. Customxxx) One of these elements however is pretty powerfull, aspecially in migration and heavy upgrade situations, but at the same time this element is pretty unknown as well. I’m talking about the MapFile.

As you can see, the msdn page does not really tell much. Thanks to Reflectorand SQL Manager however we get a pretty good idea what it does. So what is its purpose? The MapFile element will update the internal link of provisioned, uncustomized (thus, still ghosted) files in your SharePoint libraries from one location in your 14 Hive to another.

The element is quite simple to use:

<Mapfile FromPath=string ToPath=string />

It’ll find all files that have been provisioned from “FromPath”, and it will update it to “ToPath”. Mind you this will work on a per-site basis. If you have a MapFile element in site collection feature, it’ll only use the rootweb.

To illustrate the power of this element, here are some use cases:

  • You have a customized document library with custom form pages, and you want to revert them to the form pages of the original document library.
    <MapFile FromPath="Features\MyCustomDocLib\Schema\ViewPage.aspx" ToPath="Global\Forms\ViewPage.aspx" />
    
  • You’ve been using a page layout for some time and in the new version the developers create new features and renamed the page layouts.
    <MapFile FromPath="Features\MyPageLayouts\PageLayouts\OverviewPageLayout.aspx" ToPath="Features\MyPageLayoutsV2\PageLayouts\NewOverviewPageLayout.aspx" />
  • An external solution has been retracted making some pages/files/document libraries unavailable You want to re-enable them without deleting and recreating them, as there is a lot of content and versioning on them.
    <MapFile FromPath="Features\3rdPartyFeature\Pages\Page1.aspx" ToPath="Features\InHouse\Pages\Page1.aspx" />
  • So that’s for MapFile. See you next time!

    Ps: when using feature upgrading don’t forget it’ll only work with solution upgrading.

July 9th, 2011

SharePoint 2010: Customizing the Gantt view and the Client Grid

Hi everyone.

Time to revive this blog a bit. It’s been a long time since the last update and a lot has happened since. I’m now officially an independent SharePoint consultant, here in Belgium! Needless to say, I had a lot on my plate the last six months. But here I am again! Time for SharePoint.

As most of you, I’ve been working on SharePoint 2010 for some time now. And as usual we found some quirks and weirdness in the software that need some more “creative” solving. This time we’ll talk about the new Gantt view! The Gantt view is one of these list views that wasn’t really used in SharePoint 2007, mostly because nobody knew about it. It was kinda a nice view. It’s used to show event based items on a horizontal timeline. You configure a start date column, and a end date column, and presto! A Gantt View! In 2007 it looked like this:

Gantt view 2007

Kinda nice, right? Well, in 2010, they enhanced it. Visually ,it basically looks the same. (although the items are on the left side, and the timeline on the right) But the functionality is much more powerful. The item grid is now by default editable! More over, it looks like a datasheet view, but works without plugins! How is this, you ask me? JAVASCRIPT, I respond enthusiastically! ;-)

Gantt view 2010

Microsoft finally is discovering the power of Javascript in SharePoint 2010 and this is an excellent example of this! They developed a fully functional client side grid, using Javascript! It allows us to do some nice tricks as dynamic resizing of the columns, show/hiding columns, … and more.. Really nice! What’s even better, is that you can directly edit the grid, and the timeline and underlying items are automagically updated! Even more awesome!

Now, this is really nice and all, but it ain’t nothing you can read anywhere else. The problem I was having this week are the settings of this view. Or actually the lack of. There is quasi nothing you can set. Bummer!
Luckily, as it is Javascript, I suspected I could hack into the html and change defaults such as column widths etc by changing its CSS properties.
Well, that seemed kinda right. I managed to change some defaults, but as soon as the grid sprung alive on the page, everything went back to the internal defaults. Oh, and did I mention that some defaults are repeated a million times within the html code? So far for using *cascading* style sheets. :-(

Next try: can I hack the Javascript of the grid? After looking more closely at the Javascript code of the grid (all 25000 lines of it :p) I found out the gantt view consisted of a Javascript Gantt view component, using a Javascript grid component. (although they seem separate with separate files and all, they do show interdependencies in the details, however) And what’s nice about Microsoft they created a whole object model for the grid. Very quickly I found some useful methods such as: “FormatColumns”. Jeej! And as the methods were used in the Gantt view component, they were public. And then the kicker: the script object is not public! :-( C*$!!($à Back to square one! Or are we? Javascript is powerful, really powerful! The variables as methods and enclosures are really nice to use. Inheritance is also way more hackable, as we can override ALL Javascript functions That’s why I created my own Gantt view type, that is immediately loaded when the grid and Gantt view types are loaded. See this piece of code:

  ExecuteOrDelayUntilScriptLoaded(function()
  {
  	  	var oldGanttControl = SP.GanttControl;
  		SP.GanttControl = function()
  		{
  			oldGanttControl.call(this);
  			...
  		}; 	
  },"SPGantt.js");

Once I had my hook, it was only a matter of overriding the “init” method and catching the grid object, and doing nice stuff with it, such as the column hiding.

  ExecuteOrDelayUntilScriptLoaded(function()
  {
  	  	var oldGanttControl = SP.GanttControl;
  		SP.GanttControl = function()
  		{
  			oldGanttControl.call(this);
  			var oldInit = this.Init;
  			this.Init = function(jsGridControl, jsRawGridData, params)
  			{
  			    oldInit.call(this, jsGridControl, jsRawGridData, params);
  			    DoCustomizations(jsGridControl);
  			};
  		}; 	
  },"SPGantt.js");
  
  function DoCustomizations(grid)
  {
  	grid.HideColumn("Title");
  }

Now, the column hiding is only the beginning. You have access to all the grid methods, so there’s a lot of power! Be sure to check out the main Javascript file “jsgrid.js” to find out all the methods. Small hint: use the Visual Studio 2010 addon “Javascript parser” to have a nice overview of the methods in the Javascript file.

Gantt view in 2010 with optimizations

Now to add the Javascript to the view , you can use a content editor and add it to the web part page. Don’t forget to handle the view picker issue when using this method. (I created a second web part that fixes the issue)

Well, that’s a wrap for the post. Hope you’ve found it useful! Happy debuging!

June 15th, 2010

Speaker at Community day 2010

Just a quick head’s up, everyone: I’m a speaker at the Belgian Community day 2010, next week. I’ll be talking about jQuery and SharePoint 2010, it’s going to e awesome! :-) This year, the event is in the Utopolis in Mechelen, and as always the event is free. So if you are from around, don’t hesitate and register!
See you there!

April 22nd, 2010

SharePoint 2010: Themes

Hello world. Long time no see. :-)

As SharePoint 2010 went RTM not so long ao, I thought it would be good timing to write a new blog post. This time around, I’ll talk about SharePoint themes, one of my pet peeves!

Why is it one of my pet peeves? Well, SharePoint themes are quite nice, but are cumbersome to create. Let me elaborate on that. SharePoint Themes are actually CSS files and images only. So you’ll have to manually override every CSS class on the existing SharePoint design. And for those of you reading my blog, you’ll know that CSS in SharePoint 2007 is not really that cascading, unfortunately. In other words, it takes ages to get a theme done, and you never have satisfying results.

But, NO MORE!
That’s right! In SharePoint 2010 themes are actually what they should be: a light and easy variation on a design. And what’s surprising? It is actually not new technology. The SharePoint team decided to reuse the theme definition and format defined in the Office OpenXML standard. It’s already been used in PowerPoint 2007 for creating new themes for your slides!

But what is it? Well, a theme is now a definition of 10 colors (4 main colors, and 6 accents) and 2 fonts (basic and title). To make it easily reusable, they’ve packaged the theme in a .thmx file, which is nothing more than a zip archive of OpenXML xml files. (just like docx, pptx, …) SharePoint will use this file to change its colors and fonts accordingly. This means you can create your themes in PowerPoint (or reuse your old ones), upload them to SharePoint, and have a freshly branded site in no time! Nifty!

Some tidbids about them.

  • You can actually create your themes in SharePoint 2010. Go to the new Site Theme page in Site settings and change the colors and fonts.

    You can even preview your changes. If you want to save or reuse your custom theme in other sites or site collection. You can download the created file by going to following url: http://[server]/[site]/_themes/custom.thmx After that, just upload it to the theme gallery. Nice!
  • The theme gallery is a site collection wide gallery located at http://[server]/[sitecollection]/_catalogs/theme/ You can access it via the header of each Site Theme page, or by going straight to your Site Collection settings.
  • You can now push your theme down to subsites, just like you could with your masterpage. This is really handy!
  • As themes are nothing more than .thmx files stored in a gallery, you could generate and package your themes by server side and on the fly. The main file to know is: /theme/theme/theme1.xml. It looks like this:

    Pretty straightforward, ain’t it? But SharePoint wouldn’t be SharePoint if there weren’t some API classes created we can use. :-) The class to know is Microsoft.SharePoint.Utilities.ThmxTheme You can get and set the theme of a SPWeb object. But you can also alter its colors and fonts. They even added a method to retrieve the SPFile of the .thmx file. Cool!
  • As themes define colors and fonts, they are not bound to a specific CSS file nor master page. It means we can use the themes in our own master pages, but it also means it’s a bit difficult to know where a color will be applied, as it depends where the masterpage uses it. SharePoint 2010 comes with 2 master pages (v4 and nightandday (server only)) and both of them support themes, although v4 does a better job at it. I’ve compiled a preliminary resume where and how the main colors are being used for v4.
    • Dark 1 – Page Text
    • Light 1 – Page Background, Dynamic Menu Background
    • Dark 2 – Menu Text
              Shade (to grey) – Header background
    • Light2 – Menu Background
              Shade (to white) – Item Background
    • Accent 1 – Hovered Top Menu Text
              Shade (to white) – Selected Menu Background
      Mind you this is not a complete for v4.
  • For a walkthrough on how creating a theme for SPS 2010 with PowerPoint read David Opdendries’ post: http://spdavid.com/post/2010/01/16/Custom-SharePoint-2010-Themes.aspx Good one David!

That’s it for today. Themes are now far more handy in SharePoint, so I’ll definitely use them in projects. :-) It future posts we’ll cover also masterpages!

August 17th, 2009

The Road to SharePoint 2010: Hidden Titbits (Overview Video)

As promised, I continue the series of analyzing the SharePoint 2010 sneak peek videos with the SharePoint 2010 Overview video.

  • My SharePoint:
    So they changed the My Site to My SharePoint. I guess they put the My Links in there too. But does it mean they rethought the whole “My Site” concept? I hope so. In my experience the My Sites (which are separate site collections per user) are not frequently used. Most company documents should be stored in team sites anyway. They should only be used to store information users want to share with coworkers only (blogs for example). Not many people like to target such a small group, however.

    SharePoint 2010: My SharePoint

    SharePoint 2010: My SharePoint

  • Site Pages:
    So what are these site pages? It is definitely a library of pages within a team site. But it is a special one, as it gets special tie ins in the user interface (SharePoint Designer, View All Pages). In the end it strangely ressembles the Pages library of MOSS 2007. This would mean that Publishing pages are the default now within Team Sites. (you can see they edit a “wiki content” publishing control) I think this is a good thing, aspecially if they merge every page to one kind of page. This would also mean WSS (or whatever they will name the free version, if there is one) will contain publishing features or something in the likes. I’m really curious how this turns out to be.
      

    SharePoint 2010: Site Pages I

    SharePoint 2010: Site Pages I

     

    SharePoint 2010: Site Pages II

    SharePoint 2010: Site Pages II

     

    SharePoint 2010: Site Pages in SharePoint Designer

    SharePoint 2010: Site Pages in SharePoint Designer

     

  • Site Workflows:
    I developed quite a few workflows, so this one I’m a pretty interested in. If this is what I think it is, it means that they’ve implemented workflows being able to run within the context of sites, instead of only list items.
    I wonder how this ‘ll be implemented, as it’s pretty tied in with the list item concept. I hope they created a new programming interface in the object model, similar to the ISecurableObject (which is implemented by SPWeb, SPListItem and SPList), and hopefully it’ll be open to use. :-)
    However it turns out, it’ll mean being able to develop a whole new kind of workflows which would really fill up a lack in the product.

    SharePoint 2010: Site Workflows

    SharePoint 2010: Site Workflows

    SharePoint 2010: Site Workflows in Site Settings

    SharePoint 2010: Site Workflows in Site Settings

  • Office Web Apps:
    One of the more discussed feature of the new 2010 version of Office is the presence of web versions of the main applications. Word, Excel, PowerPoint, OneNote, and appearantly also a Visio viewer. This is what Windows blogger Paul Thurrott said: “The Office Web Applications will be distributed via Office Live…. while businesses can actual host on-site.”My guess is that the on-site version will be wrapped in some sort of enterprise version of SharePoint 2010. And I think you’ll have 3 ways to use them: Office Live, on-site SharePoint and SharePoint online (BPOS). But behind the scenes they’ll all use SharePoint 2010 technology (application pages). You can find lots of clues of SharePoint as host, in the urls and such. (application pages, document libraries, …) Too bad there doesn’t really seem to be consistency in the naming conventions of the urls (some get separate folders within the _layouts dir, some get viewer, …). I hope they’ll fix this in the final release.Also, it seems you’ll be able to use them directly as a web part in your pages. :-)

    SharePoint 2010: Word Web Application

    SharePoint 2010: Word Web Application

    SharePoint 2010: Powerpoint Web Application

    SharePoint 2010: Powerpoint Web Application

    SharePoint 2010: Visio Web Viewer

    SharePoint 2010: Visio Web Viewer

    SharePoint 2010: Client Application Web Parts

    SharePoint 2010: Client Application Web Parts

  • Themes:
    It seems you can now push themes to subsites and make ‘em inherit from the parent site. Nice!

    SharePoint 2010: Applying Themes I

    SharePoint 2010: Applying Themes I

    SharePoint 2010: Applying Themes II

    SharePoint 2010: Applying Themes II

Ok, that’s it for the overview video. Hope you’ve liked it. See ya!

July 15th, 2009

The Road to SharePoint 2010: Hidden Titbits (IT Pro Video)

I guess everyone saw the new videos of SharePoint 2010 posted by the product team? So, is every one getting excited by the new Ribbon interface, direct web edit, and so on? You should! While I was watching the videos I noticed a couple of things. And I thought I could share with you guys! Mind you, these are only some wild guesses from my part. They are just my interpretations of what I saw. These are all taken from the IT Pro Video.
  • List Settings:
    There seem to be some new options in there. More particulary: Validation Settings, Rating Settings, Metadata Navigation Settings, Per Location Settings “unknown” settings (can’t really read that one) and Generate File Plan Report . Don’t really know what they all could mean. 

    SharePoint 2010: List Settings

    SharePoint 2010: List Settings

  • Send To Connections:
    Pretty obvious here. In the previous version we were allowed to have only one custom send to. This menu item seems to point to multiple ones!

    SharePoint 2010: Send to Connections

    SharePoint 2010: Send to Connections

  • Webservice for clientside SP manipulation:
    I guess this is the new webservice intended to run the queries we can launch on client side using the new client object model (more info on this in a later post)

    SharePoint 2010: Client Side Web Service

    SharePoint 2010: Client Side Web Service

  • Site/List Export:
    This is a nice feature! Three things I noticed

    • Why oh why has this to be a timerjob? Can’t we just export directly?
    • Oh, we got a new file format: .cmp. I wonder what goodness is inside! :-)
    • Nice work with the version export. We have some nice options there.

      SharePoint 2010: List/Site Export

      SharePoint 2010: List/Site Export

  • Site Settings:
    They showed us a quick look at the site settings. Looks like they changed the behaviour of this application page. It shows now the local navigation bar. Also some small new things: Search and Offline Availability (probably for the new SharePoint Workspace (groove)), Related Links Store Management and Term Store Management. Nifty!

    SharePoint 2010: Site Settings

    SharePoint 2010: Site Settings

Nice things in this video. SharePoint 2010 looks different, but we do recognize a lot of the options. Don’t let the ribbon fool you. ;-) I’ll try to post some more video reviews soon.

Good night all!

June 29th, 2009

SharePoint Tricks: Allow Duplicate Column Names

One of the restrictions of SharePoint I always stumbled upon when clicking a SharePoint site together was the one of duplicate column names. I bet you’ve all seen it. You’re creating some columns (list or site ones) and suddenly SharePoint gives you this error:

SharePoint Tricks: jfjfjf

SharePoint Tricks: Duplicate column name error

I finally got pissed at this problem, so I decided to investigate. Now, as I developed some columns through the feature framework, I knew it was possible to create columns with the same name, Display Name that is. Just look at Title. How many different “Title” columns can you see in the edit view screen? So I decided to take a look in the fldnew.aspx page, and what did I discover? A nice javascript array with all “forbidden” column names. I tried to make that array empty and tried again. Magic! The column name was approved. For some reason the team decided to block duplicate names off. But I feel this can be handy some times, especially when creating site columns. You are bound to hit this limitation some time.

But what does SharePoint do internally? It will always make a unique internal name (eg. if you enter Title, it will create a field with Title0 as internal name and Title as display name) A good practice however is to first create a field with a “good” internal name. Good meaning, no spaces, no weird characters, clear. And afterwards renaming it using this trick. Now, what is the trick you will ask? Well, quite simply: once the fldnew.aspx or fldedit.aspx page is loaded. Head toward the address bar of your browser and enter following javascript.

javascript:g_FieldName={};alert('ok');

This code will clear the “forbidden” column names array and give you a visual confirmation when you can go on.

I hope this little trick will help some of you guys. Use it with wisedom however. :-) ’till next time!

June 29th, 2009

Another Summer Update

Yeah, you read it right. Another update. ;-) I just finished a new article about allow duplicate SharePoint column names. Hope you like it.

I’ve been quite busy with SharePoint this year, lots of frameworks built. Reusable stuff. ;-)  I’m also gathering all tricks and issues, so I hope making a couple of posts this summer. No promises though. ;-) In the meantime get ready for SharePoint Server 2010. A first beta should be released this summer. Less branding issues? I hope so. But we’re still with good old 2007, so for all your css goodness, I give you a nice link:

http://www.quirksmode.org/

It gives you detailed compatibility tables between all browsers. Quite handy!

See you this summer!