As part of moving from the UK to Poland, I’m trying to find every opportunity to engage with developer communities and meet people here. When I heard the Microsoft Build tour would have an event in Warsaw, I registered on the spot and fortunately was able to make it. It wasn’t trivial to do so; we’ve literally only just moved so things are quite hectic at the moment! My first impression is that there is a vibrant developer community here, and I’m already booked into more things as a result of meeting people and finding out about opportunities, which I’m excited about – starting with a Software Craftsmanship meetup next week.
The venue for today’s event was a funny one – a converted disused bus depot on the outskirts of the city centre! We wondered if we had the right place when checking the map, but the venue team and organisers made a great choice – plenty of space, and really atmospheric!
There was a single track of presentations, all fairly short, and packing a lot of content into the day. The speakers were all very well polished, and a friendly bunch – hopefully our paths will cross again soon! The agenda was mostly split into two themes – client (progressive web apps and UWP apps), and Azure (cognitive services, serverless). As someone who’s spent the last couple of years on Amazon Web Services, it was interesting to see the new features on Azure (some of which I’ve pegged for use on projects already), while I do fairly little client development so it made a refreshing change to see some things in this field.
The keynote was packed with summaries of a whole range of new shiny things, mostly across the Azure and UWP space. It was interesting to hear about the Azure Stack – a fully self-hosted form of the Azure platform – and how it is being used on cruise ships to give full compatibility in systems deployed on board even when the regular cloud-hosted versions are not available!
The projects I’ve spent most of my time on in the last couple of years have used more traditional deployment models (virtual machines) and serverless (AWS Lambda), so the emergence of container technologies is something that I’ve watched from afar. The deployment model of containers is interesting to me, and has its uses, but I don’t know whether I’d go for it; having already taken the serverless pill and gone for being totally agnostic of servers and deployment topology it feels like a step backwards to think about shuffling containers around on machines. Almost all of the systems I build are (or can be/should be) event driven in nature, which suits the serverless model. I can see the benefit of containers over virtual machines though – more predictable, easier to define topology – and if I were on a project where VMs were being used heavily, I would consider this as a possible migration option.
What’s new in Azure AI
This was one of my favourite talks of the day; Microsoft’s Cognitive Services are something I’m working with at the moment and I’m constantly impressed by the features offered and how easy it is to leverage these. The thoughts on bot design patterns – the styles of human user/bot/human supervisor interaction – were a highlight for me, and http://aka.ms/botdesign gives some more resources on this that are worth taking into consideration.
Progressive Web Apps
The first of the client development talks focused on the new features coming in Windows 10 to enable a richer user experience with desktop apps written with web technologies. As was mentioned later in the Q/A session, there is definitely a convergence between the traditional benefits of native apps and of web apps where it is – to me at least – hard to find obvious fault with either approach for a new project. I think on this one it will be interesting to see whether the new Worker paradigm – intercepting network access in the desktop app so that it can be routed to a cache – is adopted by all vendors, or whether it will become a Microsoft-only thing.
One of the upcoming changes is a standardization of the markup used in XAML and Xamarin – and this will be a very good thing! The session showed various approaches for building multi-platform applications, from sharing coordination and infrastructure only with all views being implemented natively, using the Xamarin Forms abstraction to share as much view code as possible, and a hybrid approach combining both. I feel like I really should give Xamarin a go when I find the time…
Serverless in Azure
I’ve spent the past 6 months working with AWS Lambda, with the Serverless framework, so the paradigm of Functions-As-A-Service is one that resonates strongly with me. Having seen both, it does feel like with a free choice and no other factors I would go for the Azure option, as so much more is taken care of out of the box – especially if I want to use C# or F#. I’ll probably be trying this out before too long, as I have use cases for it on things I’ll be working on soon.
Universal Windows Platform
Again, an area I’m not so familiar with – the projects I’ve been on have tended to be web focused. However, the new features in this area – things like the store and monetization as a great example – make this quite an inviting thing to spend some time on when I can. I have a couple of half-developed tools I’ve been using just for myself; I might use these as an excuse to play with UWP… Things like the ink support also look surprisingly easy to get going with, and as my current laptop is slowly dying I’m at least a little bit tempted by the shiny new Surface range.
The Desktop Bridge is about providing a route to bring older applications along on the journey – in particular to give them a better installer and distribution story. If I’m honest, this was the talk that resonated with me the least – in that I don’t really have the problem that is being solved – however I can appreciate that this is a slick solution to a non-trivial problem! By generating an application manifest, older Win32/WinForms applications can be ported to the Windows Store.
Meeting new people!
Of course while the presentations are very interesting, the main thing I enjoy about events like this one are to meet and talk with new people. As a newcomer to the country, this was particularly the case today. To everyone I met, thankyou for being so patient with my inability to speak the local language, and thankyou for being so welcoming – I’m hoping our paths will cross many more times at future events!