I have for sometime been working on implementing federated sign in with Identity Server in asp.net core. I have found this challenging, but my project has slowly been coming together. The Identity Server documentation and github samples are excellent, as are the courses on Pluralsight, but the topic is complicated, and the best source would be Broch Allen and Dominick Baier, the framework developers. In the last couple of years, I noticed that Norwegian Developers Conference (NDC) not only had Identity Server 2 day workshops (by its developers), but attracted a long list of my favorite speakers (e.g. Scott Allen). Unfortunately the conference has only been in Oslo, London and Australia. While I was waiting for winter to end this february, while browsing Reddit, I saw an advertisement for something called “NDC Minnesota”. I thought, that must be a knock-off conference and can’t possibly be the real NDC Conference, only 20 miles from my home.
Well, it was the real NDC, and I write this after attending 4 days at the conference: 2 days of Broch Allen’s Identity Server workshop and 2 days of general session. The workshop was excellent and set me up to complete my Identity Server implementation. Broch stepped through each part of authentication and authorization, with associated labs and great commentary on what not-to-do.
The main conference was also excellent – great speakers, conversation, food and location. Best of all, the small attendance (300+ instead of Oslo’s 2000+) of this first year of NDC in Minnesota (held at the same time as MS Build, Google IO), allowed for more conversation/access to speakers with no crowds.
If ngConf, a few weeks ago, was abundant in ngRx state management lectures, NDC Minnesota was abundant in microservices. The attraction appears to be their disconnected, maintable, scalable, modifiable units. Udi Dahen, developer of nServiceBus, held a 2 day pre-conference workshop here. I attended a couple of his lectures during the general conference, and am still trying to get my head around vertical slicing of data, business rules… instead of sending the client everything, a given page sends out a message “I’m about to deliver content with X,Y,Z” and any subscribing suppliers of that info, respond asynchronously with the data. A price api, locale api and product description api may all reply with a separate stream of data that is concatenated as the content is delivered.
I cannot afford nServiceBus, but container-based nodes might be more in my price range. Since my backend is written in asp.net core, and I’m on a microsoft server, I have not so far had use for Docker Containers. However, there are several frameworks including Kubernetes that allow for automated management of multiple container instances. I send a master controller a manifest, letting it know to spin up a few nodes, and each node with a few pods, each of which contain a few containers. One pod might be X api, another pod a db, and another the frontend. If one pod fails, the controller replaces it with another pod. Scaling up, might simply be adding a few extra pods. Bridget Kromhout led a few hour workshops on Kubernetes that I was able to follow. It may not yet be ready for production (at least by mere mortals), but stay tuned.
Finally Steve Sanderson (of Knockout fame) introduced a Microsoft project Blazor, currently in alpha, but I am very hopeful that Microsoft pursues this fully. Use c# for both frontend and backend, with some shared code, and the client code compiled to run in web assembly. Very cool.
NDC Minnesota 2018 was a great conference. I hope to return next year.