Tech in the 603, The Granite State Hacker

UWP Community Toolkit in the Wild

On August 17th, I reviewed use of the UWP Community Toolkit in practical application, used in several privately published apps. These apps were commissioned by Hewlett Packard to illustrate commercial uses of the HP Elite X3 Windows 10 Mobile phone. We checked out the code behind these apps with permission from HP.

The apps themselves focus on three core verticals:
1) Public Safety – apps to support officers in the field
2) Field Service – supporting a cable field service technician
3) Home Health – supporting a visiting care provider.

All show off Windows 10 UWP as a versatile platform, capable of easily adapting to phone, tablet, or desktop, as well as the HP Elite X3’s additional ability to support various hardware expansion jackets and docking options.

The UWP Community Toolkit is an open source project designed to make Windows 10 the easiest platform to build great apps for. More information can be found here:

http://www.uwpcommunitytoolkit.com/

The official UWP CTK demo app is here:
http://aka.ms/uwptoolkitapp

The presentation itself was all demos, digging in on the CTK toolkit sample app, looking at it in a locally cloned git repo, and showing how we used the same controls in the X3 demo apps.

The UWP CTK is a great set of tools to jumpstart Windows 10 Dev with.  

Our next meeting on September 21st, (2017) we’ll take a look at another great “Hit the ground running” UWP resource, the App Samples.

Tech in the 603, The Granite State Hacker

Prism and Unity, an MVVM and DI Knockout Combo

I recently had the opportunity to do UWP work for Hewlett Packard.  It was a really cool experience, building UWP apps for the HP Elite X3 Windows 10 based phone.

I’d also just rolled off a project prior-to that used Unity under the hood for Dependency Injection, so Unity felt like a natural extension. Prism as an MVVM presentation framework on UWP also felt like a natural extension of the MVVM framework we’d build on WPF in that same previous project.

Here’s the slides from the June 22nd, 2017 presentation to the WPDevNH group in Salem, NH.

Tech in the 603, The Granite State Hacker

Microsoft Build 2017 Recap

[Edit:  I wrote this originally back in May, 2017, but realized I never published it.  Anyway, very belated, here’s a rundown on Build 2017 with some light analysis at the end.]

You know an event is “Epic” when, at its conclusion, leaves you feeling like the climax was forever in the making and then suddenly complete…  done…  over.   Even post-event celebrations feel like the long drawn out ending from the Lord of the Rings trilogy.

Build 2017 is an interesting twist on that for me.   I spent most of the beginning of 2017 looking forward to it.  Then it finally came, and the world was in its midst. 

The twist is that Build, for me, is not the end, but a refreshed beginning.  It’s the kickoff of new ideas, new development stories, and new opportunities, rather than an end.   Build came and went, and left me feeling like I’m alive at the best time in the history of the world to be a developer, and especially a full Microsoft stack developer.

I’ve already presented my recap a couple of times.   Here’s the slides.

The slides are not as well organized however, so I’ll run through a recap with a bit more organization.

Platform:   Azure

  • Azure IoT Edge
I liken Asure IoT Edge to the autonomic reflexive system of the cloud.
  • Cloud Shell Management
  • Azure Management Mobile App for iOS & Android
  • Appsource
  • Azure Stack

Platform:  3rd Party

  • Visual Studio for Mac

Platform:  Mixed Reality

  • AI-enabled Workplace monitoring
  • New motion controllers
  • Acer & HP MR Dev kits available

Platform:  Windows 10 client

  • Fall Creators Update
  • Remix
  • Fluent Design System
  • Project Rome & Graph
  • Legacy App Bridging
  • Continuous Delivery
  • Windows Identity & FIDO
  • Ubuntu Linux updated
  • SUSE & Fedora Linux added

Platform:   .NET

  • .NET Standard 2.0 & XAML Standard 1.0
  • Embeddinator-4000
  • Live Player for iOS & Android

Technology: Cognitive

  • Twice as many services available under Azure Cognitive Services banner

Technology:  Database

  • PostgreSQL as a service
  • MySQL as a service
  • Cosmos DB

Technology:  BOT FX

  • Adaptive Cards
Technology:  Cortana 
  • Hardware units from Harmon Kardon, HP, Intel

Concluding Observations

Microsoft has fully given up on Windows 10 Mobile as an OS, and redefined “Mobile” to mean that the computing experience roams across all devices.  This is now what they mean when they say “Mobile First / Cloud First”. This roaming experience even cuts into iOS, OS X, and Android.  The big celebration of Build 2017 is “Microsoft is no longer a monopoly” which means that they are on top of “innovation hill” again.  Expect amazing things from Microsoft, and expect them to be on their game once things like Augmented Reality to really dig in on the consumer market.

Tech in the 603, The Granite State Hacker

Data Persistence in Windows Universal (8.1) apps (Boston Code Camp 23)

Thanks to everyone who joined me for my Boston Code Camp 23 presentation.  Shuffling data around is a core responsibility of any serious computing platform.  Windows Universal really goes above and beyond the mundane call of duty with consistency and utility. It’s part of what makes the Windows client platform a true “cloud car”, especially with its Backup, Roaming Settings / Folders, and Roaming Password Vault capabilities as native functionality… all from the Windows.Storage namespace.

Here are

For the individual who asked what encryption level the Windows Password Vault functionality uses, I looked it up, and it’s 128bit AES encryption.  Stern stuff there.

Another question came up about app backups.  As I said in the presentation, the content of the Local storage is backed up automatically to the cloud by the OS.  (Isn’t that fantastic?!)

Likewise, as mentioned, the Temporary storage is excluded from backups.

One detail I missed however… the LocalCache storage area.  LocalCache is like Local except that it is not backed up.  LocalCache differs from Temporary storage in that the OS will not wipe it as it occasionally does the Temporary storage.  Next time I do this presentation, I’ll make sure to update it to discuss LocalCache.

Here’s a comparison of the storage options available to developers in the 8.1/universal platform. Note that each user on a device gets their own app-specific sandbox *and* OneDrive space for each installed app.

Type Availability Limits Settings hashtable Backed Up By OS Sync’d to all App / User / Devices by OS Encryption Wiped By OS if space is low Uri prefix Suggested use
Install Package Universal Static/ReadOnly Media from Install No No No Sandboxed No ms-appx:// Version specific static app media
Local Universal Available free storage Yes Yes No Sandboxed No ms-appdata:///local/ General
Local Cache Windows Phone Only Available free storage Yes No No Sandboxed No   Persistent cache
Temporary Universal Available free storage Yes No No Sandboxed Yes ms-appdata:///temp Semi-persistent cache
SD/Removable Universal Available free storage No No No None No   Removable/general
Roaming Universal 100k Yes (by virtue of roaming) Yes Cloud Partitioned No ms-appdata:///roaming Roaming settings
Password Vault Universal 100k (included in Roaming) Password-friendly structure (by virtue of roaming) Yes Cloud Partioned + 128bit AES No   Roaming credentials /OAuth tokens

I asked my stunt audience (the kids) later what my presentation had been about.  I was glad to know at least one of them had gotten it right. 

They were inspired, though, and that’s the important part. 

I hope you found inspiration in technology from both the day and maybe in some small part from my presentation.