Category Archives: sharepoint

Microsoft OneDrive and OneDrive for Business: a guide for the perplexed

Microsoft’s price plans for additional cloud storage are odd:

image

Hmm, £1.60 per month for 1TB or £3.99 for 200GB. Difficult decision? Especially as OneDrive for Business appears to be a superset of OneDrive:

image

It is not that simple of course (and see below for how you can get 1TB OneDrive for less). The two products have different ancestries. OneDrive was once SkyDrive and before that Windows Live Folders and before that Windows Live Drive. It was designed from the beginning as a cloud storage and client sync service.

OneDrive for Business on the other hand is essentially SharePoint: team portal including online document storage and collaboration. The original design goal of SharePoint (a feature of Windows Server 2003) was to enable businesses to share Office documents with document history, comments, secure access and so on, and to provide a workplace for teams. See the history here. SharePoint supported a technology called WebDAV (Web Distributed Authoring and Versioning) to allow clients to access content programmatically, and this could be used in Windows to make online documents appear in Windows Explorer (the file utility), but there was no synchronization client. SharePoint was not intended for storage of arbitrary file types; the system allowed it, but full features only light up with Office documents. In other words, not shared storage so much as content management system. Documents are stored in Microsoft SQL Server database.

SharePoint was bolted into Microsoft BPOS (Business Productivity Online Suite) which later became Office 365. In response to demand for document synchronization between client and cloud, Microsoft came up with SharePoint Workspace, based on Groove, a synchronization technology acquired along with Groove Networks in 2005.

I have no idea how much original Groove code remains in the the OneDrive for Business client, nor the extent to which SharePoint Online really runs the same code as the SharePoint you get in Windows Server; but that is the history and explains a bit about why the products are as they are. The OneDrive for Business client for Windows is an application called Groove.exe.

OneDrive and OneDrive for Business are different products, despite the misleading impression given by the name and the little feature table above. This is why the Windows, Mac and Mobile clients are all different and do different things.

OneDrive for Business is reasonable as an online document collaboration tool, but the sync client has always been poor and I prefer not to use it (do not click that Sync button in Office 365). You may find that it syncs a large number of documents, then starts giving puzzling errors for which there is no obvious fix. Finally Microsoft will recommend that you zap your local cache and start again, with some uncertainty about whether you might have lost some work. Microsoft has been working hard to improve it but I do not know if it is yet reliable; personally I think there are intractable problems with Groove and it should be replaced.

The mobile clients for OneDrive for Business are hopeless as DropBox replacements. The iOS client app is particularly odd: you can view files but not upload them. Photo sync, a feature highly valued by users, is not supported. However you can create new folders through the app – but not put anything in them.

Office on iOS on the other hand is a lovely set of applications which use OneDrive for Business for online storage, which actually makes sense in this context. It can also be used with consumer OneDrive or SharePoint, once it is activated.

The consumer version of OneDrive is mostly better than OneDrive for Business for online storage. It is less good for document collaboration and security (the original design goals of SharePoint) but more suitable for arbitrary file types and with a nice UI for things like picture sharing. The Windows and mobile clients are not perfect, but work well enough. The iOS OneDrive client supports automatic sync of photos and you can upload items as you would expect, subject to the design limitations of Apple’s operating system.

Even for document collaboration, consumer OneDrive is not that bad. It supports Office Web Apps, for creating and editing documents in the browser, and you can share documents with others with various levels of permission. 

What this means for you:

  • Do not trust the OneDrive for Business sync client
  • Do not even think about migrating from OneDrive to OneDrive for Business to get cheap cloud storage
  • No, you mostly cannot use the same software to access OneDrive and OneDrive for Business
  • Despite what you are paying for your Office 365 subscription, consumer OneDrive is a better cloud storage service
  • SharePoint online also known as OneDrive for Business has merit for document collaboration and team portal services, beyond the scope of consumer OneDrive

Finally, what Microsoft should do:

  • Create a new sync client for OneDrive for Business that works reliably and fast, with mobile apps that do what users expect
  • Either unify the technology in OneDrive and OneDrive for Business, or stop calling them by the same name

I do understand Microsoft’s problem. SharePoint has a huge and complex API, and Microsoft’s business users like the cloud-hosted versions of major server applications to work the same way as those that are on premise. However SharePoint will never be a optimal technology for generic cloud storage.

If I were running Office 365, I think I would bring consumer OneDrive into Office 365 for general cloud storage, and I would retain SharePoint online for what it is good at, which is the portal, application platform, and document collaboration aspect. This would be similar to how many businesses use their Windows servers: simple file shares for most shared files, and SharePoint for documents where advanced collaboration features are needed.

In the meantime, it is a mess, and with the explosive growth of Office 365, a tricky one to resolve without pain.

Microsoft has a relatively frank FAQ here.

Postscript: here is a tip if you need large amounts of OneDrive storage. If you buy Office 365 Home for £7.99 per month or £79.99 per year (which works out at £6.66 per month) you get 1TB additional storage for consumer OneDrive for up to 4 users, as well as the main Office applications:

image

The way this works is that each user activates Office using a Microsoft account. The OneDrive storage linked to that account gets the 1TB extra storage while the subscription is active.

Another option is Office 365 Personal – same deal but for one user at £5.99 per month, or £59.99 per year (£4.99 per month).

Even for one user, it is cheaper to subscribe to Office 365 Home or Personal than to buy 1TB storage at £3.99 per month per 200GB. When you add the benefit of Office applications, it is a great deal.

Despite the name, these products have little to do with Office 365, Microsoft’s cloud-hosted Exchange, SharePoint and more. These are desktop applications plus consumer OneDrive.

Microsoft Build Sessions published: Windows Phone XAML and HTML/JS apps, new Azure APIs and more

Developing for Windows Phone is now closer to developing for the Windows 8 runtime, according to information from Microsoft’s Build sessions, just published.

Build is Microsoft’s developer conference which opens tomorrow in San Francisco.

image

Building a Converged Phone and PC App using HTML and JavaScript states that “An exciting part of Windows Phone 8.1 is that you can now start building applications natively in HTML and JavaScript.”

Other sessions refer to the Common XAML UI Framework, which seems to refer to a shared UI framework for Windows Phone and WIndows 8, but using XAML rather than HTML and JavaScript.

This is in addition to Silverlight, not instead, judging by this session:

We’ve been doing a lot of work with new converged XAML app support on Windows Phone 8.1, but what about legacy Windows Phone Silverlight XAML based apps?  Come learn about all the new features we’ve enabled with Silverlight 8.1.

Microsoft has also come up with new APIs for applications that integrate with its Azure cloud platform and with Office 365. The Authentication library for Azure Active Directory lets you build both Windows and mobile applications that authenticate against Azure Active Directory, used by every Office 365 deployment. There is also talk of using Azure for Connected Devices, meaning “Internet of Things” devices using Azure services.

Some other sessions which caught my eye:

Connected Productivity Apps: building apps for the SharePoint and Office 365 platform.

What’s new in WinJS: the road ahead. XAML vs HTML/JS is a big decision for Windows developers.

Anders Hejlsberg on TypeScript

Automating Azure: “The Azure Management Libraries and Azure PowerShell Cmdlets allow this type of automation by providing convenient client wrappers around the Azure management REST API”

Authentication library for Azure Active Directory: The Active Directory Authentication Library (ADAL)

Panel discussion on desktop development: is there a future for WPF? Maybe some clues here.

Miguel de Icaza gets a session on going mobile with C# and Xamarin. I recall when de Icaza ran sessions on Mono, the open source implementation of the .NET Framework which he initiated shortly after Microsoft announced .NET itself, in nearby hotels at Microsoft events; now he is inside.

Learning from the mistakes of Azure: Mark Russinovich on what can go wrong in the cloud.

Looks like both cloud and apps for Windows Phone/Windows 8 are big themes at Build this year.

New features in Windows Azure, including web site backup, .NET mobile services

Microsoft has announced new features in Windows Azure, its cloud platform, described by VP Scott Guthrie on his blog.

Aside: I agree with this comment to his post:

Thank you Scott for update. I wish dozens of MS folks and MS representatives would have a clue about Azure roadmap to help businesses plan their release schedules / migration plans. Till that happens, this blog will remain the main source of updates and a hint of roadmap.

The changes are significant. ExpressRoute offers connectivity to Azure without going through the public internet. Currently you have to use an Equinix datacentre, Level 3 cloud connect, or an AT&T MPLS (Multiprotocol Label Switching) VPN. For enterprises that can meet the requirements and who are wary about data passing through the internet, or who want better connectivity, it is an interesting option.

Next up is backup and restore for Azure web sites. Azure web sites are a way of deploying web applications, ranging from free to multi-instance with automatic scaling. You need at least a Standard site for serious use, as I explained here.

Now you can set up scheduled backup for both the web site and a supporting database. The feature is in preview but you can try it now using the Azure web management portal.

image

I noticed a couple of things. One is that the storage account used must be in the same subscription as the web site. I also spotted this warning:

image

which states that “frequent backups can increase you database costs by up to 100%”. Still, it is a handy feature.

Azure mobile services, designed to supply data to mobile apps, has been extended to support .NET code (previously you had to use Javascript). If you download the code, notes Guthrie, you find that it is  “simply an ASP.NET Web API project with additional Mobile Service NuGet packages included.”

Mobile Services also have new support for notification hubs and for PhoneGap (a way of building mobile apps using HTML and JavaScript).

Another feature that caught my eye is easy linking of third-party apps to Azure Active Directory (which is also used by Office 365). For example, if you are struggling with SharePoint and its poor clients for Windows, iOS and Android, you might consider using Dropbox for business instead. Now you can integrate Dropbox for Business with your Office 365 user directory by selecting  it from the Azure management portal.

image

Colligo Briefcase: offline SharePoint for iPad and iPhone

I took a quick look at Colligo Briefcase, an offline SharePoint 2007 and 2010 client for the Apple iPad and iPhone. There is a free Lite version, limited to 50Mb and with cut-down features; Briefcase Pro which costs a modest $2.99; and Enterprise which adds centralized management.

SharePoint is a powerful collaboration platform, but Microsoft’s client support if you would rather not use a web browser is surprisingly poor. You are really meant to use Office, which of course does not exist on iOS, and even then the offline support is poor.

I used Briefcase Pro, which connected first time to my on-premise SharePoint server. I selected which lists and libraries to sync, and a few minutes later everything was available. Impressive. Better, in fact, than Microsoft’s own SharePoint Workspace on a PC; but that is not saying much.

image

Briefcase lets you easily preview Office documents. I am sure there are certain formatting or content types that do not work, but I found this effective for Word and Excel. OneNote is not supported for preview; a shame. I could not even get OneNote documents to open in OneNote on the iPad.

image

I confirmed that Briefcase works fine offline. In Airplane mode, I could still browse and preview documents.

I tried but was unable to connect to Microsoft’s SkyDrive. There may be a way. This would be useful, since Microsoft’s own SkyDrive app does not work offline.

My biggest concern with Briefcase is security. What if confidential documents are in SharePoint and the iPad or iPhone is stolen? Briefcase Enterprise has a remote wipe capability, but it is still a concern. You can set an additional PIN on the app:

image

More worrying though is how data can leak out of Briefcase into other locations. Imagine a user has an iPad and has agreed to Apple’s default settings for iCloud and Pages, the iPad word processor. In this mode, documents in Pages are automatically synched with iCloud.

Now the user wants to edit a Word document that is in Briefcase. She hits Open in … and selects Pages. Pages does not just open the document, it imports it. The user views or edits it in Pages. Now that document is sent to iCloud, and in due course will turn up on other iOS or Mac computers belonging to that user.

Another issue with Pages is that there is no easy way to get it back into SharePoint. Pages can use WebDAV, which should work, but must be configured separately. This may be why Colligo suggests Documents to Go. Supported apps have an Open in Briefcase option that enables upload.

The Enterprise edition of Briefcase lets administrators disable the Open in command to improve security. This is unfortunately necessary if you require any sort of security for SharePoint data accessed through Briefcase.

It is a shame there is no quick way to open a Briefcase document in the web browser. There is a Copy Link option, which you can paste into Safari, but you have to re-authenticate and it is not seamless.

A few niggles then; but given that most users will do more viewing than editing while on the go, Briefcase is an excellent and, for the Pro edition, low-cost way to use SharePoint offline.

Recovering documents from SharePoint 2010

I mentioned the other day that an update broke my SharePoint installation. The timing was bad as I was just about to leave the office for a few days, so as it turned out I did not get to focus on this properly until last weekend. This virtual server is backed up nightly. I restored from before the failure but it still did not work. Perhaps there was an update pending that was not fully applied until the server restarted, so that even my “good” backup was bad.

The error was frustrating. Accessing a SharePoint site got me a 503, service unavailable. I could run either psconfig or the SharePoint Configuration Wizard without error, but it still did not work. The event log showed a bunch of errors that made little sense to me, including those annoying DCOM activation errors, and database login errors when the accounts concerned had valid logins.

It was wasting too much time so I went for plan B. Reinstall SharePoint from scratch and restore the content database.

This was actually easier than I expected. I backed up WSS_Content using SQL Server Management Studio. I then removed everything SharePoint, and deleted a couple of remnants in IIS. Reinstalled and everything worked.

After that it was simply a matter of attaching the old content database. Well, nearly that simple. My first attempt failed because SharePoint was not fully patched and had an earlier schema than the content database. I manually downloaded and applied the latest SharePoint hotfix rollup. Then I attached the old content database to a new SharePoint site, and everything came up just as before.

I find this reassuring, as keeping documents as blobs in SQL Server is just a little scary from a recovery perspective.

Even if attaching the database were to fail, it is not too bad. You can write code to write out the documents to files and recover them that way. There are some clues here.

SharePoint security update stops SharePoint working

This morning I noticed that my test SharePoint 2010 installation was not working. Browsing to the site got me HTTP Error 503. The service is unavailable.

The problem seems to be related to the update KB2553365 which I noticed had been installed last night, following an initial failure.

image

Note this point in the description of the update:

After you install this security update on all SharePoint servers, you will have to run the PSconfig tool to complete the installation. For more information about how to use the PSconfig tool, visit the following TechNet webpage:

PSconfig command-line reference (SharePoint Foundation 2010)

In other words, if your server is set up update automatically, this update breaks SharePoint until you manually run the PSconfig utility which applies SharePoint updates.

Further, there is no automatic notification of this requirement. You have to figure it out.

SharePoint administrators know about PSconfig, but companies with Small Business Server or other small-scale environments are not always familiar with the problem.

Worse still, in my case PSconfig has not fixed it. I am restoring last night’s backup.

Farewell to Microsoft Small Business Server

Microsoft has announced pricing and licensing for Windows Server 2012. A dry topic perhaps; but one which confirms the end of a product with which I am perhaps too familiar: Small Business Server. It is spelt out in the FAQ:

Q33. Will there be a next version of Windows Small Business Server 2011 Standard?

No. Windows Small Business Server 2011 Standard, which includes Exchange Server and Windows server component products, will be the final such Windows Server offering. This change is in response to small business market trends and behavior. The small business computing trends are moving in the direction of cloud computing for applications and services such as email, online back-up and line-of-business tools.

The next question confirms that there will not be a new edition of Small Business Server 2011 Premium either. The official replacement is Windows Server 2012 Essentials, which is in effect the next version of Small Business Server Essentials. This handles local Active Directory, file sharing, local applications, and a connector to Office 365. However there is a 25 user account limit, whereas SBS standard supported up to 75 users, so there will be some businesses who are now forced to choose between moving to Windows Server Standard, or ditching the local server completely (which is often impractical).

image

Microsoft is pinning the reason on cloud computing, which makes some sense. Now and again I am asked by small businesses what sort of technology they should adopt; and my answer in general is to point them at either Microsoft Office 365 or Google Apps.

It is not quite clear-cut. A Small Business Server can theoretically work out cheaper, if you presume that it will not require any external maintenance. That is rarely the case though, and for most people the cloud-hosted option will be both cheaper and less troublesome.

What if you do need on-premise Active Directory, Exchange and SharePoint, which are the core components of SBS? Technically, there are in my opinion better ways to do this than with SBS. While SBS has always been excellent value for money, it is over-complex because it crams onto one box applications which are designed to run on separate boxes. It does work, but if anything goes wrong it is actually harder to troubleshoot than when you have separate servers. I prefer to see one Hyper-V box with separate Virtual Machines (VMs) for each major function, than SBS running on bare metal. VMs are also more flexible, and easier to restore if the hardware breaks.

Farewell then to SBS. I will remember it with some affection though. Think back to the nineties, when most email was POP3, and most internet was dial-up. People had problems like losing emails, because they had been downloaded to a desktop PC and they were out and about with a laptop. Moving to Microsoft Exchange, for which Outlook is the client, was bliss by comparison. Email synchronised itself to all your PCs, you could work offline, and Outlook for all its faults became a one-stop application for calendar, contacts and messages.

The beauty of SBS was that you could get Exchange along with the benefits of a Windows domain – one central directory of users and the ability to assign permissions to file shares – at a price that was more than reasonable.

I also think of SBS as a reliable product, when correctly installed. When it does go wrong it is often due to users trying to do stuff that does not quite work, or other applications which get installed on the same box, or hardware faults which users have attempted to fix by messing around with Windows, or anti-virus software misbehaving (Sophos! Confess!).

Microsoft is doing the right thing though. The SBS bundle makes little sense today, and if you do still need it, you can stick with the 2011 edition for a few years yet.

Wrestling with SharePoint and Office 365: code to bulk move documents

I have mixed feelings about SharePoint, Microsoft’s flexible but infuriating collaboration platform. It makes difficult things easy and easy things difficult, or something like that. Today’s story is an example, and may also be of interest if you are wondering how to write code that manipulates documents in SharePoint as found in Office 365.

The problem started when some contacts of mine who use Office 365 could not open a folder in Windows Explorer. They received a permission error along with the famous invitation to “Contact your network administrator to request access.”

image

The folder in question is actually a SharePoint folder which accesses Office 365 through WebDAV. I took a look, and found that, whatever the problem was, it had nothing to do with permissions. I also observed that there was no problem accessing the folder through the web browser; but like many users, these people prefer to use Explorer.

Next, I started moving files out of the troublesome folder into another one. I began to suspect that some rogue document was causing the error. This suspicion proved correct, but it was not easy to track down. The problem: the SharePoint web user interface does not provide any bulk copy or move option. If you want to move a bunch of documents, the recommended way is to use Windows Explorer, the exact feature that in this instance was not working.

Moving documents one by one through a laborious Web UI is no fun, so I then had the bright idea of writing some code to move the documents. This means taking a dive into the labyrinthine SharePoint API.

I was surprised how hard this is. Here is how I got started:

First, I downloaded the SharePoint SDK and run the setup. I chose to install only the Foundation help and samples.

Next, I created a new Windows Forms project in Visual Studio 2010. Note you must set the project to target the full .NET Framework 4.0, not just the Client profile

After that, I had to copy two DLLs from my own SharePoint 2010 server. These are in:

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI

I am surprised they are not included with the SDK.

After that, I looked for some code samples for the SharePoint Client Object Model. You can find this described here or consult the reference here. It is a capable API, but you soon realise why there is plenty of work for SharePoint specialists. ClientContext, CAML queries, FolderServerRelativeUrl: there is a lot to get your head around.

The first problem I had though was authentication. Office 365 uses claims-based authentication, whereas all the SharePoint API examples seem to assume you are on an intranet and already authenticated for your SharePoint server. Coding for claims-based authentication is a headache.

I tried code from here to authenticate against the Office 365 claims-based federation server, but with no success. It seems to be based on beta code and does not work now. I then read the official document on the subject here and downloaded the sample code. Here is what worked for me:

Add the ClaimsAuth project from the sample to my Windows Forms solution.

Modify this line in ClaimsWebAuth.cs:

Application.Run(DisplayLoginForm);

to this

DisplayLoginForm.ShowDialog();

the reason being that ClaimsAuth is designed for a console application.

Then I could run some basic Client Object Model code like this:

ClientContext cc = ClaimClientContext.GetAuthenticatedContext(url);

            if (cc != null)
            {
                cc.Load(cc.Web); 
                cc.ExecuteQuery(); 
                lbTest.Text = "Title: " + cc.Web.Title;
                cc.Dispose();
            }

All this does is to connect to the Office 365 SharePoint site at url and display its title – but if you can do that, you have got past the first hurdle.

Next I had to figure out how to move all the documents in one folder to another. Again, I found this tricky. I was able to list all the items in a library, which is the top-level folder for a collection of documents, but how do you list all the items in a subfolder? Something to do with CAML, it seems, also known as Collaborative Application Markup Language. Does anyone out there love CAML? I thought not. CAML queries are like SQL queries chopped up into XML elements.

Another characteristic of the Client Object Model is that you constantly have to call the Load and ExecuteQuery methods of your ClientContext object, otherwise you will get a PropertyOrFieldNotInitializedException. There is a good reason for this, as it reduces the amount of data passing over the wire, but it can also be perplexing.

Here is the code I ended up with, where “docs” is the top-level folder or library name,

if (cc != null)
            {
                cc.Load(cc.Web);
                cc.ExecuteQuery();
                var site = cc.Web;

                var lib = site.Lists.GetByTitle("docs");
               
                CamlQuery camlQuery = new CamlQuery();
                camlQuery.FolderServerRelativeUrl = @"/docs/path/to/sourcefolder";

                string camlQueryXml = "<View>" +
                    "<Query>" +
                      "<OrderBy>" +
                        "<FieldRef Name=’FileLeafRef’ Ascending=’True’ />" +
                      "</OrderBy>" +
                    "</Query>" +
                  "</View>";
 
                camlQuery.ViewXml = camlQueryXml;

                ListItemCollection lis = lib.GetItems(camlQuery);

                cc.Load(lis);

                cc.ExecuteQuery();
                ListItem FolderCF = null;
                foreach (ListItem li in lis)
                {

                    string sTitle = li.FieldValues["FileLeafRef"].ToString();

                  // you can inspect the title to see if you want to move the file,

                  //eg only those beginning with a letter in the first half of the alphabet

                    {
                        File thefile = li.File;

                        cc.Load(thefile);
                        cc.ExecuteQuery();

                        if (!li.File.ServerObjectIsNull.Value)
                        {
                            string dest = @"/docs/path/to/destfolder/" + thefile.Name;
                            thefile.MoveTo(dest, MoveOperations.Overwrite);
                            cc.ExecuteQuery();
                        }
                    }

                }

                cc.Dispose();
            }

Pretty simple? Maybe it is to a SharePoint guru; all I can say is that I did not find it intuitive.

Note that this is not intended as production code so if you borrow it please add exception handling etc. It was a quick hack to solve a problem.

The good news is that once I was able to move documents from folder to folder programmatically, I was able to troubleshoot the original problem. Mysteriously, there was one document which, if it was in a folder, caused the access denied error when opened with WebDAV. Once I isolated the document, I discovered that if I renamed it, the problem went away. Curiously, there are no special characters in the name, just letters and spaces, so this is something of a mystery.

Still, it was a useful exercise, especially since moving a batch of documents using the Client Object Model seems quicker than using Explorer and WebDAV.

What would you like to see in Microsoft Office 15?

Today brings the news that Microsoft Office 15 is now in Technical Preview (also known as private beta).

There is little news about what is in it other than this:

With Office 15, for the first time ever, we will simultaneously update our cloud services, servers, and mobile and PC clients for Office, Office 365, Exchange, SharePoint, Lync, Project, and Visio.

image

So what would you like to see in Office 15? Here are a few things on my wish list:

  1. Properly integrate SharePoint (and therefore Office 365) with Windows so that you can use it easily without ever opening a web browser. That might mean fixing SharePoint WorkSpace or doing something better, like Explorer integration without the various hassles associated with WebDAV.
  2. Fix Outlook, or better still replace it. I hear many complaints about Outlook, either concerning its performance, or else one of its many annoyances such as how hard it is to reply to an email while quoting sections of the original message – astonishing, when you consider the maturity of the product.
  3. Improve cross-platform support. Office on the Mac is poor compared to the Windows version, particularly in terms of performance. It is also time Microsoft came out with apps for iOS and Android for touch-friendly document editing.
  4. Update the user interface for touch control as far as possible. This will be critical for Windows 8 tablets, especially on ARM.
  5. Improve structured document editing in Word. Styles are hard to use, so are bullets and numbering. I tend not to use the paragraph numbering in Word because it is so fiddly and annoying.

The problem is that Office is a huge and intricate bag of legacy. The work Microsoft did in replacing the menus with ribbon toolbars was admirable in its way, and potentially more touch-friendly, but if you scratch the surface much is unchanged underneath. All the old commands remain.

Microsoft Office 365: the detail and the developer story

I attended the UK launch of Office 365 yesterday and found it a puzzling affair. The company chose to focus on small businesses, and what we got was several examples of customers who had discovered the advantages of storing documents online. We were even shown a live video conference with a jerky, embarrassing webcam stream adding zero business value and reminding me of NetMeeting back in 1995 – which by the way was a rather cool product. Most of what we saw could have been done equally well in Google Apps, except for a demo of the vile SharePoint Workspace for offline editing of a shared document, though if you were paying attention you could see that the presenter was not really offline at all.

There seems to be a large amount of point-missing going on.

There is also a common misconception that Office 365 is “Office in the cloud”, based on Office Web Apps. Although Office Web Apps is an interesting and occasionally useful feature, it is well down the list of what matters in Office 365. It is more accurate to say that Office 365 is for those who do not want to edit documents in the browser.

I am guessing that Microsoft’s focus on small businesses is partly a political matter. Microsoft has to offer an enterprise story and it does, with four enterprise plans, but it is a sensitive matter considering Microsoft’s relationship with partners, who get to sell less hardware and will make less money installing and maintaining complex server applications like Exchange and SharePoint. The, umm, messaging at the Worldwide Partner Conference next month is something I will be watching with interest.

The main point of Office 365 is a simple one: that instead of running Exchange and SharePoint yourself, or with a partner, you use these products on a multi-tenant basis in Microsoft’s cloud. This has been possible for some time with BPOS (Business Productivity Online Suite), but with Office 365 the products are updated to the latest 2010 versions and the marketing has stepped up a gear.

I was glad to attend yesterday’s event though, because I got to talk with Microsoft’s Simon May and Jo Carpenter after the briefing, and they answered some of my questions.

The first was: what is really in Office 365, in terms of detailed features? You can get this information here, in the Service Description documents for the various components. If you are wondering what features of on-premise SharePoint are not available in the Office 365 version, for example, this is where you can find out. There is also a Support Service Description that sets out exactly what support is available, including response time objectives. Reading these documents is also a reminder of how deep these products are, especially SharePoint which is a programmable platform with a wide range of services.

That leads on to my second question: what is the developer story in Office 365? SharePoint is build on ASP.NET, and you can code SharePoint applications in Visual Studio and deploy them to Office 365. Not all the services available in on-premise SharePoint are in the online version, but there is a decent subset. Microsoft has a Sharepoint Online for Office 365 Developer Guide with more details.

Now start joining the dots with technologies like Active Directory Federation Services – single sign-on to Office 365 using on-premise Active Directory – and Windows Azure which offers hosted SQL Server and App Fabric middleware. What about using Office 365 not only for documents and email, but also as a portal for cloud-hosted enterprise applications?

That makes sense to me, though there are still limitations. Here is a thread where someone asks:

Does some know if it is possible to make a database connection with Office365, SharePoint (Designer) and SQL Azure database ?

and the answer from Microsoft’s Mark Kashman on the SharePoint team:

You cannot do this via SharePoint Designer today. What you can do is to create a Silverlight or javaScript client application that calls out to SQL Azure.

In the near future, we are designing a way to make these connections using the base SharePoint technology called BCS (Business Connectivity Services) where then you could develop a service to service to SQL Azure.

If you cannot wait, check out the Cloud Connector for SharePoint 2010 from Layer 2 GmbH.

It seems obvious that Office 365 and Azure together have potential as a developer platform.

What about third-party applications and extensions for Office 365? This is another thing that Microsoft did not talk about yesterday; but it seems to me that there is potential here as well. It is not well integrated, but you can search Microsoft Pinpoint for Office 365 applications and get some results. If Office 365 succeeds, and I think it will, there is an opportunity for developers here.