We stood in a line that crowded the first floor escalator, circled the Mascone Center's second level, and glacially lumbered up another flight to the pinnacle of the convention hall. There, at 8:15 in the morning, greeted by a DJ pounding out techno, we filed into the ballroom, and clamored into chairs pointing to the keynote's stage, six jumbotron monitors, the future of Microsoft development, and the eventual fruition of the rumors sounding the swag we'd get.
Despite shifting around in that uncomfortable seat for three hours with my torso twisted slightly to accommodate the shoulders of my peripheral brethren, I listened attentively and excitedly as the hip Microsoft executives unveiled exciting new thing after exciting new thing. I want to share with you all my thoughts on these new previews, products, and paradigms from the perspective of a SharePoint architect.
Phone, Cloud, Cross Platform, Xbox: these were the four first class citizens of conference content. (O365 would be a distant fifth.) The new Phone bits are always especially interesting to me, as the mobile world is one in which Microsoft is playing catchup. That fact made it kind of amazing to be in a large convention hall ballroom where over half of the pockets were snuggling with phones running Windows. Rooting for the technological underdog is fun, just like in sports: if your struggling team drafts the hottest young prospect at the end of a disappointing season, the next one is going to be exciting. Windows Phone 8.1's draft pick is named Cortana.
I have no idea if I'm going to use the digital assistant feature or not; the movie Her was ominous enough. But regardless, all the iPhone commercials featuring Siri seem to be unable to convince me too far beyond my belief that she is merely the result of Apple's brilliant marketing machine having simply branded voice recognition software - technology that is by no means bleeding edge, cutting edge, or edgy at all; it has been around for a long time.
Cortana, on the other hand, seems like it is a true step forward in artificial intelligence. Now whether or not this is just me being a Microsoft fan boy and Fox News-ish-ly biased, I think the features we saw at Build are really going to make voice recognition technology mainstream: I'll be using my phone (and therefore a lot of Office) hands free while my friends with iPhones will probably continue to giggle at Siri's responses to them cursing into their mics.
But being a SharePoint developer, my 9-to-5 experience with my phone is limited to speaking in it, typing on it, and listening to it. Therefore, I didn't attend the sessions focused around Windows Phone 8.1 that first day; the keynote covered everything I needed to know. However, reflecting back on things, maybe I was too dismissive. As the conference went on, Microsoft elucidated their new paradigm: Universal Apps.
When I got my first preview glimpse at Windows 8 at a local conference back in 2012, someone asked about having to refactor our Silverlight apps into Windows apps. "Write once, suck everywhere," was the answer. Well Microsoft has changed their tune with Universal Apps, which allows you to multi-target your code to run on the phone, on the tablet, on the PC, and even on the Xbox.
Xamarin was a major contributor to the conference, which pushed this new paradigm further: not only can (essentially) one codebase be easily ported around the Windows ecosystem, but with this tool, we can blast our apps free from Microsoft's binary gravitons and into the either of cross platform space, living on both Mac and Google planets.
As always, all the announcements and buzz around the new toys, although exciting and motiving, also bummed me out a little. These great tools underscore the drag of old technologies we consultants are forced to deal with from time to time. The Fortune 500 companies I work with can't just magically wave their IT wand and upgrade their XP machines to Windows 8 or their SharePoint 2010 farms to O365 or their IE 8 deployment to, my dear sweet Lord, anything else; the cloud is still a few racks down in the basement.
But on the flight home I shoved this bad attitude aside and started to think about how this Universal App zeitgeist could apply to us SharePoint folks. With the app model, we are going through a paradigm shift of our own: a dark, looming shadow is being cast upon full trust code. Therefore, we're having to start thinking of different ways to deploy our bits. I've always considered SharePoint to be a backend, but my frontend has always been the browser; this no longer has to be the case!
SharePoint has a Silverlight object model, so Windows Phone could be a first class UI citizen for our Intranets. O365 has all kinds of new APIs coming out in Service Pack 1 (also announced at Build) which could make mobile apps for iOS and Android a really feasible option. And with Xamarin, we can port these babies around any BYOD-empowered enterprise. Methinks we are rapidly approaching a place where cross-platform app support will cost just as much as cross-browser website support.
Microsoft and their partners have given us the tools we need to make an app-centric approach compelling, both on the SharePoint deployment side and on the UI distribution side. What we need to do is start pitching this architecture! Think about it: eventually, everyone will be using Windows 8 on their PCs at work. With only a trivial amount of effort, we can deploy the aforementioned Windows Phone app we built for them to everyone's desktop. Then we can shove it through Xamarin and get it onto their tablets as well.
Aren't you sick of having your code constrained to running in a browser?
But that's just the frontend revolution; what about Azure? Improvements to Microsoft's cloud platform dominated Build's second day keynotes. All throughout the conference, Microsoft kept repeating how our world is now "mobile first, cloud first." Well, SharePoint is still "SharePoint first," but that doesn't mean that mobile and cloud can't be a close second in our architectures. And I don't mean simply using Bootstrap to make our SharePoint site responsive or spinning up a few VMs in Azure to host the farm.
For example, one of the biggest questions we've been asking about our new app-model-driven SharePoint solutions is what the hell we do with timer jobs? Well, it's Azure for the win! With the new Azure Scheduler, we can simply configure the cloud to hit an HTTP/S endpoint or queue up a message on a frequency of any complexity we can dream up.
What's listening at these endpoints? Custom code ripped from our jobs and ported to CSOM! With about the same amount of PowerShell as it takes to add, deploy, install, and activate a WSP and a timer job feature, we can configure Azure to do the same work, except with none of the performance, error logging, or infrastructural concerns.
So whether it's on the frontend or the backend, or somewhere in the middle with the cool new language features announced with Roslyn, SharePoint architects and developers can absolutely take advantage of a lot of the new bits atop Microsoft's stack. All we need to do is work with our clients to tweak their roadmap to take a little more of scenic route around the latest technologies. With all these new tools, it could very well save them money!
So let's help our clients tiptoe to the cutting edge. Let's turn our websites into mobile apps, our code behind into cloud services, and our jobs into scheduled pings. Let's take advantage of all the new niche Office solutions we can now easily push out to our clients. Let's truly make our SharePoint intranets mobile first and cloud first!