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!

August 5th, 2008

SharePoint Tricks: Content By Query for Single Web

Quick little trick tonight for all you SharePoint configurators out there. Ever needed to use the Content by Query Webpart and query for just a single site? Yes? Well, then you probably ‘ve noticed there is no such option when configuring the webpart… right?

Content by Query Source Options

Content by Query Source Options

Wrong! There is a way to enable single site quering, and it’s actually not that hard. First thing you have to do is export your webpart to a file. Open your .webpart file and add (or replace the old one with) this little property:

<property name="WebsOverride" type="string">&lt;Webs /;&gt;</property>

This property will, as its name suggests, override the webs property of the sitedataquery. By default the content by query webpart will fill this in with SiteCollection or Recursive. But if you don’t want this, just overwrite it with this (empty) Webs value.
After adjusting your file, upload it back to your page, and add an instance of your new webpart. And there you have it, single site goodness. ;-)

Hope it helps! Good night.

July 30th, 2008

SharePoint Internals: Clearing Configuration Cache Caveat

I’m pretty sure most of you have heard of the SharePoint Cache. This is a directory full of cached objects, nicely wrapped in XML. Sometimes however this cache can become corrupted. A great example of this occurs when developing SPJobDefinitions (TimerJobs for SharePoint). These definitions use this cache, so everytime you deploy new versions of the assemblies, you’ll have to clear the cache. More info about this:

Clearing the cache, means deleting all the XML files. But what if you delete the entire directory? Well, it gets messy.. ;-) SharePoint TimerJobs just stop working all together. And to top it off, you get these nice error messages:

SPTimerStore.InitializeTimer: SPConfigurationDatabase.RefreshCache returned SPConstants.InvalidRowVersion 
The timer service could not initialize its configuration, please check the configuration database.  Will retry later.

Great! :p

So what happened? The directory in question is: C:\Documents and Settings\All Users\Application Data\Microsoft\SharePoint\Config\<guid>\. So the name of the directory is some kind of identifier. Looks pretty innocent, huh..  it isn’t!
When this happened to me earlier on today, I wasn’t really feeling at ease. The timerjobs didn’t want to run, and no one seemed to know what this guid was. After a few hours of reverse engineering however, I found discovered this was actually the config DB ID. Nice! But where can I find it? Luckily it was not hard to find out. You’ll have to open up the registry and go to: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0\Secure\ConfigDB

The config DB registry key.

The config DB registry key.

In this key, you’ll find the config DB id. Now all you have to do, is create a directory with this guid and restart the SharePoint Timer service. And you’ll see your XML files reappearing, and soon after your timerjobs restarting. Phuw, that was a close one.. :-)

’till next time!

July 23rd, 2008

SharePoint Branding Issues: Edit In Datasheet View

For a couple of weeks now, I’ve got some reports about crashing datasheet views when using custom master pages. As a reminder, the datasheet view is a view you can select when browsing within a list. It’ll enable you to view and edit the list in an excell-like format. Quite handy for bulk changes.

So, what is happening? I noticed the page was going into an infinite loop. When debugging I stumbled upon the GC-functions. Those functions are located in core.js and control the resizing of the datasheet view control. After carefull reviewing, I noticed the document.documentElement.scrollHeight was growing and growing. It seemed that my custom master page let the scroll height go out of it bounds.

To fix this, I simply bound the scroll height to the client height. To accomplish this, you look for

var lGCWindowHeight=document.documentElement.scrollHeight;

in core.js and replace it with

var lGCWindowHeight=(document.documentElement.scrollHeight>document.documentElement.clientHeight) ? document.documentElement.clientHeight : document.documentElement.scrollHeight;

This seemed to solve the problem and stopped the browser from crashing.

But why was this happenning? My best bet is the use of a specific doctype in my masterpage. In quirks mode, IE includes top and bottom borders and padding widths when calculating the offsetheight. Standard mode only defines the content height as offsetheight. I’m guessing core.js relies on the extra margins. Now, the strange thing is, the custom master pages of MOSS (BlueBand, OrangeSingleLevel, …) do not experience this bug, altough they also use a specific doctype. I didn’t really investigate into it too much, but I suspect they restrict the height of some container surrounding the main content. This could stop the growth of offsetheight. If anyone of you, readers, can confirm this behaviour, feel free to respond in the comments.

In the meantime.. have fun branding!

Update: according to reader Rufino, you can also revert this behaviour by specifying a height. Didn’t test it yet, but I’m pretty sure this ‘ll do the trick too. Thanks Rufino!

July 23rd, 2008

Summer Update

Hey guys,

Maybe some of you already noticed, the layout of the blog got a small summer update. I never was quite happy on how the typography turned out to be. So I decided to change and go back to the good old Verdana. Hope you guys like it.

While I was at it, I also made the site compatible with Firefox 2 and Safari (FF3 & IE8, I still have to check). So, all you iPhone users can now enjoy a bugfree layout. ;-) Talking about the iPhone, I strongly suggest getting WordPress app which was released today. It lets you compose wordpress blogposts in an easy manner right from your iPhone.

Summer Update posted from the iPhone

WordPress on iPhone

Later on, I’ll release a new article in the branding issues series. Bye now.

April 1st, 2008

SharePoint Tricks: Adding Google Search To Search Scopes

Tonight’s article is one based on a little trick I pulled of last year at one of my customer’s Intranet. As it turns out, there seems to be quite some people using Google Search (Live Search anyone?) ;-)
So how do we add this search scope? The trick lies in a custom page for the search scope. When creating a search scope in your site collection settings, you’re allowed to enter a custom search page.

 SharePoint Tricks: Google Search Scope Configuration

This custom search page simply has to redirect to the google query webpage: eg.http://www.google.com/search?q=ENTER+A+WORD. Don’t forget to replace the ENTER+A+WORD content of the q variable with the k variable you find in the query string of the custom page. This is whare all the magic lies, you see. So in the end, we’re basicly rerouting the query from SharePoint to Google. Pretty simple, but very effective!

 SharePoint Tricks: Google Searc Scope Use

Hope you guys liked the trick. See you next time!

April 1st, 2008

April’s Fool?

No no, no april’s fool joke. I am actually updating my blog. ;-)

I’ve been extremly busy last couple of weeks, as some of you may already know. But with the release of the new WordPress past weekend, I found myself upgrading the blog and obliged to baptize the new system with a couple of posts. ;-) You’ll see the other one published later tonight.

Talking about the new WordPress, I recommend everyone to check it out. The developers made some great advancements in the admin panel. So I’m quite pleased to run the new version. It’s a real breath of fresh air.
Also, fitting right into my current spirit of time of change, I’ve upgraded my 5 year old Windows XP rigg to a new Vista-based quad core system. And I have to say… blazing fast! Even Crysis runs like a charm on very high settings. For those of you who have never played Crysis: check out the demo! It’s awesome, I’ll surely be picking up a copy pretty soon. When downloading the demo, don’t let the massive 1.8 GB download scare you of! It’s worth it. Man, where’s the time when games fit on a small floppy disk… good stuff! My last 2 systems didn’t even have such a drive anymore.

Anyway… Have a nice read!

PS: I have started to fix some of the layout bugs on IE7. IE 8 still gives problems though.