.NET Rocks! is an Internet Audio Talk Show for Microsoft .NET Developers.
Minimal Architecture with Jeremy Miller
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.
1/1/1 • 56 minutes
Leveling up your Architecture Game with Thomas Betts
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.
1/1/1 • 1 hour, 1 minute
Cypress 12 with Ely Lucas
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!
1/1/1 • 51 minutes
Modular Monoliths with Layla Porter
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!
1/1/1 • 56 minutes
No Free Lunch in Machine Learning with Jodie Burchell
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!
1/1/1 • 55 minutes
Entity Framework Tooling with Erik Ejlskov Jensen
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!
1/1/1 • 59 minutes
Multi-Model Data Stores with Ted Neward
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!
1/1/1 • 1 hour, 1 minute
Building Apps using OpenAI with Mark Miller
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!
1/1/1 • 59 minutes
Chocolatey in 2023 with Gary Ewan Park
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.
1/1/1 • 58 minutes
Mediatr with Jimmy Bogard
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!
1/1/1 • 55 minutes
PHP and WebAssembly with Jakub Míšek
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?
1/1/1 • 53 minutes
Azure Developer CLI with Savannah Ostrowski
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!
1/1/1 • 52 minutes
OpenTelemetry with Laïla Bougriâ
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!
1/1/1 • 50 minutes
Applied Large Language Models with Brian MacKay
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!
1/1/1 • 1 hour, 5 minutes
Supporting Open Source with Joseph Finney
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.
1/1/1 • 56 minutes
The Ethics of Large Language Models with Amber McKenzie
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!
1/1/1 • 55 minutes
Immutable Architectures with Michael Perry
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.
1/1/1 • 52 minutes
Fluent Assertions with Dennis Doomen
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?
1/1/1 • 59 minutes
Scaling a Monolith with Derek Comartin
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!
1/1/1 • 59 minutes
Going Full Time on Open Source with Shaun Walker
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!
1/1/1 • 1 hour, 3 minutes
IoT Development using Particle Photon with Colleen Lavin
What can you do with a Particle Photon? While in an aluminum Airstream trailer in a thunderstorm at the Copenhagen Developers Festival, Carl and Richard talked to Colleen Lavin about her work with the Particle Photon IoT device - and its many maker possibilities! Colleen talks about making it easy to start building a device - but the struggle with so many choices to actually pick a project. The conversation also digs into making production versions of your device so that they are smaller, cheaper, and very reliable - it's a fun time to be a maker!
1/1/1 • 51 minutes
Data Science and UX with Grishma Jena
Data Science and UX should be the best of friends! While at the Copenhagen Developer Festival, Carl and Richard talked to Grishma Jena about her work in data science at IBM - and working closely with the UX teams to understand how customers use software and the opportunities to improve it. Grishma talks about the quantitative side of analytics regarding application telemetry, including the ability to predict when a customer is about to abandon an application. The conversation also digs into using modern machine learning to analyze quantitative data, such as comments in surveys - could you sort that kind of data by sentiment or actionability? Improve your UX with data!
1/1/1 • 48 minutes
Azure and GitHub with April Edwards
Azure and GitHub - better together? While at the Copenhagen Developer Festival, Carl and Richard talked to April Edwards for a special .NET Rocks Live. April talked about how Azure and GitHub work well together, discussing Azure DevOps and GitHub Actions on the CI/CD pipeline side and how other services can interact. Lots of laughter and great questions from the live audience!
1/1/1 • 56 minutes
Kubernetes Tooling with Annie Talvasto
How do you make Kubernetes easier to use? While at the Copenhagen Developers Festival, Carl and Richard talked to Annie Talvasto about her work with Kubernetes and the Cloud Native Compute Foundation. Annie talks about the easy and hard ways to work with Kubernetes and why you might choose either approach - it comes down to how much control you want. The CNCF supports many tools for Kubernetes in various stages of development to make your life easier to orchestrate containers at scale - when you need them, you'll really need them!
1/1/1 • 47 minutes
Data Sharding with Oren Eini
What is data sharding, and why do you need it? Carl and Richard talk to Oren Eini about his latest work on RavenDB, including the new data sharding feature. Oren talks about the power of sharding a database across multiple servers to improve performance on massive data sets. While a sharded database is typically in a single data center, it is possible to distribute the shards across multiple locations. The conversation explores the advantages and disadvantages of the different approaches, including that you might not need it today, but it's great to know it's there when you do!
1/1/1 • 1 hour, 4 minutes
bUnit Update with Egil Hansen
What's the latest with bUnit? Carl and Richard chat with Egil Hansen about his excellent testing library for Blazor. Egil digs into the ongoing improvements being made in Blazor and how bUnit can support those changes without having to rewrite tests - even .NET 8 shouldn't be a huge problem! The conversation also digs into the different sorts of open-source projects out there, including tooling like bUnit. Not all open source is created the same! Great thinking from an experienced builder of testing tools to make it easier to build reliable Blazor applications.
1/1/1 • 56 minutes
Observability Engineering with Charity Majors
What is observability engineering, and why do you need some? While at NDC in Porto, Carl and Richard recorded a .NET Rocks Live with Charity Majors, one of the founders of Honeycomb. Charity talked about her experiences trying to understand how complex applications worked and failed at scale over her years of experience at Facebook and other companies. Ultimately, those experiences led to a book and the creation of Honeycomb. Lots of fun insight from someone who has fought the good fight - and some great questions from the audience!
1/1/1 • 50 minutes
.NET Conf with Jeff Fritz
Are you ready for .NET Conf? Carl and Richard talk to Jeff Fritz about the latest version of .NET coming out - and the online event that celebrates it! Jeff talks about his top ten favorite sessions in the show, the ones you definitely don't want to miss. And if you have folks that are new to .NET, you want to check out the pre-event day that can help folks get started! See you online Nov 13-15!
1/1/1 • 54 minutes
Commercializing Open Source with Victoria Melnikova
How do you commercialize open-source products? While at NDC Porto, Carl and Richard talked to Victoria Melnikova about her work with Evil Martians, helping startups make open-source products and make a living at the same time. Victoria talks about various revenue strategies, but always with a mind to providing a "forever free" tier to be responsible to the open source community. Charging for pro-features, limiting the number of uses before a paid tier... there are several approaches to revenue that users can work with, as long as you are open and honest about how things work!
1/1/1 • 49 minutes
React Server Components with Aurora Walberg
How can React Server Components make your website better? While at NDC in Porto, Carl and Richard talked to Aurora Walberg about her work with RSC and Next.js 13. Aurora discusses mixing server and client rendering - and server rendering within client rendering! While it's still early days, if you're looking for options in the React development space, RSC is worth a look!
1/1/1 • 43 minutes
Sustainable Development with Lea Mladineo
How do we make our software greener? While at NDC in Porto, Carl and Richard talked to Lea Mladineo about her work in sustainable development. Lea talks about the impact of digital technology on the environment and how, with some thought and effort, we can make a real difference to that impact. The conversation explores how cloud computing can worsen the problem - or better! Software efficiency can reduce the number of cycles needed to complete a task, which is good for the environment and could save your organization money!
1/1/1 • 47 minutes
Applied Large Language Models with Vishwas Lele
How do we put large language models to work? Carl and Richard talk to Vishwas Lele about his work using LLMs with his customers. Vishwas talks about focusing on specific data sets for building LLMs and how size matters - things are simple when the source data is small, but as it grows, you need more complex tools to be able to allow the LLM to perform. Lots of cautionary tales and ideas on how to get great results from these new automation tools!
1/1/1 • 1 hour, 3 minutes
Polly V8 with Joel Hulen and Martin Costello
A new version of Polly is out - and it's a special one! Carl and Richard talk to Joel Hulen and Martin Costello about the release of Polly V8. Joel tells the story of Microsoft reaching out about Polly - because it is heavily utilized inside of Azure and at cloud scale, it needed further optimization. The results are a very high-performance library focused on resilience as a whole - with lots of smart defaults so that you can write even less code to have even more resilient applications!
1/1/1 • 54 minutes
Agile Application Security with Laura Bell Main
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!
1/1/1 • 54 minutes
.NET Performance with Daniel Marbach
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!
1/1/1 • 56 minutes
Space in 2023 Geek Out
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!
1/1/1 • 1 hour, 47 minutes
Energy in 2023 Geek Out
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!
1/1/1 • 1 hour, 52 minutes
.NET 8 Migration with Jimmy Bogard
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!
1/1/1 • 49 minutes
.NET Aspire with David Fowler
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!
1/1/1 • 1 hour, 1 minute
Uno Update with Nick Randolph
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!
1/1/1 • 1 hour
Hangfire with Sergey Odinokov
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!
1/1/1 • 42 minutes
gRPC Update with Irina Scurtu
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!
1/1/1 • 49 minutes
Improving Your CSS Game with Martine Dowden
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!
1/1/1 • 51 minutes
CSLA 8 with Rocky Lhotka
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!