Rockford Lhotka

Information & Communications Technology

.net core ASP.NET Core CSLA .NET Docker Kubernetes microservices software architecture

Minneapolis, Minnesota, United States

Rockford Lhotka

Author, OSS contributor, CTO at Magenic

Rockford Lhotka is the CTO of Magenic, and is the creator of the widely used CSLA .NET development framework. He is the author of numerous books, and regularly speaks at major conferences around the world. Rockford is a Microsoft Regional Director and MVP. Magenic (www.magenic.com) helps our clients use technology to fuel business transformation. For more information go to www.lhotka.net.

Current sessions

Cross-Platform Development with Xamarin, C#, and CSLA .NET

You may write your smart client app in UWP, Xamarin, WPF, or even Windows Forms. In any case, your app probably calls back-end services and needs to interact with app servers. Some or all of your business logic may run on the client, the app server, or both. That's ideal for the balance between user interactivity, performance, scalability, and security. The widely-used open source CSLA .NET framework helps you create a reusable, scalable, and cross-platform portable business layer that lets your application run on multiple types of client devices while sharing business logic between the clients and your app server. This session is an end-to-end walkthrough of how this works and how you can benefit.


Cross-Platform C# Using .NET Core, Kubernetes, and WebAssembly

We have entered an era where Microsoft .NET runs everywhere -- on servers and client devices. Windows, macOS, iPhone/iPad, Android, Linux and other platforms are now supported. Increasingly we’re running server-side code in container-based environments such as Docker and Kubernetes. Perhaps even more exciting is the standards-based WebAssembly (wasm) platform, allowing front-end Web development to be done in languages other than JavaScript, including C, C++, Go, Rust and C#. Yes, .NET now runs in the browser using native browser capabilities -- no plug-ins are needed.

In this workshop Rocky and Jason will show you how to build C# and .NET code that runs on Windows, Linux, Docker/Kubernetes, macOS, iOS, Android and in the browser. You'll learn how to leverage .NET Core, .NET Standard (netstandard), Visual Studio, Visual Studio Code, Docker, and many other tools and technologies to build apps and services for each platform. Perhaps more important, you'll learn how to share common code across all these platforms, and techniques for when you need to also leverage platform-specific code."

You will learn:
• How to build C# and .NET code that runs cross-platform on client and server
• How to leverage .NET Standard and .NET Core
• How to share common code across platforms


Microservice Architecture in .NET

It seems like everyone is talking about microservice architectures. In this session you'll learn about the benefits and costs of this architecture, the prerequisites your organization needs to have in place, and how you can implement enterprise systems using microservices and .NET.


Sharing C# Code Across Platforms

At some point you are going to need to get your existing code base running on .NET Core, UWP, Xamarin, or another flavor of .NET. In the past you might have used Portable Class Libraries (PCLs) or Shared Projects to accomplish this goal. The new netstandard 2.0 definition is implemented by .NET Core, Xamarin, full .NET, and UWP, and this means we have a much simpler and more direct way to share and reuse code across all platforms.


Running .NET Apps in Docker and Kubernetes

.NET Core made .NET cross-platform, meaning we can run our apps in Linux. A rapidly growing way to host Linux apps on servers is with Docker, and the Kubernetes orchestration tooling. Learn how to create, deploy, and upgrade your .NET app in Docker and K8s.


Porting Your Code from .NET to netstandard

The future of .NET is .NET Core and netstandard. Learn how the large codebase of CSLA .NET was adapted to support netstandard 1.5, 1.6 and 2.0 while continuing to support full .NET (and Xamarin and UWP).


.NET Developers Love Bash!

You have probably noticed how more server-side code is running on Linux over time. As a .NET developer, it is in your best interest to gain familiarity with Linux, and that means the bash shell. Fortunately there are bash shells for Windows too, so you can use bash on Windows, bash on Linux, bash on Mac. In this session you'll learn how to leverage bash as a .NET developer on Windows and Linux so you are productive across both platforms with one command line tool set.


Hands-On With Cloud-Native .NET Development

"Cloud native" is rapidly becoming the default approach for building all sorts of apps. This term is often synonymous with microservices, containers, and serverless, but really combines those plus other concepts into a unified approach for building continuously delivered apps. In this hands-on workshop, you’ll learn how to build cloud-native systems in .NET Core. You’ll be running microservices in containers, hosted in orchestration technologies such as Kubernetes and Cloud Foundry. Even better, you’ll learn how to make these containers be the output of your continuous integration builds and see how they deploy to private, public, and hybrid clouds. If that wasn’t enough, you’ll also get hands-on experience with async message-based communications, modern configuration approaches, and many other key techniques that differentiate a cloud native app from more traditional architectures. These include the 12 Factors (12factor.net) and 8 Fallacies of Distributed Computing.

Learning points:
1. How to build microservices in .NET Core for containers
2. How to set up a DevOps pipeline so your build output is a container
3. How to architect modern cloud native apps leveraging the 12 Factors and avoiding the 8 Fallacies


Fast Focus: Deploying Apps to Kubernetes Using Helm

Kubernetes (k8s) is rapidly becoming the de facto runtime for cloud-native software. Helm is a powerful tool for deploying software into k8s. Helm can deploy multiple containers and services into k8s in a coordinated manner, often based on pre-defined "charts" provided by service vendors.

Learning goals:
1. Understand how k8s and Helm relate to each other
2. Learn how Helm is used to deploy services to k8s
3. Learn the components of Helm (charts, Tiller, etc.)


Microservice Architecture

It seems like everyone is talking about microservice architectures. In this session you'll learn about the benefits and costs of this architecture, the prerequisites your organization needs to have in place, and how you can implement enterprise systems using microservices and messaging. Demos and code are in .NET Core running on Linux containers in Kubernetes

Learning goals:
1. Costs and benefits of microservice architecture
2. Prerequisites for a microservice implementation
3. How microservices and messaging are related


Hands-On Lab: Hands-On with Cloud-Native .NET Development

In this hands-on lab you will learn how to install and interact with Docker and Kubernetes (using minikube). Using that infrastructure you will learn how to build .NET Core apps in Visual Studio that run in a k8s environment: web apps, web APIs, and message-based services. Along the way you'll learn numerous cloud-native best practices around microservice and message-based/event-based architecture, 12-factor design, how to avoid the fallacies of distributed computing, and more.

Learning goals:
1. How to install Docker and Kubernetes locally
2. How to build .NET Core apps that deploy to k8s
3. How to implement a microservice-based app


Run Your Business Logic Everywhere with WebAssembly, Containers, and CSLA .NET

You may write your smart client app in UWP, Xamarin, WPF, or even Windows Forms. In any case, your app probably calls back-end services and needs to interact with app servers. Some or all of your business logic may run on the client, the app server, or both. That's ideal for the balance between user interactivity, performance, scalability, and security. The widely-used open source CSLA .NET framework helps you create a reusable, scalable, and cross-platform portable business layer that lets your application run on multiple types of client devices while sharing business logic between the clients and your app server. This session is an end-to-end walkthrough of how this works and how you can benefit.

Learning points:
1. Learn how CSLA .NET helps you develop maintainable, reusable, cross-platform business logic
2. Learn how to leverage your business logic in WebAssembly (via Blazor and Uno)
3. Learn how to leverage your business logic on the server via Docker and Kubernetes

1. Learn how CSLA .NET helps you develop maintainable, reusable, cross-platform business logic
2. Learn how to leverage your business logic in WebAssembly (via Blazor and Uno)
3. Learn how to leverage your business logic on the server via Docker and Kubernetes


Fast Focus: Migrate Your C# Code from .NET Framework to .NET Standard

The future of .NET is .NET Core and netstandard. Learn a low-risk, high-productivity technique to migrate code to .NET Standard and .NET Core, while continuing to support your .NET Framework applications.

1. Learn the differences between .NET Framework, .NET Core, and .NET Standard
2. Learn how to use multitargeted projects
3. Learn how to use Shared Projects for low-risk migration


Two Days of Hands-On Cloud-Native .NET Development

In this 2 day hands-on lab you will learn how to install and interact with Docker on your local workstation and in Microsoft Azure. Building on that, you will learn how to install and use Kubernetes (k8s) on your local workstation. You will learn how to build .NET Core microservices and apps in Visual Studio that run in a k8s environment: web apps, web APIs, and message-based services. Along the way you'll learn numerous cloud-native best practices around microservice and message-based/event-based architecture, 12-factor design, how to avoid the fallacies of distributed computing, and more.

Finally, you'll learn how to use WebAssembly and Blazor to create a smart-client, browser-based app that interacts with your service-based backend system.

Learning goals:
1. How to install Docker and Kubernetes locally
2. How to build .NET Core apps that deploy to k8s
3. How to implement a microservice-based app with a Blazor front-end