Feeds:
Posts
Comments

Archive for February, 2009

Today my first hands-on with the Microsoft Business Productivity Online Suite (BPOS). I spend a great deal of time playing with the Exchange Online and SharePoint Online products. Will it be a success? Who will tell? Here are my conclusions.

BPOS verions.

BPOS will be available in 2 different versions. The BPOS Standard and BPOS Dedicated. The Standard version is for everyone who wants to switch to a Saas model for  their email and/or collaboration solution. My opinion is that the Standard is aimed at smaller companies (<50) or even home users that are willing to pay the 3$-15$ monthly fee ( depending on what services you want to use ) per user. For this fee you don’t have to buy hardware, no Exchange license and most importantly: Microsoft will take care of your backups, upgrades and maintenance. If you are willing to fully switch to a browser only solution you can also kick out those Microsoft Outlook licenses.

The BPOS Dedicated is a different beast. It’s aimed at large companies > 5000 seats. No prices are made public. You will have to pay a visit to  your Microsoft Account Manager, so expect high numbers.

Note: on SharePoint forums they are also talking about SharePoint Azure but no details have been made available yet.

SharePoint online.

This blog is about SharePoint so what about SharePoint Online? To be honest, for me the Standard version was a bit disappointing. But I’m used to the full blown Microsoft Office SharePoint Server. People that are used working with (only) WSS might be more exited about SharePoint Online. Certain SharePoint features are not (yet?) available in BPOS. For example you don’t have any control over your search scopes or indexing schedule. There is also no word about what IFilters are supported by default. Although if you think about it, it is logical. Since SharePoint Online is a kind of ‘shared hosting’ you don’t have access to Central Administration. So you can leave out most of the  features that are solely configured within Central Admin. Below a list of things I noticed.

  • No control over the search or indexing schedules.
  • No mail enabled lists.
  • No customized work flows (aka Visual Studio work flows)
  • No browser based forms.
  • Since it’s shared hosting there is of course no deployment of custom dll’s,  assemblies, wsp’s, custom features or any files in the 12-hive
  • Backup retention of only 2 weeks.

Conclusion. I think the BPOS has great potential for smaller companies. Certainly the Exchange Online integration. The SharePoint Online is rather basic. I prefer to see it as WSS online with a few MOSS features that you can’t control. However they made very clear that the current feature list is not the final one. The people at Redmond are working  hard to push some extra functionality out.
I’m also expecting that Microsoft will team-up with his partners and that certain popular (and very well reviewed and tested)  third party web parts and components will become available as well in the future, although this is just a wild guess.

Read Full Post »

Microsoft  disclosed a detailed road map for its enterprise search products, including the introduction of FAST Search for SharePoint and FAST Search for Internet Business.

More information here on the Microsoft SharePoint Team Blog

Read Full Post »

The Sharepoint team released a handy tool that helps you detect incorrectly (read: not) disposed objects.  It provides assistance in correctly disposing of certain SharePoint objects to help you follow the published best practice.

Best practice is to dispose you objects that inherit from the IDisposable interface.  There is more info  about disposing objects in SharePoint on the msdn site. Knowing when to dispose ( or when not to dispose)  can be tricky sometimes.

So when to Dispose? Shahil has 3 great rules to live by

1) Do not dispose objects you didn’t create. In other words, in a feature receiver, if “Parent” is SPWeb or SPSite – don’t be callin’ dispose on that. You didn’t create that object, and after your feature receiver is done, parts of the SharePoint framework may still need that object. This rule applies to general .NET.

2) Dispose is like a pretty girl, if you see it, call it… but don’t break rule #1. i.e. don’t call a pretty girl that isn’t confirmed unattached, .. if her large mammalian boyfriend finds out, he may knock your teeth out. This rule applies to general .NET as well.

3) If you call SPSite.Dispose, it will automatically call Dispose on all the contained SPWebs, thus unless you have an extremely borderline crazy logic that creates 200 SPWebs that you must dispose manually out of band, you should simply call SPSite.Dispose. This wasn’t the case in WSS 2 mind you!

On a side note: I recommend using “using” statements to dispose of objects (it is the easiest), but try catch blocks work also.

You can download the SPDisposeCheck tool here : http://code.msdn.microsoft.com/SPDisposeCheck

Read Full Post »

Removing the default search box doesn’t seem so straight forward. This article explains how to remove (or replace) the search box or any other delegate control by using a feature.

Prerequisites:
- Know how to create a feature and have one ready.
- Know how to create an ascx control. (ASP.NET usercontrol)

Locating the searchbox.

The search box that you find on top of every page is defined in the default.master file. Go to your 12 hive and open the default.master in your favorite editor and you will find the following tag.

<SharePoint: DelegateControl ID="DelegateControl1" runat="server" ControlId="SmallSearchInputBox" />

To explain it fairly basically : ” You can replace delegates by some other control. So it gives you the possibility to load different controls into this location by activating feature(s) on your site. “.
This ‘switching’ between controls, is actually how SharePoint 2007 handles the difference in search between the WSS and the MOSS versions. When you have MOSS installed you have a more advanced search functionality than when you only have the free WSS version. Depending on the SharePoint version installed (actually what feature is activated), SharePoint replaces the searchbox with a more ‘advanced’ version.

Creating the feature.

Note: This part assumes that you already have a feature that you can modify.

To keep it simple we are going to replace the SmallSearchInputBox delegate by a usercontrol without any logic (code) behind it. To keep it simple our usercontrol only exists out of standard HTML.

  1. We will replace the searchbox with the text ‘ex-searchbox’. This to make it clear that it’s actually replaced. You can ofcourse remove the text or replace it by something else.
  2. Create a new text file and paste the following inside.
    <%@Control Language="C#" AutoEventWireup="true" %>
    ex-searchbox
  3. Save the file and rename the file to myEmptyControl.ascx
  4. Go to the ‘controltemplates’ folder ({12-hive}\TEMPLATE\CONTROLTEMPLATES).
  5. Create a new folder to put your custom usercontrols in. In my case the folder is ‘lawo’
  6. Copy your usercontrol into this folder.
    Note: Please use wsp solution files for proper deployments!!!
  7. Open the elements file of your feature.( this article assumes you know how to create one)
  8. In the elements.xml in the elements node of your feature you define the following line:
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
        <Control Id="SmallSearchInputBox" Sequence="24" ControlSrc="~/_controltemplates/lawo/myEmptyControl.ascx" />
    </Elements>
  9. Deploy the feature on your server.
  10. Do an iisreset.
  11. Activate your feature on the website.
  12. Go to the homepage of the site.
  13. The searchbox should be replaced by the text “ex-searchbox”.

Importance of SequenceId.

Notice that the sequenceId in step 6!
It defines what control has priority in case there are multiple features defined that ‘override’ the delegate control. If the SequenceId is too high the default SharePoint search controls might overrule yours.

I looked up the lowest sequence number used for this Delegate control by searching inside the files of the {12-hive}\TEMPLATE\FEATURES folder.  If you look in the folder of the ‘OSearchEnhancedFeature’  and open the file searcharea.xml. You will see that the SmallSearchInputBox is defined with a sequenceId 25. I took SequenceId 24 for my control (one lower) so it overrides the SearchBox in all the SharePoint versions.

Hope this helps. Feel free to leave comments.
–W

On the MSDN site you can find more information under “Control Templatization”.

Read Full Post »

Follow

Get every new post delivered to your Inbox.