Saturday, May 15, 2010

New SharePoint 2010 Features Part 3 – Development Features

Development Features

In this part of this continuing series I am going to look at many of the new development features available to us in SharePoint 2010.

Client Object Model (Reference)

SharePoint 2010 provides a new client object model that allows us to access SharePoint data and features from remote machines or processes. We now have three new client APIs which we can use to access and utilize features and functionality of SharePoint 2010:

  • SharePoint 2010 can be accessed from .NET 3.5 or Higher
  • Can be accessed from Silverlight 2.0 or higher
  • ECMAScript (Javascript, Jscript) on the client site in a browser

Note this provides rich, but subset, of the SharePoint API.

Client Object Model Thoughts

I am personally very excited to see this as a developer because up to this point a lot of engineering work was required to utilize these web services to achieve sometimes what would be considered a simple operation if the code was using the SharePoint API.

What this enables us to do is access SharePoint data more quickly and easily from remote machines. We no longer have to only use SharePoint web services to access data. This allows us to rapidly create more seamless .NET solutions with SharePoint. I know it can be considered a more elegant solution to using SharePoint Web Service to retrieve SharePoint data from across application boundaries or domains. However there are still many ways you can architect a solution ensure there is strong decoupling maintained.

Seriously the ease getting data from lists and using that data in external processes using this new client object model is a game changer in my book. I have had so many instances where I have had to create solutions and wanted to use the SharePoint API, and had to host parts of that solution directly in SharePoint just when really did not need to. Now if I have custom ASP.net application, a web service connected to an InfoPath form, etc. I can simply use this API to integrate with SharePoint 2010.

Event Improvements (Reference)

What Microsoft means when referring to "New Event Improvements" are the events that are available to developers to create customizations to out of the box behavior. Typically in SharePoint 2007 this was adding an event handler to a SharePoint list for when a new item is added, deleted, checked out, etc.

So some of the new events that are available to us are:

  • New event handlers for when lists are added or deleted.
  • New event handlers for when before sites are created and after they have been provisioned.
  • Synchronous After Events. If you are a developer you will know that the default behavior that before events are synchronous and after events are asynchronous. Now you have the ability to make after events synchronous too so that you complete an operation after a list item has been committed to the database but before the user sees it in the list.
  • To support the new events for list and web events, events that typically could not be bound to the Site Collection level now can be.
  • Running under elevate privileges is commonplace to perform actions but when doing this you did not have access to the originating user. With SharePoint 2010 we now have access to this user.
  • Event Error page now allows developers to handle unexpected errors more gracefully than before.

New Event Improvements Thoughts

Many of these features really do not benefit the everyday business user however they really help developers create better solutions.

Alerts Enhancements (Reference)

The new important thing that is being supported is mobile messaging with Short Message Service (SMS) messages.

Alerts Enhancements Thoughts

This is really important because we all know how important mobile computing is for both consumers and business users. Better support of communication of content within SharePoint over mobile platforms is critical for the short-term success of SharePoint.

Mobile Device Development Enhancements (Reference)

For SharePoint 2010 there is greater support for mobile devices. We have already discussed SMS messaging is now supported. Along with we now have the ability to create mobile pages that function just like standard web part pages. This is supported through mobile adapters. A mobile adapter can be created for any web part that you write and most of the major web parts out of the box come with mobile adapters. Simply map mobile adapters to web parts on existing pages and when a mobile device accesses the web page, the web part page with the mobile web parts will be displayed.

As well, with SharePoint 2010 there several new mobile page templates and over 60 new public mobile controls. As well, there are new Mobile Document Viewers that enable users to open documents from document libraries on their device without having traditional desktop application installed.

Mobile Device Development Enhancements Thoughts

As I mentioned before business computing from mobile devices is only going to continue to grow over the next two years because they are not longer just viewed as communications tools for email or surfing the internet. It is imperative that SharePoint be able to support the sort of functionality that is being provided.

Query Enhancements (Reference)

SharePoint 2010 provides numerous new ways to access data that we did not have in previous versions of SharePoint. CAML queries are fine but the syntax could be challenging at times, especially if the queries had to be dynamic. This typically pushed developers down the path of using the SharePoint API to do "queries" however this could lead to other issues. How we have:

  • LINQ to SharePoint provider that will translate to CAML.
  • Ability to use client side code to perform queries. The new client object model can run either LINQ or CAML queries.
  • ADO.NET Data Services Framework provides to query content databases.

It was noted by Microsoft to avoid using the SharePoint Data Providing Web Services as better performance can be realized by using the client object model of ADO.net Data Services Framework. The web services will continue to be supported for interoperability and backwards compatibility.

Query Enhancement Thoughts

From a developer standpoint this is extremely exciting to see that SharePoint content and data is more quickly accessible than in previous versions of SharePoint. We now have the ability to use SharePoint data pretty much anywhere in the SharePoint stack by simply just referencing the SharePoint dll.

Ribbon

SharePoint now has a Server Ribbon which is the primary location where users can initiate commands from. The concept is identical to the MS Office 2007 Ribbon.

Ribbon Thoughts (Reference)

From what I have seen this is a great new way for users to initiate commands in SharePoint. In SharePoint 2007 there were several different places where menu items would be placed sometimes creating confusion. The ribbon concept as well allows new users to easily transition into using SharePoint based on their MS Office experience.

Service Application Framework (Reference)

The Service Application Framework provides developers with a platform in which they can build middle tier applications that can be hosted within SharePoint 2010. Services developed with this framework can be utilized natively within existing SharePoint features – like being centrally hosted, load balanced, claims based security, etc. As well they can take advantage of SharePoint 2010 administration as they can be managed in central administration just like any of the out of the box services, can upgrade packages created, made part of backup/restore and hook into account management. You can even build custom administration pages and host them in Central Admin.

Microsoft has used the Service Application Framework to develop their services like SharePoint Search. This framework is meant to replace the SSP of SharePoint 2007.

Service Application Framework Thoughts

This is again very exciting to see as it will open up a new market for Microsoft partners build solutions that can be hosted in SharePoint 2010. This can significantly reduce cost to create or purchase custom solutions as the entire SharePoint platform can be leveraged.

Silverlight Integration and Cross-Domain Data Access (Reference)

SharePoint 2010 now provides a web part that is made specifically for hosting Silverlight applications. This was possible on SharePoint 2007 however this has been made significantly easier with SharePoint 2010. All that needs to be done is deploy the Silverlight application and simply reference the URL to where it is hosted. If the Silverlight application accesses SharePoint data and is hosted in a different web domain a configuration file is needed.

In correlation with this there is Silverlight Cross-Domain Data Access (Silverlight CDA) which supports secure integration between SharePoint and Silverlight applications that reside on different domains. .

Silverlight Integration and Cross-Domain Data Access Thoughts

I am not sure if my description above does this justice but SharePoint 2010 and Silverlight integration is a game changer for delivery of custom solutions within SharePoint. Sometimes building custom applications with web parts does not always work well but Silverlight provides a platform to build Rich Internet Applications that can be easily accessible through SharePoint. I recently had a client who wanted to migrate off of Oracle Forms to save licensing costs and to reduce their desktop footprint. We recommended Silverlight because the new solution had to be web accessible, needed to support complex/dynamic data entry screens, and have little desktop footprint. ASP.net or WPF could not satisfy these requirements however Silverlight can. Now this new application can be embedded right into their Intranet providing users with a completely seamless user experience. I am really excited to see how this will be used.

UI Enhancements (Reference)

There are numerous, significant user interface enhancements that have been made to SharePoint 2010. For instance a new ribbon has been added to the screen which has an identical user experience to that of Office. Custom commands can be easily integrated into this framework. Second application pages now reference the site master pages which as not the case in SharePoint 2007. Third CSS has been significantly revamped and divided into multiple files to enable better customization and loading performance.

UI Enhancements Thoughts

Again the improvements to the athletics of SharePoint 2010 have been pretty good. It is more of a refinement of SharePoint 2007 which was a significant jump when compared to SharePoint 2003.

Custom Field Rendering Enhancements (Reference)

When building a custom list or refining an existing one, there was a file in WSS 3.0 called fldtypes*.xml which was used to control how fields were rendered on the Display, Edit, and New pages as well as Site Column, Change Site Column, Create Column, and Change Column pages. For SharePoint 2010 fields will be rendered on list view pages by using XSLT stylesheets.

Custom Field Rendering Enhancements Thoughts

This again is something more developers and just a change in the way custom fields will be defined. Only thing that you should consider is you are migrating custom solutions built for 2007, even though there is backwards compatibility, you should consider maybe refactoring the solution for 2010.

No comments: