Monday, May 12, 2008

SharePoint Folders Need More Love

Folder Content Types for IT Professionals

Published in the May 12, 2008 edition of To The SharePoint

Most of you SharePoint enthusiasts probably know quite a bit about content types in SharePoint. They provide the means to organize metadata in an extremely flexible manner and provide the context for workflows, custom menus, and document templates. However, due to the document centric nature of Microsoft Office and SharePoint, the most commonly used and discussed content types are the document content types. Well, there is another lesser-known character in the content type story of SharePoint--it is the folder content type.

One reason why the folder content type is less popular is that the default SharePoint installation comes with only one of them--the Folder content type. Compared to dozens of out-of-the-box document content types, the Folder is clearly outnumbered. So let's have a closer look at this lonely hero and create a couple of folder content types so that we can find out how to use them to further enhance the user experience and data management of a document library.

To put things into perspective, let's look at how the fictional environmental foundation Rain Forest can use folder content types to improve its excising document library. The foundation staff stores all documents in a document library and they already use several document content types to support their activities. The document types are separated into two functional groups:

  • Project Documents (Additional Fields: Due Date, Assigned To)
    • Application for Grant (Word document)
    • Financial Memorandum (Excel document)
    • Formal Acceptance Document (Word document)
  • Internal Documents (Additional Fields: Contact, Status)
    • Purchase Order (Word document)
    • Invoice (Excel document)

The document library looks very familiar, and all document types are listed in the New menu:

The IT team of Rain Forest also defined some views based on document content type to make the filtering of each document type group easier and to be able to display content type specific fields such as Due Date and Assigned To:

If you are not familiar with document content types, this article shows the basics. For more information on how to create views, check out the following article.

All documents are stored in the root and occasionally employees will create folders at their discretion. However with time the clutter of folders makes locating documents really hard. All users also notice considerable slow down in view performance. After a few months, the root folder contains more than 4000 documents and is expected to grow. What can be done? This is when the little known character from our SharePoint story--the folder content type--comes in to help.

One reason for the performance hit is that folders in SharePoint have some limitations by design. For details on how the number of items affects performance, check out this article. Nevertheless if we partition the documents by financial quarters or other perpetual attributes, we can keep the total number of documents in a given folder within the high performance zone. That’s why we decide to create a folder for internal documents and project documents using the respective folder content types for every quarter of the year.

Furthermore we can provide some structure and boundaries for the employees, so that they cannot create folders anywhere in the document library. To help users locate documents, we’ll use a great feature of SharePoint, which allows us to bind views to a specific folder content type. This will provide context for each folder, so that when a user enters a folder with internal documents, the view will automatically change to display relevant metadata.

First let’s create a folder content type for each of our document groups. The steps are no different than creating any other content type. The only difference is that our content type will inherit from the Folder content type.

You can add specific metadata to each of the newly created content types, but for this walk-through, we’ll use the existing columns.

Next, let’s add the folder content types to our document library:

In addition, we would like to remove the default Folder command in the New menu, so that only our custom folder options are available. To do that, open the advanced settings of the document library and disable the New Folder option.

After these changes we will add our two new folder entries to the New menu.

Now, when a user wants to create a new folder for the next quarter, he or she will select the appropriate folder types from the New menu, and give the folder a descriptive name such as Internal Q1 2008. The process of provisioning a new folder can be automated and extended by using calculated fields or other programming techniques.

To provide the appropriate views, we create one view for the root folder and separate, unique views for each folder content type. The root view will display only folders from the newly defined content types.

Each custom folder content type will have a view that displays metadata specific to the type of document contained in the folder. These folder views are marked as default but are assigned to the specific folder content type.

Let’s see the result by creating a folder of each type.

You’ll notice that if you click the folder Internal Q1 2008, the view automatically will change to the Internal Documents view; similarly opening the folder Project Q1 2008 will change the view to the view Project Documents.

To add additional context sensitive behavior, you can also limit the New menu items displayed for each individual folder, so that only Internal documents show in the New menu of the corresponding folder. From the drop down menu of each folder select Change New Button Order, and hide the appropriate document types.

When you enter the folder you’ll notice that only the contextually correct New menu items exist.

Similarly you can hide the documents from the new menu of the root folder. Open the document library settings and in the content type section click Change new button order and default content type. Hide all but the folder content types.

From now on, the dedicated volunteers of Rain Forest can rest assured that they can locate documents easily and that the performance of their document library is going to be stable. Furthermore, the IT Pro of the foundation has some great ideas about how to add custom menus for each folder content type, so that actions applicable to all documents in a folder can be executed faster and in the proper context. There are also many opportunities to use item event handlers and the SharePoint DOM and workflow with folder content types to further extend the application. This SharePoint story certainly does not end here.

Mikhail Dikov is a senior software engineer at Global 360 (www.global360.com) and MVP for Microsoft Office SharePoint Server with background in CMS and BPM software. Mikhail brings more than 8 years experience in Microsoft technologies such as .NET, ASP.NET and more than 12 years of IT experience. Current interests include BPM, BI, SharePoint, .Net and AJAX. Mikhail is frequent speaker at code camps in Florida and an active member of the Space Coast Dot Net User Group (www.scdnug.org). Email: mdikov at gmail dot com Blog: www.mikhaildikov.com

freemd.com = healthcare revolution?

Every once in a while there is a technology or a service that will change our perception about the way business is done in certain areas of life. One such fundamentally different approach to healthcare is presented by Dr. Stephen Schueler and his team at freemd.com.

Before I joined Global360 about three years ago, I was for almost 4 years with DSHI Systems (the makers of freemd.com) and this was one of the most interesting and dynamic jobs I ever had. This is where I learned a lot about innovation, persistence and attention to details. What's now offered as a free service, has been used and tested for many years in big call centers nationwide. It is an enormous gain for the general public to have this service freely available.

Numerous times I find myself going to freemd.com searching for information about family member's condition or simply for self education. However the most valuable feature the "virtual doctor" helped enormously in several critical occasions, where I had to make a choice whether to visit doctor, rush to the ER or simply stay at home, and this is huge!

Check it out www.freemd.com

Dovizhdane!

Thursday, May 08, 2008

Software I use or not

Every once in a while I'd like to take some time and evaluate existing software that I use on a daily basis and also new programs that caught my attention recently. In this cycle I did some changes that made my life easier and I want to share them with you.

I picked several software packages ranging from VM software to HDD utilities and there were some real keepers. But before I go there let me say what I stopped using:

1. Google Docs - Very disappointing. I always strive to have some balance in my MS oriented professional life. I found that the integration between Google Docs and blogger.com would be really beneficial for me. The fact that I can work on blogs and organize my ideas from any location is also appealing. However two issues bothered me so much that I had to put an end to this. The first one was the broken integration between Google Docs and Blogger. Why on earth offer a cool feature and not make it work! For months I tried to live with the fact that the blog post title was not properly transferred to the feed thus making my blog entries look broken. Google's forums contained numerous complains about it, but never got fixed for more than a year.  I also found that making formatting work properly was always a game, since there was some strange transformation going on. Posting code snippets is always tricky, but man that was terrible experience. No more. I switched to Live Writer and I am supper happy. True I don't get to work on any PC, but for 95% of the time home and work are fine, and the formatting works great. Not to mention the plugins, which add tons of good features. Most notably the code snipped import.

2. Norton Anti Virus - After dealing with this software for many years and the lack of support and the constant upgrade issues, the hog it has become recently is unbearable.  My wife's PC literally stopped working after I installed the latest version. Needless to say I uninstalled it and while I am looking for an alternative I use AVG. I am looking for something light, effective and fast.

But I am really exited about the new software I got to use recently.

1. VMware Workstation- This is such a relieving change. As most SharePoint devs and presenters, I work in VM most of the time. Snapshots, memory management, USB support, networking options, all these features work so much better for me. The only annoyance I encountered is that after upgrades there is some nasty bug that happens every time. There is a fix posted on VMware's forum, but it would be best if it they work it out. It looks like an issue from couple of version behind.

2. One Note - This is a great tool to collect notes, snapshots and track ideas. Helps me immensely to jiggle multiple projects. The export feature makes it super easy to send out a package to somebody on the team.

3. Diskeeper Pro - A must for every PC, I've had older versions and this one seems to be doing a great job. I don't have much to say, because the thing just works it's magic in the background and rarely I have to do something with the UI.

4. Windows Live Writer - just what I needed for my blogging. Lightweight, simple control, extensible with tons of good plugins, formatting works.

Now back to business until the next cycle of software evals.

 

Dovizhdane!

Monday, May 05, 2008

Microsoft drops Yahoo bid - is this good for me?

Every once in a while we whiteness huge deals with the equivalent of tectonic movements to shake the industry. The Microsoft/Yahoo deal would've been the biggest financial transaction of the Internet era. This deal would've impacted not only the industry and all Yahoo employees, but also everybody in the Microsoft ecosystem. This ecosystem includes a huge number of partners, ISVs and developers outside of Microsoft. This ecosystem is where I leave, so naturally I asked myself "What is the impact of this deal/no deal on my life as a professional and as a consumer?"

My first reaction is that I feel really relieved that somebody wise stopped the ".Net  Bubble 2" from inflating at a higher rate. Let's face it - search and ads are big, but please, somebody has to keep things real and I am glad that Steve Ballmer did not cave in to the sheer racketeering that was going on. When irrational investors make mistakes, they loose their own money; when irrational executives make mistakes, they get the boot, and the way it looks Yahoo's executives will be in the hotspot pretty soon.

True, the giant from Redmond needs Yahoo to buy market share and expand at a faster rate in the search & ad market, but do they need them for their technology? Heck, even Yahoo is bailing out on its own technology and trying to outsource to Google vital services in which they invested billions of dollars. Considering that Microsoft also has a formidable technology stack in search technology, this is probably not a big selling point.

But is this really the way to beat Google? History shows that real winners emerge by opening completely new markets and expanding existing markets, rather than simply trying to conquer market share. The main reason is that market share with no innovation and authenticity to back it up is lost in a jiffy. Think of what happened to Lotus in the hands of IBM a decade ago and you'll see what I mean.

I'd rather see Microsoft taking a slower and agile approach, with smaller acquisitions, leading the way to reshaping their vision of personal computing and letting Yahoo to gradually withdraw in the Internet pantheon next to companies such as Netscape and the like. If this is what Microsoft's withdrawal from the Yahoo bid means, I applaud it!

Let's assume that the Yahoo deal is completely dead. Since Google did not deliver on the promise to create the next wave of Internet based office and personal productivity applications (c'mon how many years of fluffy Google Docs BETA!), it is about time for Microsoft to not only step up to the plate, but also to reshape our perception of personal computing. With so many devices in our hands and information that we need at our fingertips, both business people and consumers need a virtual desktop experience, which includes search of the web, but also of personal data and applications such as Excel and Word in the context of this connected network of devices. With their latest announcement of Live Mesh, Microsoft is doing exactly this. For me personally this is the huge deal. I am really tired of juggling personal and work computers and data on several devices and I can care less about ads. They are not interesting anymore. I learned to ignore them, the same way I fast forward the ads on my DVR. If Live Mesh is the answer of Microsoft to the challenges of the market, I hope they will  pull this off, and also figure out a way to open it to the community so that it becomes a truly open platform with support for third party devices and operating systems.

 

This Deal is dead! Long live innovation and authenticity...

 

Dovizhdane!

Tuesday, April 22, 2008

MVP Summit 2008 simply a different type of conference

After a week in Seattle attending the 2008 MVP Summit I needed a break of couple of days before I can get get back to normal. The Summit is certainly a very different type of a conference. Here are couple of variations I would like to point out.

Regular conferences dive directly from day one into regular sessions. Slide decks, presentations, code samples etc. At the MVP Summit on the contrary /I can speak only for the SharePoint track/ we started with some rigorous physical, tactical and strategic training. The master of ceremonies <Lawrence/> got us on a bus and in the woods (short from traveling blindfolded) and whoever did not pass the test of running and shooting paint potions for hours could not go to the next level. The good news is that everybody was fit enough to make it :) . Due to strict NDA some call it "Paintball", but believe me it was more than that. Thinking about it, this will be the first conference ever, where I may lose weight rather than put some pounds. Here is me (right) with John Holliday and Kit Kai loading potions in special buckets:

Another huge difference is that MVP Summit has several keynotes. One to begin with and two at closing. One of the closing keynotes came from the Boss (Ray Ozzie) and the next one from the Big Boss (Steve Ballmer). Ray Ozzie spoke about the value of building and supporting product communities once a star product reaches critical mass. Steve Balmer electrified the audience with his energetic performance. More about what they said here.

The third difference is that what happens in between the agility training (aka Paintball) and the keynotes is very interesting and intensive, but also cannot be shared freely. The event itself was organized flawlessly and facilitated its purpose to get closer product teams and the community.

Talking about sharing, the best part of all is that I met a lot of talented and opinionated people with a mindset of sharing their knowledge with others. Some contribute primarily by answering questions in MSDN groups, others speaking at conferences and code camps, writing books or supporting community software projects.

Thanks to the organizers and the sponsors, who made this a truly remarkable experience.

Different conference indeed...

Dovizhdane!

Saturday, March 22, 2008

Orlando Code Camp - another great community event

Three central Florida .net user groups pulled together an awesome event today. Great sessions, good and healthy food, excellent facilities, price tag -- zero!

I would like to thank all of the attendees that came to my sessions. Follow the link at the end of the post to download the presentation slide deck and the sample code.

Slide deck 1

Slide deck 2

Code Sample

Dovizhdane!

Friday, March 21, 2008

Excellent introduction to Silverlight

This is an excellent book for developers starting to get more involved in Silverlight. I already had some exposure to Silverlight from presentations, demos and screen casts, and this book helped me get the bigger picture of Silverlight by describing from A-Z the essential components and techniques of this RIA platform. Even though it is dedicated to Silverlight 1.0 IMO about 80% of the book is applicable to the second beta of the platform. The XAML chapters worked for me on Silverlight 2 Beta and with some patience I was able to translate most of the JavaScript code samples to it's C# equivalent.

The book contains detailed information about all moving parts in Silverlight. Without being a boring reference book the content is presented in clean technical language with good examples. The code can be downloaded from the site of the publisher, but for the XAML part I preferred to type it myself using IntelliSense, so I can play with different options.

I particularly like how the author presents functionally similar components, such as transformations, brushes or animations, starting with the simplest variation and building up to the most complex. This not only shows the logical gradation in their functionality, but helps the developer to find optimal control for a given task.

The author frequently points out the difference between WPF, Silverlight 1 and 2, which helps to distinguish between seemingly similar features in all of these three presentation foundation flavors.

The color print was a pleasant surprise and certainly makes the content easier to comprehend. The color also helps to better demonstrate some of the more compelling visual effects in Silverlight.

Since the author, Adam Nathan, is a Microsoft developer on the Silverlight team, I really hope that he'll write a second edition of this book updated for Silverlight 2.

Dovizhdane!

ISBN: 0672330075
ISBN-13: 9780672330070