With all the new stuff Microsoft has presented at Build, pushed to Azure and is going to release, I just had to go to TechDays. After an amazing keynote about zombies in the AppStore, the future of monetization (micro payments) and IoT the sessions started.
Below a list of the sessions I attended.
- Introduction to Azure Service Fabric Used by Microsoft internally, now available as local install. (Azure support is coming) The Fabric Explorer shows the VM’s (nodes) and containers (applications). Microsoft offers 4 templates to create the applications: Reliable actor API (stateless/full) and Reliable service API (stateless/full). The actor contain both the state and behavior, whereas a service stores the state in ReliableCollections. The actor is limited to HTTP protocol, whereas a service can use whatever it likes. A service also contains a virtual RunAsync for long running operations. More on Microsoft.com
- Architecting systems for continuous delivery Microservices are silos where the team is responsible: you build it, you run it. A microservice is a vertical with business value (no traditional layers), is responsible for it’s own data (data duplication is not a bad thing) and can function on it’s own (no coupling).
Testing is done in production and we never rollback, but fix the problem. Make sure to have early adopters, not-so-beta users and full paying customers when testing in production. [Slides]
- Exploring microservices in a Microsoft landscape Migrate from a monolyth to microservices, don’t do a big-bang with the complete system. General list of used frameworks:
- UI: AngularJs
- Microservices: ASP.NET WebApi or MVC 5/6
- Messaging: NServiceBus or Azure Servicebus
- Internal services can use WCF
- Making .NET applications faster Look at runtime complexity (value types, struct VS class), space complexity (linkedlist VS array) and specialized operation (Trie for spellcheck and word suggestion).
To improve startup speeds use NGen, RyuJIST, ILmerge, .NET Native and Opt-in mutli-core background JIT. [Slides]
- Using Managed Extensibility Framework IoC and dependency injection framework in System.ComponentModel.Composition (part of the .NET framework!) Crashes when multiple implementations are found.
- Going DEVOPS on the Microsoft Stack The new way to go is PowerShell, the existing agents will be deprecated. It uses PowerShell DSC (desired state configuration) to get the machine up and running and than the deployment starts. [Slides]
- Mastering Intellitrace In Visual Studio the itrace file is always created, in production you can use the intellitracesc.exe to capture an itrace file, sharepoint has a PowerShell command Start-IntellitraceCollection, during testing with Test Manager the itrace is created for easy repro and in Azure the option is available to create an itrace file (which can get really big)[Slides]
- Automated UI Testing for iOS Controls are identified (like selenium) and operated by Repl, when using Xamarin Forms you’ll need some extra startup code to get this running. Xamarin.UITest is on nuget, iOS also needs the agent nuget because of the sandboxing. Running local is free, using Xamarin Insights is free for now (crashreports remain free).
- Functional programming: F# for C# developers Install the F# MVC5 extension to get templates in Visual Studio. Make sure you’ve got the files in the correct order, the is no forward declaration and back to C again, but without the headers. Main advantage is immutable objects (everything is a function) which makes parallelism easier. [Slides]
- State of PowerShell Version 5 of PowerShell focuses on DEVOPS. It will contain a package manager and Pester: a unit test framework. If your product does not contain PowerShell we will not buy it.
- Event-sourcing your AngularJS applications In his demo Maurice showed how to add a new field to an event-sourcing application. Awesome talk with people standing in the hallway listening. [Slides]
- IoT crash cource Lots of home projects and tips-n-trick when starting IoT like hackerstore.nl
- Best practices using open source software in the enterprise When distributing software the license is triggered. GPL is not triggered when hosting in Azure and offering SAAS on it (AGPL is triggered). Manage and register what nugets you use by using a artifact repository, publishing you own software as nugets and scanning the nugets on licences and known vulnerabilities. [Slides]
A lot is happening around Microsoft. My weekend projects are filled until the summer. I’ll be installing Azure Service Fabric, playing with Xamarin REPL and trying powershell DSC.
Here’s a nice hyperlapse I’ve made of the driving/jumping drone at Techdays.
Next to Chaos Monkey there is now Chaos Gorilla that outputs a complete datacentre. SimianArmy repository.
Talked to some guys that offer Beacons with an App as a service. It is called Shopmate and will be rolled out in their hometown first. Keep an eye on this.