What's Shawn been up to lately? Carl and Richard chat with Shawn Wildermuth about his work in the Netherlands. Shawn talks about his last show on being a senior developer - and how much that has changed in the past two years. The role of large language models in software development has changed careers, but they're still fun. The conversation also dives into the role of Aspire to utilize the best of cloud architecture and how LLMs make that easier as well - and enable developers to take on more architectural roles without getting stuck in the details of implementation.
Identity is hard, and getting harder! Carl and Richard talk to Michele Bustamante about the evolution of authentication and authorization in the current landscape. Michele talks about finding apps at clients that are still using older authentication strategies that are no longer secure - or are implemented incorrectly, so they were never secure! The conversation covers the array of tools available today for security, so you don't need to roll your own, and includes support so you can do it right. The role of the LLMs is important - old significant vulnerabilities are being found and fixed that can impact your apps, so it's important to review your identity solutions today!
Last year Jimmy Bogard released commercial licensed versions of AutoMapper and Mediatr - how's it going? Carl and Richard chat with Jimmy about the decision to go commercial and what he's learned after a year. Making customer transactions is part of the process for sure, as is a new array of issues and ideas. But for the most part, Jimmy says it was the right decision and has been a good experience. Another great story of sustainable open source!
How has testing changed in the era of AI? Carl and Richard talk to Debbie O'Brien in her new role at Zephyr about using LLMs to help build and validate tests - and much more. Debbie talks about joining Zephyr and using testing tools like Playwright to validate application workflows and generate documentation. This leads to a discussion about documentation being more important than ever, since LLMs will actually read it! Maintaining quality is a challenge with LLM-generated code and tests, so there's always a role for a critical eye in the process.
The Open Source Maintenance Fee is more than a year old now - how are things going? Carl and Richard catch up with Rob Mensching to discuss the OSMF and its success in supporting Rob's WiX Toolset project. Rob talks about the key aspect of the OSMF - making it part of the licensing, so that it isn't optional. Of course, you can download the source from GitHub and compile it yourself without violating any license terms, but if you're that engaged, you can contribute too. The goal with OSMF is to have folks who want to use the product have a reason and method to pay - check it out!
Have you checked out Azure Container Apps lately? Carl and Richard talk to Paul Yuknewicz and Jan Kalis about how they have sped up startup time with Container Apps using a feature called Express, and then on to the big news - Sandboxes. Sandboxes let you experiment with Azure Container Apps with managed identity to access Azure Connectors to all sorts of resources, both within Azure and outside it - Salesforce, SAP, etc. It's an effective and secure strategy for building applications, but also for experimenting with agents - at no point does the agent actually have control of any credentials. If you haven't looked at ACA lately, you need to check out these latest features!
DNSimple has a CLI! Carl and Richard talk to DNSimple CEO Anthony Eden about the evolution of the DNSimple CLI in today's software market. DNSimple provides DNS, domain registrar, and certificate services - so why does it need a CLI? Anthony talks about earlier experiments with CLIs for folks who didn't want to use the web interface. But today, large language models change the game and work best with a CLI - those specific commands mean more accurate results from LLMs, which make for a powerful natural language interface experience. The conversation covers the new tooling around LLMs, how the registrar market has evolved, changes to certificates, and ICANN's recent announcement of new gTLDs. DNSimple continues to evolve with the times! Check the show notes for a link for ten dollars off anything at DNSimple!
Do data centers in space make any sense? Time for a rare summer-time Geek Out! Richard chats with Carl about all the hype surrounding building orbital data centers for AI workloads. Richard points out that enthusiasm for this idea surged in the fall of 2025, when the backlash against ground data centers peaked. But could you actually make the orbital data centers work? The conversation works through a reasonable satellite design, covering off the details of power, cooling, communications, and satellite management. But how many satellites would be enough? This leads to an exploration of Kessler Syndrome, where orbital debris gets out of control - and what we can reasonably do about it. Which leads to another idea - how do we make ground-based data centers not suck?
Can tooling make event sourcing implementations easier? Carl and Richard talk to Einar Ingebrigsten about his work on cratis.io - a set of open-source tools for implementing event sourcing in your application. Einar discusses the foundational elements of event sourcing and the common implementation patterns he developed at Cratis. With extensive support for .NET, Cratis provides tooling for data storage, event response, replay management, and much more. Also in development is Cratis Studio for collaborating visually on an event model - and generating the code in the process.
Is it time to build your own agent harness? Carl and Richard talk to Emmz Rendle about her work on Daemonic AI, which gives you more control over which models and tooling you use to build software with agents. Emmz talks about the upcoming rug pull in AI software development tools, where prices are rising, and services are being restricted. Having enough control to choose when to run locally becomes key to being productive at a reasonable price. Being able to pick-and-choose what agents and configurations to use for each of the agent roles you want to implement is super powerful - check out the GitHub project and take it for a spin!
What settings, configurations, and workflows do you use for every .NET app? Carl and Richard talk to Scott Sauber about his list - from organizing folders by feature, to logging, security, and testing. Scott talks about enforcing rules like treating warnings as errors so you won't ignore important warnings, and validation in the build, to make applications more reliable. Each of these items represents some work, but in the end, your application will be higher quality and more reliable. Which ones are you already doing?
Large Language Models can generate a lot of text - but is it any good? Carl and Richard talk to Vishwas Lele about his ongoing efforts at pWin.ai to build tools for responding to government RFPs. Vishwas focuses on the quality problem - both the quality of the incoming RFP and the quality of the responding proposal. How do you determine the key requirements of an RFP reliably? And when it comes to the response, how do you provide measurable results for a response? The conversation digs into a change in workflow that benefits the RFP process regardless of tooling - and gives hints to the patterns of success with LLMs!
Use What Works! Carl and Richard talk to Dylan Beattie about the Use What Works movement, encouraging developers to use well-maintained open-source projects available today rather than rolling their own. Dylan explains how folks go down a path of believing a library is simple until they learn enough to realize that every bit of software is more complicated than they realize. And the less code you own, the happier and more productive you are. Adding AI to the mix only makes it clearer: you need some stability in development. If you're changing every layer of code, you'll spend even more time and frustration chasing problems. Make getting results easier - use what works!
Ready to go nano? Carl and Richard talk to José Simões about the open source .NET nanoFramework - a community-driven project to provide .NET for embedded systems. José talks about the evolution from the .NET microFramework, to something even smaller, while at the same time, microcontrollers have gotten much more powerful. The conversation looks beyond the hobbyist and educational uses of these systems into commercial IoT applications. The development cycle is one you'll recognize, working in Visual Studio (or Visual Studio Code) and executing against an emulator, or to the actual controller via USB. And yes, you can set breakpoint in the controller!
Recorded live at the Tavern Hall in Bellevue during the Party with Palermo for the MVP Summit, it's episode 2000! Carl and Richard take questions from the audience and play clips from past guests and listeners about their experiences with .NET, and the role that .NET Rocks has played in their careers. After two thousand shows, there are lots of stories, and plenty to celebrate. Thanks for listening!
The Y2K bug turned out to be a non-event on January 1, 2000. How did that happen? Carl and Richard bring together a number of stories from folks who were there, fixing the software and updating systems, so effectively that, ultimately, nothing much happened when the clocks rolled over. It was common practice with early software to only store two digits worth of year - back then, storage space was at a premium. For years, there had been warnings about fixing these problems, but by 1999, it was essential. These are the stories of how some folks did those fixes so effectively that when Jan 1 2000, came around, nothing bad happened.
How are LLMs changing software development? Carl and Richard talk to Rob Conery about his experiences as a consultant bringing the new AI tools and techniques into companies. Rob talks about focusing on the most painful problems first to show the team quick results and make their lives better. The conversation digs into how these tools seriously change the way developers work and what it takes to embrace those changes. Lots of good thinking from a very experienced developer on how to do more than ever before!
How do you make your agents more knowledgeable about your company data? Carl and Richard talk to Ed Charbeneau about Progress Agentic RAG-as-a-Service, using NucliaDB as a vector data store to organize your company information into a form an agent can work with efficiently. Ed talks about the various approaches available today for providing timely company data to agents and the power of a dedicated data store and service model so that you spend less time on plumbing and more time building a great agentic app. The products are open source and have great .NET SDKs - check them out!
ASP.NET Core continues to evolve in 2026! Carl and Richard talk to Daniel Roth about all the goodness in the ASP.NET Core space, including MVC, Razor, and Blazor! Daniel talks about the publicly visible ASP.NET Core Roadmap on GitHub - where you can support ideas, add your own, and debate implementations! The conversation dives into the focus on Blazor - MVC and Razor aren't going away anytime soon, or perhaps ever. Still, the energy is definitely on Blazor, and its potential to provide a great development experience that scales effectively and provides the features your applications need. And Daniel reminds us that the teams all work closely together, including the broader .NET and language teams, so new features are in the right place and available to everyone!
What does secure coding look like today? Carl and Richard talk to Chris Ayers about the MITRE ATT&CK matrix, a comprehensive breakdown of the tactics, techniques, and procedures black hats use to exploit your systems. Chris talks about the role of developers in creating more secure software, starting with logging - surfacing important data about the use of applications that can help indicate when a black hat is taking advantage of it. The conversation also digs into supply chain attacks, various techniques for resisting exploits being introduced through libraries, and the ever-expanding array of threats affecting software today!
Let the squad help you build your application! Carl and Richard talk to Brady Gaster about Squad, a tool for creating an AI development team using GitHub Copilot. Brady discusses creating specialist agents across various aspects of building an application to keep context as small as possible, along with token consumption. Often, agents communicate with other agents to work through project problems, generating persistent information about the project, including skills as needed. Squad continues to evolve and get more powerful - try it with your application!
Avalonia continues to evolve! Carl and Richard talk to Avalonia CEO Mike James & Matt Lacey about the latest version of Avalonia, the open source UI framework for building cross-platform applications with .NET. Mike's conversation with the Google Flutter team has led to replacing the Skia rendering engine in Avalonia with the newer Impeller Rendering Engine that Flutter itself depends on. This opens the door to excellent smartphone implementations with Avalonia, alongside its usual desktop and embedded roles. With enterprise editions and the new Avalonia Accelerate, there's more to come from the team!
Your first app interface should be a CLI! Carl and Richard talk to Kathleen Dollard about her experiences creating the .NET CLI - and how CLIs are only getting more important in the era of AI. Kathleen talks about working within the POSIX CLI standard for consistency's sake and to recognize that there will be many more CLIs in your life, so they should be as similar as possible. While CLIs may have started as configuration-as-code and DevOps practices, LLMs work well with them as long as consistency is maintained. There are several projects out there today to help you build a great CLI - check the links!
Artificial Intelligence is changing how software development happens - how is your team coping? Carl and Richard talk to Andrew Murphy about his work leading teams struggling with AI tools. Andrew talks about Nolan Lawson's blog post We Mourn Our Craft and his blogged response about dealing with grief. Some developers are embracing these new tools - perhaps they're new to development, or very experienced. But some folks aren't having a good time with AI and are wondering what has happened to their careers. How can you help?
It's always been challenging to make reliable software - is AI making it worse or better? Carl and Richard talk to Damien Brady about his experiences building software with AI tools and trying to bring that software up to an acceptable standard. Damien talks about leveraging LLMs' tendency toward detailed analysis to catch problems in code. It takes practice and experience to get good at using these tools, but they become more powerful over time!
How does Artificial Intelligence impact our approach to building secure software? Carl and Richard talk to Ben Dechrai about his experiences working with AI tooling and building AI apps, and how that impacts security. Ben talks about the concerns organizations have about using AI tools - what these tools might do with the code they are exposed to, as well as the code the tools generate. The conversation steers to local AI as a solution, although so far, the equipment and tools are very limited. Ben also talks about how AI tools are being used to both attack and secure software and the challenges of this arms race - hopefully the good guys win!
Why would you write code to generate code? Carl and Richard talk with Jason Bock about his experiences using modern .NET source generators to optimize certain aspects of applications. Jason talks about treading carefully - while .NET source generation has been part of .NET since 5.0 and Roslyn, it is a special case approach to problem solving. But with specialized implementations for regex and P/Invoke, there is some huge potential in these coding techniques that you can take advantage of!
What's coming for Aspire in 2026? Carl and Richard talk to Maddy Montaquila about her work as the product manager for Aspire, the tool that helps you build cloud-native, distributed applications in any language and on any platform. Maddy talks about moving beyond .NET, recognizing that modern applications are written in a number of languages, and the team has focused on ensuring excellent support for Python and JavaScript, as well as the .NET languages. The same is true for the cloud - Azure, AWS, GCP - Aspire works great with them all. And then there's the role of AI, both in building apps with Aspire and building AI into applications. Aspirify today!
What's happening with MAUI today? Carl and Richard talk to Gerald Versluis about the latest version of MAUI - and what's coming next! Gerald talks about the release of .NET 10 and the new features that have come to MAUI, including improvements in quality, performance, and ease of use. The conversation also digs into adjacent technologies like Uno and Avalonia and how they are collaborating with the MAUI team to make development even easier!
How do you distribute Windows apps? Carl and Richard chat with Shmueli Englard about the power of distributing apps through the Microsoft Store. You package your app as an MSIX and can deploy it to the Microsoft Store, and then send updates through it as well. If you want to charge for the app, Microsoft will do the licensing and payment systems for you (for a fee, of course), but if your software is free, distribution through the Microsoft Store is also free! Want to do your own updates? You can do that too.
What's happening with Uno now that .NET 10 is released? Carl and Richard talk to Jérôme Laban and Sam Basu about the latest developments in Uno, including their collaboration with Microsoft on MAUI, WASM, and more! The conversation also digs into the role of AI in the Uno Platform, bringing MCPs into play to build applications faster and make migration from legacy systems easier. A lot is going on in development today!
Happy New Year - let's talk Energy! Richard chats with Carl about the state of energy generation in the world today - and things are progressing! Almost every kind of power generation is expanding at the moment, whether you look at solar, wind, hydroelectric, natural gas, coal, oil, or even nuclear! The cost of batteries hits a new low, and new technologies being demonstrated today show that storage is only going to get bigger. And what about the impact of AI on power generation? There's a huge change coming to electricity, an AI may have accelerated that change - but that's only part of the equation!
Space Geek Out Time - 2025 Edition! Richard talks to Carl about the past year in space, starting with a reader comment about 3I/ATLAS, the interstellar comet passing through our solar system that has kicked off conspiracies about aliens coming to visit - hint, it's just a comet. Then, into another record-breaking year of spaceflight with a record number of Falcon 9 flights, Starship tests, United Launch Alliance underperforming, and New Glenn finally getting to orbit! The International Space Station has passed 25 years of continuous habitation and is only five years away from being sent to a watery grave. But there are new space stations in the works! Finally, the stories of landers on the Moon, trouble at Mars, and how silly the idea of building data centers in space really is. A fantastic year for space!
How is AI going to change software development? Live from the Philly.NET user group, Carl and Richard have Jeff Fritz and Bill Wolff chat about how AI technologies are impacting software development. The conversation opens with a listener concerned about the costs and controls around AI technology. There are a variety of approaches to using these tools; Jeff and Bill talk about the work they have done and some of the challenges. There is enormous potential here, but the paths forward aren't clear yet - more is to come!
How is package management changing? Carl and Richard talk with Gary Ewan Park about his view of the package management landscape in the Windows world. Gary talks about the array of open source and free products out there today to do package management - you really have a lot of choice! There are also retail enterprise products that focus on features companies need to support larger numbers of machines, including virtual machines and cloud containers. The challenge of security and supply chain attacks is a key part of the modern landscape - and there are tools to help you get things right!
What's it like building an AI-centric application? Carl and Richard talk to Calum Simpson of SSW about their product YakShaver. Calum talks about building a tool that speeds reporting on issues and ideas, so you can spend more time focusing on key issues rather than "shaving the yak." The use of LLMs makes YakShaver far more capable, and the upcoming V2 uses Model Context Protocol (MCP) servers to expand functionality and feed information directly into bug reports, such as GitHub issues and feature requests. The conversation also turns a bit more philosophical, focusing on innovative uses of LLMs, properly constraining these tools, and maintaining a transparent chain of responsibility for your code.
What does it take to make more environmentally sustainable software? Carl and Richard talk to Tom Herkhove about Microsoft's efforts to make carbon footprint and emissions visible for applications. Tom talks about the Azure API Management interface as a great starting point, and the ability to shift workloads to low-emission data centers as needed. The conversation also digs into wasted cycles, like automatically fired CI/CD pipelines whose results are never reviewed. It all begins with measuring - what action you take from there is up to you!
How are large language models going to change the way we use Visual Studio? Carl and Richard speak with Leslie Richardson about her work in Visual Studio, starting with the debugger and now focusing on the broader productivity features of the product. Leslie discusses how various Copilots are being integrated into Visual Studio to help users take advantage of the vast array of features available, which can sometimes be difficult to discover. The upcoming Visual Studio 2026 is available as an insider's preview if you want to get a jump on what's coming!
How are folks adapting to the new tools available for development today? Carl and Richard talk to Brady Gaster about his work on improving the tooling for software development at Microsoft - and the transformation that is currently underway! Brady talks about developers doing app modernization, dealing with the challenges of the cloud, and the many fun things you get to do as software developers over the years - and how there's only more coming!
Ready to integrate build automation into your applications? Carl and Richard talk to Mattias Karlsson about the new Cake.SDK as an additional component of the Cake (C# Make) open source project. Mattias talks about integrating the Cake scripting experience into your .NET console applications. The conversation digs into speeding up the building of infrastructure for testing and pre-production environments so that you can get features shipped quickly!
How do you build quality software with LLMs? Carl and Richard talk to Den Delimarsky about the GitHub Spec Kit, which uses specifications to help LLMs generate code for you. Den discusses the iterative process of refining specifications to produce better code, and then being able to add your own code without disrupting the process. The conversation delves into this new style of software development, utilizing specifications to break down tasks sufficiently for LLMs to be successful, and explores the limitations that exist today.
The next version of CSLA is out! Carl and Richard talk to Rocky Lhotka about his business objects framework that pre-dates .NET itself! Rocky discusses the surge in development that occurred for version 9, where a company heavily dependent on CSLA contracted developers to clear some of the backlog. The result is a few new long-term contributors, resulting in an increased development candence and a substantial modernization of the code base. The conversation also turns to AI and its role in development, as well as Rocky's experiments with making an MCP server for CSLA!
Aspire has been around for almost two years. How do you use it effectively? Carl and Richard talk to Chris Klug about his experience with .NET Aspire. Chris discusses thinking cloud natively, whether you are going to the cloud or not - it's not just a place, but also an architecture. The conversation digs into the role of containers and Kubernetes, deployment strategies, telemetry, security, testing, and more. You can use as much or as little Aspire as you wish!
You write tests - but are they valuable tests? Carl and Richard talk to Egil Hansen about his approach to creating tests for applications. Egil discusses the types of testing and who they impact. Testing isn't only for you! Valuable tests are also durable, being able to persist between changes where it makes sense, and help to understand when updates are going to create problems. The role of LLMs in generating code comes into play: should AI write your tests, evaluate them, or do both? Lots of great thinking from someone who's been helping developers build better tests for years!
AI in the cloud dominates, but what can you run locally? Carl and Richard speak with Joe Finney about his work in setting up local machine learning models. Joe discusses the non-LLM aspects of machine learning, including the vast array of models available at sites like Hugging Face. These models can help with image recognition, OCR, classifiers, and much more. Local LLMs are also a possibility, but the hardware requirements become more significant - a balance must be found between cost, security, and productivity!
How has AI changed coding with Visual Studio Code? Carl and Richard talk to James Montemagno about his experiences using the various LLM models available today with Visual Studio Code to build applications. James talks about the differences in approaches between Visual Studio and Visual Studio Code when it comes to AI tooling, and how those tools continue to evolve. The conversation also digs into how different people use AI tools to answer questions about errors, generate code, and manage projects. There's no one right way - you can experiment for yourself to get more done in less time!
Razor Tooling is evolving! Carl and Richard talk to David Wengier about the changes coming for Razor Pages in the next version of Visual Studio. David talks about the realization that much of the new work in Razor ties closely to Roslyn, which has resulted in a new co-hosting model that means higher performance and reliability for your web pages! The conversation delves into how capabilities in Visual Studio Code are shared with Visual Studio and vice versa, as well as the role of the Language Service Protocol in making it easier to bring more powerful tools to you.
Ready for the next version of Visual Studio? Carl and Richard talk to Mads Kristensen about the long-awaited version of Visual Studio. Needless to say, artificial intelligence sits front and center. Mads talks about the deep integration of AI across the development lifecycle, including code completion, debugging, even natural language querying. The conversation also digs into the role of Visual Studio as a project management tool, and its integration with cloud, GitHub, and more!
How has DevOps changed in 2025? Carl and Richard talk to Michael Levan about his experiences helping teams automate their development workflows, and dealing with all the details that help the entire team focus on providing customer value. Michael digs into the role of the new AI tools in facilitating better workflows around code, testing, deployment, telemetry, and more. Then the conversation turns to security - and the many challenges that exist to make applications that are secure when deployed, and help with the security challenges that happen while in operation!
How did the design of GitHub evolve? Carl and Richard speak with Diana Mounter about her experiences at GitHub, including her role as head of design. Diana discusses how she was drawn to GitHub as a designer and how her career evolved to lead design for the company. The conversation ranges over different design concepts, the Primer design language, and how to effectively combine design and development to achieve great results.
What's coming in C#14? Carl and Richard chat with Dustin Campbell about the next version of C#, discussing what it takes to continue advancing software development in the Microsoft ecosystem. Dustin discusses how features are selected from version to version, including long-developed features like extension members, which have been in development for years. The conversation also turns to Razor Pages, which Dustin helps contribute to, and the dynamic of what should be language, what should be framework, and what should be tooling. And there's much more to come!
How has application security evolved over the decades? Carl and Richard talk to Michael Howard about his experiences working in security at Microsoft. Michael discusses his current role as a member of the Red Team at Microsoft, which identifies security vulnerabilities within the organization by creating scenarios that black hats might employ, such as stealing tokens or hijacking financial transactions. The conversation examines how security continues to evolve, with improved tools, new attack surfaces, and increasingly serious attacks. It's an arms race, but one the good guys can win!
Can you improve a legacy application? What's the right way to go about it? Carl and Richard talk with Billy Hollis about his work updating legacy applications, starting with the most essential question: should you? Billy begins by defining what it means to be a legacy application and how, invariably, these applications are critical to the organization, so you have to tread lightly. Typically, the focus is on modernizing the client-side of the app, which brings us to the crux of the matter: Are the workflows of the company today well reflected in the older application? Lots of great thoughts from one of the longest-serving guests of .NET Rocks!
How can event sourcing help your applications? Carl and Richard speak with Hannes Lowette about his work in helping developers utilize event sourcing patterns to build scalable applications. Hannes discusses moving away from the old habit of decomposing data from objects into rows, columns, and tables, as there's no reason to save that disk space anymore. Storing objects as event streams means you can always generate relational data if needed, but things run faster and scale better in the streams.
Do you have AI concerns? So does Mark Seemann! Carl and Richard chat with Mark about his views on the impact that large language models are having on the development community. Mark starts with the power of ChatGPT to be perceived as a source of truth, which we know isn't true! How does this ultimately impact the development of software? You need sufficient knowledge to assess whether the code generated by these tools is valid, accurate, and appropriate. The tools can also help with the process. We're still in the early days of using AI for information - there's a lot to learn!
How do you build progressive web apps in 2025? Carl and Richard talk to Lemon about his experiences building all sorts of PWAs for customers and entertainment. Lemon discusses going beyond the icon in PWAs and leveraging more powerful features, including service workers. The conversation also digs into some of the crazy talks done over the years, as well as gaming from browsers and more!
How can AI tech help you write better code? Carl and Richard talk to Mark Miller about the latest AI features coming in CodeRush. Mark talks about focusing on a fast and cost-effective AI assistant driven by voice, so you don't have to switch to a different window and type. The conversation delves into the rapid evolution of software development, utilizing AI technologies to accomplish more in less time.
Ready for a great explanation of Agentic AI? For the last show at Build, Carl and Richard sit down with Seth Juarez to dig into what agentic AI really is - and how you can take advantage of it! Seth discusses the potential of MCP and NLWeb to enable agents to work with each other, as well as the challenges of managing these tools effectively. The conversation turns to what's happening under the hood of agentic AI software, including the limitations of its abilities. There is a need for governance and clear thinking with these new development tools!
It's the Imagine Cup Finalists! While at Build, Carl and Richard sat down with Daniel Kim, Matt Steele, and Gheida Omar to talk about their projects in the Imagine Cup. Gheida discussed Signvrse, a mobile app that enables real-time translation of speech, text, and sign language. Matt tells the story of Hairmatch, a mobile app for women with textured hair. And Daniel describes Argus, the winner of the Imagine Cup, as a two-part wearable device for people with low vision that provides object detection, facial recognition, and spatial guidance. All amazing projects from a remarkable group of young people!
How do you eliminate the friction of development? Carl and Richard talk to Nicole Forsgren about her upcoming book on eliminating the friction from software development. Building on her earlier book, Accelerate, Nicole discusses the role of AI technologies in software development, along with more traditional DevOps elements, such as automating testing, deployment, telemetry, and more. There's never been a better time to pay attention to your tools and methods when it comes to software development - when you improve your workflow, your productivity soars!
How do you eliminate the friction of development? Carl and Richard talk to Nicole Forsgren about her upcoming book on eliminating the friction from software development. Building on her earlier book, Accelerate, Nicole discusses the role of AI technologies in software development, along with more traditional DevOps elements, such as automating testing, deployment, telemetry, and more. There's never been a better time to pay attention to your tools and methods when it comes to software development - when you improve your workflow, your productivity soars!
What happens when AI comes to your web testing tool? While at Build, Carl and Richard talked to Debbie O'Brien about the latest features in Playwright, including Playwright MCP, the model control plane for Playwright capabilities. Debbie talks about using Playwright MCP to buy a table. Ask your LLM what tests should be written for your web page, and then ask it to write them. The potential of these tools is to make more tests in less time that are more resilient as versions of both the website and the testing tools change!
How will coding agents change your code? While at Build, Carl and Richard chatted with Scott Hunter about the announcements around coding agents at the keynote. Scott talks about the agent mode available in Visual Studio Code - and now in Visual Studio! Agent mode allows the LLM to evaluate the code across an entire solution, not just the file you're currently looking at. You can create a workflow where GitHub issues are assigned to the agent, which then generates code and provides a pull request for evaluation. The agents are here and helping us do more!
What if you could use ElasticSearch serverless? While at Build, Carl and Richard chatted with Ken Exner about the new announcements around Elastic providing serverless storage and search! Ken talks about paying for only the data you move and store with serverless, rather than needing to operate any infrastructure for Elastic. The conversation digs into the potential of Elastic in Azure AI Foundry to provide ultra-fast access to current company data for your LLM implementations. Elastic did vector databases before LLMs made them essential for RAG - and you can take advantage of it!
Do you understand how networking works in C#? Carl and Richard chat with Chris Woody Woodruff about his new book on networking with C#. Chris runs down the fundamentals of networking and then discusses the different approaches readily available in the C# world, including web sockets, gRPC, SignalR, and many more! The conversation also turns to the upcoming QUIC standards built into HTTP/3 that should simplify networking. Sure, you could go with the defaults, but why not explore all the options!
How do you secure browser-based frontends with ASP.NET Core backends? Carl and Richard discuss the Backend for Frontend (BFF) Security Framework with Erwin van der Valk. Erwin talks about Sam Newman's BFF Pattern and how it helps deal with the diversity of clients, including web, desktop, and mobile, to work with a common backend. OAuth 2.0 is capable of dealing with this complexity, but there are many moving parts, and that's where the security framework can help!
How do you balance architecture and code? Carl and Richard talk to Steve Smith about various architectural strategies and the swing back-and-forth against over-designing architecture and getting code written. Steve talks about how architecture changes depending on the size and number of teams, how the latest tools can help with architectural choices, and the challenge of effective refactoring when things need to change. Lots of great conversation!
Open Source Maintainers are burning out or going commercial - how do we solve this? Carl and Richard chat with Rob Mensching about his work to create the open source maintenance fee through GitHub. Rob talks about the common problem of single maintainers getting buried under issues and demands of consumers for a project. Recognizing that most people cannot contribute to the project, a maintenance fee helps support the maintainer in a low friction way for everyone involved. Check out the links to get started!
How can a large language model help your organization answer government RFPs? Carl and Richard talk to Vishwas Lele about his startup pWin, as in proposal win. Vishwas talks about being a year into the startup and his deeper understanding of how AI technologies can augment skilled operators to produce better quality products in less time, including responding to RFPs. The conversation digs into tuning the LLM to focus on the data relevant to each section of the RFP so that the operator can interact with the tool and build better responses!
Can you integrate performant audio-video into your .NET application? Carl and Richard talk to Elias Puurunen about his work at Tractus Events, where he uses the NDI protocols to bring real-time audio and video streams into his C# application. Elias talks about the power of P/Invoke to access the underlying libraries for controlling video streams, including utilizing NVidia GPUs for extremely fast encoding and decoding. You could write this code in C++, but why?
Ready to build an agentic AI in .NET? Carl and Richard talk to Spencer Schneidenbach about his work using large language models to enhance customer interactions in healthcare. Spencer discusses using the LLMs to summarize customer conversations to identify topic areas, sentiment, and other concerns. He digs into how Microsoft's Semantic Kernel makes connecting an OpenAI model to your APIs easy, fetching information and creating a context for testing reliability and consistency with these models. Check out the links for some great tools to help make your AI apps with .NET!
How do you measure the quality of a large language model? Carl and Richard talk to Dr. Jodie Burchell about her work measuring large language models for accuracy, reliability, and consistency. Jodie talks about the variety of benchmarks that exist for LLMs and the problems they have. A broader conversation about quality digs into the idea that LLMs should be targeted to the particular topic area they are being used for - often, smaller is better! Building a good test suite for your LLM is challenging but can increase your confidence that the tool will work as expected.
What are JavaScript promises, and why do you want to make them? Carl and Richard talk to Martine Dowden about all the various async options available in Javascript today, including Callbacks, Promises, Async/Await, and even ReactiveJS! Martine digs into some of the more remarkable features available, including grouping sync calls together so code is only called when they all complete, or the race option where only one needs to complete, and everything else is thrown away. Lots of power is available in Javascript today. Have you taken advantage of it?
What's the latest with .NET Aspire? Carl and Richard talk to Rob Richardson about his experiences with .NET Aspire to help build great .NET cloud apps. Rob talks about all the goodness that comes out of the box with Aspire, including OpenTelemetry, containerization, good security practices, and the excellent dashboard. The discussion turns to the challenges of evolving .NET to be better in the cloud, retrofitting existing applications with Aspire, and all the container choices you have in front of you with these tools. There's more than one way to fall into the pit of success!
Seventeen years of Automapper! Carl and Richard talk to Jimmy Bogard about his latest version of Automapper - and the challenge of maintaining a long-lived and much-loved open-source library! Jimmy talks about the origins of Automapper as a tool he needed for working with clients and automating the mapping of objects. Initially, he moved to GitHub on Codeplex in 2009, and as open source became more popular in the .NET community, Automapper has hundreds of millions of downloads. And now, the next challenge - how to sustain this open-source project!
React version 19 has been released! Carl and Richard talk to Aurora Scharff about the long-awaited version of React that incorporates React Server Components and many other features. Aurora talks about the rethink involved in switching to a server-first implementation of a React website, which is best suited for greenfield implementations. For existing React apps, you'll want to look at React Router, which has V7, incorporates Remix features, and provides a bridge between React 18 and 19. Lots of progress from the library that runs Facebook!
How can vertical architecture help you? Carl and Richard talk to Jeremy Miller about using vertical architecture to help build applications quickly and reliably. Jeremy talks about resisting the over-thinking of architecture leaving room for developers to build the app and get to results rapidly - by taking a vertical slice of the problem space, end-to-end, and getting something running as soon as possible. The conversation digs into many concerns about taking shortcuts, collaborating with other teams, duplicated work, and more!
Ready to speed up your cross-platform development? Carl and Richard chat with Francois Tanguay and Sasha Krsmanovic about Uno Hot Design. First shown at .NET Conf in 2024, Hot Design brings the Hot Reload experience to UX onto your various client devices. Francois talks about the evolution of the Uno Platform into a place where you can use a variety of client libraries to build your app and deploy your client of choice. But when it comes to iterating the implementation, Hot Design speeds your dev cycle so you can get more done in less time!
How do customers take control of their data from merchants? Carl and Richard chat with Richard Reukema about his book The Empowered Customer. Richard discusses building a data cooperative between customers and merchants using ethical data handling techniques and technology to create mutual benefit. The conversation dives into how to get merchants to migrate from their loyalty programs into this more constructive and broader model.
Can tooling make implementing AI features in your applications easier? Steve Sanderson says yes! Carl and Richard talk to Steve about the Microsoft.Extensions.AI preview toolset for OpenAI and oLlama. Steve discusses ideas around useful places for AI technologies to appear in your application, not just chat. The conversation digs into more ambient ideas, like providing suggested cut-and-paste items when entering forms and even dynamic changes to UI based on how a user interacts with the application. Want to get started? Get the extensions on NuGet!
Ready for more Rockstar? Carl and Richard chat with Dylan Beattie about the programming language known as Rockstar. Dylan talks about a joke that got wildly out of hand - back when recruiters were all about rockstar developers, why shouldn't there be a programming language? And then it happened - a language where the code looks (and sounds) like glam rock lyrics! And now there's a new version coming - more rocking to be done!
How do you balance the coupling in your application? Carl and Richard talk to Vlad Khononov about his book on Balancing Coupling in Software Design. Vlad talks about three aspects of coupling - information, distance, and volatility. When these aspects are out of balance, such as a pair of services that are distant from each other but highly dependent and need lots of information, development becomes difficult. Where information is high, keeping the distance low makes life easier. This led to a great conversation about Conway's Law and the idea that sometimes changing the team organization can lead to better application development! Check out the book!
What's coming for Blazor in .NET 9? Carl and Richard talk to Dan Roth about the upcoming version of Blazor. Dan discusses excellent performance improvements, better MAUI interactions, new SignalR features, and more! The conversation also dives into how Blazor gets made and the journey that submitting issues into GitHub goes through to become features in the Blazor framework. It takes a while, but you can be part of making Blazor great!
What does it mean to build cloud-native applications? Carl and Richard talk to Chris Klug about his experiences building applications designed to operate effectively in the cloud. Chris pushes back on the fixation around Kubernetes - you can build cloud-native apps without it! The conversation digs into the various options available to take advantage of the cloud's ability to scale while also tolerating its occasional short-duration outages and shifting availability. Chris also talks about .NET Aspire and its ability to help you build .NET cloud-native applications.
What has Chris Sells been up to? Carl and Richard chat with Chris Sells, the guest on episode 10 back in 2002, about how his career continues to evolve. Chris talks about working at Google on Flutter, the mobile dev stack - before departing for Meta to work on the tooling for augmented reality. The conversation digs into how AR appears to be the logical evolution of mobile but has been completely overwhelmed by artificial intelligence. Chris has left Meta to work on AI technologies and sees huge potential in making better applications than ever before!
How do you make your own copilot? Carl and Richard talk to Prashant Bhoyar about his work with Copilot Studio and Azure AI Studio. Prashant describes how Copilot Studio lives in the Power Platform space while Azure AI Studio is more related to Visual Studio, in that it is a tool for developers of AI technology. Anything built in Azure AI Studio can be surfaced in Copilot Studio - another kind of fusion development! Lots of conversation about what works well and what is difficult with these tools, and how to avoid some critical mistakes!
Ready for a chat with the creator of Node? Carl and Richard talk to Ryan Dahl about his work creating NodeJS in 2009 and how he moved on after a few years, leading to the creation of Deno, an opinionated approach to building web applications. Ryan talks about the challenges of simplifying web development by combining all the important things into a single set of tools—saving you the effort of assembling those things yourself. The conversation also digs into how web development has evolved and one of Ryan's current efforts - convincing Oracle to surrender the JavaScript trademark to the world!
What's the latest with Playwright? Carl and Richard talk to Debbie O'Brien about her ongoing work with Playwright, Microsoft's open-source testing framework for web applications. While it is focused on web applications, you can write your tests in various languages, including .NET! Debbie talks about the new Playwright Testing service, which operates in Azure, so you don't have to stand up with your testing infrastructure - pay for what you use. The conversation ranges over the various features and challenges in testing that Playwright addresses. Now get out there and write some tests - your applications will be better for it!
How simple can you make software development? Carl and Richard talk to Mark Rendle about his focus on simplicity in building software - as simple as possible. Mark talks about the tendency of developers, sometimes through no fault of their own, to use what is new and cool in development, regardless of how practical or necessary it actually is. The conversation digs into the ongoing battle around cloud-native development using technologies like Kubernetes. You can be cloud native with more straightforward approaches! The same applies to web frameworks - there are lots of choices. Build as little as necessary!
How does good design pay off in software? Carl and Richard talk to Billy Hollis about his work designing software, both from a user interaction perspective and application architecture. Billy talks about saving time and money by working hard on design to get a clearer picture of what stakeholders want—because code rework is always more expensive! The conversation also digs into the institutional knowledge walking out of many companies through employees retiring—and how much work that is going to generate over the next few years to modernize!
Can you do mob programming remotely? Carl and Richard talk to Ulrika Malmgren about mob, or team programming - where three to five developers work together on the same problem, rotating keyboard control and collaborating to write the best possible code. Modern tools like Teams and Zoom make it easy to do the same programming style with everyone remotely! Ulrika talks about how team programming becomes the standard approach to development - as opposed to solo programming, where everyone works separately and then has to spend time sharing what they've done! Good team programming results in higher-quality code in less time - and more happiness!
What can machine learning do for geospatial data? Carl and Richard talk to Malte Loller-Anderson and Mathilde Ørstavik about their work at Norkart, using aerial imagery to build detailed maps around Norway. Mathilde dives into the critical role of machine learning - identifying buildings in images. Usually done by hand with each new image, Norkart has a machine learning model that automates the process trained on previous vector maps of buildings. But there are many things that look like buildings in Norway, including patches of snow, mountains, and even shapes under water. Malte also discusses how Norkart has decided to train in-house with nVidia L40 processors rather than in the cloud - the hardware is used 24 hours a day since some models can take weeks to train! There are many interesting ideas about geospatial data and machine learning from people who have been doing it for years.
What do Domain-Driven Design and event sourcing have to do with each other? Everything! Carl and Richard chat with Anita Kvamme about her experiences applying DDD, and specifically event storming, to developing applications using event sourcing. Anita talks about building applications that have many sources of events—from users and elsewhere—and needing to manage that complexity without slowing down development. Event sourcing also means keeping a source of the truth - all events leading up to a practical business benefit. And that can be hugely helpful in analytics as well!
How can a low-code solution help you deliver a .NET app? Carl and Richard talk with Serge Sarafudinov about his Xomega project. Serge describes how Xomega uses models and templates to generate .NET code for applications for Blazor clients, WPF, and even ASP.NET Forms and TypeScript! The conversation also digs into rehabilitating existing .NET applications where new features can be added with Xomega, and then gradually convert the existing application into the model approach - and then you can change out the client if you like! There are free and paid versions of Xomega; take it out for a spin and see if you can't deliver solutions faster!
How do you manage APIs to GenAI, and how can GenAI help with API management? Carl and Richard chat with Andrei Kamenev about the latest features coming to Azure API Management. On the one hand, there are Copilot tools to help craft and understand APIM policies, which can get very complex. Then, there is the provisioning of access to GenAI-related APIs like the Azure OpenAI service, which utilize tokens - and those tokens mean money, so they need to be controlled. The GenAI Gateway provides the ability to rate-limit token issuing and all the other capabilities you expect from APIM. Prompt caching is in preview and can decrease the cost of repeated use of the same prompts. Many of the features are new, and more are coming!
How can .NET Aspire help you get into containers? Carl and Richard talk with Jiachen Jiang about her experiences working with .NET Aspire. Jiachen talks about the power of .NET Aspire to help lead developers to utilize cloud native architecture efficiently. A key part of the equation is containers, and Jiachen talks about how relatively rare containerized .NET apps are - because in many cases, it doesn't add anything but complexity. But as .NET applications need to scale in the cloud, containers become important, and .NET Aspire helps you to take advantage of containers while adding all the cloud-native features you'll value, like great telemetry, orchestration, and discovery!
What if you want to build your own copilot? Carl and Richard talk to Vishwas Lele about his new startup, which is focused on using Azure OpenAI tools to help automate the government RFP writing process. Vishwas discusses the complexities of proposal writing, how specific and complex rules exist for each part of the proposal, and the challenge of getting the software to do an excellent job on the draft. The conversation digs into the domain expertise needed for the technologies and the proposal writing itself - like all good software, it requires domain experts. But when done right, this is hugely valuable software!
What are the basics of building a decent user interface on a web page? Carl and Richard talk to Hilary Stohs-Krause about her experience helping folks build websites - you don't have to be a designer to make something useable! Hilary talks about steering clear of more complex UX libraries unless you know the site owner prefers them. Keeping things simple and consistent is best! The conversation also digs into accessibility and how accessibility needs are a great guide to a decent basic design - making a site that can help everyone understand the pages you've built a great path to a very useable website.
What's happening with WPF? Carl and Richard talk to Joseph Finney about the news from Build about WPF - it's back, baby! But did it ever go away? Joe talks about how WPF was made open source in 2018 and how minimal development was done there - enough so that the community started building frameworks to support it, including WPFUI and ModernWPF. But at Build, Microsoft announced a new focus on WPF, including creating support for a Windows 11 theme - with a line of code, you can make your WPF app look like a Windows 11 app. Where does this leave WinApp SDK? What about migrations? There's lots to talk about!
Multi-modal is here and ready to use! Carl and Richard talk to Veronika Kolesnikova about what she has seen in the latest OpenAI model. Multi-modal refers to GPT-4o's ability to work with text, audio, images, and more and respond in kind! Veronika talks about tackling interesting visual problems with GPT-4o - like summarizing graphs or creating new data visualizations. The conversation digs into some announcements around Build, including the new security features in AI Studio and Windows Recall in the new Copilot+ PC devices. Things are moving quickly!
CosmosDB makes ChatGPT fast! While at Build in Seattle, Carl and Richard chatted with Mark Brown about CosmosDB's role in AI. Mark talks about how ChatGPT switched over to CosmosDB early on - when the number of users started to climb, database performance became essential, and CosmosDB was there. Today, many AI-centric CosmosDB features exist, like vector storage, indexing, and search! The conversation also digs into the impact of the large language model on development - things are different now!
What's up with MAUI and Blazor? Carl and Richard chat with Beth Massi about the latest MAUI, including the new webview available on GitHub that lets you embed an existing web page into your MAUI app. Beth talks about making apps the way you want to - with a mobile, web, or desktop focus - or making them all! Mixing Blazor and MAUI means you can steer clear of XAML if you prefer. There's no right way to build your clients, and MAUI gives you many choices!
GitHub is about so much more than source control! While at Build, Carl and Richard chatted with Damian Brady about all the great things coming out of GitHub over the past few years, including Copilot and now Copilot Workspaces. The conversation digs into how large language models are changing how you write code and some idea of what things could be like in the future. Damian also digs into the more enterprise-centric features like Software Bill of Materials and effective sponsorship of projects. GitHub is the locus of development for many companies, and the tooling continues to expand to make things easier!
Chatting with the leaders of C#! While at Build in Seattle, Carl and Richard sat down with Mads Torgersen and Dustin Campbell to discuss how C# continues evolving into version 13! With new versions coming every year, Mads talks about how complex features can be developed over several versions of the language - while also being able to get feedback from regular developers. So, what comes next for C#? Have a listen!
It's episode 1900! While at Build, Carl and Richard recorded a milestone episode with Scott Hanselman. Scott talks about his goals in the later stages of his career, the ideas and origins of all the podcasts, and what is important to him today. In the second half, Carl pulls out a quiz show for Scott with quotes from shows going back 20 years! Lots of great stories of different conferences, podcasts, and other events - and the things learned along the way. Thanks for listening!
The Nomadic Developer returns - and is working on AI technology! After fifteen years, Aaron Erickson returns to .NET Rocks to talk to Carl and Richard about his nomadic adventures. Aaron talks about the twists and turns of moving from consultant at Thoughtworks to leadership in a tech company, leading a startup, and now being part of the team at nVidia exploring the potential of machine learning and large language models. While the journey is inspiring, Aaron's passion for his latest work sparks a robust conversation about automation and the potential of what is being built today!
What do you want the last chapter of your software development career to look like? Carl and Richard talk to Shawn Wildermuth about life as a 55-year-old software developer. Shawn talks about being an independent software development consultant for the past twenty years and considering what the next ten should look like. The conversation digs into what's fun and valuable and what you want to achieve before retirement. One thing is for sure - there is no one right way to have a career - but making a plan is important!
How do you build cloud-native applications in Azure? Carl and Richard talk to Scott Hunter about how Microsoft tooling is evolving to develop cloud-native applications - starting with the vital idea that all cloud-native apps are multiple applications! Scott talks about how most development tools focus on individual applications and how dealing with multiple applications, including cloud apps, can be challenging. Cloud apps need telemetry, resiliency, and service discovery - which brings the conversation to tooling like .NET Aspire, designed to lead developers down the path to cloud-native applications with all these features and more. And this is only V1 - Scott discusses many more features that could make it easier and easier to make great cloud-native applications!
Six years later, how has antifragility thinking changed? Carl and Richard talk to Barry O'Reilly about his ongoing work on building highly reliable software. Since Barry's last appearance six years ago, he's returned to school and is writing a PhD thesis on antifragility. Studying complexity theory, Barry approaches software architecture with a minimalist view - you only add architecture when you see the application needs it. This leads to ideas around residuality - and a progressive way to build software that yields amazing results!
How do you debug your EF queries? Carl and Richard talk to Giorgi Dalakishvili about his open-source Visual Studio extension, EFCore Visualizer. Giorgi talks about bringing together the EF rendering of the query with the database query plan to ensure you retrieve data from your database as efficiently as possible. The conversation ranges over a number of tools Giorgi has built over the years, including EF Framework Exceptions, DuckDB.NET, and more!
Can speech become part of your development workflow? Carl and Richard talk to Karl Geitz about his use of NaturallySpeaking to create software in Visual Studio. Karl talks about using voice to write better, longer comments in his code and also helps to navigate the features of Visual Studio itself. The effort started when dealing with Repetitive Stress Injury but has now evolved into his most productive approach to coding - one hand on the mouse, the other on function keys, and voice instead of typing!
How do you manage your DNS? Carl and Richard talk to Anthony Eden of DNSimple about his latest product, the Domain Control Plane. Anthony talks about how everyone has DNS—and usually in more than one place. Getting a common view of all your DNS entries, no matter where they are, is valuable, but being able to automate changes is even more important, especially as things scale up! The conversation ranges over development, cloud, scaling systems, and some old-fashioned geekery!
GitHub Copilot has been out for a few years now - how is it going? Carl and Richard talk to Michelle Duke about what's been happening with GitHub Copilot. Michelle discusses the new features in GitHub Copilot, including Chat, which gives you more of a ChatGPT-like interface while still being focused strictly on code, including your code! Then, the conversation digs into the broader ideas around large language models and the perception of artificial intelligence affecting the entire world. A lot is going on!
Do you understand how your APIs are being used? Carl and Richard talk to Anthony Alaribe about his experiences dealing with poorly documented APIs that need updates - but no breaking changes! Anthony tells a story about missing a use case for an API that cost a lot of money, which started him down the path to making APItoolkit.io. The toolkit allows you to see how your API is being used and any exceptions that are happening. It will also generate tests to validate that your new version won't cause problems! Check it out!
How has Aspect-Oriented Programming changed? Carl and Richard talk to Gael Fraiteur of PostSharp fame about his new tool, Metalama. Gael talks about being able to move out of IL and into Roslyn Analyzers to help you get rid of boilerplate code and focus more on the value your application brings. The conversation dives into how AOP can help build higher quality code, to the point of being a testing platform for code compliance for your organization - used right, metalama can make your code reviews smoother! There's a lot of power inside metaprogramming; it's worth trying to understand what Metalama can do for you.
It's 2024, how is Azure doing? Carl and Richard chatted with Magnus Mårtensson about his work with customers migrating and operating in Azure. Magnus talks about the waste many organizations have in cloud resources, often by provisioning services with too many resources or failing to shut down things they no longer need. The conversation digs into today's excellent tooling, including Azure Migrate, Advisor, and Monitor. All tools can help you right-size and control your cloud spend. And AI is coming to make those tools even better!
Modular Monoliths strike the middle ground between monoliths and microservices! Carl and Richard talk to Steve Smith about his work striking a balance between the simplicity of a monolithic set of services and the complexity of breaking everything into microservices. Steve discusses the performance and simplicity advantages of monoliths and only breaking out services with specific needs into separate services. .NET has excellent tooling to help you evaluate, test, and manage your modular monoliths!
Has observability hit a tipping point? Carl and Richard chat with Steve Gordon and Martin Thwaites about the various products and technologies today to make observability a vital part of a successful application. Steve talks about telemetry support hitting a tipping point where most vendors have products working with OpenTelemetry. Martin digs into the many places you can send telemetry to increase your understanding of how your applications work on-premises and in the cloud. It's an exciting time to build cloud-native - are you on board?
Another version of CSLA? Yes! Carl and Richard talk to Rocky Lhotka about his work keeping CSLA up-to-date with the latest .NET features. And now, with .NET 8, CSLA 8 has strong support for Blazor! Rocky talks about getting deep into Blazor for CSLA, the power of rendering the client or server side, and whether or not mixing the two is smart. Lots of great thoughts from one of the original .NET educators!
How do you improve your CSS skills? Carl and Richard talk to Martine Dowden about her new book, Tiny CSS Projects. The book is built around twelve progressively more complex CSS tasks - you can follow along to learn in general or pick a particular chapter for a specific skill you want to exercise. The conversation digs into thinking about the architecture of styling beyond the particular page and how those styles can be updated version-to-version without frustration. You can improve your CSS game!
What's the latest with gRPC? Carl and Richard chat with Irina Scurtu about her latest work with gRPC. Irina talks about the improved tooling with gRPC, including tools like Postman to help you see what's happening in a gRPC interaction, even decoding the binary data! The conversation also digs into the complexity of metadata with headers and trailers and the challenges of supporting multiple platforms and multiple type systems - but it works if you take the time to learn the details. And the results are fast and flexible communications!
How do you handle background tasks? Carl and Richard talk to Sergey Odinokov about Hangfire, his open source project for background job processing in .NET. Sergey talks about his experiences building applications that needed background processing and hoping to find a library similar to other platforms - and eventually creating Hangfire. The conversation dives into the array of different processing options, state management, and the challenging problem of building and maintaining an open-source project over a decade!
What can Uno do for you? Carl and Richard talk to Nick Randolph about the latest from the Uno platform. Nick talks about how Uno has continued to evolve into a broad and effective cross-platform client tool while also adding integrations for design and continuous integration. The conversation digs into the challenge of getting from design to development and how the Figma Plugin makes it easier to take designer Figma docs and make them into actual code in Uno. There are also wizards for helping you add Uno UX testing into your CI/CD pipeline and much more. It's an open-source project, so you can take Uno out for a spin today!
Coming out of .NET Conf, one of the big announcements was .NET Aspire. Carl and Richard talk to David Fowler about his work creating the tools to make building cloud-native .NET applications easier. David discusses the challenge of not re-creating the past - tools like Azure Service Fabric. However, the complexity of containerized applications is real. Aspire can make it simpler to take advantage of being in a container, on the cloud, with all the telemetry, observability, scalability, and flexibility that being cloud-native can bring you!
How do you migrate to .NET 8? Carl and Richard talk to Jimmy Bogard about his experiences helping teams migrate from .NET Framework 4.8 to more modern versions of .NET. Jimmy talks about the team wanting to be able to use ASP.NET Core in their applications as the incentive to make the migration in the first place. The conversation digs into landing on .NET 6 to make migration easier but then wanting to move quickly to later versions to take advantage of the latest features. And no dead-drop migrations - using a reverse proxy to operate the two applications side-by-side so that over months, everything moves across while remaining functional - a great story of migration!
Let's start 2024 with a conversation about energy! Richard chats with Carl about ongoing developments in power generation around the world. Wind technology is maturing but also hitting size limits. Solar is the fastest-growing power generation source on the planet now - and there are recycling options! There are exciting new developments in power storage, some applied hydrogen power projects, and new concepts in geothermal and small modular nuclear. Richard wraps up with thoughts on COP 28 and our progress towards safer, stable power for everyone. Happy New Year!
Time for the annual Space Geek Out! Richard summarizes many of the important space stories of the past year, including SpaceX's record number of Falcon 9 flights and the first two flights of Starship. The conversation also explores the state of the International Space Station, Dream Chaser, Artemis, and other moon missions, including India's successful landing! Richard then digs into the Crisis in Cosmology - how the James Webb Space Telescope has changed our understanding of the universe, and how it is disrupting the current models of the universe. But new science is good - the more you know!
How do you improve the performance of your .NET applications? Carl and Richard talk to Daniel Marbach about his work building high-performance .NET applications and the process he goes through to get them to perform at the level his customers need. Daniel talks about profiling and benchmarking - understanding where your time passes in your code and how to measure it to know if you're making it better. The good news is that great tools are out there to help you; check the show notes for links to them!
It's almost 2024, do we still need to talk about securing our apps? Carl and Richard talk to Laura Bell Main about her ongoing efforts to get everyone involved in creating and operating software to be part of making that software secure. Laura talks about committing one hour of each sprint to security and how, over time, those small efforts can build up to excellent secure guardrails that make our software more resistant to exploitation. Don't push security issues off to someone else - we can all help!
How about some in-process messaging with no dependencies? Carl and Richard chat with Jimmy Bogard about his work with MediatR, a simple mediator pattern implementation in .NET. Jimmy talks about how MediatR emerged from his work with customer applications having controllers and/or managers that slowly got bigger and more complicated... and how they became difficult to maintain. Using the mediator pattern to break down those blocks of code into more manageable chunks needed a bit of tooling that was cut and pasted from project-to-project until MediatR was born!
How can a large language model help your application? Carl and Richard talk to Brian MacKay about his work with large language models, including ChatGPT - and others! Brian talks about how LLMs continue to evolve and the limitations they have. But identifying language inside your applications can be powerful, and Brian talks through a few scenarios his company uses in production today. Work could you be taking advantage of today!
How much architectural ceremony is enough? Carl and Richard talk to Jeremy Miller about his minimal approach to architecture when building software, including his products Wolverine and Marten. Jeremy talks about how good tooling can simplify architecture, ultimately by writing less code - so that you are writing only the code that is unique to your customer needs.
How is Chocolatey evolving? Carl and Richard talk to Gary Ewan Park about the latest with the open-source Windows package management solution. Gary discusses some of the differences between the various package managers for Windows these days, including WinGet. Each product has its niche, and Chocolatey has done a good job of evolving into a broader product, including Chocolatey for Business, to allow a view of applications installed across all your machines - and being able to push updates out to them.
How's your architecture game? Carl and Richard talk to Thomas Betts about being a better architect. Thomas focuses on the key aspect - communication! An effective architect can talk to all the stakeholders in the language of the stakeholder, whether that's speaking business with business stakeholders, coding with developers, and understanding the needs of the security and operations folks. All those aspects (and more) go into an effective architecture and then come the changes as the implementation challenges happen. The conversation also digs into the importance of documentation to know why decisions were made and how to change them as you respond to changing needs and landscapes.
Large Language Models like GPT-4 are all the rage - how do we use them well? Carl and Richard talk to Amber McKenzie about the challenges and concerns around LLMs, especially regarding the data involved. Amber talks about the risks of creating products around LLMs while the technology is so young and constantly evolving, especially with how the general public reacts to conversational AI. Education is key, and constantly fact-checking - good advice for a lot of technology, but LLMs are making fact checking even more important!
Microservices or Monoliths? Carl and Richard talk to Layla Porter about choosing a middle ground between microservices and monoliths, with modular monoliths. Layla talks about the pushback from the community around microservices and the insistence that there is "one right way." Monoliths have their advantages until they are a problem - but that doesn't mean that re-architecting everything is the right way to go. Chipping off parts of the monolith into satellite modules strikes a balance of flexibility and scalability - and opens the door to accessing the power of bus architectures when needed!
Databases continue to evolve! Carl and Richard talk to Ted Neward about multi-model data stores - which, these days, are most databases! Ted talks about how SQL and NoSQL are not that different - it's only a query engine. But how do you store your data? Today multi-model databases store data with multiple storage engines, and so can store your data in the most appropriate form. There are lots of choices, and it's worth digging deeper into your existing data stores, as well as the new ones available!
What can we do to make testing easier? Carl and Richard talk to Dennis Doomen about Fluent Assertions, an open-source set of extension methods to help write better tests. Dennis talks about working on Fluent Assertions for over a decade and the great team of folks that have helped it grow. With tens of millions of downloads, you should check it out! The conversation also digs into how these types of open-source projects don't make money, even though they help many people. Could we fix that?
How do you scale a monolith? Carl and Richard talk to Derek Comartin about his blog posts and YouTube series around scaling a monolith. Derek talks about the tendency for folks to want to split a monolith into microservices without assessing if it will make a difference. There is no one right way! The conversation digs into different approaches to scaling - up, out, using caching, queuing, and more! There are many approaches to scaling your applications, and yes, microservices are an option, but there are many others!
Can you quit your job and work full-time on your open-source project? Carl and Richard talk to Shaun Walker about his recent move to focus on Oqtane, the open-source application framework and CMS he has been developing for the past few years. Shaun talks about recognizing when an open-source project has matured to the point that it is being held back by not also providing a commercial license. For some folks, a commercial license is not an option - they need it to be able to use the software within the company. Then comes the tricky part: Setting up a business, and balancing the needs of the open-source community with the commercial customers. It isn't easy, but it can be done!
How do you get your app running in Azure? Carl and Richard talk to Savannah Ostrowski about Azure Developer CLI (azd), an open-source tool to help developers using .NET, Javascript/Typescript, Python, Java, and more to get deployed into Azure. Savannah talks about staying high-level with azd commands, keeping the complexity of deployment pipelines in tools you already know how to use, like Bicep and Terraform. The conversation digs into the templating system to help assemble all the platforms and elements of an Azure deployment, depending on your application. There are a ton of options - check it out!
How can OpenAI help you program faster? Carl and Richard talk to Mark Miller about his experiments with OpenAI and CodeRush. Mark talks about the power of building agents to analyze code to write comments and tests - in parallel so that multiple agents can run simultaneously. Then the conversation turns to the potential of a voice interface as an effective way to work with Visual Studio - you were talking anyway!
What can OpenTelemetry do for you? While at Techorama in Belgium, Carl and Richard talked to Laïla Bougriâ about her experiences with the open-source library that can help give you more insight into the behavior of your applications. Laïla talks about being able to instrument your applications from top-to-bottom, regardless of platforms or development stacks. The conversation digs into the differences between logging, tracing, and telemetry - and how each aspect adds value to understand what your applications are doing, and how you can make them better!
When it comes to machine learning, there is no free lunch! While at Techorama in Antwerp, Carl and Richard talked to Dr. Jodie Burchell about her experiences working with machine learning models, including the large language models that drive tools like ChatGPT. Jodie starts with a great explanation of how these machine learning models are built - and there is a lot to it! This leads to a conversation about the limitations of those models and how they could be improved further. There's a lot of hype around LLMs right now - it will pass eventually, but in the meantime, be thoughtful of how you use these experimental technologies!
The power of .NET means PHP can run in the browser efficiently! Carl and Richard talk to Jakub Míšek about PeachPie using WASM. Jakub talks about how easy it was to deploy PeachPie, the .NET implementation of PHP, into WebAssembly, much like Blazor works. Then the tricky bit starts - PHP is a server-side technology, so many of the constructs are based on trips to a server. That doesn't mean there aren't solutions, but they need some thinking through. The question is, do we want to run WordPress in a browser?
What's an immutable architecture, and why do you want one? Carl and Richard talk to Michael Perry about his book The Art of Immutable Architecture and the power of historical models. Michael talks about different designs for immutability, the ability to always look back through data, to avoid conflict between resources, and the advantages of eventual consistency. As Michael says, you already use immutable architecture - look at Git and how you only add new files to the system, always able to get back to a previous state! The conversation dives into implementing architecture in a way that helps to show where immutability makes sense.
How do you do more with Entity Framework? Carl and Richard talk to Erik Ejlskov Jensen about his work contributing to Entity Framework and creating tools to make Entity Framework easier to use. Erik talks about how EF has continued to evolve, including some significant performance optimizations. The conversation also explores code-first vs. database-first - although Erik falls firmly into the schema-first mindset. There's more coming for Entity Framework; it's worth your time to get the most from it!
How do we support open-source projects? Carl and Richard talk to Joseph Finney about his ongoing efforts to build various projects in his spare time while still working a regular day job. Joe talks about the options to contribute to open-source, including submitting issues to help improve the project, code contributions where you add to the body of work, and financial options - contributing money directly to the creator. The conversation explores some of the existing tooling and more opportunities that could be created to make it easier for organizations to see their dependence on open-source libraries in a path that would make it easier to garner support for creators. The open-source world continues to evolve, and with some effort, we can make it more sustainable and valuable for everyone.
Web Testing Evolved! Carl and Richard talk to Ely Lucas about the latest version of the Cypress Testing Framework. Ely talks about three significant versions shipping in 2022 - starting with version 10, a complete UI overhaul. Following the semantic versioning standards, versions 11 and 12 had some breaking changes, primarily around component testing and other great new features. Today Cypress is effective at end-to-end testing, component testing, and with an open source plugin, API testing. The product is free and open-source, with a paid version offering enterprise-class cloud services for scaling testing up. Check it out!
How do you know the code you write is being used in production? Carl and Richard talk to Roni Dover about his work with Digma to help bring code utilization into your development tooling. Roni talks about the challenges of getting and using production telemetry - often, it never reaches developers. But with OpenTelemetry, there's a lot of data out there; the challenge is to present it helpfully - and that's what Digma is all about. It's still in beta, but sign up if you want to get involved!
Microsoft is making several Copilot products - should you? Carl and Richard talk to Phil Haack about the latest version of ab.bot, his customer success startup. Now Phil is calling ab.bot a Copilot for Customer Success since he incorporated OpenAI ChatGPT into it. The conversation tries to steer clear of the hysteria around modern large language models (although it is hard!) and more into the practical applications - using large language models to summarize long customer support conversations and find related conversations to current ones - perhaps identifying new high-priority features! The wave of large language models is in its early days, and with the new APIS available, it may be time to make them part of your projects too!
Do you know what your web app is up to? Carl and Richard talk to Sam Basu and Rosen Vladimirov about the latest versions of Fiddler. The original Fiddler for Windows is a free tool, but the Progress team has written all new products in the Fiddler space that are cross-platform and designed to work with different groups of people. Fiddler is for developers, first and foremost, letting you see the messages passing between the browser (or other clients) and the server in HTTP and HTTPS. With the new products, you can also connect to SignalR and gRPC data! Then there are tools for tech support and even embedding capabilities into your applications.
An MAUI version of Doom? Carl and Richard talk to Wesley Cabus and Nico Vermeir about their efforts to port the venerable game Doom to C# and .NET 6 with MAUI as the UI. Wesley did the base conversion of Doom over to .NET, while Nico focused on getting the UI working through MAUI. Converting code, graphics, music, and sound effects from the 1990s into modern solutions is challenging but fun! Primarily working on the PC, there's a concerted effort to get a version running on Android devices too - and they could use your help!
What if you didn't have to choose between client-side and server-side Blazor? Carl and Richard talk to Javier Nelson and Steve Sanderson about Blazor United in its early stages of development, providing flexibility at the web component level for client- and server-side rendering. At the simplest level, Blazor United offers server-side rendering when a site is first hit so that you can load the larger client-side components over time. But deeper is the idea that some elements on your web page benefit from being client-side, and some from being server-side, and why should you have to choose only one?
How can the cloud help developer velocity? Carl and Richard talk to Bryan Foster about the complexities of modern software development - and how different cloud technologies can help move faster and not be afraid to break a few things along the way! Bryan talks about using Azure Deployment Environments to make it easy for developers to stand up resources for their apps - and just as quickly shut them down when done. This leads to a broader conversation around the governance of CI/CD pipelines and the role of the cloud, even to the point of using DevBox to have an entirely virtualized development environment!
ChatGPT, BingAI, and Google Bard are the latest examples of large language model machine learning - are we at an inflection point in technology? Carl and Richard talk to Grant Barrett of A Way with Words about the power of these new technologies to solicit reactions from many folks, including many tech journalists. Grant talks about how language conveys a sense of intelligence even when there is none to be had and the problems created by those assumptions. It is still the early days for these chatbots - will they rapidly improve or fade into another AI winter?
What's next for C#? Carl and Richard talk to Mads Torgersen about what the team is working on for C# 12. Mads talks about how the language design team is organized to take ideas for C# and explore them, considering all aspects before implementation. The conversation digs into a few of the new features coming and some of the considerations, like breaking changes, that might be necessary to make a feature as good as possible. With C# nearly 25 years old, there is lots of legacy to deal with, but the future looks bright!
What's next for C#? Carl and Richard talk to Mads Torgersen about what the team is working on for C# 12. Mads talks about how the language design team is organized to take ideas for C# and explore them, considering all aspects before implementation. The conversation digs into a few of the new features coming and some of the considerations, like breaking changes, that might be necessary to make a feature as good as possible. With C# nearly 25 years old, there is lots of legacy to deal with, but the future looks bright!
What does web front-end development look like in 2023? Carl and Richard chat with Amy Kapernick about her work helping companies build web front ends with a vast array of tools. Amy talks about how client frameworks continue to evolve, extending the so-called "big three" of Angular, Vue, and React to focus on different styles. The conversation also ranges over testing web apps, building pipelines for automated testing, accessibility, and more!
MAUI is out! What's next? While at Swetugg in Stockholm, Carl and Richard chatted with David Ortinau and Maddy Montaquila about getting MAUI shipped and seeing how the world is using it! The conversation digs into what typical developers are doing with MAUI and other platforms in the plans for future MAUI. David and Maddy talk about how Blazor Hybrid is creating a lot of excitement for folks, balancing the reach of web development with the power of native development - it's a great time to be building cross-platform software!
Why write functional C#? Carl and Richard talk to Simon Painter about what happens when you apply functional programming approaches to your C# code. Simon discusses how some functional programming aspects are best served in a functional language like F#, but you can write C# in a more functional style. The conversation focuses on minimizing side effects - writing your code so that you can see what it does and how it would behave when changed. Functional code tends to be more testable as well!
How is clean architecture evolving? Carl and Richard talk to Steve Smith about his efforts to build applications using clean architecture principles. The conversation starts with a comment from a listener about idealism around architecture - and a reminder that while there isn't one right way to do anything, using existing work, like clean architecture templates, makes it easier to do the right thing. Steve talks about the various elements that go into clean architectures and how they are often where you end up in development whether you start with a template or not - and how much of a pain it is to course-correct as the project gets larger. Sustainable software needs architecture, and clean architecture is one approach that works - check it out!
How do you create a sustainable open-source ecosystem? Carl and Richard talk to Sarah Novotny about how the open-source community continues to evolve. Sarah talks about how the vast majority of software utilizes open-source code and should be contributing to those projects. Those contributions can be financial or development resources, whatever makes more sense for the organization. The conversation also explores the nature of those contributions when the project has smaller and larger audiences, is purely for developer consumption, or the greater public. Open-source software is diverse, so the support for open-source software also needs to be diverse!
What is fusion development, and why do you want some? Carl and Richard talk to Vishwas Lele about his work with teams using the Microsoft Power Platform, including Power Apps and Power Automate. Vishwas talks about getting domain experts more involved in the development process - not just as advisors to the process but as co-creators. The role of professional developers is vital, making effective APIs and even custom-UX components for Power App development. The conversation also dives into the potential of Power Fx, an open-source language that is very much like Excel functions, providing programmability to domain experts - and perhaps a migration path for those company critical spreadsheets!
API Management has evolved! Carl and Richard talk to Tom Kerkhove about his new role working on Azure API Management. Tom talks about using Azure Arc to deploy the API Management service into your on-premises services. The conversation digs into more of the fundamentals around API management with rate limiting, authentication and authorization, billing, testing, and more. A good API can make your company money - executed poorly and it's a massive headache. Use the tools available to make it easier!
How do we learn about application security? Carl and Richard talk to Tanya Janca about her book 'Alice and Bob Learn Application Security.' Tanya talks about bringing positive conversations around security, enabling people to get work done while being secure. Software developers are now targets for the black hats because they often have super-user accounts and aren't following security practices as closely as others. Building secure software means developing it in a secure context - it takes practice, but is the best way to succeed in making secure software!
Ready for some space? Richard talks to Carl about all the incredible space-related stories in 2022. Starting with a record launch year - more flights to orbit than any year in history! Then the conversation digs into some cool missions around the solar system, including the Double Asteroid Redirection Test - we're learning how to protect our planet against asteroid impacts! Then on to space stations (there's more than one!) and, of course, the Moon - so many missions to the Moon! The biggest is Artemis, but there are plenty of others. And then there's the James Webb Space Telescope... what a fantastic year in space!
End of the year, time for a geek out on energy! Richard chats with Carl about the usual modern power generation sources, including solar and wind, and a breakthrough in the drilling method for geothermal energy. The conversation dives into small modular reactors (SMR) and the commitment in Canada to build the first SMR! Molten Salt Reactors have made some progress in 2022, but the extensive conversation is about fusion power. From the NIF announcement to Commonwealth Fusion and others - there's lots to talk about!
As of December 13, 2022, IdentityServer 4 is archived - now what? Carl and Richard talk to Dominick Baier and Brock Allen about the long, winding road of IdentityServer growing up to become a commercial product. Dom talks about the challenges of open source and building a sustainable model for an enterprise identity product. Ultimately, it resulted in a transformation from open-source to source-open - so what does that mean? Growth and sustainability!
Jeremy Miller is back with more open-source goodness in the form of the Wolverine .NET Command and Message Bus. Jeremy talks about developing the Marten database and reaching a point with event sourcing that led to Wolverine - building the infrastructure to work with a variety of queuing solutions to act as an intermediary, a message bus, and a command bus, as needed. The conversation also digs into the current state of open-source with his projects, and the evolution toward more sustainable open-source development - there is more to come!
Why should you have high-level design in your applications? Carl and Richard chat with Billy Hollis about the concepts around high-level design and how it can help make better software. Billy talks about how high-level design addresses more than UX concerns, expanding into architecture and business workflow to think more deeply about how we use software. And of course, Billy digs into various applications we all use (looking at you, Teams!) and talks about how high-level design could help deal with the challenges around those kinds of applications. Is it needed everywhere? No - but more is needed!
How do you secure your existing applications from the security exploits out there today? Carl and Richard talk to Joylynn Kirui about the challenges developers face in making secure applications. Joylynn talks about understanding the threat landscape and staying up to date on the CVEs that can represent a zero-day vulnerability to your application. There are a ton of tools to help make you aware of the potential risks, check out all the links in the show notes. And check out Joylynn's webinar on shifting application security left at https://aka.ms/DevSecOpsDNR
Why should .NET developers build Power Apps? Carl and Richard talk to April Dunnam about the latest in Microsoft's Power Platform and why .NET developers should get involved. April talks about the fusion development methodology, where domain experts use the Power Platform tools alongside .NET developers using Visual Studio to build line-of-business apps. There are many opportunities in the cycle of building Power Apps where your skills as a .NET developer can make the process go faster, more reliable, and with more features! Also, check out April's upcoming workshops on building Power Apps online at https://aka.ms/PowerDNR and at the DevIntersection conference in Las Vegas in December!
Are your APIs vulnerable to hacking? Carl and Richard talk to Dana Epp about how APIs have become the focus of black hats today. Dana talks about tooling you can use to look at your APIs the same way the hackers do, and find potential exploit paths for impersonating users, stealing data, and otherwise exploiting your system. There's an OWASP list specifically for API security - spend some time with it!
How do we make open source work for everyone? While at NDC in Oslo, Carl and Richard talked to David Whitney about his experiences working on open-source projects, and the challenges of making them sustainable. David talks about how many projects start with an individual making something for themselves, which then evolves into many people utilizing the project, but not contributing to it. And when companies depend on that software, the pressure on the creators gets serious - but without compensation. How do we make open source better? And how do the tech giants make the situation better or worse?
What can observability do for you? While at NDC in Oslo, Carl and Richard chatted with Alayshia Knighten about her work with honeycomb and helping people understand what's happening with their applications in production. Alayshia talks about instrumenting applications to provide insight into behavior in real-time - by leveraging existing tools to provide data and reporting. The conversation digs into how sysadmins and developers see applications differently, and how standard telemetry systems make it easier for everyone to be on the same page!
Ready for a story of cloud scaling from the trenches? While at NDC Oslo, Carl and Richard talked with Meg Gotshall about her experiences scaling the Fotoware service with her team. Meg talks about the limits of auto-scaling, where all the services are scaled up, but the bottlenecks exist in only one place - and how dashboards help to provide more visibility into the problem. But even when you sense the problem, how do you fix it? The conversation digs into breaking services into their containers and AppService plans so they can be scaled independently - initially for diagnostics but ultimately for production!
How do you test your web applications? Carl and Richard talk to Debbie O'Brien about Playwright, Microsoft's new open-source web application testing tool. Playwright lets you build tests in an array of languages, platforms, and browsers. Debbie talks about how you can build atomic tests that will survive new versions, and test independently of other features. And when tests fail, Playwright generates a PWA of the test run showing exactly where the test fails!
GitHub Copilot is here! Are we all going to lose our jobs? While at NDC in Oslo, Carl and Richard talked to Michelle Mannering about how Copilot helps you write code - emphasis on help! Michelle explains that Copilot is able to take your explanations of what code needs to be written to find examples of that code for you to take advantage of. It's still up to you to break down the problem well enough, but you spend less time fussing with syntax. This is especially powerful when calling into unfamiliar APIs or coding in languages you have less experience with. The conversation dives into how the developer ecosystem continues to evolve with these new tools, so that we can do more faster!
What can AWS do for you? Carl and Richard talk to Isaac Levin about the experience of being a .NET developer working with Amazon Web Services. Isaac talks about the broader strategy of moving applications to the cloud and what Amazon offers to make your life easier, with various migration and validation tools that can help you understand how an existing application will behave on cloud services. The goal is to get beyond the virtual machine and into containers, serverless, and more!
How do you make applications that work well for the visually impaired? Carl and Richard talk to Courtney Heitman about building applications that the visually impaired can use. Courtney talks about different kinds of visual impairment including field of view, color blindness, low and no vision. There are tools to help you understand what those impairments are like and to help you test how your app will work for everyone. Then the conversation turns to screen readers - which are challenging to test with because it does take quite a bit of experience to use. There are powerful solutions, you just need to incorporate these accessibility features - sooner, rather than later!
How much do you need to know about design? While at CodePaLOUsa in Louisville, Carl and Richard talked to Kathryn Grayson Nanz about understanding application designers. Kathryn talks about knowing just enough about design to understand that, like software development, it is an iterative process, that takes user feedback and incorporates it into future designs. Oh, and we know why your custom icon sucks!
How do you test Angular forms? While at CodePaLOUsa in Louisville, Carl and Richard talked to Martine Dowden about her approach to building tests that are maintainable, and are best automated because they are tedious to test manually - like forms validation. Martine talks about a mix of automated unit testing and eyes-on manual smoke tests being the most efficient way to have a well-tested web application.
What's wrong with microservices? Carl and Richard talk to Shawn Wildermuth about his rant about microservices. Shawn talks about the intent of microservices in the first place, to try and break down the giant service balls of goo that get built over time. But is it necessary? The conversation explores the optimization problem, where having services together is efficient right up until it isn't - when you have a service that changes more often than others or needs to scale more. Only then does it make sense to carve it out. Lots of fun conversation!
Twenty years ago, before the word podcast existed, there was .NET Rocks! While at CodePaLOUsa in Louisville, Carl and Richard celebrated the publication of the first episode of .NET Rocks twenty years ago in August 2002. Doc Norton joined the conversation to talk about how agile has evolved and the challenges of making good software today. And a big thanks to all the listeners of the show - we couldn't have done it without you!
Support this podcast at — https://redcircle.com/net-rocks/donations
How does Power Platform fit into your application lifecycle management? Carl and Richard talk to Kartik Kanakasabesan about his work on Power Platform to treat it like every other development approach. Kartik talks about how PowerApps create straightforward forms-over-data solutions that work well on phones, tablets, and PCs. The conversation digs into how developers in the C# and Visual Studio space can work with Power Platform developers, including building back-end services, creating front-end components, and working with existing source code and deployment pipelines. The result is what Kartik calls fusion development, where everyone works together to build solutions effectively!
Support this podcast at — https://redcircle.com/net-rocks/donations
When and why should you change your development career? Carl and Richard talk to Rocky Lhotka about his recent change from a large development firm to a one-man band. Rocky talks about changes in Magenic that helped him make the move he'd been thinking about for years. This leads to a broader conversation about how careers evolve, whether or not you become a manager, and what it takes to be out on your own. There are many ways to have a career - what works best for you?
Support this podcast at — https://redcircle.com/net-rocks/donations
How do you make it easier for developers to build apps in Azure? Carl and Richard talk to Scott Hunter about his new role focused on developer tooling for Azure. This means much more than .NET - Scott talks about tooling for Java, Android, Node, and more! The conversation ranges over how Azure can simplify development cycles, debugging, and monitoring in production, no matter what stack you're using. Scott also digs into Azure Container Apps, announced at Build 2022, making it easier to get started using containers for your applications, but not limiting how you use containers in the future!
Support this podcast at — https://redcircle.com/net-rocks/donations
Can you make your application passwordless? While at NDC London, Carl and Richard talk to Eli Holderness about implementing passwordless technology. Eli talks about using password managers and adding physical authentication tokens like fido keys. The conversation then digs into all the varieties of passwordless authentication including SMS, Authenticators, and one-time tokens. There are great libraries for implementing all of these technologies - and you're going to need more than one!
Support this podcast at — https://redcircle.com/net-rocks/donations
What features do you want to see in C# 11? Carl and Richard chat with Kathleen Dollard about the work being done to the latest version of C# so far. But first - what about VB.NET? Starting with a question from a listener, Kathleen clarifies Microsoft plans for VB.NET - it's never going away! Then into the feature list of C# 11, including new generic math, static interfaces, initialization features, pattern matching, and more!
Support this podcast at — https://redcircle.com/net-rocks/donations
How do you measure how secure your application is? While at NDC London, Carl and Richard chatted with Victoria Almazova about her work around measuring DevSecOps. Victoria talks about making security part of the DevOps cycle, which is part of every build and measured constantly. The conversation moves to traditional penetration testing and the challenges of incorporating security improvements into applications. But what if your security efforts shifted to the left and became part of your development practice? Then there would be fewer fixes to make!
Support this podcast at — https://redcircle.com/net-rocks/donations
WebAssembly is awesome - what else can you do with it? While at NDC London, Carl and Richard talked to Steve Sanderson about his work with WebAssembly, including Blazor. Steve talks about how WebAssembly continues to evolve adding WebAssembly System Integration. This opens the door to the idea that code in the WebAssembly can be run anywhere - any operating system, any language, using whatever compute is available. That gives an option to run code on the client, the server, and anywhere in between!
Support this podcast at — https://redcircle.com/net-rocks/donations
Episode 1800! While at NDC London, Carl and Richard were on stage for a live show with Heather Downing, discussing the modern developer career. The pandemic created considerable changes in work, and developers were also affected. Do you have the job you want? How do you change it? With some questions from the online viewers, Heather talks about taking control of your career and turning it into the life you want - and celebrating 1800 episodes of .NET Rocks!
Support this podcast at — https://redcircle.com/net-rocks/donations
What is WebRTC, and why do you want to use it? While at NDC London, Carl and Richard talk to Liz Moy about WebRTC, the open-source library that is used by many of your favorite video chat applications. Liz talks about taking advantage of the hard work already done to control video and audio devices through the browser, as well as the various strategies for actually connecting to other people through firewalls and NAT routers. The conversation also explores where and when you would want to have integrated video, audio, screensharing, and data transfer capabilities.
Support this podcast at — https://redcircle.com/net-rocks/donations
June is GitHub Maintainer Month - have you hugged an open-source project maintainer lately? Carl and Richard talk to Martin Woodward and Immo Landwerth about what it's like to be a maintainer of open-source projects. Often an open-source project starts as something you want for yourself and choose to share - and then others start to use your project and life gets more complicated. The conversation dives into what its like for a full-time employee to contribute to a project maintained by someone working part-time on it, the challenges around licensing, and how the open-source community continues to evolve - hopefully for the better!
Support this podcast at — https://redcircle.com/net-rocks/donations
How well does gRPC work with .NET? Carl and Richard talk to Irina Scurtu about her work with gRPC in .NET. Irina talks about the new features added in .NET 6 to support gRPC including client-side load balancing, fault tolerance, and improved performance. The conversation digs into the various uses of gRPC - Irina advocates for inter-microservice calls, but you can make gRPC work for a browser using gRPC Web. High performance and flexible - what more could you want?
Support this podcast at — https://redcircle.com/net-rocks/donations
How do you find a great video clip after the fact? Carl and Richard talk to Jeff Fritz about his work building KlipTok, a tool for making Twitch video clips more discoverable and shareable. Jeff digs into the tricky bits of KlipTok, which is all about fast indexing and searching to get to the right clip. The conversation digs into various data storage techniques and using the cloud in a way that doesn't break the bank. Jeff may be a Microsoft employee, but that doesn't mean he uses only Microsoft tools for his projects!
Support this podcast at — https://redcircle.com/net-rocks/donations
How do you modernize a .NET application? While at NDC Porto, Carl and Richard talked to Mark Rendle about his work on Visual Recode, a tool for migrating WCF apps to gRPC, and dug into the broader story of what a modern .NET application looks like. Mark talks about why you would bother to modernize at all - because the standard framework isn't going anywhere. But if you want to take advantage of the latest features of .NET and the performance available to you with .NET 6 and the cloud, modernization is the way to go!
Support this podcast at — https://redcircle.com/net-rocks/donations
What can web components do for you? Carl and Richard talk to Jemima Abu about her work with web components. Jemima talks about the projects she is currently working on, and how UI web components make it easier to build good-looking front ends quickly. The discussion digs into how web components stay agnostic of different web frameworks - although often there are solutions within the framework for many component problems. If you're a fan of vanilla JavaScript, web components can be a big boost to development, but its up to you to do the right things with them!
Support this podcast at — https://redcircle.com/net-rocks/donations
How do you know your open source is secure? Carl and Richard talk to Jillian Ratliff about security practices on your own code, and the open-source code you depend on. Jillian talks about some of the high-profile security problems that have happened recently in the open-source world including log4j. The conversation turns to practices for making your applications secure with open-source including security testing as part of your CI/CD pipeline, periodic penetration testing, and more!
How are extensions in Visual Studio changing? Carl and Richard talk to the extension master himself, Mads Kristensen. With over 150 extensions in the Marketplace, Mads has a lot of experience building tooling that can streamline your Studio experience. The conversation digs into why an extension makes sense rather than being built into Studio. Although in the case of the Markdown Editor, that does happen! Mads also as the VSIX Community space if you want to get into building your extensions, with libraries and tooling to guide you to the pit of success with your extension project. Check it out!
When should you pivot your startup? Carl and Richard talk to Phil Haack about his experiences with Abbot - the chatbot designed to work within Slack. Phil talks about starting with Abbot focused on ChatOps, where Abbot would help with automation around the deployment of applications. And while there were some customers, it wasn't enough. The pivot was to customer support that also depends on tools like Slack. The conversation digs into focusing on understanding where customers have challenges and learning to solve them, rather than trying to offer a platform for everything!
How do you do Infrastructure-as-Code? Carl and Richard talk to Chris Klug about his experiences with different IaC approaches. Chris talks about using HashiCorp's Terraform - one of the original IaC solutions, with many providers to work with all sorts of platforms - but do they keep up with the latest? Microsoft has released Bicep as a domain-specific language over Azure Resource Manager, but it's only for Azure. And then there's Pulumi, letting you create IaC in C# - as always, there's no one right way, but there is a path to nirvana out there somewhere. You just have to find it!
How do you make web apps into desktop apps? Carl and Richard talk to Otto Dobretsberger about Photino, a fork from Steve Sanderson's WebWindow project that will compile your web application into a cross-platform desktop application for Windows, macOS, and Linux. Otto talks about keeping Photino extremely lightweight, many times smaller than other desktop framework approaches. The typical approach is using the SPA of your choice - Angular, Vue, or React, and then compiling it into the desktop form. Great for making reliable off-line applications and onto dedicated kiosk-style hardware!
How do you debug asynchronous code? Carl and Richard talk to Isadora Rodopoulos about her debugging asynchronous code series of videos and the tools available today to help with debugging. Different people approach debugging in different ways - there's no one way to solve any given problem. But Isadora digs into the critical challenges of asynchronous code, not being sure of the order of execution, managing when messages get lost and detecting the transient problems that come from async code!
What's an Azure Static Web App, and why do you want one? Carl and Richard talk to Stacy Cashmore about Azure Static Web Apps, Microsoft's implementation of static web apps. Stacy talks about the bare essentials of making a web page - serving up some HTML. How much back-end processing do you really need? The static web app approach serves a page as a static file - and while that file may make calls to APIs, it doesn't require AppService itself. The result is fast, low-cost web apps!
Are you moving apps to the cloud? Carl and Richard talk to Richard Reukema about his experience shifting workloads into the cloud. Richard talks about getting beyond virtual machines in the cloud and utilizing the platform services that allow your application to scale up and out. The conversation dives into designing software independent of the implementation, even the cloud provider! This separation between design and implementation, combined with modern practices of deployment and testing automation, get to the true value of the cloud - the ability to rapidly iterate to respond to business needs!
How do you build cross-platform UI? Carl and Richard talk to Dan Walmsley about Avalonia, a lightweight, cross-platform UI using XAML and C#. Dan talks about supporting an array of Linux GUIs, Windows, macOS, WebAssembly, Raspberry PI, iOS, and Android! Avalonia comes from the Linux and Mono world and now runs with .NET 6 - you should check it out!
Flutter comes to Windows! Carl and Richard talk to Chris Sells about the latest incarnation of Flutter which now has desktop support for Windows. Flutter has been around for a few years helping to build mobile apps in iOS and Android with a unified codebase. But now it also supports deployment as a web app, and as a Windows app, and soon, MacOS and Linux. Chris talks about how Flutter provides for hardware abstraction that has allowed the ecosystem to support even more platforms, and build libraries to take Flutter in all sorts of directions.
Visual Studio turns 25! Carl and Richard talk to Julia Liuson, who has been working on Visual Studio since the beginning about her experiences building and leading the product. Julia talks about how Visual Studio got started, its evolution into .NET, with some great stories along the way. There's also Studio for the Mac and Visual Studio Code to talk about as well - all with different origin stories!
Another in the series of twenty years of .NET, this one with Scott Guthrie! Carl and Richard talk to Scott about the early days of ASP.NET, the recruiting of the ninja army of Scott Hanselman, Rob Conery, Phil Haack (and others), and much more! Scott has been part of .NET from the beginning and talks about bringing the ASP.NET web team with him when he joined the Azure group. The conversation digs into how to keep a 20-year-old product relevant, which does mean an occasional reinvention!
.NET is twenty years old - how has it changed? Carl and Richard talk with Mark Miller about how he moved from Delphi to .NET, and how .NET has continued to be relevant through the years. The conversation also digs into those pivotal moments of .NET and how it shaped the product into the open-source, cross-platform product of today!
C# is twenty years old! Carl and Richard chat with Anders Hejlsberg about how C# has evolved, and how it's continuing into the future. Anders digs into the origins of C# as the C-like Object-Oriented Langage aka COOL that he proposed when Microsoft could no longer build its own version of Java. The conversation gets into how all programming languages 'build on the shoulders of giants' and use features of languages past, with their own twists and innovations. Fun conversation with the father of C# !
Twenty years of .NET! Carl and Richard talk to Miguel de Icaza about his experiences working with .NET, going all the way back to 2001 with the announcement of the Mono Project. Miguel talks about those early days of Mono, creating MonoTouch to make C# run on iOS, Xamarin, and more! The conversation also dives into the evolution of open source, and the impact that tech companies have on open source projects, and what the future might hold for open source maintainers.
How do you build microservices? Carl and Richard talk to the authors of Pro Microservices in .NET 6 - Sean Whitesell, Rob Richardson, and Matthew Groves. The conversation digs into how microservices have evolved, the role of containers, and how the different tools that go together to make a successful microservices architecture. Then there's a whole discussion on reliability, security, scalability, and testing - there are a lot of things that go into making professional microservices!
What's your UX strategy? Carl and Richard talk to Brian Lagunas about his work on Prism, the UX framework that works WPF, Xamarin, and now the Uno Platform to build good-looking, consistent UX experiences. Brian talks about the challenges around simplifying the UX experience enough to make it easy to do the right thing, while still having enough functionality to not limit what your applications can do. The conversation also dives into web UX challenges and some of the tools that Brian has been working on for Infragistics in the same space.
What's the right development stack for a startup? Carl and Richard talk to Oleg Fridman about his latest startup called Verb Data and the challenges of building a startup with the .NET stack. Oleg talks about how the investors, and sometimes the developers, have concerns around .NET - but not the customers. .NET is well known for being enterprise-class and scalable - but it's not as well known for being cross-platform, open-source, and cloud friendly. The conversation dives into where .NET makes sense in a project and where it does not and the differences in developing in a startup versus a more established business. Not everyone is suited for startup life, but startup life has also evolved - maybe you're ready to try it!
Geek Out Number Three - Energy! Richard chats with Carl about the state of power generation in the world today - the growth of wind (offshore wind is growing!) and solar, why geothermal isn't taking off, and then a long conversation about small modular nuclear power. Is SMR really going to be a thing? 2021 also had a lot of news around fusion - much of it just noise, but there have been some important developments that might actually mean fusion is getting closer! The energy Geek Out wraps up with power storage, including thermal storage, different types of battery storage, even the potential of hydrogen! Lots to geek out about!
Ready to migrate from ASP.NET Web Forms? Carl and Richard talk to Veli Pehlivanov about his work helping organizations modernize their ASP.NET Web Forms applications. Veli talks about finding an appropriate migration strategy for the application, often keeping the existing app in operation while modernization efforts happen piece by piece. The challenging part in that scenario is aspects like security - can you share authentication from the older app with the newer? Sometimes it's necessary to build shims to keep things in sync, and while they seem temporary, often they are run for many years. Migration isn't easy, but the alternatives are worse - plan to take the time!
Part Two of the Geek Outs - all about the Pandemic. The conversation starts out talking about the Omicron variant and how the pandemic has changed since the 2020 Geek Out. The biggest thing that has happened is having 3.8 billion people vaccinated - not quite half the population, and not enough for herd immunity yet. But progress is being made, and there's more to come. Richard also dives into the power of the innovation that mRNA vaccines represent - a new tool for humanity to fight all sorts of illnesses. Finally, the show wraps up with a discussion on the supply chain crisis. Nominally brought on by the pandemic, there have been supply chain issues for years, exacerbated by lockdowns, illness, interruptions, and a huge backlog in container traffic. It will get resolved eventually, but that have been some changes coming for a while that will be felt for years - whether that is good or bad is yet to be determined!
It's the end of the year and time for a Geek Out - actually, three! With so much geeky goodness to explore, this is the first of three Geek Outs to come out in rapid succession, starting with SPACE! Richard talks about how amazing 2021 was for spaceflight - with a record-setting number of space flights from China and the US. China had a huge year in space, including landing a rover on the Moon and launching a space station. Then there are all the amazing science missions including DART, Perseverance, and the James Webb Space Telescope. There's good news and bad news on the rocket development front - and then there's the ISS. The space station is getting old, and the conversation is growing about building multiple replacements. With spaceflight getting cheaper, more things are going to fly - perhaps even us, one of these days!
.NET 6 was huge for Blazor - what's next? Carl and Richard talk to Daniel Roth about how Blazor continues to evolve as a C#-centric way to build web applications. Daniel talks about a bunch of the key features from .NET 6, including smaller runtime, Hot Reload, and rending components from JavaScript. The conversation also digs into the evolution of Blazor Fluent UI and MAUI - which also leads to the futures conversation, taking advantage of multithreading, and other great features you can see in the road map on GitHub. More Blazor is coming!
What is DAPR, and why do you want it? Carl and Richard talk to Paul Yuknewicz about how DAPR helps you build better microservices by dealing with all the plumbing. We all need messaging, security, logging, and other services to make microservices work - and there are a ton of SDKs and libraries out there to help. DAPR helps glue all those pieces together with a nice layer of abstraction to make it easier for your tool selections to work!
OpenSilver reaches V1! Carl and Richard talk to Giovanni Albani about OpenSilver - an open-source, plug-in-free implementation of Silverlight. Giovanni talks about how the client-side of OpenSilver is different from Silverlight, using Web Assembly to eliminate the need for the plug-in. But the developer SDK side is as close to identical as possible. The conversation explores going beyond compatibility with Silverlight 5 from 2011 to more modern capabilities, including the latest versions of .NET and C#. OpenSilver is not just a migration solution - it's a cross-platform development platform that is continuing to grow!
How do you start thinking outside the box? Carl and Richard chat with Mark Miller about his approach to creative problem-solving - not just solving the problem, but making it appear like there's no problem at all! Mark talks about driving toward optimal solutions, with some examples from his work in CodeRush. You don't always have the perfect tools to do everything you want, which is where improvisation comes in. The conversation also digs into getting beyond failure, being willing to walk away from an approach and try something totally new. There are many ways to solve problems, and part of the fun is trying a new way!
How do you test .NET applications written for different browsers, different servers, and different platforms? Carl and Richard talk to Kendra Havens about the recent release of .NET 6, Visual Studio 2022, and all the great tools to make testing and debugging cross-platform .NET applications easier. Kendra digs into tools like Test Explorer, the Remote Debugger, and Hot Reload - all tooling to make your testing life easier, no matter where your code is running!
Is desktop development still relevant? Billy Hollis says yes! Carl and Richard talk to Billy about his work building desktop apps, primarily with XAML. Billy talks about how desktop development has evolved even though a lot of folks have steered clear of it for years, doing all development with web clients. What is better with a traditional desktop client? The conversation also swings to how users interact with software, how developers learn, and how we could all stand to take a step back, decrease our rate of interruption, and focus more!
How do you automate DNS changes? And why would you? Carl and Richard talk to Enrique Comba, the DNSimple Ambassador, about programming against the DNSimple API. Enrique talks about automating migration from other DNS services - in fact, there are community-created products for migrating from various 'popular' DNS providers to DNSimple. The conversation also ranges over other tasks that are difficult to do manually, like certificate generation and renewal. If you're creating multi-tenant applications, configuration of DNS is a normal part of the job, and it should be automated - there are lots of reasons to dive into the API!
How do you build your Azure infrastructure? Carl and Richard talk to Eduard Keiholz, Erwin Staal, and Henry Been about their upcoming book on building Azure infrastructure with code using ARM Templates and Bicep. The conversation dives into a deep love for JSON that no one has - and the amount of tweaking it takes to build ARM Templates from JSON. Enter Bicep that gives you a more familiar dot notation that works well with intellisense and ultimately transpiles into the JSON that Azure needs. There are lots of tools out there to help you automate your infrastructure - but the built-in products in Azure can do the job for you!
How has the cloud changed data analytics? Carl and Richard chat with Vishwas Lele about his latest work taking a developer's view of data analytics - without upsetting the DBAs too much! Vishwas talks about how the cloud has changed bringing disparate data sources together for analytics. With the cloud's compute-on-demand, you don't need to do many transformations of data as it's loaded - but you can test it! This leads to a conversation of how CI/CD techniques can be applied to data to make for accurate data analytics - make your ingestion pipeline smart!
Collaboration is key - how do you add it to your applications? Carl and Richard talk to Rickard Hansson about Weavy and their API for adding audio, video, and text to your application. Rickard talks about collaboration with context - making sure you can bring together the right people at the right time to get work done. The conversation also turns to various other approaches to collaboration, and making the distinction between business-to-consumer and business-to-business interactions. But when collaboration is done right, the productivity boost is huge!
What's coming for the next version of C#? Carl and Richard chat with Mads Torgersen about some of the new features in C# 10 shipping with .NET 6. Mads talks about how a year is not a lot of time for building language features - but it does create a steady stream of new language ideas explored and tested before being finalized into the language. While C# 10 is largely finished, we also get a peek into some of the new ideas coming for C# 11!