How do you do static testing in your applications? Carl and Richard talk to Patrick Smacchia of nDepend - one of the original testing products for .NET, stretching back to the very beginning! Patrick talks about how nDepend has grown over the years to provide a variety of tools for helping you to visualize the quality of your code, and to detect code smells - that is, aspects of code that may indicate a problem. The conversation dives into building out rules in projects to do static evaluation as code is created so you can catch problems early, to determine when its time to refactor older code!
Are there alternative versions of VB.NET? Soon! Carl and Richard talk to Marc Hoffman of RemObjects Software about Elements, their cross-platform compiler for Oxygene (Object Pascal), C#, Java, Swift, Go and soon, VB.NET. Marc discusses the relationship between platforms and languages and the idea that, at least for this array of languages, they can all work together. The conversation dives into why you might want to take an existing Java app, compile it in Elements, and then build C# components for it. And then there's VB.NET - the Mercury Element. Coming soon to a cross-compiler near you!
Ready to go to Maui? Carl and Richard talk to Scott Hunter about the .NET Multi-Platform App UI or MAUI for short. Scott talks about how the next versions of .NET are focused on unifying the elements that go into .NET to make One .NET. And that includes the UI stacks - including Xamarin! The evolution of Xamarin into .NET means that all UI stacks will be treated equally. And that leads to the .NET Multi-Platform App UI, letting you make a single project that covers Windows, OS/X, iOS and Android. Coming soon to a .NET near you!
Is VB.NET dead? Kathleen Dollard says No! Carl and Richard talk to Kathleen about a recent blog post from Microsoft about VB.NET not coming to .NET 5. Kathleen talks through the decision-making process that led to the blog post - not the death of VB.NET, but keeping VB.NET stable while C# is going through such significant changes. No, VB.NET is not going into maintenance, the same team is continuing to work on it - it's just going in a different direction from C#!
How do you test your Blazor app? Carl and Richard talk to Egil Hansen about bUnit, an open-source testing framework designed to work with Blazor - both the server-side Razor components and the WebAssembly client. Egil talks about building bUnit to allow for robust testing, that is, tolerant to the normal changes that come to an application without breaking all the tests. The conversation also turns to growing the bUnit project with more contributors, a wider set of features, and perhaps being part of the .NET Foundation!
What's your cross-platform development solution? Carl and Richard talk to Kenzie Whalen about the Uno Platform, where you write C# and XAML for Windows and are able to deploy via Xamarin to iOS and Android... and to browsers via WebAssembly also! The conversation digs into how UWP is evolving, and the approaches you can take to keep your codebase as common as possible between all the platforms. But there are always variations from platform-to-platform. Kenzie also talks about how some of the new hardware, like Surface Duo, will impact development - more cool stuff is coming!
How are shared APIs evolving in the new decade? From the online version of NDC Porto, Carl and Richard chatted with panelists Shawn Wildermuth, Irina Scurtu, and Heather Downing about the right things to do around APIs. Are you just exposing your database to the internet through APIs? Or do you have specific use cases? What about REST vs GraphQL? How about versioning APIS - can you ever turn the old versions off? Lots of great thoughts about the modern API!
Time for some chocolatey goodness! After seven years, Rob Reynolds is back chatting with Carl and Richard about the Windows application package manager that you want to use! Since the last show in 2013, Chocolatey has grown up, become a commercial product with a great open source free version. And there's a GUI - you can help your non-technical friends and family automate application installation and updates! But more typically, you use Chocolatey to build out your development environments in an automated way. Make paving your machines easy!
Ready for a challenge? Carl and Richard talk to Heather Wilde about her work with the Air Force on innovation projects called AFWerx. Heather talks about the different kinds of projects that the Air Force is interested in, and how anyone (who is an ally of the US) can submit projects. And if your project is successful, you can build some business around it, working with the Air Force! Check out the links in the show notes for more information.
Are there Silver Bullets in Development? Carl and Richard chat with Mark Seemann about the 1986 Fred Brooks essay No Silver Bullet. Mark argues that there are silver bullets - but do we notice them? The conversation dives into technology like the Internet (maybe you've heard of it?) changing the way we do software development: Providing rapid access to resources, answering your questions, and simplifying deployment. Mark also talks about automated testing to shorten cycle times, how modern distributed source control can help you work faster and more!
Jon Skeet is the first show recorded since the COVID-19 pandemic was declared - so its pretty far ranging! Carl and Richard discuss Carl's recovery from the virus, and then chat with Jon about what life is like for him in this new world. The conversation also digs into the Better Know a Framework around VB.NET going into maintenance, challenges with nodatime and versioning and more!
What's up with CSLA? Carl and Richard talk to Rocky Lhotka about his ubiquitous framework for managing business rules and user interfaces. Rocky talks about the latest version with support for Blazor, along with many other popular UI solutions including Web Forms, WPF even Silverlight. Rocky talks about the challenges of taking care of an open-source project for so many years, including some issues around NuGet. The conversation also dives into the power of Blazor and how CSLA makes it even easier to build great apps!
Did you know there is a separate Azure for government? Carl and Richard talk to Vishwas Lele about his work with Azure Government, specifically the version for the US Government. Vishwas explains that there are a number of data centers around the world set up as sovereign data centers for the local government. They comply with various government-related security standards and have a restricted set of features. They cost more too! But if you want to do business with certain governments, working within these specialized versions of Azure can be very lucrative!
What are GitHub Actions, and why should you care? Carl and Richard talk to Enrico Campidoglio about how GitHub evolves under Microsoft and the addition of GitHub Actions to expand CI/CD capabilities directly in GitHub. Enrico talks about how typically build services of continuous integration with GitHub have to be set up elsewhere - but GitHub Actions solves that, and adds some new capabilities. The discussion turns to building Docker containers as part of GitHub Actions and the power that represents - use it wisely!
What is pair programming like in 2020? While at SWETUGG in Stockholm, Carl and Richard chatted with Stacy Cashmore about her experiences using pair programming to build quality software - and a stronger team in the process! The conversation digs into the idea that the goal of programming is not typing, but rather thinking hard about understanding a problem and building an efficient way to solve it. The best way to do that is to talk it out with someone else!
It's 2020, and AI technology is all around us. What are the consequences? While at NDC London, Carl and Richard hosted a panel discussion with Tess Ferrandez, Brandon Satrom and Evelina Gabasova about the state of AI today and the ethical considerations we have to think about, including bias in data, impact on work and decision making. As it was recorded in front of an audience, there are questions from the audience toward the end of the show!
How and why would you mix Angular and Reactive Extensions? While at NDC London, Carl and Richard chatted with Sandi Barr about her work building reactive applications where the front-end is Angular. Sandi talks about how Angular has ReactiveJS built-in and why you want to use reactive in your applications where you have streams of data you need to look at, but not capture every bite of. Reactive is a cool pattern of development, you should add it to your repertoire!
How do you implement multifactor authentication in your application? While at NDC in London, Carl and Richard chatted with Christine Seeman about what it takes to add multifactor authentication support to your application. Christine talks about all of the great tools that exist today to make it easier to put authentication tools to work. But then the tricky part comes - how do you get your users to take advantage of them!
How do you get started with vue JS? While at NDC London, Carl and Richard talked to Gwendolyn Faraday about how she teaches people to develop with vue. Gwen breaks down what makes vue distinct as a development framework, and how you go about building, testing and deploying web apps. Want to build a native mobile app? Vue does that too!
Technology doing good! While at NDC in London, Carl and Richard sat down with Carmel Eve and Jess Panni to talk about a project with OceanMind to use machine learning technology to track ships committing illegal acts. The conversation explores the nature of illegal fishing, but also how ships are used to smuggle drugs, human smuggling and slavery. OceanMind has worked on these problems for years, and the Endjin team has moved them onto Azure to increase their capabilities - an exciting story of AI!
What if Visual Studio could help you write better code? Carl and Richard talk to Danny Simmons and Gustavo Soares about Program Synthesis Using Examples - aka, PROSE. PROSE uses machine learning to understand how you are changing your code and finds ways to help with those changes. Originally a part of Microsoft Research, PROSE has moved to the developer division at Microsoft and is part of the Intellicode extensions in Visual Studio. There are also examples and code on GitHub - check it out!
It's 2020 - how do you build client-side applications? Carl and Richard talk to Brian Lagunas about his work in client-side development, largely around XAML (don't worry WinForms, we still love you!) - WPF, UWP and Xamarin.Forms. Brian leads the Prism open-source project that helps to build XAML-based applications, specifically WPF and Xamarin.Forms. The conversation digs into the problems around UWP and even a mention of Silverlight - and then the challenges of the other client-side platform, mobile!
What does the perfect developer education look like? Carl and Richard talk to Thomas Betts about how he learned about software development, and how he has taught others. The conversation dives into the diversity of education, including the power of a liberal arts education to provide key skills like communication, teamwork and communication. Oh, and also, communication! This wide-ranging conversation also dives into the differences in generations of developers, adding new skills when you're an experienced developer, and more!
What if your development environment was in the cloud? Carl and Richard talk to Nik Molnar about Visual Studio Online - literally a version of Visual Studio running on Azure. Nik talks about the time it takes to set up each development environment for each development project you have, and what you could do to make that less painful. The conversation also dives into the differences between personal configuration options and project options - you can have a dark theme if you want! And even more interestingly - you can do remote development on your own dev machine at work while traveling through VS Online. Lots of cool possibilities!
How do you write XAML? Carl and Richard chat with Dmitry Lyalin about Microsoft's on-going efforts to make coding in XAML faster, easier and more reliable. Dmitry starts out talking about how there are different dialects of XAML, including WPF, UWP, Xamarin Forms and more - although there are concerted efforts to keep them more in sync. And that helps with tooling also! Dmitry dives into Blend, XAML Designer and the power of coding XAML directly with IntelliCode, hot-reload and more!
Are we actually making progress on quantum computing? While at .NET Developer Days in Warsaw, Carl and Richard talked to Johnny Hooyberghs about quantum computing and Microsoft's Q# language. The discussion begins with some definitions around quantum computing including qubits, superposition, and entanglement. Google's announcement on quantum supremacy is debated, as is the idea that quantum computers could ever be general-purpose computing devices. Back in the 1950s, we didn't think computers would be homes, so who knows what comes next!
Memory Leaks in .NET? How is that possible? While at .NET Developer Days in Warsaw, Carl and Richard talked to Adam Furmanek about modern memory leaks - the things we can do in .NET that cause more memory to be consumed over time. Adam talks through various aspects of .NET that have a risk of causing memory leaks, how to detect them and then the hard part - how to fix them.
Containers sound like a good idea - but can you get your application live on them? Carl and Richard talk to Michele Bustamante about her on-going work migrating existing applications to microservices on containers, as well as greenfield development. Michele discusses the balance of complexity and flexibility that containers bring, and the challenges of getting an organization comfortable operating an entirely new architecture of applications. But the payoff is big - scalable, reliable and cost-effective software!
Do you Python? Carl and Richard chat with Michael Kennedy about the current state of Python and how .NET developers can learn it! Michael talks about the many flavors of Python out there today and the tremendous number of libraries available. The focus of Python on machine learning, scientific computation and more makes it great for all sorts of applications outside of regular dev. But if you wanna make a web site - it kicks butt there too! Check out Michael's course on Python for .NET Developers if you want to get started!
How do you improve the performance of your application? While at .NET Developer Days in Poland, Carl and Richard chatted with Steve Gordon about his work writing high-performance C#. The conversation digs into the larger picture of why and how you improve performance - don't guess, use method profiling, benchmarking and great measurements to know if you're fixing the right thing, the right way. That being said, there are a bunch of techniques available to improve performance - check out Steve's blog and the links in the show notes!
How can you be more productive with Visual Studio? Carl and Richard talk to Kendra Havens about all the built-in productivity gadgets in Studio - plus the ones you can build yourself! Kendra talks about putting those red and green squiggles, lightbulbs and screwdrivers to work communicating with developers about standards of development within your organization using Roslyn Analyzers, as well as taking advantage of the huge number of productivity features including regex completion, type recognition and many more!
How do you configure your cloud? Carl and Richard talk to Joe Duffy about Pulumi, a tool that lets you use your favorite programming languages to provide Configuration-as-Code. Joe Duffy talks about the new addition to Pulumi - .NET Core languages including C#, F#, VB.NET... even COBOL.NET if you really want to! The conversation then turns to the process of creating better code for managing configuration, getting real testing, building our modules. Configuration-as-Code is code, give it the love it needs!
What's up with Entity Framework? Carl and Richard talk to Julie Lerman about the latest updates to Entity Framework, both EF 6 and Entity Framework Core 3.0. The discussion dives into this transitory time in the world of .NET, where .NET framework and .NET Core live side-by-side, and looking to a future of a unified .NET 5. Julie talks about the new features in EF Core 3.0 and what's coming shortly in EF Core 3.1. There are more breaking changes than new features, but it should all be worth it, lining up for what comes in the next year. Exciting times!
What's happening with Windows client-side development? Carl and Richard talk to Ryan Demopoulous about WinUI 3.0, the next version of the WinUI stack, which represents a major shift in how Windows applications are going to be built and supported in the future. Ryan starts the conversation focused on the current WinUI 2, which is open source, but largely focuses only on UWP. WinUI 3 expands the horizons to support .NET Core and more - the alpha bits shipped at Ignite, check it out!
What does it take to move away from AngularJS? Carl and Richard talk to Jennifer Wadella about so-called legacy Angular apps, that is, web apps built using Angular 1.x - known as AngularJS. The discussion calls back to the issues around AngularJS, that its flexibility led to a huge array of programming approaches, making it difficult to manage projects in the long term. The opinionated approach of Angular from version 2 dealt with that issue, at the price of making upgrading hard - but today the change shows its value in a huge ecosystem that makes modernizing worthwhile!
Software-as-a-Service is getting more common, what does it take to make a good app in that world? Carl and Richard talk to Tom Kerkhove about building multi-tenant cloud apps today. While multi-tenant apps have been around for a long time, the cloud offers new ways to build, monitor and maintain them. The conversation starts out digging into the challenge of data - do you really want a database for each customer? Tom talks about the new data capabilities Azure offers and how that impacts your choices - along with monitoring, API controls and more!
What does client-side development look like today? Carl and Richard talk to Tim Corey about WinForms, WPF and other ways to build applications that live on a client. The conversation digs into the fear that client-side developers have around WinForms going away - which does not appear to be happening with a new version appearing in .NET Core 3. But Tim does dive into how you can spend time organizing your application in a way that tolerates changes to UI... but what to change to?
Ready for a tale of migration? Carl and Richard enjoy a tale by Elias Puurunen who tells the story of migrating a 90's era Delphi app to .NET. The application in question was an air quality simulation application with some serious math equations in it that was written in the 90's in Delphi. The original developer long gone, there is source code but no operating development environment for it. Elias describes the various tactics he used to get the application into .NET so that it could have a future - and new features!
The ASP.NET Core Ecosystem is thriving! What does that mean for you? Carl and Richard talk to Jeremy Miller about how the latest versions of ASP.NET Core are building an ecosystem of third-party tools in the open-source world. Jeremy talks about looking at different approaches to building web apps with ASP.NET Core, the variety of backend libraries available, and takes a short trip down memory lane to talk about ALT.NET, an open-source movement he was a part of going back to 2007!
.NET Core 3 has shipped - what did we get? Carl and Richard talk to Scott Hunter about the announcements at .NET Conf around .NET Core 3 and the cool stuff still coming from the latest version of .NET. .NET Core 3 continues to expand on the ability to work across platforms, while also adding the new Windows SDK that contains a new version of WinForms and WPF. More compiling options, installation features, monitoring and more - it's a great time to be a .NET developer!
How do you build software for a diversity of customers? Carl and Richard talk to Lily Dart about what it takes to really build diversity-sensitive software, and it starts with understanding the difference between sympathy and empathy. Lily talks about how folks fall into the trap of avoiding diversity using empathy training - but real empathy takes understanding, and that means living with diversity. There's no substitute for a diverse team, and even then, you'll still need to research into areas of diversity your team doesn't have. It's hard work, but worth it!
Blazor is coming on strong - should you migrate to it? Carl and Richard talk to Jeff Fritz about what's happening with Blazor and how server-side Blazor is going to ship with .NET Core 3. But what about moving existing web forms apps to Blazor? The developer ecosystem seems to be building controls for Blazor, so perhaps there are options there, but first, make sure your web forms apps are using the latest .NET bits - then you'll have a better grasp of what's possible and where to go!
What is gRPC and why should you care? Carl and Richard talk to Shawn Wildermuth about the new hotness that is gRPC - or is it? Shawn talks about all the different approaches we've taken over the years to communicate over the wire, whether with SOAP, REST or all the other flavors in-between. What makes sense for your application? Shawn talks about how gRPC has a solid cross-platform solution for streaming connections and how that is probably the main reason you should consider gRPC at all - and if you aren't concerned about streaming, then there isn't much reason to move from where you are.
In the age of the cloud, does performance matter? Carl and Richard talk to JD Trask of Raygun software about his work making applications run fast - and knowing how to do it! JD talks about the various ways that you can measure the performance of different types of applications, especially in this modern day where you can instrument in production and actually see what your customers are experiencing. The trick is to not look at averages - individual experiences matter, and figuring out where and what to tune takes time and good tooling. A great geeky conversation on performance!
Server-Side Blazor is poised to ship at the end of September 2019 - are you ready? Carl and Richard talk to Shaun Walker, formerly of DotNetNuke fame, about server-side Blazor - starting with, how does server-side Blazor even make sense? Blazor has been a client-side technology using web assembly since Steve Sanderson showed off the prototype in 2017. But as the product matured, a server-side model from the Razor world emerged as a hugely powerful way to build forms-over-data web applications - and the component vendors have jumped on-board! Shaun talks about his new open-source project called Oqtane which promises to make building Blazor apps even easier!
How do you integrate accessibility into your applications? Carl and Richard chat with Elle Waters about her on-going work helping educate developers and organizations to include accessibility features as part of their user experience design. Elle digs into how accessibility should become part of your workflow - it takes time to learn, but once understood, it doesn't cost much in terms of routine work. The same applies to client-side and mobile tech. In the end, accessibility *is* user experience - you gotta do it!
What is Rust and why would you use it with C#? While at NDC in Oslo, Carl and Richard chatted with Ashley Mannix about he and the team at Datalust build Seq, a structured log server, using Rust on the back end and C# on the front. Rust looks a lot like C++, but with a great type safety system and a smart compiler that can help catch memory leaks before they happen. Rust is a modern language with modern capabilities and well worth the look!
Artificial Intelligence is happening - are we using it correctly? While at NDC in Oslo, Carl and Richard talked to Amber McKenzie about the challenges of building AI applications that are ethical and unbiased. Doc Am discusses how the AI term is over-used, and how often there are simpler technologies that can solve business problems. But where AI is applied, it comes with some ethical needs about how it is used, and an understanding that there is always bias in the data that trains AI - tread carefully!
Can software summarize documents? While at NDC in Oslo, Carl and Richard talked to Masa Nekic about automated text summarization. Masa walks through a few cases where text summarization is valuable, such as search optimization. There are a variety of strategies to automate text summarization, and there are plenty of 'it depends' cases - but its a cool tech to explore!
WCF isn't coming to .NET Core 3 - what to do? While at NDC in Oslo, Carl and Richard chatted with Mark Rendle about his new project called Recode. Mark talks about how Microsoft came to the decision that they could not migrate WCF to the open-source, cross-platform .NET Core and what that means going forward. Mark's solution is a tool called Recode that can convert WCF code to gRPC - check it out!
How does UX work in your organization? While at NDC in Oslo, Carl and Richard talked to Debbie Levitt about how UX can help make software better and the development process less difficult. Debbie talks about UX being part of the initial requirements gathering process, talking to users and looking through how business processes actually work. UX can help you build the right thing!
What can HashiCorp's Packer do for you? Carl and Richard talk to Jamie Phillips about how Packer helps to make golden images of hypervisor machines - that would be Hyper-V, VMWare or any of the container solutions so that you can ship them out to whoever needs them. The images can be used as part of your pipeline to push cloud products into a store, or for developers to work from production-configured images, and so on. Packer is a powerful open source solution that can be part of your CI/CD pipeline!
What's your authentication solution? Carl and Richard talk to Vittorio Bertocci, now an architect at Auth0, about building pure identity solutions that work for all platforms and languages. Vittorio digs into why you want an authentication solution that stands independent of any given cloud vendor, and what capabilities you need to get authentication right!
How do you use messaging? Carl and Richard talk to Jimmy Bogard about his work developing messaging architecture for applications. Jimmy talks about the mistakes he's made along the way, starting with not using formal messaging systems - yes, you can use a text file or a database table as a queue, but should you? And when you do embrace messaging, there is an overhead of code and effort to work with queues properly. Is it worth it? The answer is always, it depends!
It's 2019, how smart is your home? Time for a Geek Out! Carl and Richard chat with Mads Kristensen about how he's adding automation to his home - and in a way that is tolerable for his significant other and young children. Mads talks about his kids being small enough that they can't reach the light switch - so automation to turn lights on is hugely empowering for them! But how do you make your home automation not so annoying? That's a bit trickier, and a great conversation!
Ready to move your applications into containers? Carl and Richard chat with Rob Richardson about his work migrating existing applications running in virtual machines over to containers using Kubernetes as the orchestration engine and Istio as the traffic manager. Why add Istio to the mix? It makes it easier to have a mixture of containers, services running in VMs and more. The conversation digs into the expanding tribe of services that work in containers together to give you great options for analytics, security and more!
Have you heard of Rockstar? Carl and Richard talk to Dylan Beattie about a joke that may have gone too far - or perhaps not far enough? Dylan talks about the origins of Rockstar, the idea that recruiters like to use the term rockstar to identify a certain class of developer that is far from realistic. But what if rockstar was a language? Then anyone who programmed in it would be a rockstar developer... right? What started as a gag specification is now a language - the code looks like 80s rock lyrics, but it compiles!
How do you secure microservices? Carl and Richard chat with Sam Newman about the complexity that comes with containerization and microservices, and how that impacts your security plans. Often security has been based on a monolithic single-point-of-access model. But when applications are broken down into microservices, there are a whole bunch of new points of contact to be secured. The good news is, there is plenty of technology out there to help, including password vaults, mutual TLS and more - you just need to learn about it!
Build is over - what did we learn? Carl and Richard talk to Scott Hunter about the various announcements at Build connection with .NET - including the delivery date of .NET Core 3 and what happens beyond! The conversation digs into switching to a routine delivery model for .NET, so that you can anticipate when you'll need to implement the new version of the framework. Scott also talks about new features coming in C# 8, including the fact that C# 8 is only for .NET Core 3 and above... things are changing, and it seems for the better!
What's the latest for Identity Server? While at NDC in Porto, Carl and Richard chatted with Dominick Baier and Brock Allen about their latest work on Identity Server. The conversation goes through the various current generations of attacks on web pages, how Single Page Apps behave differently, and more! Great conversation about the current state of web-based security and how you can do more!
What does it take to be a modern developer? While at NDC in London, Carl and Richard talked with Dan North about how being a developer has evolved. The conversation starts out discussing the transformation of Microsoft itself and how it has helped throw the definition of developer out the window - so what happens now? Dan digs into looking at developers as more than an array of technical skills, but also how they work in teams and in the organization. Great thinking!
Templates can make your life better! While at NDC in London, Carl and Richard chatted with Layla Porter about the power of Visual Studio Templates. Layla talks about trying to avoid repeating herself in code, and trying to document or remember best practices for the various projects she works on. The answer is templates - so that you can File-New a project with all that thinking already built in. And not just for new projects - you can template Visual Studio configurations as well!
Impostor Syndrome is real and pervasive in the development industry - what can you do about it? While at NDC London, Carl and Richard talk to Rob Conery about the second edition of The Impostor's Handbook. Rob talks about how most software developers don't actually have an education in computing science, but that doesn't mean you can't learn - he talks about key bits of education you can add to your repertoire to help resist feeling like an impostor - you can do it!