Month: August 2012

Hybrid SharePoint Environments with Office 365 – What’s New?

Microsoft has released the second version of the Hybrid SharePoint Environments with Office 365 guide. Below, I will list the major changes to the document, any smaller changes (some rewording and minor text additions) will be omitted.

 

New content: Hybridization Patterns (pages 10 – 12)

Hybridization Patterns Many generic patterns used in other hybrid solutions can be leveraged to design a hybrid on-premises SharePoint environment with Office 365.  The following patterns are discussed in this paper: •	Partitioning •	Smooth Transition •	Encapsulation •	Federation •	Shared Source •	Replication Partitioning As there will naturally be differences between the look & feel and capabilities between the on-premises environment and Office 365, designing your solution to keep users from crossing environment boundaries on a frequent basis can improve the user experience. Sample partitioning schemas include:  Partitioning Method	Example By User Type	For a vendor-facing Office 365 deployment, most users may conduct their operations on-premises, but external users and those with a specific need to interact with them would use Office 365. By Workload	Collaboration and publishing workloads may be performed in Office 365 but Business Intelligence may be targeted on-premises. By Organization	Marketing may perform most of its actions in Office 365, whereas, Human Resources may have specific compliance requirements driving its usage on-premises.  By Date	Allowing new collaboration sites to be created in Office 365, whereas, existing sites continue on-premises.

Smooth Transition It is important to ensure that users experience minimal disruption when moving between environments. In SharePoint products this is achieved by harmonizing authentication, navigation, branding, information architecture, and governance. This also allows standard technologies such as hyperlinks, and so on.  If these are implemented to a reasonable degree, standard web technologies such as hyperlinks can be used to allow users to move between environments, allowing easy access to their different content and capabilities.   Encapsulation Taking “Smooth Transition” to the logical extreme, client-side encapsulation uses standard web techniques such as the inclusion of remote resources via IMG tags or iframes can allow separate environments to be combined in a single view. This technique is increasingly common in publicly facing internet sites and is a key component of “mash-ups”. Alternatively, encapsulation can take place on the server, with one environment making a call on behalf of the client to another system to gather data or pre-rendered output, which is then merged before being presented to the customer.  This pattern is often used in aggregators, such as integration of RSS feeds.   Federation Where possible, functionality should be delegated to authoritative systems to ensure a universal user experience. Office 365 uses this pattern for authentication.

Smooth Transition It is important to ensure that users experience minimal disruption when moving between environments. In SharePoint products this is achieved by harmonizing authentication, navigation, branding, information architecture, and governance. This also allows standard technologies such as hyperlinks, and so on.  If these are implemented to a reasonable degree, standard web technologies such as hyperlinks can be used to allow users to move between environments, allowing easy access to their different content and capabilities.   Encapsulation Taking “Smooth Transition” to the logical extreme, client-side encapsulation uses standard web techniques such as the inclusion of remote resources via IMG tags or iframes can allow separate environments to be combined in a single view. This technique is increasingly common in publicly facing internet sites and is a key component of “mash-ups”. Alternatively, encapsulation can take place on the server, with one environment making a call on behalf of the client to another system to gather data or pre-rendered output, which is then merged before being presented to the customer.  This pattern is often used in aggregators, such as integration of RSS feeds.   Federation Where possible, functionality should be delegated to authoritative systems to ensure a universal user experience. Office 365 uses this pattern for authentication.

 

 

 

 

Update: Composites (Sandboxed solutions, Forms, Workflows) (Page 15)

Composites •	Sandboxed solutions •	 Forms •	Workflows	Access Services, InfoPath Form Services and SharePoint Designer generated workflows are all available in the Office 365 environment and can connect to data held in Office 365.  However, these services cannot connect directly to data in the on-premises environment (although InfoPath Forms Services can connect to external web services by using the InfoPath Forms Services Web Service Proxy feature). Microsoft Business Connectivity Services was introduced to Office365 in November 2011. You can use Business Connectivity Services to access external systems in the cloud and in the on-premises environment. Hybrid applications can be developed by connecting both the on-premises and Office 365 environments to web services that leverage a shared data source.

 

Moved Content: Plan Navigation and Branding (Page 17)

This topic has been moved and promoted. Previously, it was a subtopic of “Plan your information architecture”, now it’s a topic on its own.

 

 

 

New Content: Leverage the Smooth Transition pattern (Plan your information architecture) (Page 19)

New content within “Plan your information architecture”:

Leverage the Smooth Transition pattern Smooth navigation and coordinated branding can significantly decrease the user experience penalty for crossing environments and opening up more flexible information architectures. As an example, in an “organize by customization dependency” information architecture, it may be difficult to identify the ideal environment for a collaboration site for a given team. While this team may not have any current needs for customization or business intelligence, making Office 365 a good candidate, the team may not be able to rule out such requirements in the future, leading them to conservatively target the on-premises environment. With the ability to transition smoothly, the penalty for “choosing wrong” may be reduced. The team can solve its immediate needs by creating its collaboration site in Office 365 and, when customization is required in the future, a parallel on-premises “outrigger” site can be created with suitable bi-directional navigation to the original site. This “outrigger” site would enable full on-premises capabilities when needed, while the standard collaboration site, which constitutes the majority of the content and usage, can take advantage of the scalability, availability, and cost structure of Office 365.

 

 

 

New Content: :Leverage the Shared Source pattern (Plan User Profiles and My Sites) (Page 21)

New content within “Plan User Profiles and My Sites”

Leverage the Shared Source pattern A much appreciated feature in SharePoint 2010 is the self service profile editing capabilities offered to users via “My Profile” and its ability to write changes back to AD. While the Office 365 Directory Synchronization tool can populate the Office 365 user profile with AD data, it is unidirectional; therefore, changes made within the Office 365 “My Profile” are not reflected in the on-premises AD and, by extension, the on-premises SharePoint environment.  A hybrid Office 365 and on-premises SharePoint environment offers an alternative to the lack of AD writeback by leveraging the ability to send user edits to an alternative User Profile management tool such as the on-premises “My Profile” page for any properties for which AD is the official source of record. This can be implemented by doing the following:  •	Setting the policies for the AD properties such as “name” and “work phone number” to be “read-only” in the Office 365 User Profile Service.  •	Adding a link on the “My Profile” page via Personalization links to the to desired on-premises profile management page. •	Altering the description of the AD properties to guide users.  Properties for which SharePoint is the source of record, such as “About Me”, or “Interests”, can be left editable in the desired primary “My Profile” environment.

 

 

 

New Content: Leverage the Shared Source pattern (Plan Customization) (Page 33 & 34)

New content within “Plan Customization”

Leverage the Shared Source pattern In November 2011 Business Connectivity Services (BCS) was made available in the Office 365 for enterprises environment. This provides the capability to access external WCF services to provide Search, Create, Read, Update, and Delete (SCRUD) operations against a backend data source. This data source can be a Line of Business application, an on-premises SQL Server database, an Azure hosted database, or any other database platform. This capability opens a large variety of application hybridization options with on-premises data sources and applications for which standard BCS guidance and considerations apply. However, BCS in the Office 365 environment currently only allows connections to WCF sources — not directly to databases as can be configured in an on-premises environment.  In addition, any WCF sources must be available to BCS in Office 365 , which means that they must be internet-accessible. This can be accomplished by exposing your WCF service outside your internal network directly, via a proxy, or by deploying a publicly accessibly Azure WCF service. Due to the need to publicly expose the WCF endpoint, it is important to plan for security. Following are some possible steps: 1)	Minimize the attack surface by only exposing required methods. 2)	Configure the service to use HTTPS endpoints instead of HTTP to protect against eavesdropping. 3)	Require authentication at the WCF service layer. Credentials can be stored in the Office 365 Secure Store Service.

In addition to exposing on premises data and LoB applications in Office 365, we can use coordinated BCS connections in Office 365 and on premises to leverage the “Shared Source” pattern by connecting our Office 365 and on-premises SharePoint environment to a common data source or service. With this pattern users can perform authorized SCRUD operations against common data from both environments, allowing hybrid solutions, including:  Pattern	Example	Architecture Creating structured data in Office 365 and viewing it in the On-Premises environment	Order Intake from an Office 365 vendor portal	  Creating structured data in the On-Premises environment and viewing it in Office 365	Publishing an On-Premises price catalog  to external users	  Creating and editing common structured data in both environments	Multi-environment use of a ticketing system	   For more details on using BCS in Office 365, see Manage Business Connectivity Service Applications

 

 

New Content: Plan Business Intelligence (Page 35 & 36)

Plan Business Intelligence Leverage the Replication pattern Extremely effective and attractive dashboards can be constructed in Office 365 using Excel Services functionality. However, the underlying data  connections cannot be automatically refreshed from their data sources unless these sources are available on the public internet, which is not a common scenario for important business data.  However, without live data connections, Excel Services will render the last data it was able to gather providing a static snapshot dashboard.  Leveraging the replication pattern a designated report owner can then periodically open the source Excel sheet in the Office Client with access to the corporate On Premises data sources and refresh its data connections, then save the source file back to its Office 365 library. This will create a copy of the the data required to render the dashboard within the Excel spreadsheet, which is stored within Office 365. As this pattern requires manual interaction it is most likely to be reserved for high value dashboards with wide distribution or a business critical audience. Similarly, the updating frequency is more likely to be weekly or monthly rather than hourly, which is appropriate for many scenarios. Leverage the Encapsulation pattern While Office 365 does not directly support most dynamic SharePoint Business Intelligence capabilities, some pervasive Business Intelligence scenarios can be constructed in a hybrid environment by exposing rich on-premises content in your Office 365 environment. As an example, an on-premises SharePoint environment supporting a Business Intelligence role will often have SQL Server Reporting Services (SSRS) installed.  SSRS has the capability to create report “subscriptions”, which periodically output a rendering of a report to a SharePoint document library. This output can take the form of a picture, and the freshness of the data driving this picture is configurable in the subscription’s schedule. This on-premises picture can then be encapsulated in an Office 365 collaboration site by using standard SharePoint features to show an off-server picture such as an Image Viewer or a Content Editor web part. If authentication has properly been synchronized and the Office 365 user has permissions and connectivity to the on-premises SharePoint site that is hosting the subscription generated picture, then the image will be obtained by the client browser and incorporated into the rest of the Office 365 collaboration site providing pervasive business intelligence.  For more advanced scenarios this picture may be embedded within a link to an interactive Business Intelligence site on-premises. This would allow interested users to smoothly navigate from a static image (such as a line chart) in the Office 365 environment to a BI dashboard with PerformancePoint interactive charts on-premises where they can examine the underlying trends.

Following is a cloud-based Business Intelligence site with a static image of a monthly chart hyperlinked to an on-premises “outrigger” site with full dynamic PerformancePoint Business Intelligence capabilities such as user-initiated drilldown and decomposition trees:

SharePoint Saturday India Online: Connecting Office 365 and Windows 8 HTML/JavaScript Apps

At the recent SharePoint Saturday India Online, I was presenting on the topic “Connecting Office 365 and Windows 8 HTML/JavaScript Apps”. The sessions was all about how to get started with developing Windows 8 apps and including data from Office 365 in them, including the very important “how to authenticate against Office 365”. As promised, you can find the source code from my proof of concept app (as mentioned during the presentation there’s still lots missing!), the presentation itself, as well as any additional important links

 

The Code

The Visual Studio project can be found here: Office 365 & Windows 8 - Sample App (276).
Once again, this is not a full app, but rather a proof of concept. There are many things missing (exception handling, splash screen, resume/standby handling, data caching, login management, …) which I leave up to you to implement. Have fun extending the code, correcting it, and making it better!

 

The Presentation

View it on slideshare

 

The Links

Setting up your environment

Download Windows 8 & Visual Studio 2012 Express:
http://msdn.microsoft.com/en-US/windows/apps/br229516.aspx

Authentication

Wictor Wilen’s blog post “How to do active authentication to Office 365 and SharePoint Online”
http://www.wictorwilen.se/Post/How-to-do-active-authentication-to-Office-365-and-SharePoint-Online.aspx

Luc Stakenborg’s blog post “Remote authentication in SharePoint Online”
http://allthatjs.com/2012/03/28/remote-authentication-in-sharepoint-online/

Windows 8 App development

Create your first Metro style app using JavaScript
http://msdn.microsoft.com/en-us/library/windows/apps/br211385.aspx

Creating Windows Runtime Components in C# and Visual Basic
http://msdn.microsoft.com/en-us/library/windows/apps/br230301(v=vs.110).aspx

 Additional Tools

SPServices (create your queries here and watch the requests with Fiddler to get proper SOAP envelopes if you don’t want to write them yourself)
http://spservices.codeplex.com

Fiddler Web Debugger
http://www.fiddler2.com