In-Depth
Cover Story: Office Alignment
Why Office 2010 and SharePoint 2010 are poised to unleash a new wave of developer innovation.
It didn't take long for the combination of Visual Studio 2010 and SharePoint Server 2010 to capture the attention of ISV E•Sponder LLC. The Missouri-based provider of disaster response and emergency planning solutions is hosting its software on SharePoint 2007, and before that the company used SharePoint 2003. With the May 12 release of Office 2010 and SharePoint 2010, E•Sponder President and CEO Robert Wolf says some long-awaited pieces have finally fallen into place.
The company is preparing to release its new Crime Fighter product, a platform for crime scene data entry and visual data analysis, leveraging SharePoint 2010 and Office 2010 Business Connectivity Services (BCS). Wolf credits the combination of Visual Studio 2010 and SharePoint 2010 for making the new product -- currently in beta testing with the Tampa Police Department -- possible.
"In the case of Crime Fighter, we've had a desire to build something like this for about five years now," Wolf says. "The confluence of huge advances in Web-based geographic information systems, SharePoint BCS and the ever-growing capabilities of InfoPath Forms Services have finally come together to make it practical for us to offer this as a more or less turnkey solution."
Wolf says previous iterations of Office and SharePoint forced E•Sponder to craft complex workaround frameworks or make "significant architectural capability compromises." He explains: "As an ISV we need to build applications [that] can readily connect to whatever LOB [line-of-business] environment the customer may have, without extensive custom development. This one really just snapped together in 2010."
Tooling Focus
A lot of development organizations are reaching the same conclusion.
Coming about a month after the release of Visual Studio 2010, both Office 2010 and SharePoint 2010 significantly advance application development targeting the two platforms. Office brings improvements in the areas of application deployment and access to disparate data sources over BCS, while SharePoint boasts major improvements in data handling and rich integration with the Visual Studio development stack.
"Perhaps the most important advance in Visual Studio 2010 in terms of business productivity solutions is the addition of SharePoint development tools," says John R. Durant, senior product manager in the Microsoft Office Group. "The bottom line is that the Office 2010 and SharePoint 2010 platform story we talk about to non-developers is now fully represented in Visual Studio, where developers create platform solutions."
Bola Rotibi, principal analyst for U.K.-based analyst firm MWD Advisors, praises the work Microsoft has done in bringing development up to grade with SharePoint 2010. But she says Microsoft had little choice but to fix what she calls the "nasty development experience" under SharePoint 2007 and Visual Studio 2008.
"They really had to push SharePoint; they really had to bring that in line," says Rotibi.
Arpan Shah, director of SharePoint Products and Technologies at Microsoft, says Microsoft did exactly that with SharePoint 2010. "In 2010, the developer was a core segment that we looked at," Shah says. "We were really building on the giants of .NET and SQL as we started to build SharePoint as a platform. With the 2010 release it becomes a first-class developer platform for a number of reasons."
Those reasons include extensive work in Visual Studio 2010 to bring SharePoint to parity with established development approaches like ASP.NET and Windows Presentation Foundation (WPF). For instance, SharePoint project templates are now accessed from the same explorer interface as ASP.NET and Windows Forms projects,
and SharePoint developers enjoy access to all the QA/test functionality in the Visual Studio stack. SharePoint projects also gain access to a true F5 experience, with one-click build/debug/deploy. The ability to develop SharePoint applications on a Visual Studio-equipped client, rather than a SharePoint Server-based system, also removed a major obstacle to development.
Wolf, of E•Sponder, says his team is writing Crime Fighter in C# under the Microsoft Solutions Framework (MSF) Agile 4.0 development process. The project is managed using Team Foundation Server (TFS) 2010.
"We're retooling toward MSF Agile 5.0 now," Wolf says. "The Visual Studio portions were constructed using a combination of our homegrown tooling and the new 2010 Managed Extensions for SharePoint."
Another major improvement in Visual Studio 2010 is the integration of the Managed Extensibility Framework (MEF), a platform for enabling composable applications by allowing applications to discover available components and resources. Using the MEF, developers can craft components that integrate with Visual Studio and enable rich, purpose-built functionality.
Gains like these have made a huge difference, Wolf explains. "The difference, frankly, is night and day. It's obvious the Visual Studio and SharePoint teams are collaborating heavily and recognized the huge gap in the prior tooling," he says. "There are still gaps, but the existing tools -- coupled with the adoption of the MEF -- ensure the gaps are readily fillable in an integrated and composable manner."
The SharePoint Surge
The surge in interest in SharePoint development is as much about the robust new tooling in Visual Studio 2010 as it is about the expanded, application-savvy feature set of SharePoint itself. Both SharePoint and Office 2010 add BCS for linking SharePoint and Office apps with diverse back-end systems like SQL Server, Microsoft Dynamics CRM and SAP, among others. SharePoint also boasts a version of LINQ (SP LINQ) for efficiently querying SharePoint data.
Lee Garf, vice president of product management for the SharePoint Solutions Group at Parametric Technology Corp. (PTC), says his company relied heavily on the BCS capabilities of SharePoint to enable functionality in its Windchill engineering and product development process solution.
"PTC was especially interested in the new social-computing features in SharePoint 2010 and the advanced capabilities of BCS," Garf says. "Without the new capabilities in SharePoint 2010, we would've had to build these capabilities ourselves."
There were early challenges. "Initially we were confounded with the new user model and how it maps Visual Studio concepts to SharePoint," says Garf, citing thin documentation during the beta cycle. "But once we understood it, it's been fantastic."
The new SharePoint Client Object Model (OM) allows developers to write Silverlight, JavaScript or Microsoft .NET Framework-based client applications that access SharePoint data and integrate with the SharePoint environment. SharePoint can now easily host a WinForms- or WPF-based .NET application or a JavaScript app running inside a SharePoint Web Part.
Spanish Point Technologies Ltd., maker of LookupPoint software, has been updating its solution for SharePoint and Office 2010. LookupPoint enables streamlined workflow and information access by enabling Office users to immediately access and preview detailed information related to what's presented in Office documents. For instance, a worker can hover a mouse over an invoice number in an Outlook e-mail, see a quick preview of data related to the invoice, and click through to a detailed full report.
Spanish Point leveraged the SharePoint Client OM to support SharePoint as a data source within its solution, so customers could expose SharePoint information alongside data from LOB systems.
"The new SharePoint Client OM provides a great way for us to integrate with SharePoint. This is a much richer way of integrating with SharePoint than the Web services that were available in SharePoint 2007," says John Corley, CTO for Spanish Point. "It takes less code and you don't have to spend lots of time building up classes in your client code just to call the Web service."
For Vishwas Lele, CTO for consultancy Applied Information Services, SharePoint 2010 is being used to update an in-place records management system based on Microsoft Office SharePoint Server (MOSS) 2007.
"The project was already implemented in MOSS 2007, but with significant customizations to implement a global metadata taxonomy and in-place records management. There was no existing global retention policy," Lele explains. "SharePoint 2010 implements many of the features, which reduced the amount of customizations required and time to implement a more complete [records management] solution than what currently exists in MOSS 2007."
Lele says his team leveraged the in-place records management, enterprise content types and managed metadata services features of SharePoint 2010. He says there was some complexity in working with new resources like Managed Metadata Term Stores and Term Sets.
"This was entirely new OM code to learn and understand," Lele says, adding: "Microsoft provided significant support in this area by providing code samples and reviewing code to support the project."
Shah, of Microsoft, says developers should leverage the SharePoint developer framework to build rich apps so they can better focus on the business logic. "By using the out-of-the-box pieces, developers won't have to worry about the plumbing longer term," Shah says, offering SharePoint's ability to run sandboxed apps as an example.
SharePoint 2010 sandboxing enables apps to run in a limited-trust environment -- useful both for legacy code and hosting third-party solutions. Sandboxed code can also be readily deployed to the Microsoft SharePoint Online service in the cloud, giving SharePoint applications a level of portability. The Microsoft SharePoint 2010 Online service is scheduled to go live in the second half of 2010.
There's a lot to like for developers in the latest version of SharePoint. Jason Beres, vice president of product management for component-maker Infragistics, has been following developments in the Office and SharePoint development space with interest. He says Microsoft has made tremendous progress in reducing the amount of work developers do for common tasks, particularly around data and deployment.
"The core things we focus on here are deployment and the ability to work with data: edit data, delete data, update data. That's an enormous amount of code in 2007 that just goes away," explains Beres, who says data access projects that took a month in SharePoint 2007 can now be achieved in two days.
"You're dealing with services; you're not so concerned with the SharePoint code as you are just working in your normal .NET code -- manipulating data, displaying data and pushing it back through a Web service," he explains.
The Office Outlook
While SharePoint 2010 has enjoyed an extensive developer makeover, Office 2010 emerges with more limited -- but still real -- benefits for the development community. Unsurprisingly, Beres says dev shops will be slower to target application development for Office 2010 than SharePoint 2010, despite new social networking tie-ins and data-centric features like PowerPivot.
"I think there are a lot of cool stories, but I think it will be some time before it can soak in. Everyone probably has always been fairly happy with Office and what it delivers for them, so they don't expect anything more," Beres says, adding that Microsoft did a lot to boost application development with Visual Studio 2008 and Office 2007.
One area of Office that did need cleaning up was the use of primary interop assemblies (PIAs) for managed code applications calling Office COM resources. PIAs act as a bridge that allows developers to execute managed .NET code against native COM APIs. The problem is that Office application developers must deploy PIAs, which are themselves essentially large collections of APIs, along with their client applications.
Jay Schmelzer, program manager on the Visual Studio Team at Microsoft, singles out PIAs as an important improvement to the tool stack for Office development in this month's VSInsider column ("Raising the Bar"). "By eliminating the need for PIAs, developers can dramatically reduce the size and complexity of their deployment packages -- saving them time and resources," he explains. For more on PIAs in this issue, see the Type Equivalence Support section in this month's On VB column, "What's New in Visual Basic 2010".
Microsoft Senior Product Manager Durant also singles out the native Office file formats, and the programmability aspects of the new Open XML SDK 2.0. Developers can craft server- or client-side applications that interact with Open XML Office document and data files, enabling a host of document processing scenarios.
"With the SDK, developers now have direct, element-level access to document content. It's great for enabling solutions to extract, examine or modify a document's contents," Durant says.
Still, says Durant, there are times when developers will want to turn directly to the Office APIs. While the SDK makes it easy to push data into an Excel spreadsheet file, for instance, he says developers will want to turn to the Excel APIs to kick off complex calculations. "This is when using code against the Office APIs comes back into play, and we continue to encourage and support programming Office applications in that way," Durant says.
"Additionally, we've added the programmable Backstage view across the broad set of applications, and that's a new opportunity for developers to tailor the user interface much like the Ribbon," Durant continues. "At the same time, we've added new API members in each of the applications to accommodate new user features such as Excel Sparklines and slicers, or new media control features in PowerPoint. We've made analogous changes in Word, Outlook, OneNote, Project, etc."
Sparklines are cell-based data charting and visualizations, while slicers are useful filter controls that float above the spreadsheet interface. The Office 2010 Backstage view is a new interface element that enables Office 2010 to better expose complex or little-used functionality that doesn't surface intuitively in the document or the Ribbon UI. In a blog post, Microsoft Senior Program Manager Clay Satterfield offers examples like permissions, versioning, workflows and other activities that are assigned to the Backstage View.
The updated LookupPoint software from Spanish Point taps into enhancements of the Office 2010 Research pane interface to improve performance and user experience.
"It was possible to significantly improve the speed of doing a lookup, in terms of user clicks required, and it was also possible to provide the preview of entities when the user hovered [the mouse] over it. We could achieve this without needing a client-side component for our solution," says Spanish Point's Corley.
Ultimately, the refinements to Office, particularly in the area of application deployment and cloud-savvy services, make Office 2010 a relevant app dev target. MWD analyst Rotibi credits the steady maturation of the underlying .NET Framework for improving the appeal of Office as a target for development.
"It's taken a long time, but I think everything went well as a platform when Microsoft started leveraging Windows Presentation Foundation, Windows Workflow Foundation and the rest," says Rotibi. "There has been a unification of the underlying platform, and that has allowed them to bring things forward in a much stronger and unified way."