Visual Studio 2017 Mobility: Use what you know

It can be quite daunting to try to decide what is the best language for a particular app you have in mind, especially when writing mobile apps. Should you write a shell wrapper that resides on the device and does all the heavy lifting by calling your web application and processes? Or should you write it in the each native language, like Swift and Java, that stores all of the data and does all the processing on the device? That's a heck of a lot of code and rewriting the same thing over and over.  Plus what kind of devices would you be restricted to to be able to run it based on the computing power needed? Or maybe you think you want to write it using response web frameworks. More and more, a hybrid model makes more sense, one that stores some of the data and does some of the computing on the device, but also utilizes web calls to do the heavy lifting.

I was honored recently to be able to speak at the Los Angeles Visual Studio 2017 Launch Party on this very topic.

Write what you know.

If you've ever tried to write that Great American Novel or taken any kind of writing class, you've probably heard this advice more than a dozen time. Write what you know.

This is just as important when it comes to writing code, even when crossing platforms.


If you are a C# developer, you can certainly write for the Windows platform with no problem. You should know though that you can use Xamarin tools to build applications to all types of devices and operating systems, like iOS and Android, using C# for the backend processing and either building the UI using native languages or Xamarin Forms to do it using XAML. And since Microsoft acquired Xamarin last year, its tools and functionality have been available as part of Visual Studio. It is even available as part of the free version of Visual Studio known as Community.

If you are a web developer, you can use your HTML, CSS and JavaScript skills to write apps using Visual Studio 2017 and TACO (Tools for Apache Cordova). Add to that the use of PhoneGap and the Ionic, a JavaScript framework for mobile to the cocktail and you are humming on all cylinders.

VS 2017 Mobile Center

Lastly, take a look at the new Visual Studio Mobile Center, currently in Preview. This is your one-stop shopping portal for all of those things that you used to have to discover, consume and manage separately, bringing them all together under one roof for the mobile developer. Need to be able to manage Application Lifecycle activities, for build, test and distribute? Got it! Need to authenticate without changing your backend? Or use Facebook, Google, Twitter or a Microsoft Account to authenticate? Got it! For testing and running analytics like for crashes (backed by HockeyApp's crash reporting features), events metrics, and session metrics like how long a person is in your app (backed by Xamarin Test Cloud and Insights as well as Azure Mobile Experience), using the Mobile Center Analytics suite is the ticket.



Mobile Center

Mobile Center Preview Link

Tools for Apache Cordova (TACO)

Ionic 2 Templates for VS2017

NPM Task Runner

WOOT! //Build 2017 Here I come!!

Build2017Hey there! So excited! I'm posting this as I just successfully registered for the Microsoft //Build conference in Seattle in May. Did I mention I'm soooooooo excited! This conference consistently sells out within hours of registration opening. Last year, I was excited by the introduction of Conversations as a Platform. I still am excited about it, even though I've had little time to explore it this year. There are hints of free time coming up in May where I hope to explore this and other ideas that I gather at this conference. Maybe I'll see you there!


Impressions from //Build 2016: Putting the 'personal' into personal computing

This year marks my 6th year attending the Microsoft //Build conference, the first being //Build 2011 when everything changed -- for me and for Windows -- with the release of Windows 8.0. For those who are not familiar with the conference, //Build is the premier Microsoft Developers conference where Microsoft often makes big and life changing announcements for its ecosystem of developers. For example, in years past Microsoft has open sourced their .NET (Roslyn) compiler right ON STAGE at //Build. Attendance is kept low on purpose (about 4,000), so getting into the event can be tough. This year was no different in that there was an insane number of announcements and introductions at the conference during both of the keynotes. Here are some of the highlights and things that got my attention.


Certainly, everyone was excited to see what the latest progress was on Microsoft's virtual reality headset Hololens. That Alex Kipman and the HoloLens team announced the  official shipping of the product at the conference was even better, with the idea crowdsourced Galaxy Explorer App being available on the Windows Store and all of the source code available on GitHub for all developers to use as a learning tool. You could also say that the much anticipated and hoped for announcement that not only was Xamarin - a widely popular and deeply useful cross-platform mobile development tool purchased by Microsoft in February  - was now going to be included in Microsoft's MSDN subscriptions as a native part of Visual Studio, including it's free Community version of Visual Studio, brought down the house. But of course Microsoft took it a step further and Open Sourced all of Xamarin's source code to the masses, something that has been speculated that they just purchased for between $400-500 million, so that the developer community could help build and grow it. CRAZY! There were also a lot of other great announcements and highlights around new services from the Microsoft Azure cloud platform (Functions, IoT Suite, Service Fabric general availability, and Container Service), Office 365 (Group  Connectors, Skype for Business Web and Mobile SDK, and new(ish) Microsoft Graph beta APIs) and the Xbox Dev Mode release.  I can guarantee that some of these I'll be going more in-depth in future blogs. If you just look at the individual pieces, the individual announcement, you will be missing the bigger, more important vision of the conference.

Don't get me wrong, all of this is exciting in of itself, but there was a foundational shift announcement that really hit me as just as or even more important.  These are the types of things that when I see and experience them, I get that temporal rift flutter in my stomach that everything that I knew or have known about computers and/or the use of technology in our society, in our businesses and in our lives just changed or that is about to. It's been awhile since I've gotten it, so I almost missed it out of neglect and a sense of compliancy. See I am one of those few (at least that will still admit it) that actually LOVES/LOVED Windows 8. No really! I'm not kidding. I've been in the Tech industry for over 30 years now, so I've seen a lot of things come and go as far as trends and the "next big thing". And I've been writing code and doing development on those platforms my whole career.

When I attended //Build 2011, except for a function here or a web service there I'd been out of the code writing full time habit for about 12 years, mostly out of boredom. Writing the same boring app, with the same UI, same user interactions, the same... EVERYTHING... over and over for the desktop just hadn't appealed to me in a very long time. Then by sheer chance I attended //Build 2011 where Windows 8.0 and the immersive, beautiful, design centric, (and imo incredibly visionary and strategically leapfrogging) "Metro" way of writing apps was introduced. Taking the immersive, contextual and important information push to the user instead of them hunting for it kind of app was certainly already taking hold in the mobile world, but no one had really thought of what it might mean on the desktop, business workhorse app kind of level. For the first time in a really long time, my desire to code returned. I started a new notebook to hold the avalanche of app ideas that flooded me at the conference and continued in the months following.  Unfortunately the company's signature app, Office, wasn't onboard with that vision at the time of its release and that contributed greatly and essentially to its demise. To say that I was disappointed in Microsoft's hurried abandonment and backpedalling from that evocative, strategically imperative vision with its next OS release would be an understatement. The app idea notebook started to gather dust again as I focused on bringing most of my ideas to web based apps, like Office 365 Add-ins. We were back to the boring again at the desktop and even the mobile level.

Or at least I thought.

Conversations as a Platform

"The future isn't going to be man vs machine, but man with machines." - Satya Nadella, Microsoft CEO

Windows 8 "metro" apps were all about a single context, meaning that the developer was encouraged to limit the scope of an app to one single task or one single user scenario and make that experience immersive to the user. Instead of mega apps where 100s of tasks and 100s of pieces of information are buried waiting for the user to find, information created by or exposed by the app was pushed to the visual surface with what are called Live Tiles; surfacing important and needed information to a user before they even went looking for it. At this year's //Build, Microsoft's CEO Satya Nadella introduced a new paradigm for app development, one that for me is again evocative, again exciting. Conversations as a Platform.


Apps in the Conversations as a Platform world again consist of single scenario apps, but this time using human language as the new UI layer. These apps, or BOTs as they are known, will interact with the user, other people, and our digital assistants like Cortana and will use cloud microservices to infuse intelligence, meaning and context into all of their interactions. As envisioned, and it is a lofty vision, these BOTs and microservices will help automate the analysis and presentation of information to the user in a way that is meaningful for the interaction or conversation that is happening at any given point in time.

"Conversations as a platform. Taking the power of human language and applying it pervasively to all of our computing." - Satya Nadella

This new way of computing, and of developing apps, was highlighted on stage with Cortana in Outlook, the Just Eat BOT, Skype for Business BOTs, and even the very cool but sort of creepy in how pervasive and helpful it was Starbucks BOT.

As a developer, I encourage you to watch both keynotes from the conference. Also check out the new BOT Framework. Of course start building those BOTs! And check back here to see what I come up with for my own ideas of using this new development platform.


//Build 2016 videos, including the keynotes and most of the sessions:

Microsoft's BOT Framework:

Skype's new BOT SKD:

Contana Intelligence Suite:





Microsoft Band Updates and SDK

MSBand2 I was a Fitbit fan. Still am. They're great devices--durable as hell, with fantastic analytics and an outstanding API. When I heard that Microsoft was releasing its own "fitness" band, I was skeptical, but when I saw that it was integrated with my calendar, email, and SMS / text messages, and it had the same (or better) fitness features as the Fitbit, I was more than interested. The fact that it was also integrated with Cortana, Microsoft's digital assistant app, was icing on the cake for me. I dutifully went to my local Microsoft store and got one.

You never really recover from being a developer. Once it's in your blood, you're a developer for life. So of course, being the code junkie that I am, as soon as I got the Band, I wanted to write an app for it--or two or three. My app idea notebook just got a new section.

Fast forward four months. I can finally start writing apps for the Band; the MS Band SDK (Software Developer Kit) was released on Feb 23rd across all platforms (Windows, Android and iOS). You can get your copy of the SDK here. Watch this page for news on what I have up my sleeve.


In addition to the SDK, Microsoft released an update for the Band and its accompanying Health App that offers some much-needed improvements, including integration to MapMyFitness (YES!) and tracking for bicycle workouts. A new personal fitness dashboard brings it close to the analytics that are available for the Fitbit product line. All in all, a pretty good (and much needed) update. I hope there's more to come, and I'll be interested to see what ideas others come up with for apps. If you have one, I hope you'll write to me and let me know.

Flipboard: Innovative but I want it for work

I am not much of a social media user/consumer. I don't have a facebook page (never say never) and though I am an avid consumer and tweeter, I haven't been on Twitter all that long either. So an application that takes all of your social media feeds and consolidates them into one interface, using a pretty intuitive and well known metaphor would not be something that would typically grab my attention. But that's exactly what has happened. Not because of what it does today, but what I hope it will do in the future. The interweb is all a twitter (pun intended) with the new iPad application called Flipboard, ., which was announced today. So I had to go look for myself to see what all the hubbub was about. I actually don't own an iPad (or any apple products) so I can only go off of the various demos that I've seen. I like this product. I think it is VERY innovative and has alot of potential, but not for the things that it does now. Let me explain.

If you own an iPad and use Facebook and Twitter and I'm assuming other social media feeds coming soon probably, then I think you would want to get this free application. It takes all of that content; the photos, the wall postings, links etc and presents them in a magazine UI metaphor, without you having to do any programming or layout work. Pretty cool. But if you are not a social media heavy user and/or don't own an iPad (aka me) then you won't be so excited about it or at least you would think. But here's the catch for me... I want a Flipboard for all of my work content. I want to aggregate my email, my sharepoint stuff, my docs, my excel spreadsheets, my project schedules, tasks and issues/risks -- all of it -- into Flipboard type content I can consume as I go about my day at work. Why limit your product to only the consumption of social media content?

For example, I'm a realtor. I need to look at emails coming in, setup appointments with potential buyers (and sellers), file escrow paperwork, check the status of a loan from the bank for a client, check new listings on the MLS... why couldn't I put all of that into a Flipboard type magazine for me to consume? For other realitors at my company to consume?

Or I could be an executive at an organizaion, let's say that makes widgets. I need to (again) check emails coming in, look at my calendar for meetings, etc., I need to check the quarterly departmental budgets an expenses, review a press release, look at a balanced scorecard dashboard of other metrics for my department or organization, check stock on inventory, approve some purchase orders, meet with the board of directors taking notes the whole way.... it could go on and on. Wouldn't it be cool that instead of having to open up all of these applications to do the tasks that I'm describing that instead I had a Flipboard for my company that contained all of the information "feeds" that I would use based on my position and what I've "subscribed" to from my IT department?

The Flipboard company bills itself as a social magazine, but I hope it won't stop there. I hope that it will open up its interface so that the types of content that I've just describe... work stuff... can be added, that company-centric Flipboards can be created for the information feeds that we deal with at work.