If you haven’t noticed, in the last year or so the world of the SharePoint professional has already changed. The pace and breadth of this change is like no other we have seen since SharePoint was invented. What does this mean for SharePoint professionals? Read on to find out!
A history lesson and broader skillsets required in the future
If we look back at the history of SharePoint we see things have changed many times during the product’s lifetime. First, the introduction of WSPs in SharePoint 2007 was a game changer for developers and operations personnel. The Sandbox was another game changer in SharePoint 2007, and then in SharePoint 2013 the Cloud App Model (CAM) changed the game again. Although each change represented a way in which we deployed and programmed SharePoint solutions, I feel none is as big as the recent changes we’ve seen with regard to Active Directory Authentication Library (ADAL) and the new Office 365 APIs and the broad support they offer to create all sorts of line-of-business apps in the cloud.
From the business perspective, each release of SharePoint over the past decade added more features, services and functionality to the product. SharePoint 2013 has grown into a monster of a product that can do just about everything from intranets, to extranets, to public Internet sites. Now Microsoft is focusing their efforts on the cloud and mobile devices and SharePoint is evolving, according to Microsoft, “into a cohesive productivity solution.”
SharePoint evolved from 2003 to 2013 at a much slower pace than how we have seen it evolve since the SharePoint 2013 release. In less than two years we have seen changes coming fast and furious from Redmond and we are now at the point where it’s time to wake up and smell the coffee (if you haven’t already done that) if you are a SharePoint professional. Why? Because now if you want to keep building intranets, extranets and public Internet websites on SharePoint and Office technology, you really need to have a much broader skillset. Now you must be an Office, Office 365, Azure (or other website technology) and mobile professional to successfully design, architecture and implement line-of-business systems.
ADAL and the new Office 365 APIs
That’s where ADAL and the new Office 365 APIs come into play. ADAL and the new Office 365 APIs allow you to connect and interact with Office 365 services to build line-of-business apps, intranets, extranets and Internet websites. From a business perspective you don’t need to know how to program the APIs, but you should be aware of the capabilities they provide as you design your systems to meet your business needs.
From a developer’s perspective you need to know how the ADAL and Office 365 APIs work under the hood, how authentication has changed, and how to implement ADAL and the Office 365 APIs in a variety of surfaces such as websites, desktop apps and mobile apps to meet the needs of the business.
Real world My App and mobile app examples
During the past few months, my team and I had the opportunity to work with the newest ADAL and Office 365 APIs in their pre-release stages as we built a real world, polished Property Management scenario demo for the Office 365 Developer Kick Off session presented by Microsoft at TechEd Europe 2014. You can see portions of the demo in action from 34:11-44:30. You can also see screenshots of the demo in this slide deck.
All of the source code for this demo line of business app is available in the OfficeDev repository in GitHub right now. You can download the code and follow the setup instructions in the README to get the entire demo up and running on your own Office 365 tenancy.
The demo includes a My App, two native iOS iPad applications, a native Android application, a Xamarin application and a Cordova application. Both the My App and all the mobile apps demonstrate extensive use of the Office 365 APIs to interact with SharePoint Lists and Libraries, Workflows, Exchange Email and Calendars.
What is different about the new app model and patterns?
After they saw the Property Management demo, some of my colleagues asked me what’s different about this model compared to what they’ve already been doing with SharePoint. Other folks have asked me why they would build a line-of-business app with this new model compared to just creating something from scratch.
For those of you have not worked with SharePoint extensively, it is important to note that these same questions have been posed about SharePoint for a long time. If you have been working with SharePoint for the past decade, those questions sound really familiar, don’t they? People have always asked why they would build a line-of-business system on SharePoint when they could build it on ASP.NET or other Web technologies.
The answer remains largely the same; because you are saving time and effort on development by tapping into the broader platform and services which SharePoint (in the past), and Office 365 (going forward into the future) offer. In the past, these benefits included the ability to tap into a platform that provided you authentication and authorization capabilities, ECM, WCM, simple things like menu and navigation controls, search, workflow and many other capabilities.
Many of these benefits of the SharePoint platform are still core to SharePoint in Office 365. However, the new Office 365 platform brings other advantages as well. These new benefits include a reduction in hardware and hosting costs, the ability to tie into Exchange and OneDrive, and my favorite, the way authentication and authorization is handled consistently across any type of device or platform you need as part of the line-of-business systems you create. Other benefits of the new app model and patterns are discussed in the Evolution of SharePoint article on the Microsoft Office Team Blog.
The pace has quickened
One thing to keep in mind is maintenance and sustainment is different in this new world. In the past we installed service packs and cumulative updates and upgraded the product from version to version. Now, Microsoft installs updates for us and enhances the product with new features on a regular basis. From a developer and business perspective, this means you must stay more focused on what is happening in the Office 365 world because things continually evolve as opposed to things changing every year or two in the past.
From a business perspective, a good way to keep on top of this news is to watch Office 365 Pulse. From a developer’s perspective, you can take steps to ensure you are notified when your Office 365 tenancy is upgraded. In this article, I describe how to do that. It also means you must align your code practices and development and sustainment methodologies to be more agile and able to react to changes in Office 365 services.
No matter which perspective you look at it from, you just can’t learn the new version of SharePoint and sit on that knowledge for a year or two anymore. You must be learning new things about the technology on a regular basis and adapting your processes accordingly.
New skillsets required
Another one of the biggest changes you will see as an Office professional is the need to get your mobile skillsets up to speed. Although several of my colleagues have not seen a lot of interest in mobile technologies, my team and I are seeing a lot of it. In today’s world, line-of-business systems include mobile technologies in the forms of responsive websites and mobile apps. The Property Management demo I previously mentioned is a perfect real-world example.
A huge step forward for Authentication!
Let’s loop back to my favorite new part of the Office 365 development world; the way authentication and authorization is handled consistently across any type of device or platform you need as part of the line-of-business systems you create. The full realization of how awesome this new experience is really did not hit me until we were almost finished with the Property Management demo we created for TechEd Europe 2014.
As I mentioned before, the demo we created showcases the new My App capabilities and it also incorporates mobile applications. The demo revolves around a property management company that has inspectors in the field using mobile apps to conduct inspections on properties. The mobile apps allow them to take photographs of the inspections, submit comments about their findings, and report incidents. Here’s what the repair app looks like on the iPad Air.
The folks in the home office at the property management company use the My App to evaluate the status of all the properties they manage, schedule inspections, and schedule and approve repairs. Here’s what the My App looks like when the dispatcher assigns an incident for repair.
Repair personnel use a different mobile app to see which properties they are assigned to repair, take photographs of the repairs, submit comments about their repairs and submit the repairs for approval. Here’s what the Repair app looks like on the iPad Air when a repair person submits the repair for approval.
Throughout the entire business process, workflows, tasks, emails and calendar events are used to drive things forward.
In the past, to create such a system we would have had to use different authentication and authorization patterns to allow users to log in from the different surfaces (Web browsers and mobile apps) and access all the different systems and services required to implement the line-of-business system.
Why Authentication is awesome with ADAL!
This makes it a piece of cake to integrate Office 365 with just about any type of surface you need to interact with in a line-of-business application you develop. Just call the ADAL to authenticate, watch the Office 365 Sign In Web page pop up, fill in your credentials, and click Sign In. Really, that’s it.
Here’s what this looks like in the iOS Inspection app in the Property Management demo. First, the iOS Inspection app displays the screen to sign in.
When a user clicks the Sign In button, the method to authenticate via ADAL is invoked and ADAL automatically displays the login form.
You no longer need to jump through all sorts of hoops depending on what surface you are programming for. All these pain points associated with mobile auth to SharePoint are now a thing of the past!
- Making custom login forms
- Enabling FBA on the SharePoint farm
- Playing Provider-hosted Web or Web service proxy tricks
- Battling through making auth work from various platforms with REST calls to get a Forms Digest and play games with Claims to authenticate
The following diagram illustrates how much authentication has been simplified. Look how lightweight it is compared to all the different auth patterns and components from the past!
Before I started working with the new Office 365 APIs I actually coded four different samples to demonstrate auth patterns from iOS, Android and Cordova apps that work with Office 365. I was planning on posting them on my blog to show everyone how each pattern was done. Each sample required a different way to authenticate. Thanks to the new Office 365 APIs, I’m actually happy to say I will never look at those samples again. I’ll dig deeper into authentication with ADAL in My Apps and mobile apps in subsequent articles.
Extended learning opportunities
If you are interested in learning more about ADAL, O365 APIs and mobile apps, check out these Microsoft Virtual Academy Videos. I recorded the iOS and Android videos with Josh Gavant. Scot Hillier, Ted Pattison and Richard diZerega recorded other platform-specific videos as well. The videos discuss how to authenticate to Office 365 and interact with Office 365 SharePoint Lists and Libraries, OneDrive and Exchange from mobile apps. The videos also contain many links to the ADAL and Office 365 SDKs and other developer resources pertaining to these topics.
Keep an eye on the IT Unity website for many upcoming articles about ADAL and the Office 365 APIs and how you can use them in My Apps and mobile apps. In the upcoming articles, I plan to dissect the Property Management code sample to help you use it to ramp up on all these new technologies.