Building an Office Business Application for TechReady 8
The last week I've been working with a couple teammates on an Office Business Application (OBA) demonstration we wanted to put together for TechReady 8. TechReady is an internal conference we deliver to the field employees. It's my first one and so far it's been pretty fun. This morning Scott Hanselman hosted an "UnKeynote" that showcased a lot of the new stuff coming in Visual Studio 2010 that I can't talk about yet but believe me it was cool. ;-)
The application I helped build with Rachel and Mike on my team was a total blast. We wanted to demonstrate using Office as a client to Line-of-Business data as well as show some of the nifty features of SharePoint workflows. So we decided it was time to bring poor Northwind Traders into the 21st century. Here's what we came up with:
We needed a way to easily and securely expose our LOB data -- the Northwind database -- to the enterprise. So we created an entity data model against our SQL Server Northwind database and then exposed it using ADO.NET Data Services . The Northwind sales reps do all of their work in Outlook, communicating with our high-volume customers. So we built an Outlook Add-in that they can use to look up the customer order history from the database and easily work with purchase orders. The Add-in displays a form region with the customer order history in an adjoining area below when they open the email.
The orders are then submitted to a SharePoint document library as Word 2007 documents with XML data specified via content controls. A SharePoint Workflow then shreds this document data (using VB XML literals support and the Open XML SDK) and passes it to the ADO.NET data Service which persists the data in the database. This was written as a SharePoint sequential workflow.
We also built an Excel client for our shipping department to use that displays the orders that are ready to ship which allows them to update the ship date and save it back to through the data service. It also shows the products and quantities ordered in an Action Pane and does some data analysis using a pivot table and pie chart to show the breakdown of shipping cities and freight cost. We also used WPF user controls in the Outlook and Excel clients so that we could match the look-and-feel of Office.
Finally we created a web part for the SharePoint site that displays key performance indicators like oversold products and our top customer sales.
I have to say it was a very fun project to work on and I personally learned a lot about Excel and WPF as well as the OBA architecture. We spend about 3 days building this and I was pleasantly surprised how well the tools worked together. The pieces we built were predominantly in Visual Studio 2008 by Rachel and I and Mike handled the bleeding edge SharePoint parts.
In the next few blog posts I'll go into the details of building WPF user controls in the Excel and Outlook clients and how we exposed a simple, clean data model against the not-so-clean Northwind database. I'll also show the technique of how we easily stripped the order data out of the Word 2007 documents.
For now, some good links on OBA and VSTO development:
- Office Development Videos
- Office Development with Visual Studio
- ADO.NET Data Services - Building an Excel Client
- Office Development with Visual Studio Team Blog
Until next time....
UPDATE - Here is the full set of articles and code: https://code.msdn.microsoft.com/OBANorthwind
Comments
Anonymous
February 02, 2009
PingBack from http://www.clickandsolve.com/?p=3072Anonymous
February 02, 2009
The comment has been removedAnonymous
February 02, 2009
An interesting OBA scenario...Anonymous
February 03, 2009
Will the source be available later?Anonymous
February 03, 2009
Yep, I'll be writing a series of posts on how we built it and will show the code.Anonymous
February 03, 2009
The comment has been removedAnonymous
February 03, 2009
Hi Beth, I just visited LEAP were a similar example was presented! Very cool. I'm puzzled on one thing (i know it's a sample but...) why is the Excel sample there? Why not implement it in Sharepoint?!Anonymous
February 04, 2009
Hi Sander, We're using Excel because we thought it would be easier to quickly edit the data rows in a tabular format as well as allow them to do any kind of additional anaylsis on the data. And yes, it's a sample so we wanted to show document-level customizations in Excel ;-). -BAnonymous
February 07, 2009
In the last couple posts we've been talking about an Office Business Application (OBA) architecture forAnonymous
February 07, 2009
In the last couple posts we've been talking about an Office Business Application (OBA) architectureAnonymous
February 25, 2009
The comment has been removedAnonymous
February 25, 2009
The comment has been removedAnonymous
February 25, 2009
The comment has been removedAnonymous
February 25, 2009
The comment has been removedAnonymous
February 25, 2009
The comment has been removedAnonymous
February 25, 2009
The comment has been removedAnonymous
February 26, 2009
The comment has been removedAnonymous
February 26, 2009
The comment has been removedAnonymous
July 10, 2013
Hi Beth, Thank you very much for the Wonderful article. The Sales Rep creates the Purchase Order Word document I wondering that instead of Word document is it possible create custom form in Outlook itself and send it to SharePoint PO List. Is it possible, please let me know. Thank you Sri