Software Coach, Pluralsight Author, .NET & DDD
Julie Lerman is a Microsoft Regional Director, Docker Captain and long-time Microsoft MVP who now counts her years as a coder in decades. She makes her living as a mentor and consultant to software teams around the world. You can find Julie presenting on Entity Framework, Domain Driven Design and other topics at user groups and conferences around the world. Julie blogs at thedatafarm.com/blog, is the author of the highly acclaimed “Programming Entity Framework” books, the MSDN Magazine Data Points column and popular videos on Pluralsight.com. Follow Julie on twitter at julielerman.
Many of us are worrying about AI coding assistants, and specifically GitHub CoPilot. Will they erase the need for our coding experience. And also, isn't it cheating? How will we show off our skills? These were also concerns for Julie, who has over 30 years of building software under her belt. But minds were changed, worries erased. Let's see together how AI can be your partner and sous chef, not your competition.
Thanks to Docker and Windows Containers, it's now possible to have a no-fuss, full SQL Server instance on your development, test or QA machine. You can use SQL Server for Linux in a Docker container on any platform that supports a Docker engine or SQL Server in Windows Containers. The containers allow you to instantly spin up one or more SQL Servers as needed and wipe them out then restart a clean instance when the time is right. This makes for a killer developer environment to have the full power of SQL Server without the fuss. It also is a boon for automated test environments where you need to run integration tests against SQL Server. This session will focus on using Docker to get, run and manage SQL Server for Linux instances as well as a peek at running Windows based SQL Server SKUs. You'll also learn about persisting data and how to create and share an image with your own database already on it. Bonus lessons will include using command line SQL and the new cross-platform SQL Operations Studio.
Entity Framework half-heartedly supported DDD patterns. But the new-from-scratch EF Core has brought new hope for DDD practitioners to map your well-designed domain classes to a database, reducing the cases where a separate data model is needed. EF Core continues to be more and more DDD friendly, even supporting things like fully encapsulated collections, backing fields and the return of support for value objects. In this session we'll review some well-designed aggregates and explore how far the latest version of EF Core goes to act as the data model between your domain classes and your data store.
While we all want to work on shiny new software with shiny new technology, the reality is that many developers and teams are stuck maintaining legacy systems. While typically these systems continue to work, maintaining them can be painful. Yet the cost of replacing the old systems with new ones is unimaginable and financially untenable for many companies. How do we deal with this situation without abandoning our clients who are not yet candidates for rewrites or even for lift and shift? A long-time software veteran will share some of their own experiences and tips for keeping clients businesses running while slowly helping them evolve to modern times, blending modern software practices into ancient systems.
Domain-Driven Design is a vast topic. There are so many wonderful concepts, philosophies, patterns, practices and techniques to learn and benefit from. Some of the best minds in the industry have been tuning these practices for years to ensure developers are able to implement proven, successful approaches to software design. Domain modeling in particular is very specific with guidance on designing and coordinating the dance between the myriad moving parts in our system. Yet learning the principals of DDD can be daunting for developers who are new to DDD. To encourage and enable more developers to get on the path of DDD, is it reasonable to allow a more pragmatic approach over a principled approach of adhering strictly to DDD guidelines? Should developers be encouraged to start with low hanging fruit which they can quickly benefit from in their software projects while they continue to learn, to gain a deeper understanding of Domain-Driven Design in order to evolve and adapt their practices as they move closer and closer to the beauty we all know that can be achieved with DDD.
Entity Framework half-heartedly supported DDD patterns. But the new-from-scratch EF Core has brought new hope for DDD practitioners to be able to map their DDD designed domain classes to a database without making so many concessions that a separate data model was needed. EF Core 2 is very DDD friendly even supporting things like fully encapsulated collections, backing fields and the return of support for value objects. In this hands on workshop you’ll work with well-designed aggregates and explore how far EF Core 2 goes to act as the data model between your domain classes and your data store.
Be prepared for this class with the following :
Windows/macOS or Linux machine
.NET Core SDK (latest) Installed
Visual Studio 2017 or Visual Studio Code installed (code.visualstudio.com)
Attendees will be encouraged to work in pairs on a single computer.
Agile practices teach us how to deal with evolving applications but so often the data store is overlooked as a component of your application lifecycle. Database servers are monolothic, resource intensive and mostly viewed as set in stone. Encapsulating your database server in a container and your database in a storage container can dramatically lighten the load and make your database as agile as your model and other processes. And you can even use a serious enterprise class database like SQL Server this way. This session will show how to benefit from using a containerized version of SQL Server for Linux during development and testing. We'll also address concerns about data that needs to be persisted. You'll also get a peek at the DevOps side of this, including using images in your CI/CD process.
As a DDD practitioner, you have a lot of tools to help guide teams to gain new perspective on their problem domain, learn how to break down problems and organize software flow. But often you are faced with team members who are fearful of the new and reluctant to let go of what's worked for them for years. To best help everyone on the team you need to be kind, leave your ego at the door, be able to read people and figure out, on the fly, what's going to work. Julie has had great success working with teams that are replacing legacy software and helping even the most legacy minds get excited about new beginnings. She'll share her techniques and experiences so that you can help your own teams and clients grow and benefit from DDD thinking.
Azure Functions, Microsoft’s serverless offering, allow developers to focus on their code and not be concerned with infrastructure or DevOps. Thanks to a slew of built-in integrations, you can use configurations rather than code to send and retrieve messages to various services or be triggered by events in those services. One such integration is with Azure Cosmos DB, the multi-model, globally distributed NoSQL data service. Cosmos DB exposes data as documents that you can access via SQL, MongoDB or Cassandra as well as graph and key-value store. In this session, you’ll learn how to build data-focused Azure Functions that interact with Cosmos DB as well as get an introduction to the Durable Functions extension.
DDD is a long-standing holistic approach to solving complex software problems. It begins with the importance of collaborating with domain experts to comprehend the problems you are helping them solve. DDD offers strategic patterns for designing systems as well as tactical patterns for architecting solutions and implementing code . There are so many wonderful concepts and patterns to learn from DDD that you can certainly benefit from parts as you evolve towards a broader understanding. This session will provide a very introductory overview of DDD. You'll get a high-level look at the end-to-end process, insights into the most commonly referred to techniques and patterns, a look at some of the coding patterns and an understanding of where DDD is useful, where it is overkill and where you can at least take advantage of pieces of its guidance.
Software Coach, Pluralsight Author, .NET & DDD