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!
A visit from one of Scott Guthrie's Ninja Army! Carl and Richard chat with Rob Conery about his latest work with Microsoft technologies, including a VS Code extension for Copilot to understand Postgres databases! Rob talks about spending time in other programming platforms besides .NET to expand his horizons, which led him to create a tool called Viper.NET, similar to the tool from the Go platform, to help manage configuration. The conversation also visits and revisits the impact of GitHub Copilot, now with a free tier, and how it is helping software developers - and generating controversy!
How is your architectural intelligence? Carl and Richard talk to Thomas Betts about his thoughts on implementing AI-related technologies into applications. Thomas talks about stripping the magic out of AI and focusing on the realities - in the end, it's just another API you can call. The conversation digs into what useful implementations of large language models look like, as UX alternatives, summarizers, and tools for reviewing existing work.
What's coming for GitHub? Carl and Richard talk to April Yoho about the recent announcements from GitHub Universe and how they will roll out in 2025. The biggest topic, of course, is all the large language models coming to GitHub - there are a bunch of copilots! April talks about original GitHub Copilot, Copilot Workspace, and Copilot Chat - so many options! Now, you can choose your language model to move beyond OpenAI. And there are other changes at GitHub, including EU residency, new features in the enterprise cloud, and new instrumentation - 2025 looks awesome!
How can event modeling help you build better applications? Carl and Richard talk to Adam Dymitruk about Event Sourcing and Event Modeling, including the new book Understanding Eventsourcing. Adam talks about thinking through business workflows as an approach to event sourcing, where new data is constantly added, never modified. These data streams can then be modeled into different workflows following consistent patterns that make your application straightforward to build and maintain. It does take effort to change your thinking to the event source/model approach but with huge potential!
How do you understand the quality of your code? Carl and Richard talk to Richard Gross about his open-source tool called CodeCharta. Richard talks about various ways you can use CodeCharta to understand your codebase - whether it is complexity, number of changes, or number of coders involved - there are many visualization opportunities. This leads to a discussion about what problematic code actually is. Sometimes, too many people work in the same place, and sometimes, there is only one. Some complexity is necessary, and sometimes it's just refactoring. But what tools like CodeCharta provide is a way to focus on potential points of change and then see when the change has been successful - and you can even print a 3D model to have a physical copy of your code!
How are Azure Static Websites evolving? Carl and Richard talk to Stacy Cashmore about her work with Azure Static Websites, including an update to her book, which is coming soon! Stacy talks about adapting to the latest version of .NET, taking advantage of some of the new features in Blazor, and new Azure Static Website capabilities, including the new Data API Builder. The conversation also explores some of the gotchas, like challenges with SEO and dealing with authentication and authorization strategies.
Let's talk about .NET 9 with one of the platform's leaders! Carl and Richard talk to Glenn Condron about his experiences building .NET 9. Glenn talks about the usual improvements in every version of .NET, including performance, security, and stability. But the new stuff is where the excitement is, starting with Aspire. The conversation digs deeper into the origin story of Aspire and what the team sees as the future of building cloud-native applications with .NET. Then, a dive into all things AI - tools to help developers create applications, as well as how to include AI capabilities in your applications. And there's more to come - .NET 10 is only a year away!
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 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'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!
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 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'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!
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!
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?
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!
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!
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!
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!
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!
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.
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'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.
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!
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!
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.
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!
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!
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!
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!
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 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!
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!
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!
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!
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!
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?
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!
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!
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!
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!
.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!
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!
.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!
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!
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!
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!
It's 2021, what can Uno do for you? Carl and Richard talk to Thomas Huber about the current state of Uno and the many other options for desktop and cross-platform client development. Thomas talks about how Uno offers a great path to pushing out applications to iOS, Android, MacOS, web, and Windows - and offering routes to platform-specific features. The conversation also digs into MAUI, Xamarin, WPF, and Blazor. There are lots of choices out there, have you seen what Uno can do?
What's been happening in the web development world and F#? Carl and Richard talk to Zaid Ajaj about his favorite tools for building web pages with F#. The conversation starts concerning the comment read on the show and the Giraffe library that works with ASP.NET Web Core, still going strong at version 5. Zaid also talks about the power of Fable to transpile F# code into JavaScript and how to interoperate with existing JavaScript libraries - pointing to the project that Zaid build for using React from within F# through Fable. F# transpiles to JavaScript well, and can help you create very sustainable web apps!
Learning by doing! Carl and Richard talk to Joseph Finney about his experiences building Text-Grab, a clever utility for extracting text from graphics using OCR built into Windows. Joe talks about how the 'search-with-screenshot' built into Windows 10 depends on Bing, but there is an OCR library inside Windows - why go to the cloud? The conversation dives into the challenges of handling multiple screens, screen resolutions, DPIs, language packs, and more... what seems like a simple tool is never that simple. And, as it turns out, building the app is the easy part: Now, how do you get it into the Microsoft Store? That leads to both Richard and Carl installing the app, showing that purchasing and installing an app is much harder than it needs to be!
Julie and Steve return! Carl and Richard talk to Julie Lerman and Steve Smith about their new version of the Domain-Driven Design Fundamentals course. The conversation starts focused on Open AI Codex, a project for writing code with the spoken (or typed) word - and how that is an example of focusing on domain implementation - because the AI is doing the functional implementation from your words! Julie and Steve also dig into how DDD has evolved since their original class in 2014, including using event storming to help gather all the important information around a project in an enjoyable way. Gathering domain information is important - implementations come later! Don't get stuck in the conference-driven development of the latest technology, better to focus on what is distinct to the business!
How much more productive can Visual Studio get? Carl and Richard talk to Mika Dumont about some of the new features coming in Visual Studio 2022 to help shorten your development inner loop. Mika talks about some of the new code analyzer capabilities working within the Roslyn service that you can customize - and create your own! The conversation explores how these tools can add code automatically to save you typing, like adding using constructs on paste. It's a challenge to get the balance right between helping and interrupting, but the team works hard on it - and listens to your feedback to make it better. Take the VS2022 Preview out for a spin and help make it even better!
How do you speed up your development loop? Carl and Richard talk to Dmitry Lyalin about Hot Reload in Visual Studio 2022. Dmitry talks about how Hot Reload goes beyond Edit and Continue, where you can make changes in code without a breakpoint, and Hot Reload will insert it into the running code, wherever possible. It doesn't work in every scenario, but it does work for many, and across platforms and tools! Get more productive by being able to change code and see the results immediately!
What if you could build a mixed reality app once, and run it on all kinds of different VR and AR headsets? Carl and Richard talk to Catherina Diaz about the Mixed Reality Toolkit (MRTK) on GitHub, which offers up a cross-platform deployment of VR/AR applications. Catherine talks about how MRTK abstracts the visualizations and interactions across different devices, including implementations for Hololens, Oculus, Vive, the Windows VR headsets, and even mobile devices! The conversation also dives into how VR and AR evolving, mapping existing user interface metaphors into the 3D realm, and also ideas on what pure VR/AR interfaces could be like!
It's 2021 - how has NodeJS evolved? Carl and Richard talk to Rob Richardson about NodeJS and much more. Rob dives into the current evolutionary process of JavaScript with the ECMAScript standards and the impact of transpilers to allow developers to use the latest concepts of JavaScript while still remaining compatible with existing browsers. The conversation dives into the Node philosophy of minimal footprint and surface area and the great libraries that help you get going quickly. And then there's WebAssembly!
Do the SOLID principles still make sense? Carl and Richard talk to Dan North about SOLID, starting with a five-minute PubConf talk that Dan did about how SOLID was wrong. Meant to be humorous (it was PubConf after all), the SOLID fans took exception, and actually led to Dan exploring how SOLID could be reinterpreted... as CUPID. With a lot of back story and laughs, Dan digs into his thinking around making sustainable, quality software with the acronym CUPID.
Are you using open-source libraries in your enterprise applications or products? What are the consequences? Carl and Richard talk to Rocky Lhotka about his work with organizations coming to grips with the use of open-source code in their projects. What happens if the project goes away? What if there is malware added to the code intentionally or accidentally? What about plagiarism of code? Diligence around the origin of code is important, whether it is open-source or not - and should be part of your build process!
What is event sourcing, and why should you care? Carl and Richard talk to Jeremy Miller about the latest version of Marten, the Document store for PostgreSQL - and how there is an increased focus in this version of event sourcing. Jeremy talks about the patterns of development around event sourcing, separating how data is written to a system from reading it. One of the side effects is some latency, but the advantage is scalability and reliability. It takes some time to get used to the patterns around event sourcing, but for the right project, it can make all the difference!
What's being announced at Build? Carl and Richard talk to Scott Hunter about the latest from the Virtual Build conference. With .NET 5 out last November, and .NET 6 coming next November, this is a time for interim features - including some huge performance improvements! Scott talks about being able to modify code while running to shorten your development cycle, and the latest version of Upgrade Assistant to help move your existing .NET applications to the latest version. Lots of great stuff!
What's new in Visual Studio 2022? Carl Franklin and Richard Campbell talk to Simon Calvert, Anthony Cangialosi, and Andy Sterland about the upcoming version of Studio. First on the docket is 64-bit: While Studio has been able to build 64-bit applications for more than a decade, the devenv.exe itself has remained a 32-bit application. The team discusses why it makes sense to move to 64-bit and what that means for development going forward. But there's much more to Studio 2022, including improvement to debugging and diagnostics across platforms, being able to collaborate with developers in real-time using Live Share, and getting smarter about how you navigate and explore existing code. Cool new things are coming!
How do you do smarter testing? Carl and Richard talk to Simon Cropp about Verify, Simon's open source project to add snapshot testing capabilities to many of your favorite testing stacks. Simon talks about how snapshots can help you look at the output of code, rather than the code itself, to test its validity. And as code changes, the new snapshots reflect those changes - no need to rewrite the tests!
Xamarin Forms 5 is being replaced by .NET Maui - what's a mobile dev to do? Carl and Richard talk to Gerald Versluis about what to expect from .NET Maui and what to expect when migrating your Xamarin Forms apps. There are going to be some changes, and you can expect support for Xamarin Forms to end sometime in 2022. Gerald talks about how the skill sets are similar, so the move isn't too hard - and its still worthwhile to learn and build in Xamarin Forms today!
How are you doing TDD today? Recorded online at NDC Manchester, Carl and Richard chat with Ian Cooper about his views on TDD, going back to his old talk on Where TDD Went Wrong. Ian talks about how folk struggled to understand TDD, focusing solely on writing tests, rather than understanding how people use their software. This leads to a conversation on how development approaches have evolved with the cloud and modern software - is it time for a new development methodology?
Do you have apps that need to move to .NET 5? Carl and Richard talk to Mark Rendle about his work on Visual Recode, which started out as a migration tool for WCF to gRPC, but has evolved to deal with the migration to .NET 5 challenges. Mark talks about how older WCF apps can often move to gRPC pretty easily, but moving the app has other problems, like out-of-date libraries, build practices, tests, and so on. There's also the possibility of migrating WebAPI and even WebForms apps - lots of possibilities!
What's a Blazor Static Web App, and why should you care? Carl and Richard talk to Jeff Fritz about how the new Azure Static Web App service can be combined with Blazor to do dynamic things on the client, without any client rendering on the server. The conversation ranges over a variety of web development technologies, including Web Forms, Angular, and more. Static doesn't mean boring!
How secure is your software? Carl and Richard talk to Maya Kaczorowski of GitHub about The State of the Octoverse Security Report - one of three annual reports coming from GitHub about how software is being built. Maya talks about how software vulnerabilities are found and fixed, including the amazing statistic that vulnerabilities on average exist in code for four years before being detected! Also, the criticality of the vulnerability doesn't seem to increase the speed to fix - what does make a difference is automation. Automated build and deployment pipelines, including security analysis early in the process - those are the things that make our software safer!
.NET 5 is shipped! What happens now? As part of the .BLD() Tech Talks XXL event in the Netherlands, Carl and Richard streamed interviewing Scott Hunter about .NET 5. The conversation turns to how the scope of .NET 5 focused in on how to help projects move from the standard framework onto .NET 5. Scott also dives into the ever-improving performance of .NET, the latest version of Blazor, and the adoption of WinForms in .NET 5 - and what's coming for .NET 6!
What does it take to make a flight simulator in C#? On a smartphone? Carl and Richard talk to Laura Laban about her experiences building Infinite Flight - starting with the Windows Phone in 2011! The conversation follows the history of using C# in smartphones, from WinPhone 7 through to MonoTouch, MonoGame, and Xamarin! Laura discusses the challenges of tooling getting deprecated, platforms going away, and the vagaries of app stores!
What can you use Blazor for? Carl and Richard talk to Georgia Nelson about GifBot, a Twitch bot Georgia has built using a variety of tools and languages (including Java) and today is C# and Blazor. Georgia talks about evolving the bot from version to version, looking for ways to make it easier for Twitch streamers to use. From WinForms to WPF to Blazor, the UI has taken a few turns, but Blazor works great in the role of user interface!
With a new version of .NET out, it's time for a new version of Nuke! Carl and Richard talk to Matthias Koch about Nuke V5 - synchronizing the version number of Nuke with the version of .NET. Matthias talks about the philosophy of Nuke, focusing on creating builds using C# with package references and class inheritance. This leads to a conversation around build maintainability - making sure every developer on the team can contribute to the build, and that certain build classes can be used in multiple build projects!
Good user interface design makes your company money! Carl and Richard talk to Billy Hollis about his latest work around understanding the return on investment that exists with user interface design. Billy talks about a spreadsheet he's been using in presentations to actually look at the cost associated with bad UI designs, that require more keystrokes, more searching, more time and more frustration. Great UX design leads to users that work faster, consume less resources for each task and a happier work environment. Good UX is worth it!
Cake is shipping! Carl and Richard talk to Mattias Karlsson about Cake, aka C# Make. First on the show in 2016, Cake has been through a lot - all the twists and turns of .NET Core, becoming a cross-platform product - it's not easy to be a good build system! But things are stable now and version 1 is released. Mattias talks about how Cake fits into your build pipeline, working with many other components as needed. The conversation also turns to extensibility and the awesome community that has grown around it - have a slice!
The pandemic is sending a lot of work to the cloud - are you ready to move? Carl and Richard talk to Mike Richter about his work helping companies move .NET applications into the cloud. Mike starts out with the hard truth, that moving your virtual machines into the cloud can get expensive. Better to take advantage of the Azure platform, starting with AppService. There's a lot you can do with existing software, and even more if you're willing to recompile. Check it out!
Can a development environment be online? Carl and Richard talk to Anthony van der Hoorn about GitHub Codespaces - the consolidation of a number of online development solutions from Microsoft including Visual Studio Online. Anthony talks about unifying the online dev environment for Visual Studio and Visual Studio Code - recognizing that the two tools are very different! And there is the option to explore code directly in the browser as well. You have more choices than ever for writing code!
What happens when an open-source experiment becomes software people care about? Carl and Richard talk to Jamie Rees about his experiences creating Ombi - an open-source project that helps people managing Plex servers to handle requests from friends and family for more content. Jamie talks about creating Ombi as an experiment with NancyFX that soon evolved into something lots of folks needed and wanted. The conversation dives into the challenges of managing a popular open-source project, both from a technical, personal, and professional perspective.
Build better distributed apps with Dapr! Carl and Richard talk to Haishi Bai about his work on Dapr, the open-source framework for building microservices with an event-driven, portable runtime. Haishi talks about the challenges of building modern distributed apps, with elements running in the cloud, on PCs, mobile, and IoT devices. There's also a variety of languages, platforms, and patterns as well. Dapr sits in the middle, abstracting away specific services so that you can keep your app running where ever it needs to be. Check it out!
What do you do when COVID-19 cancels your internship? Write an app! Carl and Richard talk to Theodora Tataru about her experience creating an application using Xamarin to help with tracker her college grades. Theodora talks about learning the tools, the libraries, and the various techniques to making a Xamarin app - including asking for help! College Diary is just starting to arrive in the app stores - and Theodora is starting her career as a developer!
It's Show 1700! For a bit of fun, Carl and Richard invited the six most frequent guests on .NET Rocks over the past eighteen years - Michele Bustamante, Rocky Lhotka, Billy Hollis, Kathleen Dollard, Tim Huckaby, and Phil Haack. The conversation digs into memorable moments on the show for each of the guests, plus lots of commentary about making shows, the state of the industry, and favorite funny (if maybe a bit off-color) story. From the first show in August of 2002 to now... thanks for being with us for eighteen years. We are grateful.
Got Silverlight apps? Carl and Richard talk to Giovanni Albani about the OpenSilver project - building an open-source version of Silverlight that runs without a plugin, using WebAssembly. Giovanni talks about companies he has communicate with that have Silverlight apps with hundreds of thousands of lines of code - not a simple thing to rewrite. The goal of OpenSilver is to let you migrate those applications.
What's coming in C# 9? Carl and Richard talk to the Mads Torgersen, the leader of the C# team, about the rapidly approaching C# 9. Mads explains that with .NET 5 coming in the fall, he felt there should be a new version of C# as well - so in less than a year since C# 8, they're going to have another version! That being said, the feature set of C# 9 is not as aggressive as it was in C# 8, with a focus on making immutable coding easier. And the whole development process is being done in public, on GitHub. So if you want to check out the bits, go for it!
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!
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!
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!
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!
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!
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 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!
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 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 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!
.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!
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!
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!
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'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!
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.
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!
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!
Build your web site in F#! While in London at the NDC, Carl and Richard talked to Anthony Brown about the SAFE Stack - a complete set of tooling for building back-end and front-end parts of your website in F#! Anthony talks about the various pieces needed to work together, how debugging works, and his preferred tooling, including VSCode as the editor and some great plug-ins that make F# coding easy!
What's up with Blazor? While at NDC in London, Carl and Richard chatted with Steve Sanderson and Daniel Roth about the latest efforts around running C# in the browser with Web Assembly. Since its first demo back in 2017 by Steve, Blazor has grown up a lot - part of ASP.NET Core but still nominally an experimental project, parts of Blazor are now appearing in the preview editions of .NET Core 3 as Razor Components. 2019 looks to be a big year for Blazor!
How do you migrate your .NET application to current standards? Carl and Richard talk to Rocky Lhotka about his approach to migrating existing .NET applications to .NET Standard. Rocky explains that many folks ask him about moving to .NET Core, but getting to .NET Standard is an easier move (but likely not easy) and offers more options in the long run, including .NET Core. The process starts with getting your .NET application upgraded to at least .NET 4.6.1, but it goes on from there - many organizations have a huge portfolio of older .NET applications - Rocky offers a plan to modernize!
Should developers care about search engine optimization (SEO)? Chris Love says yes! Carl and Richard talk with Chris about how SEO impacts consumer-facing websites and what developers can do to include SEO in their development process. The good news is, many of the things we do routinely in web development help with SEO, including mobile-first development, using HTTPS and focusing on performance. But there's more to be done, and Chris digs into important bits - check out the tools in the show notes for more ideas on how to make your website more SEO friendly!
User Experience Design is on the rise! Carl and Richard talk to Billy Hollis about his latest thoughts and efforts around getting developers to design UX as part of their development process. The conversation dives into the change of thinking it takes to really understand how users work with your software and the interfaces change as you think about what someone needs to see and when. Billy also brings up the advantage of great UX - happier users, more users and more profitability. Software is also cheaper to maintain and educate on as well! Whether its mobile, web or desktop, you need great UX!
How do you get into test automation? Carl and Richard talk to Arnon Axelrod about his new book on Test Automation and the concept of the Test Automation Maturity Model - the steps you take along the way to getting testing to be a key part of making quality software. Arnon digs into building the right kinds of tests, what tools help you move in that direction, and where skills need to be grown to make better tests and automate them in a way that they are part of every build, whether you ship the software at that time or not. Test automation is not just for SaaS apps - everyone can benefit!
How do you make .NET Core go even faster? System.Memory! While at the Update Conference in Prague, Carl and Richard sat down with .NET Core team member Adam Sitnik to talk about his work on Span of T and System.Memory. Adam talks about .NET Core 2.1 and C# 7.2 giving access to unmanaged heap and stack memory. Used right, you can get huge performance boosts and decreased memory footprints for certain classes of work - at the risk of a stack overflow! Great conversation about when and where you should take advantage of these new features!
What does it mean to be cloud native? Carl and Richard talk to Vishwas Lele of Applied Information Sciences about his on-going evolution to be a cloud-native, and what means in 2019. Vishwas talks about the Cloud Native Computing Foundation, an organization independent of the major cloud vendors that helps with identifying and managing tools that make cloud native applications work! Vishwas digs into a variety of tools, starting with Kubernetes and with many more tools coming! The cloud is only getting more amazing!
How do you debug? Carl and Richard talk to Omer Raviv about OzCode Debugging, including its ability to do 'time travel' or 'reverse' debugging - rather than stepping through code forward line-by-line, you can go any direction you want with any rules that you need. Omer talks about the years of work in OzCode and the array of features including understanding what your LINQ queries are doing in detail, writing conditional breakpoints and more.
The .NET Foundation is changing! Carl and Richard talk to Jon Galloway and Beth Massi about the changes in the .NET Foundation and what it means to the average .NET developer. The first announcement is that the .NET Foundation is moving to an open membership model - if you have made a contribution to .NET in any way, be it code, documentation or other, you can apply for membership and expect to be accepted. Next up, the expansion of the .NET Foundation board to seven directors and open elections for those board seats - any .NET Foundation member can be a director! Nominations are happening in January 2019, so get on board today!
How do you build a mobile app in 2018? Or should you? Richard moderates a panel from DevReach in Bulgaria with Sam Basu, Jen Looper and Jo Franchetti about their experiences with different tools building mobile apps. The conversation ranges over Xamarin, Cordova, NativeScript and good ol' fashion mobile web. Is the Progressive Web App good enough now to skip going to the app store? Or do you want your PWA to appear in the app store? How awful are app stores? Great thoughts around testing, accessibility and more!
Windows represents the single largest Git source control library in the world at 300GB - but what does it take to work on it? Carl and Richard talk to Ed Thomson and Jill Campbell about how Azure DevOps (formerly known as VSTS) functions under the load of 33,000 people working on the Windows project with 11 million work items. There are many things in Azure DevOps that can cope with that scale, but some aspects don't make sense to add directly, like moving millions of work items. For that, the team has built extensions available in the Visual Studio marketplace - check them out, maybe they can help you!
What's your dependency injection solution? Carl and Richard talk to Steven van Deursen about his work building SimpleInjector and why there seem to be so many different dependency solution options out there. Steven talks about how he came to build SimpleInjector and what makes different DI solutions valuable - including when the .NET Core team tried to build an abstraction over dependency injection that resulted in an anti-pattern! Dependency injection helps you code in a maintainable way, but the tooling you use affects everything. It takes time to make the right fit for you application.
You need more actors in your life! Carl and Richard talk to Aaron Stannard about the latest around Akka.NET, an open source actor model framework that has been evolving and growing for a number of years. Aaron talks about how his company Petabridge is providing professional services around Akka.NET including some custom tooling like a CLI tool called CMD. The conversation also dives into utilizing actors outside of just the server - actors make sense in mobile devices and IoT to name two! It's a different way to think, but actors can help you work concurrently and asynchronously - and who doesn't want to do that?
Looking for some build automation options? Carl and Richard talk to Matthias Koch about his open source project called Nuke - as in Nu-Make. Matthias discusses building a domain-specific language in C# that focuses on building software using fluent syntax, but looking beyond those options for more ways to work with third-party software and not getting too tangled in the details. This leads to an entire add-on model for Nuke that lets you encapsulate functionality and complexity. Check it out!
How do you build out your cloud infrastructure? Carl and Richard talk to Luke Hoban about Pulumi, a start-up making open source software that helps you take Infrastructure-as-Code to the next level - not just simple scripts, but real programming languages. Luke talks about getting away from the cut-and-paste effects of Infrastructure-as-Code into building classes with enough sophistication that you're not creating technical debt each time you build a new cloud resource. With support for multiple clouds and multiple programming languages, this looks to be the next essential cloud development tool!
Web performance is still important - what are you doing to keep your sites fast? Carl and Richard talk to Benjamin Howarth about his current approach to web site performance - with a focus on dealing with older smartphones and lower bandwidth. The conversation runs through a huge gamut of tools that help you understand what your customer experiences when accessing your website, and where to focus to make improvements. Not everyone has 4G connections and top-of-the-line phones - be kind to your users!
Functions are ephemeral and stateless - right? What if they weren't? Carl and Richard talk to Maxime Rouiller about durable functions in Azure. Maxime dives into the patterns that durable functions provide, starting with the chaining pattern, where you can declare a series (or chain) of function calls that only start when the previous function completes. And then onto the fan-out pattern that allows for an orchestrator to launch any number of simultaneous functions and then collect their results in whatever order they complete. There's more choices and a ton of possibilities in durable functions!
Is .NET ready for the Internet of Things? Carl and Richard talk to Bryan Costanich about the current state of IoT and how his startup Wilderness Labs is building next-generation hardware that runs .NET! Bryan talks about how microcontrollers have gotten much more powerful today, but the programming stacks are still back in the 80s. The expectations of customers today is cloud integration, auto-updating and mobile apps - which is expensive and time-consuming to write in C++! Enter Meadow, programmable with .NET Standard 2. Join the Kickstarter to get the first release of hardware!
Ready for some functional thinking? While at NDC in Sydney, Carl and Richard chatted with Daniel Chambers about his experiences in functional programming, starting with F# and moving to Haskell. Daniel talks about how F# serves as the gateway drug for functional programming, living within Visual Studio and still interoperating nicely with the object-oriented world. But sometimes you want pure functional, and Haskell can help you - communicating with it via web service models, you write purely functional, immutable code. The tooling is a bit different, but the benefits are significant!
Start programming quantum today! While at NDC in Sydney, Carl and Richard talked with John Azariah about Q# and the Quantum Development Kit that he has helped create. The conversation starts out with a refresher on quantum computing in general, including exploring a number of the myths and fallacies - John brings up the really important problems that quantum can tackle, including (no kidding!) world hunger and climate change. John dives into what Q# is all about, being able to abstract away from the quantum hardware and various emulators so that you can explore quantum functions. You may not have the hardware today, but some day you will!
How do you read other people's code? While at NDC Sydney, Carl and Richard talked to Patricia Aas about the fine art of studying code you haven't written - and even more challenging, understanding it! Code doesn't read like a novel, there really is no beginning or end, it's always an exploration. The conversation also turns to being respectful of existing code, recognizing that it is as good as it could be at the time and that there are always ways to make it better. And when you're writing code, the challenge is to write it so that it can be read and understood by others!
Can you build a neural net from scratch? While at NDC in Sydney, Carl and Richard talked to Joe Albahari about using LINQPad to create neural nets from scratch. LINQPad is an interactive development environment for .NET - originally focused on helping you build LINQ expressions. But as Joe explains, it can be used for all sorts of interactive coding experiences - including learning to build neural networks. Joe talks through the fundamentals of neural nets and what it's like to build neural nets yourself. Even if you move on to more advanced machine learning tooling, learning the fundamentals are useful!
SignalR is updated! Carl and Richard talk to Microsoft Cloud Developer Advocate Anthony Chu about the latest updates to SignalR - including a version of SignalR for .NET Core! Anthony talks about how SignalR has evolved since the first versions in 2011, today there is still the Standard Framework edition as well as the new .NET Core edition. And then there's also the Azure backend! You can run the back end in Azure with a free tier, and there's a paid tier as the scale gets larger. Anthony also dives into how Azure Functions can play a role. Socketed connections live on!
How do you test a single page application? Carl and Richard talk to Dan Wahlin about cypress.io, Dan's favorite new open source library for testing anything in the browser, including SPAs like Angular, React and Vue. The conversation dives into the various challenges around testing for web apps, trying to get beyond unit testing and into more functional testing that will let you know if you broke the UI. Dan talks about taking over existing projects that have chunks of code that everyone fears - and how testing helps mitigate that fear. As usual with Dan, he also compares and contrasts various web stacks - lots of great links in the show notes too!
Time to rub a little DevOps on it! Carl and Richard talk to Donovan Brown about the state of DevOps at Microsoft - including some important changes! The conversation starts out talking about the latest tooling making it easier than ever to get a great automated pipeline of continuous delivery. But that's not enough, there's a cultural shift that has to happen also. Donovan talks about how IT folks can resist the changes that come with rapid deployment, and Richard argues back about how IT roles struggle - the solution is to create common goals around value to the customer. Meantime, there's big news at Microsoft - Visual Studio Team Services is becoming Azure DevOps, and opening the door to a more diverse way to rub more DevOps on everything you do!
What's an Intelligent Edge? Carl and Richard talk to Microsoft EVP and CTO Kevin Scott about his work in software with Google, LinkedIn and Microsoft - and what he focuses on today. Kevin talks about the resurgence of interest in .NET and C#, and the expansion of .NET across all sorts of development areas including Internet of Things. This leads to a conversation around Intelligent Edge, recognizing that there is enough compute power in even the smallest of devices that they can do analysis of data, not just haul it up to the cloud. AI and ML tech is key here - and there's lots to explore!
How do you protect the source code you ship in your applications? Carl and Richard talk to Gabriel Torok, who has led PreEmptive Software for years and has provided code obsfuscation for .NET since the very beginning - for free! Today it's not enough to conceal your code, as Gabe says, it's about tamper-proofing. Not just to keep your code from being stolen, but to stop hackers from stealing data and exploiting your applications. With GDPR and other regulations, your responsibilities to protect your applications are growing - so check it out!
Migrating .NET applications to .NET Core? The Windows Compatibility Pack can help! Carl and Richard talk to Immo Landwerth about the Windows Compatibility Pack, which is a NuGet package of NuGet packages to fill in over 20,000 APIs that aren't part of .NET Core. The goal, as Immo explains, is to make it easier for developers to deal with migration, by having more parts of the framework included. But you likely don't need them all, so breaking them down into separate packages makes them easy to remove also!
How should developers get started with Azure? Carl and Richard talk to Adam Cogan about his nine knights of Azure - in order, a set of services in Azure that developers should start with. Right off the bat, Adam suggests staying clear of the fancy cloud techs like containers and serverless. Start simple with Azure Web Apps, then start working on continuous integration and deployment. There are a ton of moving parts in Azure, and Adam has a great plan for getting your application and your skills gradually up to speed so that you can take them all on!
Xamarin keeps evolving - are you using the latest? Carl and Richard talk to James Montemagno about his on-going work making life easier for Xamarin developers. The conversation starts out referencing a comment from a listener about the code-compile-deploy time and what it takes to get going faster. James discusses the work Xamarin has done working with the different emulators out there to make things go faster and work in more configurations. And then it's on to Xamarin Essentials - combining all your favorite Xamarin plugins into one easy-to-install-and-manage package!
How are applications being built for Hololens? While on the Modern Web Tour in Munich, Richard chatted with Jimmy Engstrom about his work building software for Hololens. The conversation starts out with the frustration over the lack of new hardware on the Hololens front - but with hope for something new soon! Jimmy runs down a variety of different programming methods for Hololens, the most popular of which is Unity - and not just for writing games!
Back at the beginning of WPF, before Silverlight, there was MVVM Light. While on the Modern Web Tour in Zurich, Richard sat down with Laurent Bugnion to talk about his work creating the open source toolkit that helped developers build cross-platform applications using the Model View View-Model pattern. Laurent's story crosses much of the story of XAML itself, from WPF to Silverlight to Windows Phone and Xamarin Forms!
So many ways to build mobile apps - what works best for you? Carl and Richard talk to Matt Netkow about the past, present and future of PhoneGap and how the Progressive Web App is playing in the mobile dev world. Matt talks about the many JavaScript-based solutions for mobile cross-platform development including PhoneGap, Cordova, NativeScript and Ionic. But with Progressive Web Apps being supported by browsers on mobile devices, could you just be writing native Javascript for your web app? Lots of good discussion!
It's 2018, do you know where your C++ is? Carl and Richard talk to Kate Gregory about the resurgence she sees in C++ - but why? Kate talks about a number of factors, including the fact that C++ itself has evolved, the latest standard is from 2017 and there are plans for a 2020 edition! Anywhere that performance and resources are at a premium, C++ is there - you see it in embedded systems, all kinds of drivers and production code that cares how fast things go. There are lots of new developers on lots of new projects in the C++ world, check it out!
Time for a chat with the leader of C#! Carl and Richard talk to Mads Torgersen about where C# has been and where it's going. Mads discusses some of the ideas being explored for what will become C# 8, including the on-going experiments with nullable reference types. The conversation dives into how language features are developed, the challenge of dealing with a huge diversity of developers in C# of varying skill levels and community engagement. Mads loves his role, and C# is better for it!
Serverless technology can extend your applications! Carl and Richard talk to Glenn Block about his work at Auth0 and building out WebHooks. Glenn talks about taking WebHooks to the next level with Extend, providing a SaaS offering for extensibility into other SaaS applications. This leads to a conversation about the architecture of extensibility in the cloud - rather than building a ton of features, let your customers extend your software the way they want!
Want to extend Visual Studio? Carl and Richard talk to Mads Kristensen about what its like to build Visual Studio extensions - and how he's now responsible for helping others build extensions too! Mads is the person behind Web Essentials, which used to be a big stand-alone download. Today it's a bunch of Visual Studio extensions. Today Mads is a program manager for Visual Studio extensions, and wants to help YOU be successful at building them too!
.NET Core in Action! Carl and Richard talk to Dustin Metzgar about his new Manning book, .NET Core in Action. Dustin talks about the challenge of writing faster than the .NET team can ship code - how do you get a book done? The conversation also digs into effective strategies for working with .NET Core, the kind of tooling you care about, approaches to debugging, internationalization and more!
Put machine learning into your .NET app! Carl and Richard talk to John Alexander about ML.NET - a set of libraries that Microsoft has been using internally for years, now available for you as a NuGet package that you can add to your application pretty painlessly. The conversation dives into what sorts of machine learning tasks make sense for ML.NET and your application, and there are a ton. From sentiment analysis to pricing prediction, machine learning has a ton of possibilities. ML.NET provides a .NET friendly layer over top of a number of machine learning technologies!
The .NET Framework continues to evolve! Carl and Richard talk to Kathleen Dollard about her work at Microsoft - helping to provide tooling and new features for maintaining existing applications and creating new ones. Kathleen is also responsible for Visual Basic .NET, and talks about how it's being maintained based on the needs of VB.NET developers - stability is a focus! The upcoming Core 3 offers some interesting opportunities for existing applications to get new features, and Kathleen talks about how the team will integrate the new features. The framework continues to evolve!
Everything fails eventually - how do you recover? Carl and Richard talk to Barry O'Reilly about building anti-fragile systems. Anti-fragility is the philosophy of accepting that things can break and you need to be able to detect and recover from that failure, whatever form it might take. Barry talks about the four aspects of anti-fragility: redundancy, diversity, modularity and loose-coupling. They're all common terms, but understanding how to do them well within your system is a challenge. How reliable do you need to be? What's an acceptable level of failure? This is what modern software systems are all about!
Microsoft acquires GitHub! What does this mean? Carl and Richard talk to Phil Haack about what's going to change and what isn't - starting with, at least for the foreseeable future, Phil is not a Microsoft employee! GitHub is going to be a wholly owned subsidiary of Microsoft, operated independently. But having Microsoft resources available does open some interesting doors - Phil talks about the vast amount of resources that Microsoft has to move quickly on cool features and projects around the open source world!
Where has Uno been all your life? Carl and Richard talk to Francois Tanguay and Jerome Laban about Uno - the open source cross-platform UX library based on the Microsoft Universal Windows Platform (UWP) - the other flavor of XAML! Francois and Jerome talk about using various versions of Uno the past four years to build cross-platform applications for Windows, Android and iOS - more than 200 of them! Now they have implemented a web assembly version as an experiment and are open sourcing the framework to broaden the community and explore more UX ideas - check it out!
C# is not done - there's more to come! Carl and Richard talk to Mark Michaelis about his work on Essential C# 7 which digs into the new bits in the 7.x version of C# - which is cool, but so is the conversation around what happened at the Build event and how that is reflected in C#. Mark talks about the new language features in C#, even going into some things that should appear in version 8 to deal with modern programming problems. And then there's Core 3 - what will it mean to have WPF and WinForms? Could they be cross-platform? Should they be? Lots of good thinking!
Azure is good - but tooling makes it great! While at Build in Seattle, Carl and Richard talked to Paul Yuknewicz and Andrew Hall about the latest tools available in Visual Studio for developers wanting to get the most out of Azure. The conversation starts out with a response to a listener about debugging services in Azure - the challenge of following an execution path through your software and the various service offerings of Azure that your application might depend on to understand where problems lie. Then a dive into the new bits - new container support, tooling around Kubernetes and more!
More news from Build - the release of Visual Studio for the Mac 7.5! Carl and Richard talk to Mikayla Hutchinson about the latest features coming for the former Xamarin product. The biggest news is support for Razor, JavaScript and TypeScript intellisense, which sounds simple, but involves a ton of changes and makes VS for Mac more than just that mobile development tool. There's plenty of improvements in the mobile dev space too, and the first steps to integrating with VSTS!
Desktop installation needs to get better! While at Build in Seattle, Carl and Richard talked to Andrew Clinick about MSIX, the next generation installation technology from the Windows team. MSIX is open source and available at GitHub, and works to make your desktop application installation experience a bit less painful. Andrew discusses the various approaches that Microsoft has taken over the years around installation and some of the unintended consequences that have come along - all that learning has been merged into MSIX to make desktop installation better. Check it out!
MFractor grows up! Carl and Richard talk to Matthew Robbins about the progress he's made over the past 18 months (since his last show) on MFractor - now an extension for Visual Studio for the Mac to make building mobile applications with Xamarin easier. Matt talks about improving the mobile development cycle - the time it takes from writing code on your PC to it running on your smartphone, and recognizing that it's not just about compile and transfer times. It's also image sizing and copying, catching errors early and more - things that can be done while writing code!
Fresh from Build (actually recorded before Build) - a new version of .NET Core! Carl and Richard talk to Scott Hunter about the announcement of .NET Core 3. Scott leads off with a conversation around .NET Core 2.1, now a release candidate at Build. And then the big news, the next version of Core bringing love to the desktop side, at least for Windows. Versions of WinForms and WPF run against Core. It's a separate package because it's not cross-platform, but it certainly brings new Windows desktop development to Core! Check out the build.microsoft.com site for video on Core 3!
Do constraints liberate? Carl and Richard talk to Mark Seemann about the very constraints that developers often argue against - pointing out how those constraints can actually make us more productive. Mark talks about memory management, such as garbage collection in .NET, while a constraint (you can't do what you want with memory) actually liberates you from thinking about memory. The same with static typing - decide on a type once, and stop worrying about it. The question is, are you surrounding yourself with the constraints that liberate you?
Blazor is getting some buzz, but is it really useful? Carl and Richard talk to Rocky Lhotka about his thoughts around how Blazor uses WebAssembly (WASM) to let C# run on the browser - and what that means for client-side development, both web-based and regular desktop client. Rocky talks about how WASM is an equal-opportunity feature for all sorts of languages, and covering the four big browsers: Chrome, Edge, Firefox and Safari. Could the future of enterprise apps be all in the browser? Between Progressive Web Apps and WASM, this might be the way forward!
What does it mean to have clean architecture? Carl and Richard talk to Steve Smith about his work on an e-book and template for clean architecture using ASP.NET Core. Steve describes the new tools that make life easier for following clean architectural principals as well as the separation of concerns, between business logic, infrastructure, and clients. The conversation also digs into Domain Driven Design, Test Driven Development and the ever popular Pain Driven Development. Great, common-sense thinking from Steve Smith!
What's new with Xamarin? Carl and Richard talk to Laurent Bugnion, now a Microsoft Cloud Developer Advocate, about his latest experiences with the cross-platform mobile development tool. It's been two years since Xamarin joined Microsoft, and a lot has happened - and far more to come. Laurent talks about both .NET and XAML Standards, and the challenges of reconciling development approaches for an array of mobile devices, the PC and the web. The conversation also dives into the truth that there is no one right way to build cross-platform mobile applications. New approaches and tools continue to be developed!
Test Driven Development (TDD), good idea in theory, but in practice? Carl and Richard talk to John Callaway and Clayton Hunt about their success with TDD. At it's simplest level, TDD is about writing tests first, before coding. In practice, everything is more complicated than that. Writing testable code isn't as simple as it seems, and refactoring existing code to become testable can cause it to break - which is why you wanted tests in the first place. John and Clayton talk through their experiences getting things right and exploring the advantages that TDD brings - more reliable software that sustains for longer and can continue to evolve!
How do you do desktop deployment? Carl and Richard talk to Paul Betts about the open source project called Squirrel, which is all about making desktop deployment less painful. As Paul says, like ClickOnce, only doesn't suck! This leads to a discussion about the various installation tools out there and what they focus on. Paul talks about what makes Squirrel different - providing the tooling to make it easier for a developer to provide unobtrusive updating of applications - as in, not when they start up!
How productive are you with Visual Studio? Carl and Richard chat with Kasey Uhlenhuth about her work making Visual Studio even more productive for developers. The conversation focuses on the huge array of features that Visual Studio has, to support all sorts of different styles of programming. Kasey talks about balancing the needs of developers - some want lots of support and hints from Visual Studio, and some want it to just get out of the way while they program. There are a ton of options, you just have to discover them. Kasey points out a productivity guide that she has helped create to help you take advantage of the power of Visual Studio - check out the link in the show notes!
Programming for the Cloud! Carl and Richard talk to Vishwas Lele about the Microsoft Business Application Platform, which organizes the huge suite of tools available in Azure along with PowerApps and PowerBI to create a great place to build applications that run on Windows, iOS and Android. Vishwas talks about moving up into a higher layer of coding using Logic Apps and Azure Flow to pull together the various sources of data that already exist in your organization, including Office, SharePoint, Sales Force and so on - you already have the data, how do you surface it in an app that your users like to use?
How do you do concurrency? Carl and Richard talk to Riccardo Terrell about his new book on concurrency in .NET. More than just ASync and AWait, there are still a ton of concurrency options available in .NET, you just need to know when and where to apply them. The conversation ranges over a bunch of different technologies, including a lot of discussion on functional programming as a whole, since it lends itself to concurrency far better. But you don't have to use F# to write functional code! Riccardo talks through a number of strategies for deciding when concurrency makes sense and how to do it safely.
Michele is back and surviving microservices! Carl and Richard talk to Michele Bustamante about her work with microservices and the challenges that her customers have. Starting with the normal problems innate to any re-architecting exercise - what is the benefit to the customer? You can't make microservices because they're fun, they have to solve a particular problem - and typically it's the problem of over-coupling within a group of services. Update one and you derail the others. Picking what service to separate is a challenge - and how do you do it! Great conversation about containers, DevOps and management strategies!
What is coming up for .NET Core? Carl and Richard talk to Scott Hunter, who leads all of .NET at Microsoft, about the road ahead for .NET Core. But first, a quick look back at where .NET has come from, including a discussion around performance and the impact of the Meltdown and Spectre CPU security flaws impacting performance across the board. Then into a huge raft of features coming up in the next year in .NET Core, including compilation and performance enhancements, as well as some old favorites like lazy loading in EF Core and SignalR!
Modern software development is complex, how do you teach it to beginners? While at NDC in London, Carl and Richard sat down with Maria Naggaga to talk about her approaches to teaching software development, both to children and adults, from the very beginning. Maria talks about using more approachable cause-and-effect type tools at the beginning to learn about procedural programming, and how the latest bits actually allow you to take that code forward into more advanced tools. Interactive documentation and minimal installation requirements are also important - check out Try .NET!
C# continues to evolve - there's more to learn! While at NDC in London, Carl and Richard talk to Jon Skeet and Bill Wagner about their on-going work on C#. For Bill, he's now part of the docs team helping people understand C#, and for Jon, it's his contributions via GitHub to ideas and features for C#. Both write great books and talk about the challenge of how C# is evolving as open source and in public. What features matter, and where does it all lead to? Will C# ever be finished, or is this an endless process? Is it getting easier to develop with C# or more complex? Great thoughts from two of the nicest thinkers on C#!
What if you could program in C# in your browser? Carl and Richard talk to Daniel Roth and Steve Sanderson about the evolution of Blazor - Steve Sanderson's amazing project using WebAssembly to put .NET In the browser. The big news is that Blazor is moving from a Sanderson research project into the ASP.NET GitHub repository - the team is going to work on it! Still experimental, the Microsoft team is keen to see what all of us will do with Blazor. If you want a C# experience end-to-end in web development, you need to check it out!
Still exploring options for cross-platform mobile development? Carl and Richard talk to Tim Sneath and Adam Barth about Google's Flutter - using the Dart language to build mobile applications that compile to iOS and Android. Tim has only recently joined Google but has dived head-first into this new approach to mobile development. Adam as one of the originators of the project talks about his key focus - the architecture that allows you to build for both platforms from one code base, and a rapid code-compile-deploy-edit cycle called hot-reload that makes iterating on your mobile app development fun! With a choice of editors (including VSCode), Flutter might just be the approach you'll enjoy to cross-platform mobile development!
A new year, and new features for ASP.NET! Carl and Richard kick off the new year by talking to Jeff Fritz about his on-going work on ASP.NET - both the framework and core editions. The conversation naturally turns to web forms, the big exclusion from the core edition, but new features continue to be released in .NET Framework 4.7.1. Jeff talks about what modern development looks like for ASP.NET web forms, and the power of continued support for existing web applications, while providing approaches for adding new capabilities like mobile development and more. It's going to be an exciting 2018!
Mobile development continues to evolve in the Xamarin world! Carl and Richard talk to James Montemagno about the latest features coming out of the Xamarin team to make developing cross-platform native applications faster and easier. James digs into the new Xamarin Live tools that show your Xamarin app on your device with edit-and-continue capabilities. As you modify your Xamarin Forms code, the changes are immediately reflected in the device. This shortens the code-deploy-debug cycle so you can get more done in less time. The conversation also turns to XAML Standard and the challenges around bringing UWP, WPF and Xamarin Forms teams together to a common specification. James wraps up with a discussion on .NET embedding, letting you put your favorite .NET code into libraries that can be consumed by Objective-C, Swift and Java codebases!
Last show before Christmas - time for some rants! Carl and Richard talk to Billy Hollis about his frustrations around UX design. And Billy starts out talking about the complete lack of UX design he finds in many applications. The conversation digs into the differences between visual design and interactive design, where the interactive part is harder, but ultimately more valuable. Billy also discusses the costs around poor design and ultimately, poor quality software. Cloud and internet have made it easy to update software, but pushing bad software on your customers is never a good idea. Can you see the impact? Lots of great thinking as usual from Billy!
The new version of DotVMM is imminent! Carl and Richard talk to Tomáš Herceg about his on-going effort to build a great framework for creating web applications and migration paths away from web forms and other web pages bound to the .NET Framework over to .NET Core. Tomáš discusses the new features coming in the latest version and his solutions to various problems around building web pages where the JavaScript is taken care of. And everything is open source - you have the code, modify it as you will! There are commercial versions available as well if you want to support this great set of tools!
Developing in Salesforce? What's that about? Carl and Richard talk to Jay Janarthanan about the kinds of software being built today against the Force infrastructure that runs the Salesforce CRM SaaS product - and so much more! Jay talks about why you would want to do extensions to Salesforce, and how in the past few years enterprises have been building entire applications with the Force tools and infrastructure. The language of Force is Apex, and Jay is building an open source project called ApexSharp to let C# programmers use their favorite tools to build Salesforce applications. Check it out!
What does it take to implement a DevOps practice at Microsoft? While at Connect in New York, Carl and Richard talked to Lori Lamkin about the efforts of the VSTS team to deliver more value to customers faster. Lori talks about changing the tempo of deployment for TFS from 24 months to three weeks and the re-organization of the teams so that developers are responsible for features from conception to operations. The role of operations also evolves to one that focuses on monitoring, rather than deployment - it's a lot of change, but worth it!
Show 1500! What better to celebrate another aught-aught milestone of .NET Rocks than a look back. Richard has been working on writing a book on the History of .NET (maybe Christmas 2018?) but to celebrate a milestone show, he dives into the topic with Carl. .NET has had a lot of twists and turns through the years and .NET Rocks has been there the whole time - throughout the conversation, there are opportunities to point to specific shows that represent part of that history. Here's to another 1500 show and 15 years of .NET!
Ready for some AI tooling? While at Connect in New York, Carl and Richard sat down with Paige Bailey and Seth Juarez to talk about the newly announced Visual Studio Tools for AI. The conversation starts out talking about what we really mean by Artificial Intelligence, focusing on machine learning and deep learning. There are a variety of tools out there to make building the models of AI easier, and the Visual Studio Tools for AI bring all those tools together into one working environment. Tons of cool links below, check them out!
Where has Visual Studio come from and where is it going? While at Connect in New York, Carl and Richard sat down with Connect owner/organizer Mitra Azizirad to talk about her show and long career at Microsoft. Mitra comes from a technical world but moved into developer marketing - and she's a huge fan of developers! Lots of interesting historical references about Visual Studio and more!
Visual Studio Team Services continues to evolve! While at Connect in New York, Carl and Richard chatted with Brian Harry about the latest set of features coming out of the VSTS team. Brian talks about how Microsoft has been eating its own dog food and using VSTS everywhere, even with the development of Windows. Discussions also dig into the challenges of moving so fast with so many developers, managing testing at speed and more!
Ready to use GitHub beyond your browser? Carl and Richard talk to Phil Haack about his latest work at GitHub, where they are focused on expanding the audience that can rely on GitHub for social coding of all types. The discussion starts out focused on the rewrite of GitHub Desktop to Electron and the impact that has had for maintainability of code, and then moves to the latest work done to support game development in GitHub, specifically for Unity developers. Game development involves large digital assets like 3D models, movies and music - not the usual fodder for a Git repository. But Phil's team has build stuff to make life easier - check it out!
No anti-patterns this time - Steve is talking patterns! Carl and Richard chat with Steve Smith about various development patterns that can help you build software that is more reliable, scalable and robust. While Steve is famous for his anti-pattern calendars, this time around he's discussing a number of excellent patterns that are becoming more prevalent in the .NET development world, including the Builder pattern (which .NET Core relies on), Null Object Pattern, Strategy and Rules Patterns and more! If an hour isn't enough, check out Steve's books and Pluralsight videos!
Ready to experiment with containers? Carl and Richard talk to Kendra Havens about the on-going integration of container technology into Windows, Visual Studio and .NET. Kendra talks about moving existing applications into Docker containers, and how even when the underlying operating system is large (say, Windows), you only need to download it once to use it across any number of container instances. There's great tooling for Docker support in Visual Studio and VS Code, so you can use Docker the way you want to. And Microsoft uses containers extensively internally as well, so the tooling just keeps getting better!
Can everyone benefit from DevOps practices? While at Ignite in Orlando, Carl and Richard sat down with Donovan Brown and Damian Brady to talk about the recently formed League of Extraordinary DevOps Advocates and the effort to get both developers and operations folks taking advantage of Continuous Integration, Continuous Delivery, Instrumentation tooling and more. While the key to a good DevOps practice is the culture and process, having great tools makes everything easier, and today VSTS and TFS offer one-button delivery pipelines. It's never been easier for everyone to get onboard with a DevOps practice!
How does Microsoft make Visual Studio Team Services? With Visual Studio Team Services! While at Ignite in Orlando, Carl and Richard sat down with Dan Hellem and Rogan Ferguson to talk about their work in the VSTS team building and deploying features on a three-week cycle. The discussion dives into the agile practices that the different teams use and how they come together to get new versions out on a regular basis as part of the Software-as-a-Service offering of VSTS. Great conversation about keeping developers productive!
Git for everyone! While at Ignite in Orlando, Carl and Richard talked to Ed Thomson and Dmitry Lyalin about the latest updates to Visual Studio Team Services that includes deep integration with Git - not just GitHub, but Git the repository technology. The conversation digs into the commitment Microsoft has to contributing to open source projects including Git itself - including moving Windows into the world's largest Git repository, a whole 300GB of source code! Git has penetrated deeply into Microsoft, is it the right choice for your projects?
.NET Core 2 is shipped - what comes next? While at Ignite in Orlando, Carl and Richard chatted with Scott Hunter about life after shipping .NET Core 2. The conversation ranges over what the .NET Standard really means, and the fact that there are no immediate plans to declare new standards - there's no need! Scott also talks about XAML Standard and hints at some interesting futures for WinForms and traditional client apps. .NET continues to evolve!
There are so many messaging options in Azure, how do you choose? While at ProgNet in London, Carl and Richard sat down with Clemens Vasters to talk through the strengths and weaknesses of each messaging service. Clemens has been part of every messaging product in Azure, starting with Service Bus more than ten years ago. He discusses how customer needs and increasing demands in messaging resulted in making more specific products like Event Hub and IoT Hub. Azure Event Grid also fits a specific role in the discussion, making it easier for you to create message-driven workflows. Trying to sort out messaging in Azure? Clemens has the answers!
Why should open source developers consider the Microsoft stack? While at ProgNet in London, Carl and Richard sat down with Dylan Beattie to talk about his experiences working with developers that have written lots of code, but not in the Microsoft world. The conversation starts out focused more on the ongoing evolution of the Microsoft Stack with the recent release of Core 2 and the evolving ability to do mobile development. Dylan talks about .NET no longer being about Windows, but rather available to whatever platform you care about: OS/X, Linux, iOS, Android... what matters to you?
Core 2 is out, and with it, Entity Framework Core 2! While at ProgNet in London, Carl and Richard chatted with Julie Lerman about the latest version of Entity Framework Core. Julie talks about what's in, what's out and what's different - and it's a lot. The discussion digs into why you would use EF Core, including cases where you would use it with the regular Framework, not just with .NET Core. The team has taken the opportunity to do things differently, based on learnings from the original Entity Framework, giving EF Core some unique features and a pretty cool future. EF Core has more to come!
How do you diagnose problems in your applications? While at ProgNet in London, Carl and Richard sat down with Jon Skeet to talk through how he does diagnostics and understanding bugs. The conversation starts out with a discussion around a comment that Richard read about writing great Stack Overflow questions by breaking down the problem into the smallest possible reproducible version. Jon talks about humility and diversity as cultural aspects in development teams that leads to better diagnostics and sharing. In the end, it's not the tech, it's the people that solve problems!
Event-driven architecture in Azure! Carl and Richard talk to Dan Rosanova about Azure Event Grid, built to power event-driven and serverless apps in Azure. Dan talks about how Event Grid picks up where WebHooks leave off, providing simpler connectivity between a variety of event streams and routing to different event consumers. The conversation also digs into the broader concepts of event-driven architecture, using queuing and subscription patterns to build loose-coupled, highly scalable and reliable applications. This is architecture perfect for the cloud!
.NET Core 2 is out - are you ready to migrate? Carl and Richard talk to Jeremy Likness about his experiences migrating his own projects over to Core 2 from .NET Framework. The latest version of Core has the vast majority of the base class libraries from the original framework implemented. Jeremy talks about his open source project called Sterling that hails back from the Silverlight days as a NoSQL data store. And it migrated fine! The conversation dives into other aspects beyond being cross platform, including performance benefits and what new technologies are on the horizon that may be Core-only. It's a great time to kick the tires on Core!
Struggling to get started with Universal Windows Platform applications? Carl and Richard talk to Clint Rutkas about the Windows Template Studio (WTS). WTS was first released into the Studio marketplace at Build in 2017 and has been updating every six weeks or so - with lots of community contributions. Clint talks about striking the right balance between generating code automatically that demonstrates best practices and getting in the way of you writing your own code - it's never simple, but when done right, hugely powerful. WTS is an open source project on GitHub, you can contribute to it as well!
New to ASP.NET Core 2 is Razor Pages - how is it different from Razor? Carl and Richard talk to Jess Chadwick about how Razor Pages takes Razor to the next level, getting away from traditional MVC (which is a funny thing to say) and into a more flexible model with a simpler code-behind approach. Jess talks about how this approach often ends up more closely coupled, but in a lot of cases, that's just fine. The different techniques are not mutually exclusive, you can mix-and-match as needed. This leads to a great conversation about state management, server-side rendering and more - web development continues to evolve!
Ready to try on F#? While at NDC Oslo, Carl and Richard chatted with Scott Wlaschin about what C# developers need to know to get started with F#. Scott talks a bit about his own history with development which ties in with the evolution of functional programming which in a way lost out to object-oriented programming back in the 1980s. Not that the two approaches are mutually exclusive, and Scott discusses how objects and functions live happily together in F#. It's a different way of thinking, but can be a very productive way to build applications - check it out!
How do you get to know your customers? While at NDC Oslo, Carl and Richard talked to Diane Zajac-Woodie about empathy mapping, a process for trying to internalize the dimensions of your various customers. Diane talks about considering various dimensions of people, looking at what the see, hear, think, say and do. Empathy mapping is a way to get your team more engaged around what customer needs are, but they're only guesses - you also have to craft experiments to figure out the truth! In the end, the goal is to make the best software you can.
How do you make your applications accessible to everyone? Carl and Richard talk to Elle Waters about her working building applications for the visually and hearing impaired, on all sorts of platforms. The web dominates the discussions since so much can be built there. Elle talks about the array of tools that users have to help them understand a web page through audio, even touch solutions using braille! You can make your applications work well with these tools, but it takes empathy, effort and lots of testing.
How can ETW help you? While at NDC in Oslo, Carl and Richard talked to Dina Goldshtein about her work instrumenting applications. This leads to a conversation about Event Tracing for Windows, which Dina uses primarily to take measurements of different applications running on Windows machines - but you can have your app add to the ETW stream as well. Monitoring, profiling and debugging are all different tasks that can take advantage of the data provided by ETW, it depends on your needs at the time. Lots of discussion on the impact of measuring as well - nothing is free!
Is there more to logging? Yes! While at NDC in Oslo, Carl and Richard talked to Nicholas Blumhardt about his long running logging project called Serilog. Calling back to the earlier .NET Rocks episode on Serilog (2014!), Nicholas talks about how logging is one of those 'bicycle shed' problems - it looks simple on the surface, but the deeper you go, the more you find complexity that needs to be managed well. Don't do it yourself, use a great library like Serilog! The core implementation is simple, but a great abstraction allows you to push those logs wherever you need them, whether that be text files, databases or the huge diversity of existing log tracking.
MS Build is cooler than you think! While at NDC Oslo, Carl and Richard sat down with Daniel Plaisted to talk about the latest version of MS Build. But first, a quick conversation about the situation around the reversion back from project files using JSON rather than the traditional XML-driven MS Build files. The good news is that more of what made the JSON project files great is showing up in the MS Build files! The conversation also digs into building complex pipelines for MS Build and more importantly - how to debug them! Structured logging to the rescue!
It's summer in the northern hemisphere, are you ready to get hacking? Carl and Richard chat with the new executive director of the .NET Foundation, Jon Galloway. The conversation starts out talking about the Foundation itself, why it exists and what it does for the .NET open source community as a whole. The Foundation is where .NET Core, C# and more all live, as well as many awesome third party projects. Then to the Summer Hackfest, where the Foundation is providing support to get developers working on open source projects - if you've got one in mind, check out the links below and make a submission!
Core 2 is coming - are you ready? While at NDC Oslo, Carl and Richard talked to the amazing duo of Damian Edwards and David Fowler about the rapidly approaching release of Core 2. Expectations are huge, but Damian and David are confident that Core 2 will deliver. The conversation dives into the meta side of software development - what didn't make it into Core 2, what had to be pushed to the next version, and what will have to be added at the last minute. Lots of laughs and enthusiasm as the open source reality of .NET is coming true!
The father of C# and TypeScript drops by for a visit! While at Build in Seattle, Carl and Richard talked to the one-and-only Anders Hejlsberg about his work on C# and more recently, TypeScript. Anders in his inevitable style talks through why languages work the way they do, the evolution of both C# and JavaScript, and the role that TypeScript has to play in making web development a better place. Great words from the legend!
How are containers coming along in the Windows world? Carl and Richard talk to Steve Lasker about his work making containers easy to use from within Visual Studio. Most work on containers has been around Linux, but when Windows Server 2016 shipped, Windows containers became real. Should you be using containers in your all-Windows world? Steve talks about the advantages and challenges, it's not all simple, but it is very powerful and worth a look!
After years of waning, .NET is on the rise - is it time for a renaissance? Ian Cooper says yes! The first of the NDC Oslo shows for 2017 starts out focused on a blog post that Ian published in February 2017 calling for a .NET Renaissance, and what it takes for it to come true. The move to open source has helped a lot, as it opens the door to what people really look for in a thriving community - rather than being a product created by Microsoft, it is a set of tools supporting by Microsoft but with direct community involvement. There's a lot going right, it's time for a renaissance!
Ready to get fluent? While at the Build conference in Seattle, Carl and Richard talked to James Clarke about the Fluent Design System. Fluent represents the next generation of Windows UI elements, as part of the continuous updating process that Windows 10 is under going these days. James talks about how you can start to experiment with the latest Fluent bits and provide feedback directly to the team as the features evolve. Microsoft is implementing Fluent against Windows and the Microsoft Store, and you can be part of those experiments too - check it out!
What's up with .NET Standard and the new XAML Standard? While at Build in Seattle, Carl and Richard chatted with Mike Harsh and Joe Stegman about the importance of the new standards and how they will affect .NET development going forward. As Mike and Joe explain, the focus is on making sure that the different versions of .NET (and XAML) that are out there today converge on a common standard. This will make it easier for tool vendors to build tools that work everywhere, and for developers to be able to write code that runs across platforms. It's going to take some time, but standards should make our lives better!
Is Silverlight back? Carl and Richard talk to Steve Sanderson about a demo he did at NDC Oslo that blew some minds. The demo involved using WebAssembly to put a version of the .NET Runtime and C# into the browser. Yes, that's right, Steve found a way to write C# that runs in the browser with NO PLUGIN. It's only an experiment, and there's no XAML to be found, so it's not really Silverlight, but it certainly gets you thinking - what if you could run any language you wanted in the browser? What would your world be like then?
We all have multiple devices, how do we make them all work together well? While at Build in Seattle, Carl and Richard sat down with Vikas Bhatia and Shawn Henry to talk about Project Rome. As Vikas explains, Project Rome is all about cross-device experiences utilizing APIs available on multiple platforms and interacting with Microsoft Graph. The goal is to have work and information follow you between devices - with the user always in control. Check it out!
More analysis from Build - during Build! While at Build in Seattle, Carl and Richard talked to Holger Mueller about his impressions of the show, shortly after the first keynote. Holger runs the gamut, talking about .NET Core, Visual Studio 2017, Azure, DevOps, Containers and more. A lot happened at Build, here's a view from the early point in the event itself!
Want to manage your Azure apps on your smartphone? Carl and Richard talk to Jakub Jedryszek and Michael Flanakin about their work building the Azure Mobile App. Not just a mobile version of the Azure Portal, the app is built with Xamarin Native for iOS and Android, and focuses on using the phone efficiently to let you do what you need to! The discussion dives into the challenges of working on varying form factors and the tools that make things easier. And of course, there are great instrumentation and feedback mechanisms. It's early days for this application yet, so check it out and let them know what you need!
Azure Service Fabric is here - should your application take advantage of it? Carl and Richard talk to James Sturtevant about his experiences moving applications into Azure Service Fabric. Yes, it is possible to "lift and shift" your application into Service Fabric via Guest Executables, but that doesn't mean you'll get much of the benefit that Service Fabric can provide. James talks about picking a feature in your application to peel off into a microservice, perhaps as an Azure Function or other serverless strategy - or even into a container! Instrumentation is a key aspect to understanding what will improve your application, and it takes time - all apps are on a continuum of development!
How do you get better uptime than the cloud? Two clouds! Carl and Richard talk to Vishwas Lele about his experiences building ultra-reliable applications, both on-premises and in the cloud. The discussion digs into the decisions around reliability - it's easy to want it, but will you pay for it? It's important to calculate the cost of downtime, as that helps set the budget for what it takes to stay up. And that leads to a conversation about how you build highly reliable software - it can't just come from the infrastructure, there is code involved as well! And the next question is - how do you make your app work in two different clouds?
What can Azure functions do for you? Carl and Richard talk to Yochay Kiriaty about his work creating Azure Functions as part of the App Service Platform for Azure. Azure Functions get you focused on just building code, there is no virtual machine, no operating system and a minimal hosting environment. But that doesn't mean that they're simple. Yochay talks about the need to architect effectively for Azure Functions - you can get yourself in a corner where Azure Functions can't save you. But if you keep your Azure Functions lean and stateless, this is the most dynamic, fastest scaling cloud service you can imagine!
How do you deploy software? Carl and Richard talk to Robb Schiefer about his experiences using Chef to do application deployment. Chef comes from the open source Linux world, and is free to use with a pay option when you get to certain enterprise features. The Windows support is pretty good, and it works closely with PowerShell and Desired State Configuration to automate deployment of Windows and Microsoft services. Robb digs into the testing component of Chef as well, with tools that allow you to test all sorts of options around your deployments so you can get them as robust as possible. Whether your on-premise, in the cloud, virtualized or containerized, Chef can help!
Azure with no servers? Carl and Richard talk to Jeff Hollan about Azure's Serverless offerings. The idea is to stop worrying about virtual machines and operating systems and focus on the stuff you really need. Jeff talks about Logic Apps, which provide workflow and connectors between your code and a ton of other services, some coming from Azure and many coming from other service providers. Credentials for the services are kept in the Azure Key Vault rather than your code (or in the heads of your users), and there's some great instrumentation to understand what's going on. Is Serverless the future of the Cloud?
Angular or Aurelia? Carl and Richard talk to Brian Noyes about his experience building Single Page Application (SPA) style web sites using Angular and Aurelia. No, not both at the same time, but separately. Angular is all the rage these days, but Brian talks about the confusion around Angular caused by the breaking changes from 1.x to 2.x, the skipping of 3 and now settling on Angular 4. The discussion also digs into convention-over-configuration, Brian identifying Aurelia as a convention-driven framework, which leads to less code, but you have to understand how it wants to work. Lots of links in the show notes for tools and opinion pieces, take a look!
Where is your DevOps at? Carl and Richard talk to Jez Humble and Nicole Forsgren about DORA, that is the DevOps Readiness Assessment. DORA helps you understand where your organization is at in the spectrum of DevOps, from low to medium to high. The conversation digs into what it takes to improve operational capability, focusing on understanding exactly how your organization delivers software so you can improve it. Along the way there are challenges, it is never easy to change an organization, but that's what it takes to actually improve software delivery. The goods news is that DevOps can work in any kind of organization: Big or small, startup or heavily regulated industry, it doesn't matter!
You can make a game in Xamarin Forms? Yes! Carl and Richard talk to Jonathan Peppers about his latest work on NBA Life, a role-playing game for iOS and Android built with Xamarin Forms. Jonathan talks about the process they went through to decide on this particular architecture for the game, having done prototyping with Unity and Xamarin Native. The conversation also digs into the back end using Azure Service Fabric and it's Actor Model support - yes, everything is an actor! Lots of discussion around testing, deployment, crash handling and dealing with app stores. Building mobile games isn't always a pure native experience - you have choices!
C# 7 and Visual Studio 2017 are shipped - now what? Carl and Richard talk to Kathleen Dollard about her experiences working with folks that are trying to dig into the latest version of Microsoft development tools. Kathleen talks about the various approaches she's taken to teaching both C# and effective use of Visual Studio, there are so many little things to know, it's hard to take it all in. The conversation dives deep into understanding async and await so that you actually get real benefit from them - it's not a simple thing to do right!
The whirlwind of DevOps is back! Carl and Richard talk to Donovan Brown about his on-going mission to get everyone into a DevOps practice - in fact, he talks about getting to a place where continuous delivery and monitoring are just the way you make software. Donovan talks about a session he has been giving where he creates four different delivery pipelines in an hour, with different programming languages, platforms, testing and deployment tools. And if he can make four in an hour, there's really no reason anyone can't build one pipeline in an afternoon. The conversation ranges over a spectrum of DevOps topics, including testing and monitoring - it's easier than ever to rub some DevOps on it!
What does it take to build great multi-tenant apps on the cloud? Carl and Richard talk to Joe Audette about his set of open source tools called cloudscribe to make multi-tenant apps easier to implement. The conversation starts out with managing IdentityServer, the great open source library for handling single-sign-on across multiple applications. Cloudscribe helps you manage the sites, users, roles and claims for IdentityServer. But there's more to multi-tenancy than just authentication and authorization, and Joe dives into the other elements of the suite to get your multi-tenant app running right!
MVVMCross has grown up! Carl and Richard chat with Martjin van Dijk about his work on MVVMCross. Past guest Stuart Lodge started MVVMCross way back in 2012 when it was focused on building MVVM apps in Silverlight, but today the focus is on Xamarin. Martjin talks about how MVVMCross works with Xamarin forms to make it easier to build, test and debug mobile apps, bringing inversion of control and dependency injection as part of the library. The conversation also turns to navigation being moved to the viewmodel, rather than the view, so you write less code. MVVMCross can be a key part of your mobile app development strategy!
What can analytics around development do for you? Carl and Richard talk to Steven Borg about his work with Visual Studio Team Services (VSTS), especially around understanding developer productivity. The conversation starts out with a comment around Team Foundation Server and VSTS, the former being the on-premise version of the latter. But why run your own infrastructure when you don't have to? Then Steven dives into different kinds of analysis, looking for the best quality code. Can analysis tell you who should do a code review? Have a listen!
Scripting with C++? Of course! Carl and Richard talk to Jason Turner about ChaiScript, his open source project that simplifies adding C++ as a scripting language to any application, but especially other C++ applications. The conversation turns to how C++ has evolved and some amazing tools available today to help you understand what C++ is doing, right down to the CPU level! Check out the links in the show notes for some of the cool tools that Jason and his associates have built!
Visual Studio on a Mac! Carl and Richard talk to Mikayla Hutchinson who's been with Xamarin since the very beginning, about her work on the preview of Visual Studio for Mac. The product comes from MonoDevelop, which is Xamarin's IDE that runs in Windows, Mac and Linux. Mikayla talks about how Visual Studio for Mac focuses on both the client side of mobile devices and Mac OS as well as the cloud - there are templates included that will generate a basic app for iOS, Android and the back end layer in Azure. It's still in preview, but Visual Studio for Mac looks great!
How do you manage legacy code? Carl and Richard talk to David Bernstein about his book Beyond Legacy Code. The conversation starts out talking about what legacy code is - and David brings up the idea that code is legacy if you don't have confidence in it. Now how do you get confidence? This is where the rewrite behavior comes from: You're naturally more confident in your own code. But is it a good idea? David talks about nine practices that are most effective at getting your application under control and out of legacy!
Ready for another actor framework? Carl and Richard talk to Roger Johansson about his work on proto.actor, and ultra-light-weight, easy to get into actor framework for .NET and Go. The conversation starts out with Akka.NET, the framework that Roger worked on a few years ago, and how it's origins in Java gave it a certain amount of ceremony that Roger thought could be simplified - hence proto.actor! With a focus on speed and simplicity, proto.actor uses libraries like Google's protocol buffers to work with other platforms and libraries well, check it out!
Visual Studio 2017 ships! Carl and Richard talk to Tim Sneath about his role in this version of Studio. Tim talks about speeding installation of Visual Studio by modularizing the various elements so you don't install things you don't need - but it's always easier to add more in! The conversation also digs into the extensibility model that makes it easier to build new features into Studio, and a great marketplace to share and sell them. Studio continues to evolve, the 2017 edition is awesome!
Visual Studio is twenty years old! Carl and Richard chat with Julia Liuson, who has been involved with Visual Studio since its very earliest days in the 90s. Julia talks about how Microsoft decided to build a unified IDE for all its various development products including Visual Basic, C++, FoxPro and their new web development tool, Visual InterDev. But following quickly on from the 1997 edition was .NET and the complete change that it created for Visual Studio. Lots of great stories from someone that has been involved since the beginning - here's to another twenty years of Visual Studio!
What's your strategy for moving to containers? While at NDC London, Carl and Richard chat with Michele Bustamante on how she talks to companies about utilizing container technology effectively. Michele discusses the fact that implementing containers represents more than just a technology investment - it's also a change in culture and process. This means that buy-in for container technology has to start at the top and permeate through the organization. And the benefits are just as comprehensive; it can be a significant part of a DevOps practice within an organization.
What is Conway's Law and how does it apply to your organization? Carl and Richard met up with Mark Seemann in Copenhagen to chat about how organization structure affects the structure of software. That is the essence of Conway's Law, going all the way back to the 1960s, where he talked about how committees designing software end up making software that reflects the structure of the committees themselves. This leads to a broad conversation about how virtually every company today is actually a software company, and that software represents a vital asset to most businesses, but they may not recognize it yet. Getting your organization into shape to build great software can be the difference between success and bankruptcy!
What are the twelve factors that go into a successful cloud architected application? While at NDC in London, Carl and Richard sat down with Ian Cooper to talk through the twelve factors approach to building software. Ian talks about focusing on building software-as-a-service style application, likely in the cloud (and certainly using cloud architectures), with continuous delivery of new features. While agnostic to any particular technology, there are lots of common practices here that make sense when building any kind of application, just doubly so for SaaS-style applications. Have a listen!
Mixed reality is coming! While at NDC in London, Carl and Richard sat down with Jessica Engstrom to talk about her work with virtual reality, augmented reality and mixed reality. And yes, they are all different, with the conversation starting off with definitions of each. Jessica talks about some of the projects she's done using the mapping capabilities of the HoloLens to re-create 3D spaces. There's a new diversity of hardware in the space coming as well, with more vendors making augmented reality solutions and Microsoft opening up the Holographic OS for other vendors to make hardware with. The VR/AR/MR space continues to evolve!
What's the right way to make a Xamarin app? While at NDC in London, Carl and Richard sat down with Gill Cleeren to talk about using the MVVM pattern as part of an overall mobile development stack. As Gill describes, MVVM brings consistency to the plumbing of the mobile app so that you can focus on the important (hard) stuff, getting the UI right, and trying to get as much common code as possible. In the end, the views end up being more device/OS specific, while the model and view-model can be shared. The tooling is complicated, but it is possible to get going fast with mobile development!
The Chuck Norris of C# is back! While at NDC London, Carl and Richard sit down with the indomitable (and always humble) Jon Skeet to talk about what he's been working on in the past year. First up is nodatime, an open source library for doing date, time and timezones correctly. Why is time so hard? Because politics and science! Jon talks about crazy time zone challenges, solutions for leap seconds and more. Next up is Google Cloud Platform which has gone all C# friendly! Jon talks about building C# friendly APIs for various Google services to make it easy as possible for your .NET application to work in Google's cloud. Check it out!
The beatings will continue until morale improves! While at NDC in London, Carl and Richard talk to Louise Elliott about the idea of punishment driven development - that is, workplaces where blame is a driver. Louise talks about getting rid of blame and punishment, whether self-inflicted or team-inflicted, so that the individual unique contributions and capabilities of every member of the team are valued. The conversation also dives into creating constructive incentives - not pitting team members or separate teams against each other, actually making sure everyone is focused on making sure the business is successful. Great reminders about working on the right things!
So what's the right way to use ASP.NET Core? There may not be one right way, but there are plenty of opinions, and Scott Allen has some! While at NDC in London, Carl and Richard chat with Scott about his preferences for building ASP.NET Core apps. Scott digs into project organization, keeping projects and folder structures aligned, keeping elements related to features together and more. Many of the defaults around an ASP.NET Core project are arbitrary - you can do things the way you want to do them. The challenge is just putting some thought into it!
How do you rewrite critical code safely? Carl and Richard talk to Phil Haack about his work on Scientist.NET. Phil talks about the challenges of rewriting code, which means taking something that works (more or less) and trying to make it better, at the risk of breaking it. Yes, test suites would help, but who has those on legacy projects? The Scientist library makes it easier for you to build a new version of a function in your legacy application and run it in parallel to the old function, so that you can validate the results in production without breaking anything. The conversation also turns to the value of rewrites, how tooling, techniques and technology have changed to make it more feasible to do major rewrites, and all the other geeky goodness that comes from hanging with Phil Haack. Happy episode 1400!
Are there new C++ programmers, or just old people? Carl and Richard chat with Kate Gregory about her discovery of a whole new generation of C++ programmers, who just haven't had to go through the same pain that the old folks once did. Kate talks about going to cppcon, the premier C++ conference in the world, and seeing packs of young people getting into C++. The good news is that C++ has evolved and the coding techniques are very different than they used to be. Yes, you can still build drivers and embedded systems with C++ and it's still pretty tough, but for regular software development, the new language features make life much more fun - check it out!
Have you seen the new docs for C# (and many other Microsoft products)? Carl and Richard talk to Bill Wagner about his work with Microsoft getting great C# docs together on http://docs.microsoft.com. But first, a conversation about side projects, including Carl's work bringing the Polly library to the .NET Foundation as well as Bill and Richard's work on Humanitarian Toolbox. Then on to the docs - which are fully editable via GitHub, so anyone can help build the docs. Lots of interactive code options, the samples are real (and tested), video, great detailed descriptions and more. What if docs didn't have to suck? Because they don't!
You need to markdown to make good markup! Carl and Richard talk to Rick Strahl about his work building Markdown Monster, which is a Windows-based editor for creating markdown code that ultimately becomes HTML. Or leave it as markdown, which is a popular format (going back to 2004) for blogs, readme docs in GitHub and more. Rick talks about his experiences putting together a desktop app (WPF!) but still keeping it open source. Pay for it if you use it, but try it for free, or fork it on GitHub! Lots of great conversation about modern development on the desktop, including updates, packaging and so on. You can still make desktop software make sense!
With the release of Visual Studio 2017 Release Candidate, the truth is out - no more web essentials! Carl and Richard talk to Mads Kristensen about his decision to stop making Web Essentials, but not to stop making all the Web Essentials goodness! Rather than make one big bundle of tools for web developers, Mads has broken down the package into individual add-ins that you can download separately and install. It all comes down to manageability - not everyone wants everything, so now you can pick and choose. Key to managing the add-ins is the Web Extension Pack, that will help you install the components you need. Web Essentials lives on!
Ionic is growing up! Carl and Richard talk to Justin James about his work building mobile apps with Ionic Framework, now at version 2! Justin talks about the tight relationship between Angular and Ionic, including the significant changes from V1 to V2 - mostly due to Angular, but still. As such, Justin recommends sticking with Ionic 1 for existing apps but building new apps with Ionic 2. The conversation also digs into tooling choices (Visual Studio or not?) deployment options, emulators and side loaders and the fun that is app stores. Mobile development is never easy, but it is getting better with tools like Ionic!
How many different decisions do you need to make before starting web development? Carl and Richard talk to Cory House about picking out a JavaScript development environment. Cory talks about his own experiences getting into the groove with the React stack, but that is certainly not the only way to build a web application. When you think more broadly about building web apps, the number of decisions can be daunting, and hence the increase in starter kits and other tools like the JavaScript Services toolkit for making it easier to get all your tools together. Lots of great links in the show notes for different tools you can use!
How are containers doing in the world today? While in Haarlem for DevIntersection Europe, Carl and Richard hosted a panel with Michele Bustamante, Dan Wahlin and Rick Van Rousselt about how they are currently working with containers and what they see coming in the future. The panel discusses how making containers work is really about working with Linux, which is entirely viable in the .NET world with .NET Core, but Windows Containers looks to change that in the coming years. What will modern development look like in the next couple of years as containers take ahold of the entire development cycle? Exciting times!
.NET used to be all about Windows - but it's not anymore! How do you market something so diverse? Carl and Richard talk to Beth Massi about her new role as the Marketing Manager for .NET. Today .NET runs on all sorts of platforms, and you can develop .NET code on multiple platforms as well. Beth talks about reaching out to the new audiences that may have never considered .NET before because of it's former focus on Windows. Now .NET runs everywhere, on all sorts of devices, and into even more operating systems. Where would you like your code to run?
Functional programming for mobile development? Carl and Richard talk to Scott Nimrod about his experiences building mobile apps with Xamarin using F# as the primary programming language. Does functional make sense for mobile development? Sure, but F# can handle OOP problems too. Scott calls it "functional first". The conversation digs into the power of staying within Visual Studio - tools that you know and understand! But there are also features in Visual Studio that don't necessarily work well (or the same) with F#, so it does take time to learn your way around your new language. But worth it!
Making mobile apps is never simple - but it can be made easier! Carl and Richard talk to Matthew Robbins about MFractor, a tool designed to help you build mobile apps using Xamarin across platforms more easily. Matthew talks about the challenges of trying to create common code (typically C#) in Xamarin that actually runs correcting in Android and iOS. A big part of MFractor is the code analysis tooling that helps you verify correctness for schema assignments, references, and so on. There's also help with code generations, navigation and a variety of other utilities. Check it out!
Installation is in chaos! Carl and Richard talk to Rob Mensching about the crazy amount of change that has come to distributing and installing software. The conversation references a comment from a listener about the diversity of server installation solutions including MSDeploy. But what about the desktop? As Rob says, things have been pretty stable for a long time with the MSI - and Rob led the WiX Toolset project to make MSIs. But with AppStores, MSIs are looking long in the tooth. What does the new desktop installation look like?
How can you be successful with a product without good documentation? You can't! Carl and Richard talk to Ward Bell, who is serving as editor in chief for Angular docs. After complaining about the quality problems with the Angular documentation, Ward found himself in charge of the problem - and has taken it on in a big way. The docs themselves are developed in GitHub, so anyone can contribute. The challenge is making sure they're good - everything is driven by coding samples that are as simple as they need to be and follow strict standards. The result is docs you can trust - first and foremost they are correct, and hopefully effective at getting you productive with Angular!
Time for a Xamarin update - things are moving fast! Carl and Richard talk to James Montemagno, now a Microsoft employee since the Xamarin acquisition, about the on-going evolution of the Xamarin tools for building mobile and UWP applications. The conversation starts out with a comment about folks coming to mobile development for the first time: Less rocket science, more building data-over-forms apps for internal use. James dives into the expanding set of capabilities that Xamarin Forms has to make folks more productive building mobile apps that have to work across iOS, Android and UWP. And testing is getting better too - check it out!
What does it take to move an existing application to Docker? Carl and Richard talk to Elton Stoneman about his experiences migrating applications to Docker. The power of containers is obvious, with the ability to run common configuration across development, QA and production. But how do you retrofit your existing application into that new model? It's not a simple lift and shift - Elton talks about breaking down your application into the relevant pieces that make sense for individual containers. Part of your app can live in VMs and part in containers. The process inevitably will make your application better by drilling into what is really important!
Serverless is the new hot buzzword - but what does it really mean? Carl and Richard talk to Ben Godwin about his work building serverless applications - no servers, but lots of services! Ben talks about Amazon Lambda, which is similar to Azure Functions. Both these environments allow individual bits of code to run within them, written in a variety of languages, but often that language is Javascript in the Node style. The advantage of this approach is eliminating a lot of the ceremony around your services set, but at the price of some new working patterns and organization. Ben also mentions the Serverless Framework as a great free tool for getting started!
What role does distributed caching play in applications today? Carl and Richard sit down with Iqbal Khan to talk about nCache, an open source product built to do distributed caching in the .NET world. The conversation starts out with the traditional role of a distributed cache - state storage for a large scaling websites. It's never as simple as it sounds! From there, Iqbal dives into comparing caching to noSQL stores and RDBMS - they can all have a role in your application. The discussion then turns to more complex challenges around using distributed caches for map-reduce problems, and so on. Caching can do a lot!
Has voice control come of age? Carl and Richard talk to Austin Dimmer about his efforts to build a great voice control system - including for Visual Studio! The conversation digs into the complexity of recognizing a diversity of voices and being fast enough to get the words right. Then the hard stuff: How to keep words in context so that you can derive enough meaning from them to be useful. This isn't just about transcription, it's about control. Austin also talks about all the different voice-related products that Microsoft makes, it can be a confusing landscape. Is it time for voice to be part of your application?
Compiled PHP on .NET! Carl and Richard talk to Benjamin Fistein and Jakub Míšek about Peachpie, and open source project to implement PHP on the .NET Core. While the project isn't complete yet (you can help - it's open source!), the potential power is huge - taking existing PHP code and being able to compile it down to the CLR. Ben and Jakub talk about the challenge of mapping functionality across the languages, and the huge performance boost that compiled CLR code gets. How fast could WordPress be? The goal is to make PeachPie run on the .NET Core as well, so it can work on any platform you want. Check it out!
How does Microsoft maintain mature applications? Carl and Richard talk to Dustin Metzgar about his work at Microsoft maintaining applications and libraries like Windows Workflow, older versions of ASP.NET and Entity Framework and more. These products are maintained for a long time, typically without adding features, but rather to make sure new operating systems still work with them, security is maintained and bugs are fixed. There's a ton of cool stories in this space, it's the ultimate brownfield project challenge - rarely, if ever, do folks who created a product continue with it throughout it's life time!
Version 6 of nServiceBus is imminent! Carl and Richard talk to Udi Dahan about his on-going efforts to build a great service bus in a sustainable business way. The conversation starts out talking about sustainable open source businesses and what has worked (and not). Udi then dives into the cool new features of the latest version of nServiceBus, with a strong focus on asynchronicity. Reliability across clouds and on-premise systems is also a key focus of this version of nServiceBus, so you can run your software where you want. Then a deep dive into the architectural models of services buses, including a great conversation on microservices and actor models. Check it out!
Is it worth your time to take on the latest frameworks and tools? Carl and Richard talk to Uncle Bob about fighting against "The Churn" - that is, change for change's sake. The conversation starts out focused on being professionals and holding yourself to a higher standard for your industry than just your customer. And the same issue applies for tooling - often it is easier to dive into new tools than it is to get better at your existing ones. Is this really the most productive thing you could be doing? Focusing on the broader aspects of your industry, whether a deep dive into the tooling you use or better understanding how your company really makes money, you can be more valuable and effective. And isn't that what a professional should be doing?
The rumors of the death of WebForms is greatly exaggerated! Carl and Richard talk to Jeff Fritz, who runs with WebForms team (yes, there is a team!) about what's happening in the WebForms world. While WebForms is not coming to ASP.NET Core, it is a part of regular Windows-centric ASP.NET Framework, and there are new features continuing to be built. Jeff talks about what a modern WebForms app looks like - ViewState is gone, and PostBack checking is obsolete - you can use ASync Model Binding in WebForms! The conversation also digs into how the relationship between the community and the ASP.NET team has evolved... so much more of what's being done is visible and can be discussed before decisions are made!
Can you build a line of business web application and not write any JavaScript? Carl and Richard talk to Tomáš Herceg about his open source project called DotVVM. With DotVVM, you write your ViewModel in C# and your View in HTML. The JavaScript is generated at run time, and you never need to look at it. While there are free open source elements to the project, there are also "pro" editions of some features that you can pay for to keep the project going. Lots of controls to make your pages look good with a minimum amount of code. And it works with ASP.NET Core!
Are you adding feature toggles to your apps? Carl and Richard talk to Daniel Piessens about his approach to adding feature toggles, using frameworks to keep things organized. The conversation starts out talking about different kinds of features toggles, starting with the classic one that allows you to build features over time, but keep the code in the trunk, just not visible to the users until you're ready. In some cases, that feature toggle because permanent because it is a tool for ops to reduce load on a server at peak times. Toggles are also a strategy for A/B testing of different features, styling and advertising - you need to dig into this!
A new version of Akka.NET has shipped! Carl and Richard talk to Aaron Stannard about Akka.NET 1.1. The discussion starts out talking about some of the new features in the latest release, which is focused on providing the tooling needed to build highly reliable and scaling enterprise class software. Aaron also digs into the differences between Akka.NET and other actor model frameworks. Akka is growing up!
More cloud choices! Carl and Richard welcome Chris Sells back onto .NET Rocks after three years and a career change - Chris is now at Google! And he's been busy, excited to announce that Google is provided extensive support for .NET in the Google Cloud, including Visual Studio add-ins to make your implementation even easier. The conversation ranges over the modern cloud development pattern of building code, packaging it into containers (aka Docker) and then deploying into the cloud - for Google Cloud, that means Kubernetes. Meantime, Kubernetes is presumably coming to Azure also - could we be looking at a unified cloud world?
There has been lots of conversation about cross-platform mobile apps, but how about cross-platform desktop apps? Carl and Richard talk to David Neal about the Electron framework, letting you build cross-platform desktop apps using HTML, JavaScript and CSS. Electron is how visual Studio Code is built! The conversation also turns to Xamarin - would you rather code in C# and XAML? Lots of choices for cross-platform development, it's worth taking a few out for a spin!
Ready to move to .NET Core? Carl and Richard talk to Stackify's Matt Watson about their efforts to migrate their applications to the RTM editions of the .NET Core and ASP.NET Core. For better or worse, there have been a number of major changes between the two RCs and the RTM. But this is the version to stick to, so if you haven't started to move, now is a great time. Matt also talks about the challenges of losing certain libraries - projects that haven't been migrated to the Core editions yet.
What's a really modern web app look like? Carl and Richard talk to Qiming Liu about the Reactive Trader Cloud, demonstrating the synergy between the cloud, containers, microservices, the Reactive Extensions Framework and ReactJS on the client to make a real time currency trader application. The application is on GitHub, you can take it out for a spin for yourself and get a feel for this cool architecture. Qiming talks about treating all data as streams with the Reactive Framework for Javascript, passing messages to the various microservices to complete transactions. Packaging up those microservices in containers allows for resiliency and scalability - you just launch more instances using (in this case) Kubernetes. Check out the code!
What does it take to make an application support multiple customers? Carl and Richard talk to Paul Stovell about his work making multi-tenant applications. As with most things, making multi-tenant apps is more complicated than it seems! Paul talks about making architectural decisions around separation between various customers - do they each get their own database? What about web server and/or app-pool? What about customizations and deployment. Do customers get new features immediately, or do they have the option to wait? How does the cloud impact your decision making? It's a complicated subject with a variety of trade-offs!
F# that transpiles to Javascript! Wait, what? While at NDC is Oslo, Carl and Richard chatted with Tomas Petricek about the Fabel project, combining F# and the Babel project to turn F# into some tight Javascript code. Tomas talks about the easy parts of Fabel first, because Javascript does have some functional elements, and it is possible to write immutable-style code in Javascript if you really want to. Then come the more difficult parts, like typing. There's a judgement call to make about what makes sense in Javascript and what doesn't. But with the choices in where to run Javascript, writing in F# offers some interesting possibilities!
Ready to learn R? While at NDC Oslo, Carl and Richard sat down with Jamie Dixon and Evelina Gabasova to talk about what .NET developers need to know to get conversant in R. Data science represents a huge opportunity for developers these days, helping businesses actually take advantage of the data the company has. Jamie comes at R from a traditional .NET developer perspective, talking about how there are some skills (like source control and testing) that developers have more experience with than most data science folks. Evelina talks about the academic side of using R, learning statistical modeling and how to talk to data science experts when you're a developer. There's a great community out there to help you learn more and focus on the right things - join in!
Write your build scripts in C#! While at NDC in Oslo, Carl and Richard talked to Gary Ewan Park about Cake - aka C# Make. Cake is a cross platform build automation solution - it works on Windows, OSX and Linux. Gary talks about being able to work in C# to define everything that needs to happen in your build process, including testing, documentation generation and so on. Your script can call other scripts so that you can contain complexity based on task. And since it's an open source project, if you want to use something that isn't directly support it, you can add it yourself. Take a look!
Quick, how long can a file path in .NET be? Carl and Richard talk to Jeremy Kuhne, who has taken on the challenge of breaking the 260 character limit on file paths in .NET. Why has this problem persisted for so long? Jeremy references some blog posts from Kim Hamilton back in 2007 when the issue came up big - at the time, .NET was deeply intertwined with Windows, and there were too many things to fix. But the creation of .NET Core presented an opportunity to fix the problem once and for all, and Jeremy jumped on it. What happens next?
The Hololens SDK edition is out - are you ready to write some code? Carl and Richard talk to Rene Schulte at NDC Oslo about his work building apps for the Hololens. The conversation explores the differences in virtual reality and augmented reality and the huge number of possibilities out there for Hololens. Rene talks about what it's like to develop for Hololens, discussing the relative merits between writing code in Unity3D and the Universal Windows Platform (XAML!) - it's all C# in the end! There's as much to discuss about the capabilities of Hololens as there is to talk about the potential solutions it can generate. There's a lot to think about!
How does testing contribute to the failure of a project? Todd Gardner chats with Carl and Richard at NDC Oslo about his experiences with failing projects and testing. More than just the usual case that a lack of testing led to unreliable software, Todd also talks about how testing the market is important too - what if you build software nobody wants? The focus has to be on relevant tests, because every test represents an overhead of computing and maintenance. This ultimately comes back to understanding the value proposition of your software: What does your software do that is valuable, and how do you assure that value with testing?
What does it mean to build for the cloud? While at NDC in Oslo, Carl and Richard chatted with Paul Stack about thinking about architecture specific for the cloud - not necessarily Azure or AWS, but the overall concepts of what it means to be in the cloud. It starts with the idea of everything you build being virtual and portable, whether than be VMs or containers. But there's also so-called 'server-less' designs as well, where your software runs on a platform in the cloud. If you could get rid of the need to patch operating systems, wouldn't you? Paul also talks about the smaller cloud providers and some of the cool stuff available there as well - there are lots of choices!
Ready to go deeper into Elixir? While at NDC in Oslo, Carl and Richard caught up with Rob Conery to see how his obsession with Elixir and Erlang has evolved. Rob talks about getting comfortable in the space and getting serious about building software using the Phoenix MVC library and other tools. The conversation turns to the Actor Model pattern and how it becomes a way of life when you're working in Elixir - as fundamental as objects are to C#. Rob discusses the building, testing and deploying aspects of an Elixir project, and how you can integrate elements built in Elixir into the rest of your software.
It's an exciting time for .NET! While at NDC in Oslo, Carl and Richard sat down with David Fowler and Damian Edwards to talk about the development of .NET Core, ASP.NET Core 1 and the Kestrel web server. The conversation digs into the challenges of writing a cross-platform web development framework, including some controversial pivots that have frustrated some developers - looking at you, RC2! Damian then discusses Kestrel, the cross-platform web hosting environment. This is a wide-ranging conversation and the excitement is palpable!
Time for a new version of CSLA! Carl and Richard talk to Rocky Lhotka about the latest incarnation of the venerable business object framework that started all the way back at Visual Basic 5! CSLA has always been about keeping business logic out of your user interfaces and databases - keep it in the middle where it belongs. And today that is clearly wise architectural design: The diversity on the client side means you have a lot more devices accessing your application, and CSLA supports most of them in one form or another. The same is true on the back end, it's not all about SQL Server anymore, and CSLA stays out of your way when it comes to data storage. The framework is open source and on GitHub, check it out!
Virtual Reality is here, and there are choices! Carl and Richard talk to Jason Weimann about the HTC Vive, the competitor to the Oculus Rift. Jason talks about how the two devices are similar and how they are different. And one place they are similar is the programming model - it's all about Unity3D. The conversation focuses in on what it takes to really learn Unity - you're working in Visual Studio with C#, but the platform and tooling are quite a bit different. And don't worry too much about 3D art, there are tons of free assets! VR is here, are you ready?
Is DevOps dead, or just a fad? Carl and Richard talk to Wes Higbee about his experiences building great software. As Wes says, don't let any methodology stop you from doing the right thing. The conversation digs into the challenges that come around the term DevOps, much the same way they impact the term Agile. It's very easy to start using terminology to define practices rather than focus on the common goal of building great software. Do the labels developer, tester and IT separate us or unify us? Shouldn't everyone talk to the customer and be sure they're working on the right thing? Time to think beyond DevOps!
How do you do continuous deployment? While at Techorama in Belgium, Carl and Richard sat down with Marcel de Vries and Rene van Osnabrugge to talk about their efforts working with various customers trying to help them get further down the DevOps line of productivity. The conversation digs into the various elements that go into getting to continuous delivery, including a lot of conversation about automating testing - if you're going to build fast, you need to test fast too! Marcel also talks about feature toggling, giving operations the ability to turn features off and on to understand how they behave and improve software quality in the process. Lots to deploy!
Ready to think differently about programming? While at Techorama in Belgium, Carl and Richard chatted with Mark Seemann about his experiences with Haskell, helping him to be the best functional programmer he can be. Mark talks about the battle of developing in F#, and how it's easy to fall into object-centric development methods, even when F# strongly encourages function-centric coding. By spending time in a pure functional language like Haskell, you strengthen those functional reflexes! The language has been around for a long time and runs on all sorts of platforms including Windows. It's a great tool to make you a better developer!
Even more new stuff from Xamarin! While at Techorama in Mechelen, Belgium, Carl and Richard sat down with James Montemagno to talk about all the goodness that came out of the Evolve conference. The conversation focuses first on the new edition of Xamarin Forms, building UI abstracts for your mobile apps to increase your code sharing across platforms. James also talks about data pages as a way to present data on your mobile apps, with some great styling options. Xamarin is continuing to build awesome things!
How do you change a developer's mind? While at Techorama in Belgium, Carl and Richard talk to Julie Lerman about her experiences working with a variety of teams moving into new technologies and techniques. While some folks are happy to jump into the latest-and-greatest, others are more cautious or even resistant - and often for good reason. There's always a productivity hit with changing up tooling and process, with substantial benefits coming further down the path. How can you help people "get over the hump" of engaging with a new tool or approach? What do you do about the poisonous folks that resist change through verbal and in some cases even direct sabotage? Everyone is different, and you need to take the time to understand where people's concerns lie. Often once someone is understood, they are much more open to change!
What is slowing your web site down? Carl and Richard talk to Matt Watson, CEO of Stackify, about their free product called Prefix. Method profiling has been around for awhile, but it takes a lot of time and tuning to get right - and running profilers on production servers can be a career limiting behavior. Prefix runs on your development workstation so that you can see what parts of your code are taking time - including how much is involved in communications time, query processing, and so on. Take a look!
How do you think about Android? Carl and Richard talk to Josh Vergara, Android-fan, non-developer and head of Android Authority about his experiences around Android phones and tablets. Josh talks about the various flavors of Android, including Cyanogen, and the move to make Android more open source and less Google-centric. And then there are the tablets, the poor old Android tablets. Will anything good come there for the marketplace? Cool viewpoint from a consumer of tech!
So is every class a service? While at DevIntersection in Orlando, Carl and Richard talk to Juval Lowy about how his statement nearly ten years ago has in some ways come true. Juval talks about how services evolved back in the 2006 time frame into monolithic, unmanageable software and the swing to simplification that has led to the current microservices movement. Keeping services small and flexible is the key, to the point that you see service aspects appearing down in very fine grained parts of software: Integer as a Service? Great thinking from an experienced architect of how services continue to evolve!
Scott Hunter is back and managing the whole .NET platform! While at DevIntersection in Orlando, Carl and Richard sat down with Scott to talk about his new role as director of the entire .NET platform. That includes all the open source goodness - and Scott digs into his team's efforts to make ASP.NET the fastest web development platform on the planet (they're almost there!) and what it takes to bring all the incarnations of .NET into a common standard, both for the old school close source editions as well as open source across the platforms. One .NET standard is coming to you soon!
How do you manage the building, monitoring and maintenance of mobile apps? Carl and Richard talk to Donovan Brown about how all the pieces have come together in the Microsoft stack to make creating, testing, deploying, maintaining and monitoring of mobile apps better. Donovan talks about all the good stuff from Build in mobile, including Xamarin being part of the toolset, but also tools like HockeyApp and Release Management. While Microsoft provides a ton of tools, you can bring your own as well - everything is optional and changeable. Ultimately, it's the synthesis of all the parts into a whole that provides the greater value. Check it out!
Universal Apps are becoming more universal - arriving on the XBox One! Carl and Richard talk to Chris Gomez about the announcements at the Microsoft Build event around building software for the XBox One. Now, any developer can write code using the Universal Windows Platform (UWP) approach, which means you can code in C#, Javascript... pretty much any language you want in the CLR space. Chris explains that while you have limited access to all the resources in the XBox One, the UWP approach is a starting point to building bigger things if that's what you want to do - the XBox team is watching!
Ready to code for XBox One? Carl and Richard talk to Tom Spilman about his efforts to bring MonoGame to the XBox One. When the XBox One came out a few years ago, it did not support Microsoft's Indie game platform, XNA. MonoGame has stepped up to fill that role. And as an extra perk, it runs on everything - iOS, Android, Mac, Playstation and Nintendo devices. And of course, everything is coded in C#. Tom talks about how more and more, performance in games is not an issue, and the price of coding in C++ is just too high, without significant advantage. You want to make games? Make them in C# - with MonoGame!
Are there startups running .NET? Sure! Carl and Richard talk to Alec Lazarescu about his experience running LearnBop. The applications are built in .NET, but being a startup is about more than just programming languages. Alec talks about having the agility of a startup, being able to rapidly scale while tightly controlling costs - there's only so much money in a startup! To get startup dynamics, you need to look beyond just Microsoft tools - Alec's team uses tools like Chef, which comes from the Linux world. Blending the two communities together has its own challenges, but the results are worth it!
Have you checked out Microsoft Band? Carl and Richard talk to Charles Stacy Harris about his work building Band apps. The Band is stuffed with sensors, strapped to your wrist, which opens the door to a ton of interesting information. Stacy talks about several programming options for the Band, including the web tiles that will essentially push an RSS feed onto the band. There's also SDK development options for the Microsoft Health app that communicates with the Band and works with iPhone, Android and Windows Phone. You can work natively or with cross-platform tools like Xamarin, so there are lots of choices - The Band is a great wearable device to explore!
When do you choose Cordova over Xamarin and vice versa? Carl and Richard chat with Brian Noyes, who has built apps on both stacks and talks through the details! The conversation starts out on Cordova, which takes a bit of effort to assemble a coherent code-build-debug cycle from. As Brian says, your productivity is directly measureable by how quickly you can get around that cycle, and he's worked hard to optimize it. Things are a bit more integrated on the Xamarin side, and with the recent announcements, a lot more financially feasible also - the hybrid mobile development space is heating up!
Microsoft buys Xamarin! While at Build, Carl and Richard chatted with Nat Friedman and Miguel de Icaza about what the acquisition of Xamarin means. The big news is that the Xamarin tools for making iOS and Android apps are now part of Visual Studio - all versions, right down to the Community Edition. And there's more (of course), so have a listen. Miguel digs into what this means for the average .NET developer going forward: .NET now runs everywhere you could possibly want to run code, and maybe a few spots you've never thought of. It's true, .NET really does rock!
MSDeploy can do it! Carl and Richard talk to Robert Schiefer about his experiences using MSDeploy to automate complex deployment solutions throughout the enterprise. Robert talks about the fact that MSDeploy is part of WebDeploy and includes a ton of features that are not always obvious - doing far more than just installing software, it can also modify security settings, update registry keys, even handle the deployment of databases using DACPAC. The documentation isn't great, but if you dig around, there's lots of capability there. If you're looking to save money, spend a little time understanding MSDeploy better!
How is C# 7 coming along? Carl and Richard talk to Kathleen Dollard about her involvement in the very public process that is the open source development of the next C#. Kathleen talks about how there are issues in the GitHub repository for Roslyn that are actually design notes - summaries of the current thinking on the new features coming. Where things get really exciting is the comments on those notes. If you're interested in being part of what goes into C# 7, that's where decisions are being made. Kathleen digs into some of the new features coming, including local functions, sophisticated pattern matching and more... be part of the discussion!
How do you build cross-platform desktop applications? Carl and Richard talk to Curtis Wensley about eto.forms, an open source project he started back in 2006 to deal with cross-platform challenges. Originally focused on mobile, Curtis recognized that Xamarin was moving seriously into that space and pivoted to the desktop side, just in time for Silverlight to go into limbo. Under the hood, eto depends on various Mono related elements, although Curtis sees a day when it will all be .NET Core. The mobile stuff works too, so it is possible to build an app that works on desktop, tablet and phone. Is eto more universal than Universal Apps? Check it out!
Where do development patterns fit into your world? Carl and Richard talk to Gael Fraiteur about the evolution of PostSharp into a library for implementing patterns. The combination of aspect-oriented programming and patterns is powerful - providing a means to implement a pattern while keeping it separate from your business code. Gael explores one particular pattern - multi-threading. Postsharp implements half a dozen different multi-threading strategies, so that you can apply the pattern as an aspect to your objects and make multi-threaded coding simpler and safer. Check it out!
Can you continuously deliver software on Azure? Carl and Richard talk to Jeffrey Palermo about his approach (and toolkit) to do continuous delivery - and Azure makes it far more feasible! The conversation starts out with some definitions, recognizing that the development community has been working its way toward faster delivery of value to customers for a long time - it's part of the Agile Manifesto. The question is purely how fast, or rather, how continuous is continuous? Jeff also notes that delivery doesn't mean deployment, but it does mean that you're at the place where you can immediately deploy when you're ready. Lots of tools and thinking on how to get this done, it isn't simple!
How do you manage your software releases? Carl and Richard talk to Kevin Mack and Brandon Rohrer about the various tools that come together to help automate software releases. The focus on this approach is a product formerly known as InRelease by InCycle, which was acquired by Microsoft back in 2013. Now it's known as Release Management Services for VSTS and deeply integrated with the Studio toolset. The conversation also dives into the challenges around databases when it comes to release management - how do you get your database to be part of your release? Lots to think about here to up your VSTS game!
Have you used the biggest, most complex Single Page Application (SPA) in the world? It's the Azure Portal! Carl and Richard talk to Jakub Jedryszek, one of the folks building the framework that runs the Azure Portal. Jakub talks about the portal framework being built on TypeScript and Knockout so that all the different Microsoft teams building Azure products don't get delayed in delivery because they can't get on the portal. The challenge is to keep everything orderly so that folks using the Portal can actually make sense of it, and that takes a lot of negotiations and management within the teams. Software is hard, but expectation management is even harder!
Do agile development practices make economic sense? Carl and Richard chat with Matthew Renze about his views on the economics, psychology and science behind agile development. The conversation turns to the benefits of agile done well - moving rapidly to build effective solutions for a business. This touches a lot of points that developers care about, like their software actually being used and being valued. Matt talks about how money is not a primary motivator at a certain point - that the autonomy that agile practices bring become a more powerful drivers, and that gets great results and provides great value!
How can you bring change to your organization in an agile way? While on the ScotNetRocks tour, Carl and Richard talked to Chris McDermott about his experiences bringing agile to companies, and how that affected change. The conversation explores the idea that companies are actually highly resistant to change - change represents risk, and risk should be avoided. How do you really embrace change? Chris talks about managing the risk by making the cost of failure small, effectively lowering the risk. That means being able to measure how things are working so you know when you're failing sooner and can change course efficiently. Change is good - you go first!
Can React make your web pages more reusable? While on the Scot Net Rocks tour, Carl and Richard stopped in Edinburgh to chat with Chris Canal about his work with React. The conversation turns to a stack of tools you may never had heard of for building reliable, maintainable and testable JavaScript code - no really, check out the links! Chris talks about how React creates objects, mixing JavaScript, HTML and CSS together into something that can be reused effectively, but only if you know how to manage it. And that's where the tooling comes in. Check it out!
Can Agile scale to thousands of people? While at NDC London, Carl and Richard sat down with Dan North (and a bottle of scotch) and had a deep conversation about the limits of agile and how we can get beyond that limit. Agile naturally lends itself to feature teams - 5-10 people who have a variety of skills that can get a feature out the door. But to build more substantial software, you need more people, typically broken into more teams... and that generates the scrum-of-scrums, etc. Dan talks about organizing teams differently to keep productivity high and the quality where it needs to be - scale agile!
Service Discovery? Is UDDI back? While at NDC London, Carl and Richard talk to Ian Cooper about service discovery in the microservices world. Ian talks about the effect of microservices in making systems more complex - it's easy to end up with hundreds of services. And you don't want to be hard-coding service locations into your application, what happens when things change? While you could roll your own, Ian talks about a range of tools already out there to help your applications discover the services they need. Everything needs to be redundant and reliable - which is actually hard to build. Check out the links for all sorts of great tools!
What does it take to successfully implement test automation on your application? Carl and Richard talk to Arnon Axelrod about his work using test automation. The discussion dives into the diverse world of testing, both manual and automated, as well as the variety of tests you can write. How do you go about building tests that aren't so fragile that you have to rewrite them all after every build? What tests are actually valuable to the overall quality of your software? And why automate? What can automation do that can't also be done manually? Arnon also digs into a set of open source libraries he's built to make it easier to automate testing. Check it out!
Messaging is taking over the world! Arguably it already has. Carl and Richard talk to Clemens Vasters about his ten years of work at Microsoft building messaging systems, starting way back with the .NET Service Bus. Clemens discusses his work with OASIS and OPC-UA developing more advanced messaging standards, it's importance in the Internet of Things space, and how versions matter - different protocols have different capabilities, and the need for unified communications is only getting bigger. Messaging is forever - message systems will be passing messages between ever shrinking computing devices for a long, long time.
Microservices built with a functional language? You bet! Carl and Richard talk to Rachel Reese about her work with jet.com building microservices in F#. It turns out that the good practices of building functional code lend themselves neatly to the same principles in microservices. Rachel also talks about the actor model as a natural fit for this architecture as well, writing code with simple entry and exit points as functions in F#, focusing on composability to relate elements together. There are lots of ways to build microservices, but the functional/actor approach makes things easier once you've gotten your head around it - check it out!
Do you have a DevOps stack? Carl and Richard talk to Brian Randell about his experiences implementing tooling for DevOps practices using Visual Studio and other Microsoft tools. The conversation runs the gambit of elements in the DevOps stack, including continuous deployment, package management, configuration-as-a-code and instrumentation in production. The more automation the better when it comes to moving fast and reliably. While DevOps often focuses on the culture and process that goes into building software, great tools can make all of those things happen much more easily - you just have to figure out what stack is right for you!
Do you understand how to develop software with GitHub? Carl and Richard walk through the fundamentals of GitHub with Bill Wagner. Bill walks through the key differences between the distributed source control that is GitHub versus the more classic central control style source control systems. Often it is harder for experienced developers to deal with the reality of GitHub than someone new to source control! The conversation explores all the concepts of GitHub - repositories, cloning, forking, push and pull requests, merging and rebasing. There's a lot to know, but there are great tools for getting started. And at the end, a quick discussion about Humanitarian Toolbox and their awesome open source projects to help save lives - you can help!
When was the last time you thought about Windows Workflow? Carl and Richard talk to Blake Helms about the projects he's been building with Workflow - and they're awesome! Blake talks through how Workflow has evolved into the latest version for .NET 4.5, with better visualization tools and a consistent interface that is easy to work with. The conversation digs into how Workflow separates work from flow - activities are code and flows are the relationships between them. This separation lets you see where there are holes in your decision-making system and helps keep code organized and focused. The question is, when wouldn't you use Workflow? Wait. What?
How technical is technical debt? Carl and Richard talk to Einar Høst about how technical debt has more to do with your understanding of a system and the intentional shortcuts we take to make deadlines than anything specific to technology. The conversation dives into the domain driven design thinking of Eric Evans and the challenges of deeply understanding the domain of a system well enough to build great software to model it. As Einar puts it, some complexity is intentional, and some is accidental. That accidental complexity can be considered technical debt, but it is always challenging to measure it. In the end, the key is communications!
So what can you do with Reactive Extensions (Rx)? You know, really? While at the Azure Tour stop in Tel Aviv, Carl and Richard sat down with Tamir Dresher to talk about Rx in the real world. Tamir is the author of Reactive Extensions in Action and he talks through the practical applications that Rx has, and where it can make your software better. This is not an all-or-nothing proposition, you can slide Rx into spots where you want to react to key bits of data while ignoring others, so where you want to focus on the relationship between two different bits of data - this is not just about high velocity streams of data!
It's only date and time, how hard could it be? Carl and Richard chat with Matt Johnson about the challenges of really managing dates, times and time zones properly. The world is a complicated place, and time zones are a relatively new invention that is as much driven by politics as geography. And then there's daylight saving time, which is even worse! Matt talks about the simple mistakes that developers can make assuming behavior around dates and time that can lead to significant failures in your application. He also digs into the tools to make your life easier, especially Noda Time, an open source library for doing dates, times, time zones and daylight saving time right. Time to check it out!
So how many shortcuts do you know in Visual Studio 2015? Carl and Richard talk to Joseph Woodward about his conscious efforts to learn more shortcuts and speed his development pace. Every time you take your hand off the keyboard, you slow yourself down, and more importantly, interrupt your flow! But not all shortcuts are created equal - the discussion focuses first on navigation shortcuts to move around your code more efficiently, and then into block editing and moving. Of course there are tools to take it further like Code Rush and Resharper - which ones are your favorites?
Time to revisit MassTransit! Carl and Richard talk to Chris Patterson about his work on MassTransit and more. MassTransit is an open source .NET service bus that is happy running on-premise or in the cloud. The conversation explores the evolution of MassTransit and the way the Enterprise Service Bus has evolved. SOA is a fine idea and SOAP works, but is there an easier way? Chris talks about better queuing with RabbitMQ, to the point that the latest version of MassTransit doesn't support MSMQ. And then there are microservices... does this make sense in the modern service-oriented application?
So what does developing web apps with F# look like? Carl and Richard talk to Henrik Feldt about his efforts to use F# end-to-end when building web sites and web services. The conversation starts out with suave.io, a nodeJS-like web server written in F# that runs in a totally non-blocking fashion across Linux, OS X and Windows. Henrik also digs into WebSharper, a web framework for building functional and reactive .NET applications - a natural for F#, although WebSharper works fine with any CLR language. The list goes on, check the awesome set of links for this show including links to videos to teach you to use the tooling and more great F# content!
Microservices and Azure together! While at the Stockholm stop of the Azure Tour, Carl and Richard chatted with Corey Sanders in front of a live audience about the announcement at the Microsoft Connect event about Azure Service Fabric's direct support for microservices. Corey digs into the core concepts of microservices, focusing on single domain APIs that use HTTPS and REST to connect and communicate. The challenge of microservices is proliferation - between redundancy and scalability, a large application can have hundreds, even thousands of instances. Azure Service Fabric provides tooling and resources to manage the complexity of microservices while keeping the flexibility and power. Check it out!
How is mobile development evolving? Carl and Richard talk to Lino Tadros about his current work building mobile apps with lots of different technologies. Lino talks about build mobile apps natively with Objective-C and Java as well as a variety of hybrid approaches: C# using Xamarin, Javascript/HTML with Cordova and even good old fashion responsive web design. So what works best for you? Lino highlights some strengths and weaknesses of the different platforms, recognizing that it mostly comes down to skillset - what tools are you most comfortable with? That's what ultimately makes the difference. No matter how good a tool is, your ability to use it has the largest impact on how well your mobile app turns out.
So what are microservices anyway? Carl and Richard talk to Paul Mooney about his work architecting applications with microservice principles. Paul talks about getting granularity right, and keep services simple using REST. Gone are the monolithic, verbose and complex services from the SOA age, it's all HTTP and simple language. The conversation digs into key architectural elements like queuing - in this case, with RabbitMQ. This is a tricky design pattern, but allows for lots of scalability and creates natural separation points between application elements. Microservices are still emerging as a cloud-centric way to build applications!
How does the .NET Foundation change the way you build software? While at the MVP Summit, Carl and Richard met with Martin Woodward and Beth Massi to talk about how the .NET Foundation was created and is evolving to carry .NET open source software forward. As Martin explains, even though key platform tools like the .NET Core, ASP.NET and MVC are all part of the foundation, Microsoft still makes a retail build of the products - so if you don't want to use open source, you don't have to! But if you and your organization are looking at open source, the .NET Foundation provides a certain level of coherence and structure to open source projects so that you can be sure the code will be there when you need it. Check it out!
Have you taken Visual Studio Code out for a spin yet? While at the MVP Summit, Carl and Richard talk to Sean McBreen about his work building Visual Studio Code. VSCode was released back in the Build time frame of April 2015, and has put out a major update almost every month since. Sean hints about some major announcements coming for Visual Studio Code coming at the Microsoft Connect() event in New York November 18 2015. The conversation also digs into the choices you can make in your development platform with a mix of VSCode, Visual Studio Online and all sorts of other tools.
Can you be a software craftsman and not test? Scott Nimrod says no! Carl and Richard chat with Scott about his experiences using TDD practices to build software and how that affected his approach to craftsmanship. Scott talks about how writing testing code to quickly test your app code is a far more efficient use of time compared to repeatedly compiling and running an application, then manually navigating to the feature in question and playing with it. Proper tests are faster, more accurate and repeatable, resulting in better code. And they're even more important when the app gets bigger, the number of developers increase and time passes - build your software right!
How can Azure change your business? Carl and Richard talk to Jason Zander, one of the original developers of .NET and now a corporate vice president, about the power of Azure to affect change in your business. Jason talks about the landscape of Azure today, and how the engineers are able to push out a feature almost every week - 500 new features in the past year! You may not need to move that fast, but it's nice to know if you build against Azure, that's what is possible. The conversation ranges over the role of IoT, security, web sites and more - there's a lot of things that can be built in Azure, and the opportunities are massive!
How do you build a cloud-oriented application? Carl and Richard talk to Vishwas Lele about his views on making software that takes advantage of features of the cloud, including dynamic resource allocation, resiliency and reliability. Vishwas runs down a list of ideas, starting with error handling - how many failures can be recovered in the cloud with new resource allocation, etc? Next up, instrumentation and logging - the cloud offers a lot of tooling to make real-time instrumentation a possibility. How do you take advantage of the costs of computing? What about scaling your application? Vishwas digs into it all!
Can you really built virtual reality apps in .NET? You bet! Carl and Richard talk to Matthew Wilson about his work with Novus-Res, building VR apps for businesses. The conversation ranges over the typical hardware set - primarily focused on the Oculus Rift. Matthew talks about the different skills and tools needed to build a VR space, including 3D modelling. But when it comes to programming, Unity 3D leads the way, and you can write C# with Unity! What makes sense as a VR app? How do you keep folks from getting motion sick, and really make the VR experience real? Lots of cool thinking here, and we're still at the beginning!
Test-Driven Development (TDD) is a mature methodology now, right? So how do you get it right? Carl and Richard talk to Justin Searls about his experiences helping teams implement TDD. As Justin says, TDD is just a tool in the toolbox for making long-lived software. In its maturity, different flavors of TDD have emerged, and Justin digs into the Detroit or Classical TDD versus the London TDD. It's all about testing, but with some style variations. How do you keep your tests resilient as software evolves? Justin talks about the right amount of abstraction and organizing a hierarchy of tests so that you can manage change effectively. TDD works!
Ever heard of property-based testing? Carl and Richard talk to Mark Seemann about doing property-based testing with F#. As Mark explains, functional programming techniques work especially well for property-based testing, allowing you to define parameters (properties) that will generate ranges of values to test against. The conversation digs into tooling, specifically FsCheck, an open source library for doing property-based testing in F#. If you'd rather work in C#, Mark's project AutoFixture can do similar work in that language. But Mark talks up the advantages of F# from a functional perspective, creating very terse, easy to read tests. Check it out!
How do you handle credit card payments in your applications? Carl and Richard talk to Craig McKeachie about his work with different payment solutions, including Stripe. The conversation digs into the challenges of building your own payment system versus using a third-party system - starting with PCI compliance! Craig talks about different tooling for embedding payment, including the stripe.net library on GitHub for plugging into Stripe, and so on. Taking payments is important, so is doing it right - you have to think about security in a deep way. Don't build what you don't have to!
Hang on to your hats, here comes a ServiceStack update! Carl and Richard talk to Demis Bellot, who for the past couple of years has been full time on ServiceStack, and wow, a ton of development has been done! Demis (at very high speed) rattles through the feature list of ServiceStack, talking about the array of platforms it supports - which is pretty much everything from the phone to the cloud. While the focus has always been on providing web services, Demis also talks about running the entire stack inside a machine so that you can provide local services as well. Check it out!
How much can a language do with only 25 keywords? Carl and Richard talk to Michael Van Sickle about Google's Go Language. The focus in Go is on simplicity and structure - it's amazing what you can do with so few keywords, plus fixed locations for braces, indentations, and so on. The benefit of Go is easy-to-read code that has great concurrency capabilities - the Actor model is a standard pattern of development for Go. Michael also digs into the tooling around Go, using Atom for an editor and various plug ins to make coding and debugging easier. So how good is Go? Docker is written in Go! Check it out!
There's more great stuff in Studio than you realize! Carl and Richard talk to Charles Sterling about the web performance testing tools built into Visual Studio 2015. Actually, the testing tools have been there since 2008, but only in the test edition, and after that they were moved to the Ultimate Edition - they were part of what made that product so expensive! But as of 2015, the testing tools are available as part of Visual Studio Online, which means they're free for teams of five or fewer as well as all MSDN subscribers! Chuck talks about what it takes to build really great load tests - the kinds of questions you can answer, and how to build those tests into your continuous deployment system. Check it out!
If you've been listening to the latest episodes, you've heard Omnisharp mentioned - time for a show on it! Carl and Richard talk to David Driscoll about his efforts contributing to Omnisharp. Omnisharp is a set of tools to bring .NET development to all sorts of different development environments, including Visual Studio Code. David discusses the impact that working on a dev tools project like Omnisharp has had on his own career, changing the way he thinks about development - for the better! If you're digging into open source web development in the new Microsoft stack, you really should know about Omnisharp!
Rob Conery has the Elixir bug! Carl and Richard chat with Rob about being on show 1200, and how Elixir has sucked him in. Elixir is the syntactically friendly language over top of Erlang that has gotten a lot of attention lately. The conversation digs into the strategies around learning a new language, starting with building a good old fashion forms-over-data application. Rob used the Phoenix MVC framework with Elixir to build web pages quickly. He also talks about changing your thinking - how his Elixir code rapidly evolved from an old way of thinking to new, with terser syntax and taking advantage of the language style to build in a new way!
Kathleen Dollard has been exploring different development environments and wants to tell the world! Carl and Richard talk to Kathleen about her experience using Python and Django with JetBrain's IntelliJ development environment. As Kathleen says, it's the whole development suite, not just a given language, that you have to evaluate as a whole. But if you're going to live in the dynamic language like Python, you need to take testing seriously - and Kathleen dives into her experience of doing semantic testing to build resilient tests that are easy to read and have comprehensive coverage. The conversation turns to the story of how all this came to pass - Kathleen's new job and new leadership role with a consulting firm has pushed her to try new things!
Ready to do some method interception? Carl and Richard talk to Ricardo Barbosa about CodeCop, his method interception library that you configure with JSON. The conversation starts out talking about why you would want to do method interception in the first place - aspect oriented programming, instrumentation, isolating plumbing code, and so on. There are a bunch of ways to address these problems, and method interception has some advantages. Ricardo talks about building the tool and its gradual evolution as he got a deeper understanding of the underpinnings of .NET. There's a free version of the product, take it out for a spin!
Universal Apps are all about XAML! Carl and Richard talk to the original XAML believer, Billy Hollis, about the new Universal App model and its focus on XAML. As Billy says, both Windows 10 and Office 2016 are using XAML now, so it's not going away. But first a quick digression on Windows Phone and Android - is the Universal App model going to save Windows Phone? Or should it all be Android in the end anyway? The conversation also ranges over some of the new opportunities coming in the future, like HoloLens, and the importance of XAML in that space as well. There has never been a better time to dive into this tech!
Heard of NativeScript? Carl and Richard talk to Sam Basu from Telerik about NativeScript, a dev stack using JavaScript to build native mobile applications. Sam describes how NativeScript is different from Cordova, since it doesn't use HTML or a runtime that essentially hosts a browser - instead it has a custom UI markup language that is rather similar to XAML and compiles into native code on iOS and Android (Windows Phone coming soon). So if you like working in Javascript but want native performance, you should take a look at NativeScript!
So what about building apps with Unity 3D? Carl and Richard talk to Brice Fernandes about what it takes to build using this cross-platform 3D framework. Brice talks about the important elements of gaming, including the art, user experience and game play itself. You need all three to some degree, great games do all of them well. The conversation digs into the variety of styles of games and the strengths and weaknesses of Unity in those different roles. Could you build things other than games in Unity? Yes, but would you want to?
Web development is moving fast, and John Papa is in the race! Carl and Richard talk to John about his current views on Angular and other SPA frameworks - coming to Anglebrackets this fall! The conversation dives into the inevitable comparisons between Angular, Aurelia and others - but there is no one right way. Then John talks about the new Visual Studio Code, which really hasn't got much to do with Visual Studio at all - it's an editor, rather than an IDE. This leads to a conversation about development work styles in general - do you like having everything all in one place in the form of Visual Studio, or happier with a more roll-your-own solution with separate editors, debuggers, etc. So many choices for development today!
Roslyn is out - and it's awesome! Carl and Richard talk to Dustin Campbell about his work building Roslyn over eight years. Eight years is an awful long time, but when you're rebuilding a codebase from scratch, it's hardly unprecedented. Dustin talks about some the decisions made in the re-engineering of C#, including whether or not to keep in the bugs! Taking Roslyn open source is also a huge aspect of Roslyn and it's impact on the rest of the open source products Microsoft is making including the new ASP.NET. Great insight from someone who's been there!
How do you make a mobile web site go fast? The same way you make any web site go fast! Carl and Richard talk to Chris Love about his strategies for making fast web pages. The conversation starts out discussing how mobile apps are even more performance sensitive than regular web pages, because mobile devices typically have less bandwidth and more limited processing power for rendering. Chris points to one of his favorite tools - WebPageTest, as a great starting point for knowing where to look for performance gains on web pages. This leads to discussion on image compression, CDNs, time-to-live settings and more!
How do you manage version numbers? Carl and Richard talk to Jake Ginnivan about his open source project called GitVersion. GitVersion works to automate the semantic versioning of your software. The conversation starts out focused on the details of semantic versioning - beyond the major.minor.patch, there are the alpha, beta and release candidate builds. Jake walks through the process of automating versioning, being able to understand what changes you've made to your code to know what numbers need to increment. This is a cool tool to check out!
Messaging in browsers? Carl and Richard talk to Derick Bailey about messaging patterns in Javascript. Yes, browsers always use messages, that's what HTTP is about - but there are messages, and there are messages. Derick talks about using the publish/subscribe pattern with RabbitMQ to build a highly scalable system. These are patterns that are popular outside of the web, but the modern web can do anything any other system can do - so it's time to put these messaging patterns to work in your web applications!
How much of a language is essential? Carl and Richard chat with Mark Seemann about what features are critical to a language, and which ones are redundant. Who would put redundant features in a language? Mark talks about how languages evolve, and how more advanced features can supercede older features, but the old features can never be removed without breaking existing code. And worst still, when building a language is your business, you'll add features whether they are needed or not - you need something new to sell! The conversation also digs into understanding languages more deeply - do you really need that if statement? Just because a feature exists doesn't mean you need to use it!
How do the SOLID principles apply to .NET? Carl and Richard talk to Chris Klug about his experiences using SOLID to build reliable, maintainable and scalable project. The conversation walks through the five principles of SOLID with an eye to practical applications in .NET - what does a well implemented single responsibility look like? How does it work with patterns like MVVM? Chris shares his thoughts and coding approaches on a great debate about practical vs ideal implementations in SOLID.
Isn't all functional programming lean? What does that even mean? While at NDC, Carl and Richard chatted with Bryan Hunter about lean principles and how they apply to functional programming. After a quick debate around the merits of object-oriented programming vs functional programming, the conversation turns to the history and principles of lean. Bryan shows how lean informs your approaches to programming, how you can evaluate your tooling and techniques to build the best software possible. Is functional programming the ultimate manifestation of lean?
Why in the world would you want to build a compiler? While at NDC, Carl and Richard talked to Philip Laureano about why he makes compilers! Philip starts out talking how building compilers helps you think about parsers and how that can help your development in every day life. The conversation turns to building your own language, or your own interpretation of a language, such as LISP! Philip digs into understanding IL directly - using tools like ILDASM and PEVerify to manipulate the underlying code made by Visual Studio languages like C#. Get a deeper understanding of the tools you use!
While at NDC, Carl and Richard talked to Chris McCord about Elixir - the friendly language on top of Erlang. Chris talks about his Phoenix framework which brings an MVC-style development approach to building web sites in Elixir. And because its the Erlang VM under the hood, it scales brilliantly! The efficiency of Erlang is remarkable as well, reducing the number of servers needed to provide a service, to the point where folks have been running a web site off of a Raspberry Pi 2! Phoenix is racing toward a version 1.0, and its a great time to get involved!
While at NDC, Carl and Richard chat with Justin James about his deployment tool chain of NuGet, Chocolatey, Boxstarter and Vagrant. Each of these tools builds on the other, starting at the lowest level with specific libraries, working up through package managers, configuring operating systems, even provisioning cloud services. Justin talks about using the tools to get you to a configuration-as-code scenario, making installation not only reliable, but fast. There are lots of different ways to get to a reliable and efficient deployment solution - here's another one!
Where will .NET go next? Carl and Richard talk to Rocky Lhotka (who happily is still alive after having his entire aorta replaced) about the resurgence in .NET. Between the open sourcing of .NET creating a common codebase for Windows, OSX and Linux. But that codebase is server focused - what does it take to get to the client? And to that idea, should XAML be open sourced? Rocky drills into the challenges of making cross-platform mobile apps - it's still not simple enough yet. But things are looking up, and there is only going to be more choice. Rocky is optimistic!
So how are you instrumenting your applications? Carl and Richard talk to Jason Taylor of Stackify and Michael Paterson of Carbonite about the power of great instrumentation to make awesome software. Stackify provides a set of free tools if you're working in Azure. And speaking of Azure, Carbonite lives on Azure and uses Stackify for instrumentation. Michael talks about how Stackify helped Carbonite understand performance problems and errors that were occurring in production that were very hard to see from logs or customer service requests - deeply instrumenting their application made all the difference!
How do you extend C#? Carl and Richard talk to Simon Cropp about his open source project called Fody. Simon talks how Fody allows you do do "weaving" of .NET assemblies to add capabilities. Sounds simple, but it's not - it's hugely powerful and has to be handled carefully. To make it even more amazing, there are a ton of add-ins built for Fody to open the door to all sorts of aspect-oriented programming, simplifying testing, instrumentation and other sorts of coding extensions. So many possibilities, you should check it out!
So how deep are you into Domain Driven Design? Carl and Richard talk to David Rael about his work applying DDD principles to the systems his customers develop. David focuses in on the idea of the ubiquitous language, something Eric Evans admits he wishes he'd put earlier in his seminal book on DDD. The ubiquitous language is the assembly of all the terms needed and agreed upon about the particular domain that the application has being built for. Most of what you need to know to build an application lives in that language, and most of what can go wrong goes wrong there. Great, focused conversation from someone living the DDD life!
Microservices? Carl and Richard talk to Howard Dierking about his work building microservices starting with the name - Howard hates the term microservices. He prefers to call them focused services, which only makes sense. The goal is to write as little code as possible while delivering the capabilities needed, not all that different from most modern development approaches. The conversation turns to how we've twisted service design because deployment and versioning were so difficult. Today its better and we can take advantage of granularity to keep our services small, independently updated and flexible!
Have you been building web apps with TypeScript? Carl and Richard talk to Steve Ognibene about his work with TypeScript projects. The discussion starts with dispelling myths about TypeScript - no, it doesn't exist just to make C# developers more comfortable in web development! Steve compares how development is different in the strongly typed world of C# where the compiler does a bunch of testing for you versus the dynamically typed space of JavaScript where you're responsible for managing type related errors - something that TypeScript can help with! In the end its all JavaScript, and that is evolving also - Steve talks about how ECMA 6 looks a lot more like C#... is there a middle point here we're all racing toward?
Remember Orleans? Once an MSR project to scale Halo 4 multiplayer mode, it has grown into a full blown actor model implementation. Carl and Richard chat with Barry Briggs about bringing Orleans to your project. Barry talks through some great ideas on the actor model and it's focus on building distributed highly scalable applications. Orleans is now an open source project hosted on GitHub, and is worth a look - compare it to Akka.NET!
So what has happened with the .NET Core? Carl and Richard talk to Jay Schmelzer about his involvement from the very beginning of the .NET Core infrastructure and the interesting future it has as an open source project. But first a call back to a project that Jay led for years - LightSwitch. So where has it gone and where is it going? Then the conversation turns to the .NET Core. Jay talks about how the development team at Microsoft is starting to do their development in public on the open source project that is now the .NET Core. And then there's OS/X and Linux! How do you separate off capabilities of .NET that are actually part of the operating system, rather than the .NET codebase? Lots of complexity to support cross platform like this, but it opens the door to .NET being everywhere!
Can biology inform computing? Or computing help biology? Yes! Carl and Richard talk to MSR scientist Colin Gravill about biological computing. Alas, the conversation is not about making computers out of biological materials, but there is some discussion about using DNA to do some kinds of computing as well as building synthetic life from modified cells. Colin talks about the tools they're building to be able to simulate cell generations and understand how stem cells evolve into specialized cells. A cool technology/biology Geek Out!
So where does BizTalk fit into your Azure application? Carl and Richard talk to Sam Vanhoutte about his work using BizTalk technology to integrate systems together with Azure in the middle. The conversation pokes a little fun at BizTalks's on-going battle for relevance - for the customers that really need it, it is awesome. But now it's available as a cloud product in Azure which can save a ton in hardware fees, enough to run the infrastructure for a long time. Sam also digs into Enterprise Service Buses and their role in the modern infrastructure. Good stuff!
Akka.NET ships! Carl and Richard talk with Aaron Stannard about Akka.NET, a toolkit and runtime for building highly concurrent, distributed and fault tolerant event-driven applications. Akka.NET is a port of the original Akka framework in Java/Scala. Aaron talks about the reactive manifesto as the driver for Akka.NET, to provide tools for responsiveness, resiliency, elasticity and message driven.
So what is the state of open source in the .NET community? While at the .NET Fringe conference, Carl and Richard moderated a panel of Ian Cooper, Amy Palamountain, Scott Hanselman, Sebastian Lambla and James Nugent as they explore the past, present and future of open source and the .NET stack. Obviously having Microsoft open source huge tracts of the .NET stack is a huge topic on its own, but so is the role the Microsoft should play in the open source community. What makes this community different from other open source communities? Are things moving in the right direction, is it getting better? Listen for some significant debate and thinking from a broad spectrum of open source folks!
So how do you track errors in production? JD Trask talks to Carl and Richard about raygun.io, a service for instrumenting your clients and servers in production and feed errors directly to your project tracking and bug reporting systems. The conversation digs into how to deal with errors in your application in a way that actually delights your users - sending emails letting them know you saw they had a problem and are working on it, and being able to see the details of the problems early and often without waiting for complaints. These are the tools for taking your application quality to a higher level!
So how does Docker change development? While at the Nebraska Code Camp, Carl and Richard chatted with Seth Lachner about his work with Docker and the impact it has had on him as a developer. Seth comes from the old school open source world of Linux and C, and has worked with Docker for a long time - he recognized the potential early on. The conversation digs into the concepts of Docker as a virtualization entity on top of an operating system, hooking tightly into the kernel of the operating system to provide isolation for applications without the heavy footprint of traditional VMs. The conversation ranges over the cloud, server and workstation uses of containers, even into the idea of Docker as a virtual application implementation. This tool has far reaching consequences, no wonder there is so much buzz around it!
How do you deal with failure? Carl and Richard talk to Dustin Thostenson about his experiences with failure and how they made him a better developer. The conversation starts out with a discussion of Maslow's Hierarchy of Needs and how that ultimately maps to our needs as developers as well. The needs build on each other, and you can have a higher-level need without a lower-level need being fulfilled. Dustin talks about how this hierarchy informs his understanding of a prospective employee during the interview. The questions you ask say a lot about who you are!
What does it mean to be a modern mobile developer? While at the Nebraska Code Camp, Carl and Richard talked to Heather Downing about her recent dive into mobile development. In only a few years, Heather has been involved in a number of cool projects and talks about learning on the fly to build native, hybrid, and web-based mobile applications. The conversation explores the advantages and disadvantages of each of the stacks, and the enthusiasm that comes from being effective and successful even without decades of experience. As Heather says, when a new framework comes out, everyone is a novice, no matter how much experience you have. There is no substitute for working hard to learn and understand what the framework brings to the table.
How did you learn to debug? While at the Nebraska Code Camp, Carl and Richard talked to Joel Kauffman about debugging practices. Rarely is debugging taught in classes, arguably because all school code is perfect. But code in the real world has bugs, and finding those bugs can be challenging. Joel talks about helping developers understand how debugging works, utilizing stack traces, working backward through code, using watches, and so on. The conversation also digs into various tools available for assisting in debugging production applications, including open source JavaScript libraries and much more expensive dedicated instrumentation products. But good debugging is worth a lot - it's a worthy skill to cultivate!
At the Nebraska Code Camp, Carl and Richard moderated a panel discussion with Mads Kristensen, Lee Brandt, Josh Broton, and Robert Boedigheimer exploring the state of web development on the Microsoft stack. Of course, the first topic is the upcoming ASP.NET vNext and its switch over to open source, along the way letting go of some legacy features including Web Forms. The panel also discussed various JavaScript libraries, when they should be used and when plain old VanillaJS is a better way to go. Conversation also explored design tooling and whether we all should be running Visual Studio or stick with dedicated design tools and editors. Lots of viewpoints from a great panel!
What's the difference between an Azure Web Site and Web App? Not at thing! Carl and Richard talk to Scott Hunter about the latest announcements from Microsoft about Azure App Service. Azure App Service brings together Azure Web Sites, Mobile Services and a whole bunch of other goodness. Scott explains how Microsoft has unified all of these services under one umbrella to make it easier to buy and use. If it speaks HTTP or HTTPS, it's an Azure App Service. Then on to the new stuff, including Logic Apps, which lets you manage your mashups using workflow and interconnection tools. You need to check out this great set of technology!
How do you do agile faster? Carl and Richard talk to Dan North about accelerating agile - but Dan has changed the name to Software, Faster. And even that is controversial, as Dan talks about focusing on delivering business needs, which may or may not involve code. The conversation also calls back to the Agile Manifesto and its abuse - it's not code with no documentation, its code over documentation! There's a great digression about the BBC giving away a million tiny computers to children to help create a new generation of makers... it's a fun time to be in computing! And as Dan says, the only code that has no bugs at all is no code at all.
Programming in Swift? Want to build Android apps too? Carl and Richard talk to Marc Hoffman of RemObjects about his Silver project - using Swift to program for Android. Swift is Apple's cool new language for developing iOS apps, making life easier than Objective C. Don't use Swift? No problem, how about Pascal - because RemObjects has Oxygene, which is a moderized version of Pascal. That doesn't work for you? Then how about C#? Because this tool set lets you write C# across all the platforms too. And you can use it in the development environment of your choice, including Visual Studio. Mind blown? Ours too!
So when do IT Pros become developers? Carl and Richard talk to Steve Evans about his operations folks writing code and dealing with all the challenges that everyone finds when they write, own and operate code. The code in question is primarily PowerShell, used to automate deployment. It needs testing, source control and everything else that code requires. Steve talks about how his operations folks have come to learn the same things that all developers need to learn, and for the most part, end up using the same tools. PowerShell may have its own IDE, but more than ever the IT Pros want to use Visual Studio for its richness of tools and integration with resources that they realize they need. Now all we have to do is convince Microsoft that just because you operate systems doesn't mean you don't program!
Like beer? Are you using Untappd? Carl and Richard talk to creator Greg Avola about the phenomenon that is Untappd. What started as a simple tool to keep track of what beer he liked and didn't like has turned into a super popular app with millions of downloads. Greg talks about what it took to keep the app working as the number of users grew immensely, and how he and the team built the app to work on all sorts of different phones. In the end, the cornerstone of Untappd is the back end with an amazing catalog of beers and user preferences that help the lovers of beer and the makers of beer connect together to make beautiful beery music!
What an amazing year for ScriptCS! Carl and Richard talk to Glenn Block about the latest developments in ScriptCS - comparing the state of affairs to the last time he was on a year previously. With Roslyn all but shipped, ScriptCS is going mainstream - perhaps it will even be bundled with Studio someday! In the meantime, Glenn and a host of other contributors have continued to extend ScriptCS to make it easier to deploy, share scripts and add additional functionality without having to work in Visual Studio if you don't want to. ScriptCS is putting C# into everyone's hands!
How are you dealing with mobile testing? Karen Johnson talks to Carl and Richard about thinking through the big picture when it comes to testing. The conversation starts out with a discussion about the tools we've had for desktop and web testing for years that are still hard to come by on the mobile platform - like UI capture of touch, gestures and typing. Its just not that easy to do capture on a phone. The diversity of products is a huge part of the problem, but its also the rapidly evolving operating systems and technology. Karen also digs into other devices like wearables and other physical instrumentation devices. The scope of the testing problem is only getting bigger!
ASP.NET continues to evolve! Carl and Richard talk to Mads Kristensen about the many amazing things he's working on in the web space, starting with Web Essentials! Mads explains how Web Essentials is a way to experiment with new features for ASP.NET, and that success comes when the feature is pulled into Visual Studio itself - and you get to be part of that process, it's all open source! The conversation turns to Visual Studio embracing the web development ecosystem to use the best tools for the job, whether that is browser and performance testing, package management and workflow. Use whatever tools you want from whomever, and Visual Studio will work with them - 2015 is shaping up to be an amazing version!
How do you test your mobile applications? James Montemagno talk to Carl and Richard about various testing approaches for mobile apps. James talks about the Xamarin Test Cloud with thousands of different devices you can test against... for a fee of course. This leads to a conversation about automating UI testing, testing against local devices and only going to the cloud when you're ready to test on a larger diversity of phones. James also talks about the broadening range of devices out there, not just phones but tablets, wearables and IoT. Everything needs testing, and there are tools to make it easier!
How do you test your cross platform applications? Carl and Richard talk to Paul Mooney about building software in .NET and Java and wanting to use a common set of testing protocols. Tricky, but possible! The conversation focuses in on abstractions, which are key to creating sufficient separation of functionality to allow you to insert testing code regardless of what language you work in. And it turns out you can write tests for multiple languages if you're careful. Java and .NET are more similar than we care to admit, and it opens the door to other approaches to testing. TDD is not platform specific!
Are you ready for C# 6? Carl and Richard talk to Bill Wagner about the latest changes to C# 6, with some features being dropped (perhaps to appear in a later version), some syntax changes, and digging deeper on some of the more complex features available. Now that everything around C# is open source, you can see the process of developing new features going on, and even participate in it! Bill and Richard also talk about Humanitarian Toolbox, their ongoing effort to build open source software for disaster relief organizations. And even a little discussion about C# 7!
Time for a craftsmanship update from Uncle Bob! Carl and Richard talk to Bob Martin about the growth of developers, and how the number of new developers is overwhelming the available teaching and mentoring resources available today. The discussion turns to the fact that customers would rather have mentors writing code than teaching new developers - better to throw the new folks in a room and let them fend for themselves, maybe software will come out! Uncle Bob talks about the rise of professionalism, the need for professional associations or guilds, taking on the liability of software - the challenge is getting there.
What does Sharepoint Development look like today? Carl and Richard talk to Sahil Malik about the amazing changes that have happened to the Sharepoint development community with the impact of Azure and Office 365. Sharepoint used to be a very insular development environment, separate from everything else, but today it is expected to interact with cloud services, on-premise system and a variety of clients, including iPhone, Android, WinPhone and more. Sahil talks about gluing all the pieces together - you can't build it all yourself!
Jonathan Pepper is back with another great Xamarin case study! Carl and Richard talk to Jon about the Hanx Writer, an iPad application made with the help of Tom Hanks to recreated the mechanical typewriter experience on a tablet. Remember skeuomorphism? Here is an awesome manifestation! Jon talks about the process of creating the effects of three different mechanical type writers in an iPad application, including the keyboard, sounds of keystrikes, even the fonts! But most amazingly, the app is built using Xamarin, and not just for the cross-platform capabilities, since the app is only out for iPad at the moment. Jon just loves C#!
While at NDC London, Carl and Richard talked with Bryan Hunter about the language Elixir. Bryan tells the story of how the folks behind Ruby got interested in Erlang, thinking to bring some of Erlang's features to other languages - but then discovered it was impossible, since Erlang is its own operating system. So instead, they created a new language within Erlang, and that is Elixir. Taking the favorite features of many languages including Ruby, C#, F# and others, Elixir makes for a pleasant programming experience while still having the power of Erlang behind you. Check it out!
While at NDC London at the Excel Center, Carl and Richard talked to Phil Trelford about building your own compiler. First off, why would you do that? Phil talks about the various ways that compiler technology can be used and help improve your own understand of languages and tools. You probably don't need to replace the C# compiler for your applications, but you might want to use parsing technology to provide algorithmic support in your applications. The power of F# is apparent when you start working on compilers, with its amazing pattern matching and parsing capabilities. Phil also mentions some toolsets to make experimenting with compilers easier, check out the show links for more info!
While at NDC London, Carl and Richard talk to Ian Cooper about hexagonal architectures. Turns out the important part is not the six sides - it's the idea of ports and adapters. Originally talked about by Alistair Cockburn, this is an architectural approach that focuses on being tolerant to testing as well as separating commands from querying. It's not quite Command Query Responsibility Segregation (CQRS), but you can see it from there! Ian discusses testing in a hexagonal architecture and how Test Driven Development (TDD) works so well with the separation of concerns that ports and adapters offers. If you're working on a long lived application that needs to be maintainable, you should be looking at hexagonal architecture!
Julie is back and all about the latest version of Entity Framework - version 7! The conversation starts out with a bit of a state of the union, with Julie describing how moving Entity Framework to GitHub has opened up an amazing level of communication between the EF team and regular developers. Which leads to the scarier part of the discussion: The breaking changes coming to EF7 from EF6. Like ASP.NET vNext, EF7 represents a substantial break. But Julie says you shouldn't worry, there are lots of solutions. Oh, and did she mention that they are planning on including support for non-relational (NoSQL) data stores? Really!
Carl and Richard talk to David Božjak about the Lumia Imaging SDK... or is it the Nokia Imaging SDK? Caught in the midst of a name change since the acquisition of Nokia phones, the SDK is called Lumia Imaging on the blog sites, but is still Nokia Imaging on NuGet. Certainly it'll all be Lumia some day. David talks about the huge array of features available in the SDK to take photos, apply filters and effects to them, and then render the images. The conversation digs into how to handle huge images when you have limited memory, so that thumbnails and partial renders keep the memory footprint down, and streamed rendering lets something phone size still render the full image. Cool stuff for your mobile app!
Carl and Richard talk to Rocky Lhotka about where universal apps in Visual Studio are really going. But first, a bit of a landscape discussion, especially a laugh about the "comeback" of .NET and C#. Did Xamarin save the day? Rocky talks about how universal apps aren't all that universal, but with Xamarin in the mix, you start to look at a common code base for desktop, laptop, tablet and mobile development. Almost. Maybe. It's always more complicated than you think! But Rocky is optimistic that things are going the right way, so that everyone can start building cross-platform applications for their customers really soon.
Carl and Richard talk to Itamar Syn-Hershko about adding search technologies to your application. The conversation starts out focused on what SQL Server can do for search... the LIKE operator. What about NoSQL? Itamar talks about the role that data stores like RavenDB can play as far as finding data. But then you get to dedicated indexing and search tools like Lucerne.NET, ElasticSearch and Solr. Itamar talks about the advantages of using these tools in terms of speed of indexing and search, as well as the ability to bring multiple data sources together under a common indexing strategy. How do you do search in your app?
Carl and Richard talk to Jonathan Stark about the wearable landscape today. But first, a crazy story about a Starbucks card. Jon is the guy behind Jonathan's Card, where he put a Starbucks card online for folks to add money to and buy coffee with. Crazy! Next up is a deep dig into the spectrum of watch like devices available today - Samsung Gear, Pebble, the Apple Watch and more! The variety of programming opportunities is just getting bigger.
While at the MVP Summit, Carl and Richard sat down with Pratap Lakshman, Peli de Halleux and Nikolai Tillman to talk about automating unit testing in .NET. Originally a Microsoft Research Project, PEX is now part of Visual Studio 2015, and digs deep into the IL of your application to generate a huge variety of unit tests. The team also talks about some of the other cool projects they've built using the PEX engine, including CodeHunt, a tool using testing to teach you to program. Check out PEX on Microsoft Research, and get ready for Studio 2015!
Carl and Richard talk to Scott Ford about taking over existing software projects. There's lots of negativity around existing code, calling them "brownfield" and "legacy projects." Scott looks at existing projects more like an older home that has been well used, but needs updating. The conversation digs into how to understand not only the code of the existing application, but also the intent of the app - more focus on why things are the way they are, rather than just the how parts. But once you understand the why, there's no reason to stick with old tools and techniques, and Scott talks about using modern tools to quickly take control of an existing codebase and make it more reliable, understandable and sustainable.
Carl and Richard talk to David Dennison about his complete change of development career: From C# and .NET to Scala and the JVM! David talks about getting work at iTrellis, and their move to a services stack of Scala, Akka and Spray. The discussion focuses on the many things that are the same between the platforms, as well as the differences - it's all managed code in the end! David also talks about getting into the mindspace of the new platform he is working in, as well as dealing with entirely new development tools and infrastructure. Could you change platforms if the opportunity arose?
Carl and Richard talk to Greg Shackles about making continuous deployment work in the mobile apps space. The conversation starts out with the projects that Greg is currently working on, and the need to get them deployed routinely to iOS and Android devices - this means, of course, deployment to the AppStore, which only goes so fast. Greg talks about avoiding the AppStores by finding ways to make changes internally, rather than a full deploy. The discussion goes down his preferred toolchain and inserting as much automation as possible - not so much for speed as for repeatability! Check out Greg's talks and slides in the show notes on this subject.
Carl and Richard talk to Roger Johansson about Akka.NET, a library to help you build concurrent and distributed applications. Akka.NET is a port of Akka for Java, and is open source on GitHub. As Roger explains, Akka.NET uses the actor model to create a level of abstraction ideal for building concurrent applications. This is similar to the Orleans Framework from show 969, but with some distinct advantages. The conversation gets into how folks focus on object orientation can struggle with concurrency and Akka.NET solves these problems differently that TPL and reactive extensions.
Carl and Richard talk to Laurent Bugnion about Xamarin Forms. Now that the forms capability has been out for a few months, Laurent digs into the strengths and weaknesses of the approach. The goal of Xamarin forms is to simplify cross-platform mobile development between iOS, Android and Windows Phone. Has it delivered? Laurent focuses in on building one project, but different builds with different bits of code for each device. You can't have one code base run everywhere, nor do you want to - there's still a need for tailoring for each device, but Xamarin Forms makes that smaller and simpler.
Carl and Richard talk to Brian Randell about the latest on Visual Studio Online (VSO). As Brian explains, this isn't about putting Visual Studio itself into the cloud, but rather surrounding your copy of Visual Studio with services in the cloud that make development easier. The conversation goes down the list, starting with source control in general and TFS specifically. One huge advantage of VSO - you don't have to deploy TFS yourself! Beyond source control and task management there are deployment tools and testing, all of which can be run in the cloud, where you're only billed for what you use. This is modern development at it's finest!
While at the NSBConf in Brooklyn, New York, Carl and Richard moderated a panel of Udi Dahan, Ted Neward, Oren Eini and Yves Goeleven about the future of the service bus. And the future is bright! Without much contention, the panel focused in on the advantages of message passing and creating coherent boundaries between application layers to make scaling and management much easier when building large applications. There is also a discussion about rendering the update of components asynchronous, so that not everyone has to be ready to upgrade at the same time - less big bang, more continuous delivery!
Fresh from the keynote at Tech Ed Europe in Barcelona, Jeremy Thake talks to Carl and Richard about the latest announcements around Office 365. The development story in the cloud continues to evolve, and Jeremy talks about the Office 365 APIs going into general availability, along with an Android SDK. The iOS SDK is right behind it, currently in preview and ready for you to start building apps for iPhone and iPad that work with Office 365. The story is huge - new programming models for Exchange and Sharepoint in the cloud mean its easier than ever to create automation and make your company's Office experience even better!
Carl and Richard talk to Jeff Palermo about building new applications without making the mistakes that end up creating legacy projects. The conversation starts out with Jeff describing ClearMeasure, his new organization focused on end-to-end services for his customers - Jeff considers his organization an outsourced IT department, handling development and operations. This leads to the topic of building sustainable applications. Jeff details key steps he takes to make better quality applications, many of which are simple steps like keeping individual code files small, having create source control and a plan for using that source control properly. He also talks about getting the infrastructure right at the beginning so that it's an asset to building software, not a liability. And when it comes to selecting technology for the project, the key measure is the certainty of success. Business software is pretty well understood these days, how do you build it as cost-effectively and reliably as possible?
Kate Gregory is back! Carl and Richard chat with Kate about the state of C++ today. The conversation starts out with a discussion about the recent C++ conference in Redmond that brought the best-and-brightest in the industry together to talk about how C++ is currently being used and how the standards can continue to evolve. Kate talks about the challenges of the language, how it is not typically used for CRUD apps, but rather applications that live on rovers on Mars, in games, in drivers, operating systems and a whole host of diverse platforms. That's what makes C++ amazing, it's everywhere! The discussion continues on how C++ does continue to evolve, adapt the best ideas from other language (looking at you, lambdas!) and today's code is dramatically different from just a few years ago. Check it out!
Carl and Richard talk to Jim Holmes about managing technical debt - while still getting your work done. The conversation starts out talking about what exactly technical debt is... it's not just the code you're afraid of! Jim also digs into the business justification for reducing technical debt, focused on how you can show the cost of your technical debt in the form of tech support or how it slows down the development of new features. Once you've got cycles for mitigating technical debt, how do you go about it? Remember that this was the code you were afraid of in the first place, so tackling it takes time and care to do well. Jim digs into how to split your time between new features (and keep the lights on) as well as retiring the technical debt in your organization. After all, getting too deeply in debt is also a way to turn out the lights on your business - you need a plan to fight back!
While at the NSBCon in Brooklyn, New York, Carl and Richard talk to Udi Dahan about CQRS. CQRS is the acronym for Command and Query Responsibility Segregation. Udi begins the conversation talking a bit about the history of CQRS and how it derived from Bertrand Meyer's work on CQS back in the 80s. The cornerstone of CQRS is a separation between commands (insert/update/delete) and querying in databases - not just relational databases, of course, but certainly the focus is there. The power of the pattern is its ability to handle huge volumes of data in both directions, simplifying application design as the load increases. Great thinking from Udi as usual!
Carl and Richard talk to Lino Tadros about his viewpoint on doing mobile development using the plethora of cross-platform development tools available today. First up - Xamarin's tools for building iOS and Android apps. Windows Phone also makes an appearance, especially with Xamarin Forms. The Xamarin stack continues to evolve and improve, and Lino is pretty impressed. Then it's over to the HTML/JavaScript world of Adobe Cordova, with implementations in Visual Studio as well as the Telerik Platform. Lino talks about its strengths around working beyond even the three top mobile platforms for when you really want to deal with the long tail, but the implementations vary a bit, leading to the ecosystem of plugins to fill in the gaps. Both these approaches work, Lino focuses in on the skillsets needed, and reminds of the reality - there is no cross-platform solution out there that doesn't demand you understand the platforms you're working with.
Carl and Richard talk to Ben Watson about his work around writing high performance .NET code. Ben talks about how the Bing team decided to use .NET code internally, which seems like an obvious choice for a Microsoft group, but it isn't really - when milliseconds count, does .NET makes sense? Ben says it does, and he's done the work to prove it. Ben's book "Writing High Performance .NET Code" focuses not only on coding techniques, but also the larger practice of having a deep understanding of how .NET works, and the processes that take place to turn .NET code into machine code. The conversation also digs deeply into the need for performance measurement, especially Event Tracing for Windows. .NET can be fast when you do it right!
Carl and Richard talk to Kathleen Dollard about her deep dive into Roslyn. The conversation starts out with a great question from a listener about using Roslyn to step into the compiler and understand how syntax trees would look... and what the potential for visualization is. Kathleen talks about her own open source project RoslynDom to help understand what's going on inside of Roslyn. The discussion also gets into some of the cool new capabilities coming in the next version of Visual Studio, and how Microsoft has changed the shipping process entirely - it's not the Studio you once knew!
Carl and Richard chat with Robert Bogue about the adventure that is requirements gathering. The conversation starts out with a sharing of war stories, talking about finding the right people to talk to in order to understand the overall application requirements in general, much less individual specifications. Robert talks a bit about a variety of techniques for requirements gathering, referencing some of the Agile Manifesto in the process, but recognizing that requirements themselves are largely methodology independent - it just takes relentless investigation and a goal of thoroughly understanding the system. Check out Robert's videos on Pluralsight!
Time for some more IoT! Pete Brown checks in with Carl and Richard to talk about Microsoft's continuing announcements in the Internet of Things space. The conversation starts out with a discussion about Pete's work in the music side of things and the Windows 8 API for MIDI - helping musicians use a Windows 8 tablet as the hub of a music system. Then it's on to several important announcements, including the implementation of C# with the Intel Galileo board, and the announcement of two new hardware platforms: SharksCove, which is essentially a tablet-sized prototyping platform and MinnowBoard, a Arduino-sized board running actual Intel hardware and capable of running a full version of Windows and .NET! The hardware is getting amazing, and your .NET skills are even more valuable!
Carl and Richard talk to Bill Wagner about some of the features coming in C# 6.0. The conversation starts with the history - the internal Microsoft project known as Roslyn has become an open source project on Codeplex. Bill runs down a number of cool features coming in C# 6.0, including primary constructors, improvements to Await and more. No idea when the shipping date is, but C# 6.0 is in the Visual Studio 2014 CTPs and is available for download any time you like!
Carl and Richard talk to Daniel Piessens about building continuous delivery solutions. The conversation starts out with an explanation of the differences between continuous integration, deployment, and delivery - and the fact that there are business decisions to deal with there, not just technical decisions! Daniel also digs into the challenges around getting Operations deeply involved in the testing process so that they have control over features as they are developed and can be turned off and on of your canary servers when needed. Lots of cool thinking about the future of software development with DevOps practices.
Carl and Richard talk to Julie Lerman and Steve Smith about the fundamentals of Domain Driven Design (DDD). Julie and Steve have collaborated on a very popular Pluralsight course about DDD that has made the methodology more approachable for more people. The conversation digs into the fact that DDD has been around for more than a decade, but hasn't caught on near as much as it should - and why is that? There's at least one alphabet soup moment: What about DDD, BDD, TDD, PDD, ADDDD and SJDD? Listen to the show for definitions of these acronyms and more!
Carl and Richard chat with Scott Hunter about how Microsoft is working to evolve web development for ASP.NET developers. While the focus of the discussion is on ASP.NET vNext, you can't talk web without also talking cloud, and that means Azure. Scott digs into many of the new features in Azure that can make a web developer's life easier, before digging into ASP.NET vNext. No punches are pulled - vNext represents some breaking changes, especially for web forms developers. But web forms continues to be supported and added to in future versions of ASP.NET, just not at the rate that vNext is capable of. ASP.NET developers? Have a listen!
Carl and Richard talk to Adam Tornhill about his work understanding the psychology of programming. The conversation starts out with some thinking around getting into "the flow," being able to focus effectively on programming. Adam then digs into where bugs come from and the role of complexity in code. He has been studying code repositories to determine where bugs are likely to appear based on the idea that complex code changes more than simple code. The discussion also explores the idea that while coding parallel code is challenging, parallel development is even harder - can you really get multiple people working on the same project at the same time? You think you do, but do you really! Time to study your source tracking system!
Carl and Richard talk to Rocky Lhotka about what it means to build modern apps today. In past shows, Rocky has been pretty frustrated with the native development options and focused primarily on web development with HTML 5 and JavaScript. But things on the native side have gotten better, and Rocky talks about his experiences with Xamarin and the potential of the universal app template in Visual Studio. Could native be making a comeback? Rocky talks about the advantages of the native model with cross-platform development techniques and a sense of an improving future. It's a fun time to be a developer!
Carl and Richard talk to Jason and Brian Kriesel about their work building Amazon Fire Tablet applications. The conversation starts off talking about the differences between the Android world and the Amazon world - they aren't that far apart! The brothers Kriesel talk about what it takes to maintain an application that runs in regular Android tablets and phones as well as the Amazon Fire world - what features Amazon brings to the table and the strengths of their platform and app store. The discussion also digs into the new Amazon Fire Phone and the concerns around the FireFly SDK. There are pluses and minuses to all the platforms!
On the last day of the NDC 2014 Conference in Oslo, Carl and Richard assembled a panel of speakers: Robert Virding, Steve Sanderson, Venkat Subramaniam, and Anthony Eden. The discussion focused initially on the motivations around building software, but ultimately evolved into the best way to build sustainable software. Is the profit motive for software development a good one? What about open source? How do you know when your software is 'done?' How do you decide what features to add and what to leave out or even remove? Great thinking from a remarkable set of minds!
Carl and Richard chat with Paul Stovell, one of the principals behind Octopus Deploy. Octopus Deploy is all about getting your organization to continuous delivery - by automating every step. Paul talks about how the product came to be, from the frustrations he was having with deployment using Word documents and remote desktop. Octopus Deploy is free to download and use for small projects. Once you're addicted to one-button deployment, you can pay for larger projects and teams. And under the hood, it's technologies like PowerSshell that make it all work. This is a great addition to your DevOps toolkit.
Celebrate the millennium with us in this special episode of .NET Rocks! We do a little looking back, a little looking around and a little looking forward. Jason Olson joins us for a mini-show about audio and MIDI in Windows - and an epic giveaway. Mary Jo Foley shares her story of how the world is a better place because of .NET Rocks!, as do you, our listeners! You told us your stories of success, and now it's your turn to shine.
While at NDC, Carl and Richard talk to Michael 'Doc' Norton about his experiences figuring out the right metrics to measure in productivity of a development team. The discussion focuses in on the key issue - that velocity is a dangerous metric. As Doc explains, pushing developers to do more features per sprint creates serious problems. So what measures make sense? Great thinking around what makes people productive, what impairs productivity, and how to do the right things the right way.
While at NDC in Oslo, Carl and Richard talked to Bryan Hunter about his experiences building communities around functional programming. Bryan talks about the transformative moment he had first encountering functional code in the form of an Erlang service. The conversation digs into the thinking around the weaknesses of object orientation, it's motivations and the idea that maybe, today, it is obsolete. Is functional programming really the way? Bryan discusses how communities are forming around functional that are inspiring and forward thinking. Maybe it's time for a change?
While at NDC is Oslo, Carl and Richard talked to Chris Hardy about Xamarin's latest work - Xamarin.Forms. As Chris explains, Xamarin.Forms brings a XAML-like experience to building forms for iOS, Android and Windows Phone. The conversation focuses in on what Xamarin.Forms is best suited for, when you should stick to the standard class based tools for building clients, and what it takes to have 100% code sharing. Is it worth it? Depends! Chris also digs into the role of MVVMCross in Xamarin development as well as Xamarin Test Cloud and University. Cool stuff from the Xamarin team as usual!
Carl and Richard chat with Anthony Eden about his work creating DNSimple and the languages he uses to create awesome. Yeah, the boys fangirl a bit on DNSimple, since they do love it so. But so what? It's a great product and you should use it. Anthony talks about his inspiration for building DNSimple, his experiences working in Erlang to build parts of the server, as well as Google's super-cool language Go. This is what polyglot programming is all about - using the best languages for the job.
Carl and Richard talk to Clemens Vasters about his latest work at Microsoft around making the Internet of Things (IoT). Clemens starts with a definition of IoT, describing massive numbers of devices sharing data seamlessly... and confusing people at the same time. What's an IoT device and what isn't? The conversation digs into the challenges around connectivity, thinking through the architecture and security necessary to deal with huge numbers of occasionally connected devices with data demands - such as cars! The foundations are being laid to bring IoT to life, have you got your head around the ideas?
Carl and Richard chat with Vishwas Lele about the architectural patterns of cloud development. Vishwas talks about how the cloud influences application design, focused on more asynchronous, scalable and flexible messaging focused architecture. While the patterns could be applied to any cloud technology, Microsoft Azure is particularly well-suited to these architectural patterns, providing services that cover each pattern approach for optimal results.
Carl and Richard chat with Jonathan Peppers about his experiences building phone games for different languages and cultures. The conversation starts out talking about Jon's game Draw a Stickman, originally made for the US market. The game was also very popular in China, but as a pirated game. Jon tells the story of how they evolved Draw a Stickman to be a free game with in-game purchases and culturally oriented for China to make it profitable and successful there. Can your game be successful across multiple countries and cultures?
Carl and Richard chat with Brian Randell about the latest version of Team Foundation Server and it's ability to support a DevOps practice in your organization. The conversation starts off with Brian's thoughts on DevOps in general, focusing on automation of deployment and package management. Brian also talks about the role of the cloud in building software fast, as well as the challenges around instrumentation in production. While the tools are still evolving, Microsoft is making some serious strides - you should check them out!
While at DevIntersection in Orlando, Carl and Richard talk to Billy Hollis about WPF. Having established that WPF is not dead a few weeks back at Build, Billy admits that he's never stopped developing for it. His work is all about client applications, and HTML just won't do. The discussion digs deep into user interaction patterns that WPF is strong at and how user interfaces and interactions continue to evolve. Touch is not the end of the road!
Carl and Richard talk to Francesco Balena about migrating VB6 applications to .NET. Yes, that's still happening! With Microsoft ending support for Windows XP in April 2014, folks that have been hanging onto old platforms and applications are taking another look at migrating. Francesco makes an amazing tool called VB Migration Partner that analyzes VB6 apps to identify what parts of an application can be converted into VB.NET (or C#) and what parts need to be rewritten. While migration is never simple, Francesco provides great advice on how to make it possible. Still got some VB6 in your life?
Carl and Richard chat with James Montemagno about his experiences building Xamarin applications. But first, a little history, James first getting involved in mobile development, finding Xamarin, culminating with being hired by Xamarin and going on the road trip with .NET Rocks! James talks about the kinds of apps he's been building using the tools, how he organizes his projects for cross-platform development, what's in his toolbox and what he's adding to the community-at-large to help developers be successful.
Carl and Richard talk to Udi Dahan about the state of NServiceBus. NServiceBus is Udi's on-going development effort to make the development and maintenance of complex, distributed systems easier. The conversation digs into how developers fall into the N+1 trap of adding more and more interactions between different applications until the system becomes unmanageable - or force the interaction to take place at the very back end of the system, like the database, leading to slow interactions and complexity in the database that shouldn't be there. Whether you use NServiceBus or not, Udi's thinking on bus-based application design will open your eyes!
While at DevIntersection in Orlando, Carl and Richard sat down to chat with Zoiner Tejada about his work instrumenting cloud-based web sites. Zoiner talks about using a wide variety of features in Google Analytics to instrument his Azure apps, including going directly to the Analytics APIs to do instrumentation of other kinds of apps, connecting up just about anything that can speak HTTP! The second half of the conversation dives into utilizing this analysis - with a long chat about what a real Minimal Viable Product means and how the Lean Startup principles can be abused. Great conversation from a brilliant guy!
Carl and Richard chat with Richard Astbury about the Microsoft Research project known as Orleans. Orleans brings the Actor model of development to C# - the Actor model is typically found in functional languages, but you can write functional C#, so why not? Richard talks about Orleans being used to run Halo 4, where hundreds of thousands of players connected with each other between hundreds of Azure instances. Orleans was officially released into the wild at Microsoft Build. Looking at scalable software strategies? Take a look at Orleans!
Carl and Richard chat with Nicholas Blumhardt about his work on Serilog, a structured logging tool. But first, the conversation dives a bit into Octopus Deploy, an awesome tool for helping you manage your application packages and help deploy them to testing, pre-production, production, and so on. Then on to the main event - Nicholas' amazing Serilog product. Logging is a pain, and Serilog makes it as painless as possible - one line per log entry, and configuration to write your log anywhere: text files, other logging products, even Event Tracing for Windows!
Carl and Richard talk to Marcel de Vries about CodedUI - the test functionality built into Visual Studio that nobody knows about. CodedUI tests are tests built to automatically operate your UI so that you can test your application top-to-bottom, no short cuts. Marcel talks about how CodedUI tests are actually built using a test recorder and then tweaking the tests to increase coverage. You can build tables of data to use for entry to challenge boundary testing, add additional assertions and validations - it's very clever! If you own Visual Studio 2013, you need to check this out!
Carl and Richard chat with Micheal Learned about modern release management with Visual Studio. The conversation starts like many do when it comes to ALM: what's hard, and what's easy. And let's face it - releasing software properly is often hard! Micheal talks about the various pitfalls that folks fall into around releasing software and how today's environment just won't tolerate those mistakes any more. This leads to a discussion about release pipelines (check out the great doc in the show notes) and Microsoft's acquisition of InRelease by InCycle Software. If you've got an MSDN license, you have to take a look at Release Management! And if you don't, take the trial out for a spin, it's worth it!
Carl and Richard talk to Amber DeRosa and Alicia Hatter about usability testing. The conversation starts out by digging into what usability testing is all about - actually looking at how users are using your software... or perhaps would want to use your software. Amber and Alicia talk about working through usability studies even before the software is built to get a feel for what the user would really like. And while software is being built, routine testing digs deeper into how the software will be used, what users actually like to do with it and how that can affect the final product. The discussion also digs into the dynamic between the developers, QA, project management and usability testing - they all have important roles in building great software!
While at the ModernApps2013 event in Mountain View, California, Carl and Richard got a chance to sit down with David Chappell and get his views on the changing landscape of software and software development. David talks about how applications have evolved into a devices+services model, where parts of the application live in the cloud, and the rest live in the various form factor devices that we all now use. Later the conversation turns to the evolution of Application Lifecycle Management, with concepts like Continuous Delivery and DevOps becoming essential skills for the modern developer. Great thoughts from an awesome thinker in our industry!
Carl and Richard talk to Michael Kennedy about using Python with .NET. Michael talks about the nature of Python and what makes it great (like whitespace counting). The conversation digs into the many forms of Python, some Windows friendly, some not so much, and many with specializations. Don't miss the discussion about the Zen of Python, and check out the huge collection of links for various Python bits!
At NDC-London, Carl and Richard moderated an amazing panel about Web API... panelists included Glenn Block, Darrel Miller, Pedro Felix, Christian Weyer, Dominick Baier and Daniel Roth. What's the future hold for Web API? Is it headed the way of WCF? Can anyone get a word in edgewise around Glenn Block? Some great questions from the audience toward the end of the show as well.
While at NDC in London, Carl and Richard talk to Glenn Block, Justin Rusbatch and Adam Ralph about ScriptCS. Our first show with Glenn on ScriptCS was way back in March 2013, only a week after ScriptCS was first checked into GitHub. Nine months later, where is ScriptCS now? What are people doing with it? Justin talks about his contributions while Adam digs into how he's using ScriptCS in the field. ScriptCS represents some of the awesome potential of Roslyn!
At the St. Louis stop of the #ModernApps2013 road trip, Carl and Richard chatted with Kathleen Dollard about code generation and Roslyn. The conversation starts out talking about the relative acquiescence of code generation in recent years and the potential of Roslyn to rekindle the movement. Kathleen talks about her own efforts with code generation and where she sees this technology ultimately going. Long range thinking from an amazing mind!
While at NDC-London, Carl and Richard sat down with Mark Rendle about building Zud.io, a set of tools for handling storage in the cloud. The conversation starts out with a quick chat about TypeScript and it's role in development. Mark talks about the experience of working with BizSpark Plus to build a web-centric way to programmatically handle blobs, tables, queues and more. Also discussed is building a responsive web design web page that works well with desktops, tablets and phones. Next up for zud.io - series A funding!
Carl and Richard talk to Mads Torgersen about his work on C# and Roslyn. Mads talks about how old the Roslyn CTP has gotten - and how that may change in the future. There's also a hint about a form of Roslyn already seen in the wild (hint - it's CodeLens!). And the conversation gets crazier from there, but it comes down to one thing... is C# in Roslyn, or is Roslyn C#? Have a listen!
While at the Atlanta stop of the ModernApps2013 Road Trip, Carl and Richard talked to Joel Semeniuk about the latest on TFS 2013. Joel talks about how TFS 2013 changes your thinking about source control, requirements planning, work tracking and more. Great conversation about what it means to do 21st century application building!
While at Øredev in Malmö, Sweden, Carl and Richard talk to Scott Barber about testing for performance and in production. Scott discusses his history that leads him to getting involved in making systems more efficient - sometimes that means faster, sometimes it means something else! The conversation digs into the essence of meaningful testing - having a team that has each other's backs when it comes to delivering good quality software. Great thinking about testing, performance and DevOps.
While at Øredev in Malmö, Sweden, Carl and Richard talk to Mads Kristensen about the amazing set of features that have been added for web development in Visual Studio 2013. First up is browser link, a method to automate the connection between your development environment and various browsers being used to test your app while you code. Auto-refresh and more! Mads also talks about Web Essentials and SideWaffle - tools and templates for helping you to build web applications the right way. Visual Studio 2013 is a must have for the web developer!
While at Øredev in Malmö, Sweden, Carl and Richard talk to Patroklos Papapetrou about Sonar. Sonar is an open source project for instrumenting your code quality, looking for various 'deadly sins' of programming, such as duplication, lack of documentation, etc. Patroklos talks about each of the 'deadly sins' and how Sonar can help you make better quality code.
Carl and Richard chat with Matt Wynne about Cucumber, a tool for building requirement statements that are actually testable in your development environment. Matt starts out with a discussion about behavior driven development and how Cucumber evolved as a way to not only capture behaviors effectively but to actually make them part of the testing process using a language called Gerkin (and yeah, the whole show is full of pickle references). Matt also talks about SpecFlow, which is Cucumber for .NET and talks about all the different flavors of Cucumber out in the world. This naturally leads to a discussion about the state of Ruby since Cucumber started there. Great thoughts about how technologies evolve by branching and merging ideas!
Carl and Richard talk to Einar Høst, Jonas Winje and Bjørn Einar Bjartnes about their experiences using Reactive Extensions to control an AR Parrot Drone. The conversation starts out with a discussion on the fundamentals of reactive extensions, the idea of raising events around streams of data, and how that applies to something physical like a drone. Quickly, the core issue becomes time - we think about computing as instantaneous, and real life takes longer than that! A very geeky discussion about a cool way to program in real life.
While at the Belfast stop of the .NET Rocks Ireland Road Trip, Carl and Richard talked to the one-and-only Martin Woodward! Martin discusses the state of Team Foundation Server today and source control in general. The conversation ranges over the evolution of source control, the effects of the internet on creating distributed version control and how Git, SVC, HG and many other version control systems all get along. Great thinking from a guy who's spent years deeply immersed in source control!
While at the Manchester stop of the UK Road Trip, Carl and Richard talked to James Lewis and Matt Collinge about micro service architectures. James served as a consultant from ThoughtWorks to comparethemarket.com where Matt is the lead architect. The conversation started out talking about the challenges that comparethemarket.com had with it's architecture a few years ago - an all too familiar problem of every new feature making the core applications less scalable, less stable and harder to maintain. James and Matt then dig into the process that comparethemarket.com went through to redesign the applications using micro services to simplify and strengthen the applications over time. Great architectural discussion!
Carl and Richard try something new - doing a mob style interview about mob programming! Mob programming takes agile to a new extreme where several people (more than two) work together to write code... resulting in very high quality code! The conversation digs into the actual process of writing code (drivers and navigators), the various roles that participants fall into, how more minds end up with more code reuse, testing, QA and the great sense of connection that comes with mob programming. You gotta try this!
Carl and Richard talk to Todd Anglin from Telerik about cross-platform development for mobile. The conversation focuses on Telerik's Icenium hybrid mobile development solution. Todd announces that Icenium now has a Visual Studio plug-in so that you can do your development in the environment of your choice. This leads to interesting possibilities with KendoUI, another library from Telerik that lets you build mobile web apps with native look-and-feel on different phone platforms - now you can turn them into hybrid apps!
Carl and Richard talk to Andrea Magnorsky and Andrew O'Connor about their experiences building games in .NET. The conversation starts out talking about the role of MonoGame and how Andrea and Andrew switched to Duality to build Honorbound. Andrea talks about working with artists and the need for visual editors that Duality provides. Andrew talks about the loss of XNA and the challenge of being an indie game developer - there are no good homes these days! Lots of discussion about the right way to distribute games. Game development in .NET is real! Make sure you activate your Windows Azure credits in your MSDN Subscription! You could win an Aston Martin!
Carl and Richard talk to Matthew Podwysocki about the latest news around Reactive Extensions. Matthew starts out talking about how Reactive Extensions has moved into open source in a big way, with lots of cross platform support - .NET, JavaScript, C++, Ruby, Python, even Java itself! The conversation digs into the thinking around the reactive approach to development, dealing with massive streams of data and tying event trapping over it. Lots of great thinking about modern development concepts! Make sure you activate your Windows Azure credits in your MSDN Subscription! You could win an Aston Martin!
Carl and Richard talk to Chris May about building applications for the Google Glass. The conversation starts out talking about the fundamental capabilities of Glass, how it works and when/where it makes sense to use - and apparently driving is NOT one of them! While the native programming environment is Android (and locked down for the time being), there is a cloud-centric REST model with programming support for almost anything including .NET! Lots of discussion around wearable computing in general - is this the next iPod or the next Newton? Make sure you activate your Windows Azure credits in your MSDN Subscription! You could win an Aston Martin!
Carl and Richard talk to Eric Boyd about what the power of Netflix Chaos Monkey can do to your cloud application. The conversation digs into the thinking around deep testing for highly available systems - it's not what you think of, it's what you never thought about! Eric digs into the thinking around testing in production (what happens when you're too big to test?) and how the various part of the SimianArmy, including Chaos Monkey, are byproducts of very large scale applications in the cloud. You don't choose Chaos Monkey, Chaos Monkey chooses you! Make sure you activate your Windows Azure credits in your MSDN Subscription! You could win an Aston Martin!
Carl and Richard talk to Chris Williams about building and programming robots - all kinds of robots! After Carl opens with a conversation about the Internet of Things, Chris digs into the cool tiny computers that make it possible, like Arduino and Raspberry Pi. Communicating with small computers takes cleverness too, so don't forget about serial and serial's grown-up cousin USB. From there, the conversation turns to different robots, especially quadcopters. Chris brings up his focus on getting kids more interested in computing - and embracing that they will always think about computing differently than we do! Get out there and change the world!
Carl and Richard talk to Guy Starbuck about his use of Azure Blob Storage as part of his continuous delivery solution. Guy starts out talking about how blob storage was built to handle huge files (like VHDs) but works just fine with small files - and is very cost effective! From there, Guy talks about how he's able to use Blob Storage to place Click-Once applications of his clients for testing purposes, making it easy to include his remote customers in the continuous delivery process. Great way to think about using the cloud for testing!
Carl and Richard talk to Bob Uva about instrumenting production software with New Relic. New Relic works with Ruby, Java, .NET and more, able to instrument applications end-to-end in production. And there's a free version you can use forever - how cool is that? Bob talks about how the instrumentation system works, reporting back to New Relic servers to give you great visualization of what is actually going on in your web application. Listen also for a great digression on engaging kids with programming also - another passion of Bob's. It's time to get instrumented!
Carl and Richard talk to Jeremiah Peschka about implementing Hadoop in the .NET world. Jeremiah starts out the discussion pointing to a blog post he's done on the Basics of Hadoop (check the links) and how the focus of Hadoop is on the cloud - pre-configured Hadoop solutions in the cloud make life easier, but you have to get the data there. Jeremiah digs into the diversity of tools available to work with Hadoop - you can use SQL-like commands, or build your own controlling code in C#. And what about data mining? Big Data is here to stay! Don't forget to activate your MSDN Azure account and be automatically entered to win an Aston Martin V8 Vantage!
Carl and Richard talk to Chris Sells about his experimentation with TypeScript. The conversation starts out with a discussion about the pervasiveness of C# and how the Mono Project brought .NET to a wider audience than just Windows. From there, Chris talks about a variety of languages beyond JavaScript, including TypeScript and others (check out the links). Ultimately the conversation circles back to JavaScript and mobile development, talking about the use of WinJS and the Cordova-derived web-based development solutions including Telerik's Icenium. Great thoughts from one of the best in the industry! Don't forget to activate your MSDN Azure account and be automatically entered to win an Aston Martin V8 Vantage!
Carl and Richard talk to Joe Kuermerle and Alex Papadimoulis about automating deployment as the path to a DevOps world. The conversation starts out talking about the real impact of DevOps, bringing developers and operations folks closer together. A key part of the process is to automate everything you can, including deployment. Part of the conversation is BuildMaster, which is free for up to five seats, providing the glue to get automated deployment working effectively. You need the process and culture to have DevOps make sense, and then good tools can accelerate the process. This is the future of application development! Don't forget to activate your MSDN Azure account and be automatically entered to win an Aston Martin V8 Vantage!
Carl and Richard talk to Chris Riley of Cloudshare about testing applications in the cloud. Chris talks about how the cloud provides a low-cost diversity of environments so that you can iterate more quickly through designs and implementations of code. Even if your organization isn't prepared to put their applications into production in the cloud, taking your testing environment there is possible and palatable! Don't forget to activate your MSDN Azure account and be automatically entered to win an Aston Martin V8 Vantage!
Carl and Richard talk to Cory Fowler from Microsoft about how developers can put together a continuous delivery solution on Azure. The conversation starts out with a discussion about the core concepts of continuous delivery - integrating build and testing together with lots of automation to create a minimum number of manual steps as possible. Cory describes how Azure becomes the environment for development, QA and production, and how the MSDN subscription can help at each step of the way. Lots of tools are discussed, there are many ways to get to this level of automation.
Carl and Richard talk to G. Andrew Duthie about his work with .NET Gadgeteer. The whole concept of .NET Gadgeteer is to make it easy to build small electronic devices without needing to solder anything together AND be able to program in .NET! Andrew talks about his projects, including a hand-controlled helicopter, and his experience building custom modules for .NET Gadgeteer. The conversation explores a bunch of projects, availability of hardware and the vast array of community built hardware available. You need to try this!
While at the Norwegian Developers Conference (NDC) in Oslo last week, Carl and Richard moderated a panel talking about the state of functional programming in mainstream development. The discussion reached back in time to languages like Haskell and Erlang, and looked forward at JavaScript and it's vector to seemingly take over the world. Even if you're not well versed in functional languages, this was a great discussion.
While at NDC, Carl and Richard talk to Jez Humble about Continuous Delivery. Jez discusses the difference between continuous integration and continuous delivery and how nothing matters until your code actually gets to the customer. So no shipping parties until it does! The conversation digs into the overall story of DevOps, how development and operations need to work closer together to continuously deliver value to the customer - which is more about culture and process than it is about tools.
While at NDC, Carl and Richard talked to Scott Guthrie about the latest Azure features including the announcements from TechEd. Scott talks about new support for developers in Azure, including monthly Azure credit for all MSDN subscriptions and per minute billing for developer testing on Azure instances. Even if your app isn't running in the cloud, you can use the cloud to do your testing. The conversation digs into continuous delivery in the cloud - Scott mentions New Relic as an instrumentation package for your production applications to gain deep insight into how your cloud applications are actually being used.
While at the Norwegian Developers Conference, Carl and Richard chatted with Jon Skeet about Async and Parallelism. The conversation starts out with a BKaF on parallel exception handling and a reader comment about F# and parallelism. Jon chimes in on both these subjects, talking about all the challenges around error handling, parallel or otherwise, and he knows (and doesn't know) about F#. Throughout the conversation there are short discussions on his effort to teach his sons programming as well. Great insights from Mr. Skeet!
At DevTeach, Carl and Richard talk to Kate Gregory about smart clients. As Kate says, quoting Don Box, 'they're not dead, they're done.' The conversation digs into WinForms, Silverlight and WPF. They aren't changing much, but they definitely work. Kate talks about the various projects she's working on that depend on smart clients - accessing different processes, specific hardware requirements, etc. It's old developer day!
Carl and Richard talk to Mårten Rånge about Microsoft's Text Template Transformation Toolkit (T4). Don't call it code generation - Mårten talks about how T4 takes away code repetition and keeps you focused on the important stuff. The challenge is learning to build your own maintainable templates. The conversation explores a variety of examples of using T4 effectively for SQL, XAML as well as C# and C++. Mårten has a project on GitHub called T4Include to help you utilize them more effectively. The tooling isn't perfect, but there are alternatives - check it out!
Carl and Richard talk to Hendrik Lösch about his experiences doing testing with Visual Studio 2012. Henrik starts out talking about unit testing, the different approaches with various tools, including mocking, moles and fakes. He talks about how MSTest has substantially improved in Studio 2012, but still needs help in the form of NUnit and/or xUnit.net. The conversation also digs into new generation tools like NCrunch and SpecFlow, rationalizing BDD, TDD and ATDD and ultimately dealing with the social challenges of making testing and quality a core part of your development experience.
Carl and Richard talk to Justin Beckwith about the recently released WebMatrix 3. Justin talks about the vision of keeping web development simple while still having access to all the latest features of the Web. And yes, sites built with WebMatrix can be worked on with Visual Studio as well! The conversation also digs into building mobile web sites and the various modules you can add into WebMatrix to extend functionality including Git integration, LessCSS and more... lots of links!
Carl and Richard talk to David Pitcher, part of Microsoft's internal IT team, about his experiences instrumenting applications. The conversation digs into the application in question, a Windows Phone app for allowing tech support personnel manage tech support problems on the go. Then David discusses the impact of instrumentation on the application in the form of PreEmptive Analytics, a free version of which is included with Visual Studio 2012. David describes how instrumentation has changed the way the team does error handling in general, prioritized features and bug fixes, and in some cases created whole other features to be designed! Instrumentation is a key part of the DevOps movement and it makes software better!
Carl and Richard talk to Amir Rajan about his Oak project on GitHub. Amir discusses his approach to building Single Page Applications (SPA) using an array of open source tools including Rake (from the Ruby stack), nSpec, Canopy, Growl and more. The conversation digs into how C# fits into the equation and how Oak provides the dynamic typing that C# needs to work well in the JavaScript driven world of SPA. Amir also talks about how this development stack works well with different editors since it is file focused for compilation, testing and deployment. There's a little taste of DevOps in this great conversation on modern web development!
Carl and Richard talk to Andreas Hakansson and Steve Robbins about NancyFX. NancyFX is an open source project to provide a lightweight framework for building web applications. Andreas and Steve talk about NancyFX focusing on the Super-Duper-Happy-Path of web development. The conversation also digs into the diversity that NancyFX supports, running in IIS, with ASP.NET (or not), WCF, Azure, OWIN, Umbraco, even Nginx on Ubuntu! Andreas and Steve also dig into how NancyFX handles testing, different view engines, authentication and cryptography. If you're considering WebAPI, you should look at NancyFX also!
Carl and Richard talk to Brian Summers and Dave Harrison of Columbia Sportswear about their work with Team Foundation Server. Brian and Dave discuss how TFS has allowed them to build a common work planning environment for almost all of the developers at Columbia, including .NET, Java and ABAP (SAP) programmers. The conversation dives into how the different teams are able to collaborate, how they've built a service bus based on Biztalk and the future of even more rapid application development with TFS 2012.
Carl and Richard talk to Jeff Fritz about how ASP.NET has evolved over the years. Jeff talks about the continued dominance of Web Forms in relation to MVC and how the different libraries can be used together. In fact, there's ONE ASP.NET, and everything - Web Forms, MVC, Web API, SignalR - all work together. It's a web stack of love!
Carl and Richard talk to Glenn Block about his open source project called ScriptCS. Glenn talks about his inspiration for the project, taking the principles of node.js and applying it to C#, using the RoslynCTP. The conversation digs into the speed at which ScriptCS has taken off - at the time of the recording it had only been around for a week and there were 18 contributors on GitHub! This is the non-subdued version of Glenn Block we all know and love!
At the MVP Summit, Carl and Richard talk to Steve Smith about the Software Craftmanship calendar. While filled with good messages like Separating Concerns and YAGNI, it also has hilarious images of why you should follow these principles. The conversation digs into each of the topics with different ideas and approaches to being successful. A fun Thursday show!
Carl and Richard talk to Brian Noyes about Microsoft's Patterns and Practices Kona Guidance for developing Windows Store Line of Business Apps. The conversation digs into the evolution of 'Prism for WinRT' into Kona and how they are substantially different because Windows Stores are substantially different. Brian digs into specifics about Windows Store apps, like Suspend, Terminate and Resume and its impact on guidance. If you're interested in Windows 8 development, check out The Tablet Show, especially the shows in the links below!
Carl and Richard talk to Martin Woodward about Microsoft's announcement of integrating Git into Visual Studio and TFS. Martin talks about Microsoft's thinking about why and how to add Git support to Visual Studio and TFS. Then the conversation digs into the different configuration options - the Git tools work even in Visual Studio Express! Martin compares the differences of using Git directly from Studio as well as via TFS. It's a cool time to be a Studio programmer!
While at CodeMash, Carl and Richard collected some great stories. First up is Evan Hauck, who digs into CUDAfy, a library on Codeplex that allows you to run C# code (any IL code actually) on your GPU. The second story is about Jessie Shternshus and her company The Improv Effect. Jessie talks about how she uses improv to help teams work together more effectively. Another awesome CodeMash!
While at CodeMash in Sandusky Ohio, Carl and Richard moderated a panel discussion on the death of agile. The panel quickly agrees that agile isn't dead at all - it's become so mainstream that it is discussed less and less. A bigger discussion is what exactly agile is - a topic addressed by audience member Jon Kern, who was part of the group that developed the agile manifesto.
Carl and Richard talk to Thiago Silva and Jeff Hewitt about building applications in Azure. The good? Scaling, deployment and costs. More good - great tools and information from Patterns and Practices. The bad? Getting coherent monitoring together. The conversation digs deep into Azure level monitoring, web level monitoring and application level monitoring. How do you relate the data together? What measurements matter? How do you get to the point where you have a dashboard that shows you the health of your application? Finally, there is the ugly - and it's called licensing. Thiago and Jeff talk about how some license models (like per-machine licensing) just don't work in Azure. Good stuff for getting serious about Azure!
At the inaugural DevIntersection conference in Las Vegas, Carl and Richard hosted a panel to discuss what developers should care about in 2013. The panel of Scott Allen, Kate Gregory, Michele Leroux Bustamante and Woody Pewitt covered a huge spectrum of topics, including web development, client development on multiple platforms, cloud technologies and mobile development. Did we cover everything? Write comments below!
While at the Los Angeles stop of the .NET Rocks! Visual Studio 2012 Launch Road Trip, Carl and Richard sat down with Phil Haack to talk about Git and GitHub. The conversation starts out with a primer on Git itself and its origins as a distributed source control for Linux. Then Phil discusses how GitHub created a more social environment for Git with pull requests and dialog around code. Phil also talks about how GitHub itself operates as a non-hierarchical business and what that means to his work day, his career and his prospects for a raise. A little NuGet sneaks in there too!
While at the Irvine stop of the .NET Rocks! Visual Studio 2012 Launch Road Trip, Carl and Richard chatted with Brian Randell about the DevOps movement and it's application in the Microsoft world. DevOps focuses on the concept of bringing developers and operations together to iterate software more quickly, so that your applications are continuously delivered with continuous feedback and continuous quality. That's a lot of continuity!
While at the Orlando stop of the .NET Rocks! Visual Studio 2012 Launch Road Trip, Carl and Richard stopped at the Better Software conference to have some conversations about fast development cycles. The first conversation is with Jesse Dowdle, who has a web app shipping new versions several times a day, with great visibility into the production environment to get feedback rapidly to developers. The second conversation is with Mathew Bissett, working for the UK Government, who participated in bringing an application that shipped a version every nine months down to 22 weeks, then to 6 weeks, and now daily and looking to go even faster! How fast can development cycles go, and what does it take to speed them up?
While at the Bentonville stop of the .NET Rocks! Visual Studio 2012 Launch Road Trip, Carl and Richard sat down with Matt Nunn to talk about his vision around Modern Apps and the Modern App Lifecycle.
While on the .NET Rocks! Visual Studio 2012 Launch Road Trip stop in Orlando Florida, Carl and Richard stopped into the Better Software conference and interviewed Scott Ambler about his work helping companies implement agile development practices. The conversation starts out talking about the scalability of agile practices, how waterfall is hard to get rid of, and common mistakes that organizations make implementing agile. Scott also digs into the DevOps movement, talking about how all stakeholders in an application, including operations and tech support, need to be part of the process.
While at the Orlando stop of the .NET Rocks! Visual Studio 2012 Launch Road Trip, Carl and Richard talk to Steve Evans about his work instrumenting applications in production. Steve talks about how to understand the log files coming out of Internet Information Server, and how you can analyze the log files to improve the performance of your site.
While at the Better Software show in Orlando during the Road Trip, Carl and Richard talked to Dan North about how development teams can manage uncertainty. Dan talks about how software planning can change to being more discovery based, knowing what is unknown. That process gets people talking and learning from each other and ultimately creates excellent plans.
At the Tallahassee Code Camp stop of the .NET Rocks! Visual Studio 2012 Launch Road Trip, Carl and Richard chatted with Udi Dahan about development practices, architecture and methodology.
While at the Louisville stop of the .NET Rocks! Visual Studio Launch Road Trip, Carl and Richard sat down with Alex Robson to dig deep on what it takes to be a successful polyglot programmer. Alex talks about the characteristics of different languages - not just their syntax, but also their idioms and culture, and how that affects their role in building software. He talks specifically about C#, Javascript (largely in the form of node.js) and Erlang.
While at the Charlotte stop of the .NET Rocks! Visual Studio 2012 Launch Road Trip, Carl and Richard sit down with Rocky Lhotka to talk about his latest incarnation of CSLA. Yes it's true, Rocky has gotten CSLA running on Windows 8 in the Windows Store (formerly known as Metro) mode. Rocky talks through the challenges of making CSLA work - how do you live without reflection? The conversation turns more philosophical about the direction of development as whole. Computing is undergoing a major inflection point!
While at DevReach in Bulgaria, Carl and Richard moderated a panel on architecture with panelists Steve Smith, Miguel Castro and Charles Nurse. The conversation ranged over a broad swath of architecture topics, talking about brownfield and greenfield design, different scales of architectures, the tension between developers and architects, how to do both roles at once, and more!
While at DevReach, Carl and Richard hosted a panel on web performance with panelists Steve Smith, Kent Alstad and Paul Carvalho. The conversation starts with the challenge of good instrumentation, different techniques, and values for measuring performance. The panel also explores load testing, caching and other performance techniques - lots of deep dives into hard concepts!
Carl and Richard talk to Dr. Yngve Falck-Ytter about his efforts to understand programming. Yngve talks about the limitations of the software in the medical industry and how he's learned to work around it with some of his own programming. Ultimately the conversation digs into the idea that good software can make treatments more effective and less expensive and, in the end, save more lives.
Carl and Richard talk to Alex Robson about polyglot programming. Alex talks about various languages including Erlang. He focuses on the idea that different languages have different strength, and trying to function in a monoculture of only one programming language limits your ability to solve problems efficiently. The conversation goes on to talk about the different patterns of development available once you stop thinking about the limits of your language!
Carl and Richard talk to Alan Stevens about leadership in software development. Really, leadership in everything. The conversation digs into the issues of trust, value, play and food being key to success in leading any kind of project. Alan tells some great stories about how to make leadership work. If you're looking to lead, this is a show for you!
Carl and Richard talk to Chris Patterson about MassTransit, an open source enterprise service bus. The conversation starts out talking about service bus in general, how the patterns around a service bus make it easier to build large, multiversion applications with the fewest dependencies possible. Chris sets MassTransit in context with large, expensive service buses like Biztalk. He also digs into some of the other projects he's worked on, including TopShelf (for building Windows services) and Magnum (the mother of all toolkits). The boys also ask Chris about his focus on open source, the advantages and disadvantages around licensing, pricing and support. Amazing smart guy with some awesome code!
Carl and Richard talk to Microsoft tech fellow Brian Harry about Application Lifecycle Management with Visual Studio 2012 and Team Foundation Server. Brian digs into the thinking around the latest version of Microsoft's ALM offering, including the new tools for gathering requirements using storyboards, video, audio and annotations around applications. The conversation also digs into the core 'lather-rinse-repeat' cycle of developers getting work assignments, building and checking in their code. Then onto the amazing new features in testing and providing early look versions of applications for gathering feedback. Finally Brian talks about Team Foundation Services, TFS-in-the-Cloud so to speak, which while not directly tied to Studio 2012, does point to Microsoft's future focus for ALM. A great conversation with a guy at the center of everything ALM at Microsoft!
Carl and Richard talk to Microsoft VP Jason Zander about the release of Visual Studio 2012 and .NET 4.5. Jason addresses many of the key points around building Studio 2012 - the deep integration with Windows 8, how the teams worked together to allow the C++/XAML, C#/XAML and HTML5/WinJS development approaches... even why the Studio 2012 UI looks the way it does! The conversation then jumps to developing for ARM, some time talking about cloud development, even a mention of Sharepoint and Office tools. Great insight from a guy who has been part of .NET since the beginning!
Carl and Richard chat with Julie Lerman about Entity Framework 5. EF5 ships with .NET 4.5 - yep, they broke the number synchronization this time around. Julie explains that the big number change is for a good reason - this is a big update to Entity Framework. The conversation digs into the new features, including performance improvements, enumerations and spatial datatype support. Julie also talks about a huge number of little things that are added to make EF a much more useable project. Has the magic version three happened again at Microsoft?
Carl and Richard talk to Andrew Arnott about DotNetOpenAuth. DotNetOpenAuth is an implementation of OAuth, OpenID and InfoCard technologies is an easy-to-use-package for .NET developers. Andrew talks about the evolution, features and challenges of each of the respective technologies. DotNetOpenAuth is available today and will be bundled with Visual Studio 2012. Get on the identification and authentication bandwagon today!
Carl and Richard talk to Darth Vader, a.k.a. Jon McCoy who shows developers how to hack .NET apps in memory and on disk. This turns into a pretty dark discussion about how challenging it is to secure in depth - infiltration and exfiltration vectors, how protection tools (like anti-virus) are great mechanisms for spreading malware. And according to Jon, .NET is a great tool for hiding malicious code. He talks about how he can modify a .NET application while it is running and use it to manipulate and steal information. Not a happy show!
At NDC in Oslo, Carl and Richard talk to Lucian Wischik about using Async and Await in .NET 4 and 4.5. Lucian talks through some great scenarios of how you can use Async and Await effectively, as well as the mistakes developers can make. Method blocking and Async don't get along! The conversation also explores the differences between asynchronicity and parallelism, they aren't the same thing at all. Get ready for some awesomely lucid thinking about Async and parallelism!
Carl and Richard talk to Bob Martin about where object orientation is going. Bob starts out talking about the fundamentals of where object orientation came from and how it has progressed over the years. The conversation then digs into how hardware has changed - the CPU manufacturers have stopped making faster processors and switched to making more processors. The impact of this change means developers have to write parallel executing code, something that object orientation makes difficult. Bob talks about the resurgence of functional programming as a reaction to the need for parallelism. Has object orientation run its course?
While at the Norwegian Developers Conference in Oslo, Carl and Richard talk to an actual Norwegian! Sondre Bjellås sits down with the boys to talk about building applications in Facebook. The conversation starts off with discussion about oAuth, specifically authenticating with Facebook. Sondre talks about how Facebook provides information back to you as the developer about the users that log into your web site or application - provided the user gives permission. The conversation continues into the different species of Facebook applications you can build, running inside Facebook, separately and using the social graph. A great starting point for getting into Facebook programming!
While at DevTeach, Carl and Richard hosted a panel discussion on development methodology. Panelists James Kovacs, Mario Cardinal, Charles Max Wood and Rob Daigneau explored the state of development methodology today. The discussion roamed over Waterfall, Agile, XP, Lean, Scrum But, Scrum And... and more.
At NDC Carl and Richard talk to Venkat Subramaniam about functional programming. Venkat digs into the idea that functional programming is less about language and more about practice, exploring how C# can build functional code just as well as F#. The conversation also drills into the advantages of functional programming for parallelism and the specific types of business applications that can benefit from this style of programming. Venkat's enthusiasm makes it hard to resist writing everything functional!
While at the Norwegian Developers Conference in Oslo, Norway, Carl and Richard moderated a panel of luminaries from the agile world about the state of the agile today.
Carl and Richard talk to Stephen Toub about how the beta of Studio 11 has impacted parallelism. The conversation starts with a solid discussion about the difference between asynchronous, concurrency and parallelism. From there, Stephen talks about how Studio 11 has matured async and await, largely under the hood, to take advantage of more hardware and better concurrency with no additional code. He mentions the ASync Targeting Pack bringing async and await to Silverlight 5. Finally Stephen talks about some of the new instrumentation in Studio 11 to understand how parallelism is working in your application to assist with debugging and performance. Parallelism is moving forward in Studio 11!
Carl and Richard talk to Stephen Bohlen about architecture. The conversation starts with Stephen's work on spring.net and the relationship between Java and .NET. Then Stephen digs into the evolution of architecture, comparing his experience as a 'real' architect designing buildings to building software. He discusses how using the term software engineer is part of what led to the waterfall approach of software development and how agile is fighting back against the term and behavior.
Carl and Richard talk to Joel Semeniuk about various styles of agile development. The conversation starts with addressing a comment from a listener on dealing with decomposition of user stories so that they fit into sprints and how to manage research spikes. Joel talks about splitting time in sprints between feature building, bug fixing and research. Next the topics of lean and Kanban and how they connect together with agile development. A great refresher on agile practices!
Carl and Richard talk to Beth Massi about the latest incarnation of LightSwitch. In 2011 LightSwitch shipped as a separate install, but the upcoming version of LightSwitch is part of every SKU of Studio 11. Beth talks about how LightSwitch has evolved to be an awesome consumer and creator of data, making it simple to create oData interfaces over anything. The conversation also digs into the role of Silverlight, the evolution of the client and how LightSwitch makes apps in the cloud much simpler.
Carl and Richard talk to Micheal Learned about the new ALM features coming in Visual Studio 11.
Carl and Richard have a discussion with a vegetable. Yeah, that's right, we interviewed a leek named Ricky Leeks. Beyond all the endless puns, is a great conversation about memory management in .NET. Ricky also lets us know about a free e-book on .NET Memory Management you can download from the links in the show. Check it out!
Carl and Richard talk to Bart de Smet about the beta of Reactive Extensions (Rx) Version 2. Currently in beta when the show was recorded, Rx 2.0 works with .NET 4.5, both for desktop and metro, as well as Silverlight 5 and Windows Phone 7.1. Bart talks about how Rx lets you write LINQ expressions over top of events, completely changing the way you think about responding to events. If you're tired of cluttering up your UI code with event handlers or you've got a back end process that needs to deal with millions of incoming events, you owe it to yourself to look at Rx!
While at the Prairie DevCon in Calgary, Carl and Richard chatted with Steve Rogalsky about User Story Mapping. Steve explains how User Story Mapping helps with visualizing beyond a serial list of features into categories of features in the product. The conversation also explores how Kanban, Scrum and other techniques work with User Story Mapping, as well as the struggles of using Microsoft Project.
Carl and Richard talk to Rob Mensching about the WiX Toolset, a popular Open Source project for all your software installation needs. How good is WiX Toolset? Visual Studio uses it for installation of itself! Rob talks about different installation solutions and how he eventually came to develop the WiX Toolset as an XML-centric 'set of sets' hierarchy for managing installations. As Rob says, setup development is development!
Carl and Richard talk to Juan Campa about developing software using XNA. Juan discusses the challenges of building XNA games and shows how his product Gearset makes things simpler. Gearset is available as a Lite edition for free or the Pro edition for $35 USD. The discussion continues into building XNA applications for Windows Phone 7 and what the impact of Windows 8 will be for XNA developers.
Carl and Richard talk to Clemens Vasters about his work on the service bus. These days the service bus is called the Windows Azure Service Bus - part of Azure. Clemens talks about how the service bus makes building reliable applications easier as well as how making the service bus free for a few months has driven traffic up to record levels and the challenges that brought to the team.
Carl and Richard talk to Rob Labbe about the Security Development Lifecycle (SDL). After a quick detour down the SOPA discussion, Rob fills the boys in on how the SDL maps neatly to a regular development lifecycle, just including security every step of the way. Rob also introduces the tools of the SDL, providing support for every step of the development lifecycle, from requirements to design to implementation and verification.
Carl and Richard talk to Troy Hunt about ASP.NET Security. Troy is an advocate of the Open Web Application Security Project (OWASP) and wrote a set of blog post applying the top ten exploits to ASP.NET. Troy walks through all ten exploits and how they apply to ASP.NET. He's also rolled the posts together into a PDF file - have a listen and a read!
Out of Microsoft and off to Telerik, what will Chris Sells say? Chris starts out talking about his last year at Microsoft, working on Javascript in Windows 8, culminating at Build. Now Chris has moved to Telerik, focusing on building controls for the Windows 8 world that developers will love. The conversation ranges over HTML 5, XAML, XBox, Windows Phone 7, Kinect, tablets and more!
Part of a group of shows recorded at DevConnections in November 2011, Carl and Richard talk to Scott Willeke about reporting technologies. The conversation explores the challenges of a widening set of data sources for reporting, including NoSQL. Scott then digs into the issues around embedding reporting solutions into your applications as opposed to web-based reporting. Reporting - love it or hate it, it never goes away!
Carl and Richard start off 2012 remaking a show that was lost at DevConnections, talking to Jim Holmes about testing. After a quick detour to chat about the amazing CodeMash conference that Jim helps run, the conversation dives into why you want to automate your web testing. Jim talks about free tools and pay tools, including Selenium, WatiN and Telerik's Test Automation Studio. Jim mentions a ton of great tools and resources, check out the links!
Carl and Richard talk to the one-and-only Steve McConnell about the evolution of software development practices. The conversation digs into where Microsoft is at these days - Steve has been close to the company for many years. Then Steve talks about his focus on what a good software executive looks like, how they can support their team effectively and be part of the success of the development process. Along the way Steve talks about how Agile fits into his views in Code Complete, scrum practices, continuous integration and more! Great insights from one of the best minds in the business!
Another of the vignette shows from Oredev, Carl and Richard explore topics of communication. Up first is Udi Dahan, discussing his approach to domain driven design, focusing on communicating deeply with the stakeholders and domain experts to thoroughly explore the domain - even around something on the surface that seem simple like the concept of a customer. Next, Jim Benson digs into Kanban, including the idea of personal Kanban, which like the development and manufacturing methodology, focuses on being able to clearly see how much work is in progress and where things are being delayed from completion. Finally, the one-and-only Jon Skeet, talking about how his technical communication skills have evolved from answering thousands of questions on newsgroups and Stack Overflow.
Another set of stories from Oredev, this time around development practices. The first interview is with Dan North, where he discusses how development teams can move beyond just being able to ship software into something he calls hyper-productivity. He talks about teams that ship software twenty times a day! Next up, Jean Tabaka talks about how RallyDev uses Agile practices to make the entire company Agile. At RallyDev every person is involved in planning out the vision of the company quarter to quarter, from developer to executive. Finally, Gary Short digs into the challenges of technical debt - the idea that shortcuts in code increase the cost of development in the long term. Sometimes debt make sense, getting more features shipped in less time. But eventually the debt has to be repaid or the project goes bankrupt, unable to ship new features and ultimately cancelled.
Carl and Richard talk to Alexander Groß about Machine.Specification (MSpec). MSpec was initially developed by Aaron Jensen as a context/specification framework to help construct tests in a more behaviour driven development style. MSpec provides a language for describing the context and requirements of a test that business owners can read. Trying to get your head around test-first? Check out MSpec!
Carl and Richard talk to Juval Lowy about his latest thoughts on software development. As always, Juval has a controversial angle on things. After outlining the problems of current software development approaches, Juval goes on to define a new role in the software development practice, the business architect. While the term is overloaded, the core idea is the ability to model business practices in technology quickly. Has Juval predicted the death of the developer?
Carl and Richard talk to Philip Laureano about Nemerle. Nemerle is a multi-paradigm programming language for .NET. Similar to C#, it goes beyond C# to provide metaprogramming features, allowing you to write code that changes code on the fly. Phil digs deep into the idea that programming languages should change to reflect what we want to do and is not afraid to do the changes himself, rather than wait for Microsoft. Brain twisting? Wait til you listen to the show!
Carl and Richard talk to Greg Philpott about X++, the most popular language you've never heard of. X++ is the programming language for Microsoft Dynamics AX, an Enterprise Resource Planning product formerly known as Navision. Greg digs into how X++ allows programmers to extend Dynamics AX, adding whole new modules as well as customizing behavior in the existing system.
Carl and Richard talk to Guy Smith-Ferrier about the Emotiv EPOC neuroheadset. No really! Mind control for .NET! Guy talks about how the headset is wireless and works with 16 different sensors positioned around the head. The headset is able to detect expressions, head movements, cognitive thoughts and emotions. Guy discusses how the SDK makes it simple to capture the headset data into .NET. Its easy to program, the question is, what would you do?
Carl and Richard talk to Jeremiah Peschka about his project, CorrugatedIron, a .NET library that gives developers the ability to talk to Riak, Basho's highly-available Key-Value store. The conversation starts with understanding Riak, which is based on Amazon's Dynamo white paper for dynamic distributed storage. Along the way the topics of NoSQL as a whole, distributed data storage, load balancing and functional programming are explored.
Carl and Richard took thier recording rig to Tim Huckaby's epic party the night before Steven Sinofsky's keynote at the Microsoft BUILD conference September 13, 2011. They asked the industry insiders to speculate on what they would see. This is an interesting show simply because the veil of secrecy has finally been lifted.
Carl and Richard talk to Jay Schmelzer about LightSwitch. Jay talks about the launch of LightSwitch back on July 26 2011, and the new set of extensions available to help Visual Studio Pro developers support LightSwitch applications. He also reminds us that if you own Visual Studio 2010, you own LightSwitch, so take it out for a spin!
Carl and Richard talk to Kate Gregory about the history of C, culminating in the latest version, C++0x (aka C++ 11). Kate points out that C++ is more popular than ever, no matter what the managed memory folks are saying. The conversation works through the various flavors of C, how the language has continued to evolve, even to the point of doing memory management! Along the way Kate digs into the new features of C++0x, many of which (like lambdas) seem awfully familiar... the conversation ends on a great discussion on massive parallelism. Could C++ solve the parallel problem?
Carl and Richard talk to Loren Goodman from InRule Technologies about rule engines. Loren talks about how rule engines help applications organize rules so that non-developers can modify them. The goal is to reduce maintenance costs for software. The conversation moves over to concepts of complex event processing and how it applies to developing new rules dynamically.
Carl and Richard talk to JD Meier from Microsoft about leading an agile life. JD talks about how he learned to be effective as a product manager at Microsoft, and how that lead to developing the Agile Life book. It may have a developer undertone, but the Agile Life is aimed at everyone.
Carl and Richard talk to Shaun Walker about DotNetNuke. Shaun talks about the release of DotNetNuke 6, offering some substantial changes to DNN, including migrating to C# (from VB.NET). The conversation also digs into the lifestyle of having a dominant community (read: free) edition of your product vs. the commercial edition. Shaun also talks about how web development has evolved since the early days of ASP.NET. And it runs in Windows Azure!
Carl and Richard talk to Cristian Libardo about N2 CMS. N2 CMS is an open source CMS system designed to be very light weight and allow developers to work with editors to build great web sites. Cristian talks about how N2 CMS focuses on strongly typed code to define structure to the web site and only content in databases.
Carl and Richard talk to Geoff Smith and Howard van Rooijen about S#arp architecture. S#arp architecture provides guidance on how to build ASP.NET MVC applications with nHibernate. It follows Eric Evan's Domain Driven Design principles very closely. The conversation also jumped over to StyleCop, the CodePlex project for standardizing code standards and Templify, an open source tool for building T4 templates.
One more show from NDC - a silly one. Late in the conference, Carl and Richard talked to Uncle Bob Martin about professionalism, clean code and the Clojure language. Lots of jokes and giggling in this one - we were all getting a little punchy!
While at the Norwegian Developers Conference in Oslo, Carl and Richard sat down with Dominick Baier to talk about claims-based security. Dominick walks through the entire claims-based security process, separating identity claims from resource claims, how to actually work with active directory in a sensible way and how the whole thing comes together in your code in a way that won't make you cry every time you need to make a change. The time for claims-based security is now!
Carl and Richard talk to Paul Bone about the Mercury Project. Mercury is a logic programming language designed to natually execute in parallel without requiring the programmer to understand much about parallelism. Get ready for some brain-twisting - this sort of programming is quite different from what you're use to!
While at DevTeach in Montreal, Carl and Richard sat down with a panel of mobile development experts to talk about where mobile development is at. The development process for iPhone, Android, Blackberry and Windows Phone 7 was explored. The conversation also dug into the potential of MonoTouch and Mono for Android, alternative ways of building applications for iPhone and Android respectively. Finally, the debate dug into HTML 5 and the dream of building an application once that runs on all platforms.
While at Tech Ed US in Atlanta, Carl and Richard talked to a variety of folks about the work they're doing in .NET. First up was Geert van de Horrik, talking about the Catel MVVM framework. Then Miguel Castro talked about MVVM. We also caught up with Stephen Rose who discussed Windows InTune. And finally, Tod Anglin from Telerik talked a bit about HTML 5. These are the stories from Tech Ed!
Ignoring the unusual show number, Steve Smith talks to Carl and Richard about his experiences tuning ASP.NET for better performance. Steve tells three different stories from different eras of web development, also digging into situations where he's made mistakes, where he's found mistakes, and when he wished he'd called Microsoft tech support sooner. Don't let the number scare you, this is a great show!
Carl and Richard talk to Brian Lagunas about the Extended WPF Toolkit. The Extended WPF Toolkit goes beyond Microsoft's WPF Toolkit to add even more controls for WPF. Since September 2010, Brian has been adding controls to the library, as of April 2011 he's up to 21 controls!
Carl and Richard talk to Koen Zwikstra. Koen is the author of Silverlight Spy, a tool for inspecting the run time of a Silverlight application in browser, out-of-browser and even in Windows Phone 7. Think of it as Reflector or View Source for Silverlight!
Richard caught up with Glenn Block at Mix 2011 to find out what he's been working on since the MEF days. After a quick tour down memory lane about MEF and Brad Abrams, Glenn discusses WCF Web APIs. The Web APIs focus WCF onto pure HTTP, making it easier to build RESTful applications while not requiring your applications to use REST. WCF Web APIs are all about creating HTTP clients and servers that do not have to be browsers and web servers, opening HTTP to a whole new world of devices and simplifying testing of your HTTP applications.
While Richard is climbing a mountain in Nepal, Carl talks to the US regional winners of Imagine Cup 2011.
While at Mix 2011, Richard talked to Billy Hollis about XAML development. Billy talks about the balance between WPF and Silverlight work, how he chooses which approach to use. The conversation also digs into steering clear of the 'One Right Way' mindset, and how right now is a great time to be ready to experiment with new technologies - XAML, touch and even gesture.
Carl and Richard talk to Remi Caron about his project utilizing Enterprise Service Bus architecture to connect a huge number of applications together. Remi talks about using Microsoft Biztalk with the Enterprise Service Bus Toolkit to create a consistent mechanism for having different applications 'report-up' to a common infrastructure.
Carl and Richard talk to Brian Noyes about Prism 4. Prism is a combination of guidance and tooling from the Patterns and Practices team at Microsoft to help build WPF and Silverlight based applications. Brian digs into why Prism exists and what has been added to the latest version of Prism to work with Visual Studio 2010, Silverlight 4 and WPF 4. There's also a version for Windows Phone 7!
Carl and Richard talk to Luca Passani about WURFL. WURFL stands for Wireless Universal Resource File. Originally, WURFL was an XML file containing the device capabilities of a huge variety of mobile devices. Today its available in a variety of database formats, including formats friendly to .NET.
Recorded in front of the DevConnection audience in Orlando, Carl and Richard talk to Brian Randell about virtualization. Brian also digs into Virtual Lab Manager, the extensions to Visual Studio 2010 that help testers capture tests that fail and communicate them effectively to developers.
Carl and Richard talk to Oren Eini, aka Ayende Rahein, about RavenDB. RavenDB is a NoSQL JSON document database. Oren explains how he came to the realization that he needed to build his own data store, and the advantages of document databases over relational databases. Is SQL dead? Not hardly, but RavenDB is an interesting addition to your data solution!
Recorded on PI day, Carl and Richard talk to the one-and-only Eric Lippert from the C# Compiler team. But we don't only talk about C#! The conversation wanders around all the languages, a little F#, a little IronPython, heck, even VB.NET! Eric talks about Project Roslyn, Microsoft's efforts to make the C# compiler available as a service. A little artificial intelligence, a little parallelism, and you've got one brain twisting show!
Carl and Richard talk to Adam Driscoll of Quest Software. The conversation starts with a discussion around Adam's TFS plugin for Android. Then it moves into PowerGUI and the PowerGUI extensions for Visual Studio. PowerGUI is a UI for writing PowerShell scripts and PowerGUI VSX ties PowerGUI into Studio. Adam talks about applications can be built to be PowerShell driven with UI over top to generate the PowerShell commands.
Carl and Richard talk to Jonathan Snook about Cascading Style Sheets (CSS). Jon is a designer and developer, which makes him a rare creature indeed. He talks about the history and role of CSS in web development and how CSS3 makes significant strides in equalizing design and layout between browsers.
Carl and Richard talk to Scott Millett about SpecFlow, a free tool to help you implement Behaviour Driven Design. SpecFlow lets you build plain text requirements that actually connect with code and tests to help reinforce acceptance testing. The conversation also wanders over design patterns in general and ASP.NET specifically. Scott also talks through the various free tools he uses together to build better software.
Carl and Richard talk to Kent Alstad about the state of Javascript today. Kent admits that he has fallen in love with Javascript of late, that the newest browsers make Javascript incredibly fast and powerful. The conversation digs into how to keep Javascript fast, which is primarily focused on downloading the right bytes at the right time - when in doubt, delay! Kent is down in the nitty gritty of web site performance, his insight on what to do to make things go faster will blow your mind.
Carl and Richard talk to Mark Miller and Seth Juarez about their crazy experiments with Kinect. The boys discuss how they are building an interface with Kinect to do programming with Visual Studio 2010. A large part of this conversation ends up diving deep into the relative merits of machine learning in systems. Are we crossing the streams? You bet!
Carl and Richard talk to Gael Fraiteur about the state of PostSharp and Aspect Oriented Programming (AOP). Gael talks about the advantage of AOP, modifying applications without changing source code by using post-compilation techniques. He digs into different examples of using AOP to add features without burying business code in the plumbing. Finally Gael talks about the evolution of PostSharp into community and retail versions and what is coming in version 2.1.
Carl and Richard talk to Udi Dahan about Command-Query Responsibility Segregation (CQRS). CQRS is an enterprise application pattern derived from the DDD movement, where responsibility for data integrity and consistency lies soley in the application itself. The conversation digs deeply into using caching intelligently - not just create and expire, but actual maintenance of caching with a publication approach. Udi is the software simplist and makes this potentially confusing pattern absolutely clear!
Carl and Richard talk to Rob Eisenberg about Caliburn.Micro, a MVVM framework available on Codeplex. Caliburn.Micro takes Convention-over-Configuration further, utilizing naming conventions to handle a large number of data binding, validation and other action-based characteristics in your app.
Carl and Richard talk to Josh Holmes about Microsoft's Web Matrix! Josh keynoted the launch of WebMatrix at CodeMash in January 2011. Web Matrix brings together great installer technologies with some of the latest Microsoft web application technologies to make it dirt simple to deploy and maintain web sites. The tool is free and the projects you make can be maintained with Studio Express or full blown Visual Studio. Enter the WebMatrix! You'll be glad you did.
Carl and Richard talk to Michael Doc Norton about how developers can grow their career. The conversation dives deep into techniques and approaches to practice in development, comparing it to music and katas. The reference sharpen the saw comes from Stephen Covey, and focuses on the idea of practice independent of work.
Carl and Richard talk to Stephen Toub from Microsoft about parallel development. Stephen digs into the Async-CTP, released in October 2010, to provide asynchronous keywords Async and Await. The conversation also digs into what's coming next in the parallel space from the team.
Carl and Richard participated in a panel discussion at Codemash 2011 on January 12, 2011 alongside the hosts of the popular Java Posse podcast. The discussion was moderated by Barry Hawkins. They talked about the differences and similarities between the Java and .NET ecosystems, the origins of their podcast (and ours), and more. Even if you're not a Java developer this is great stuff.
Carl and Richard talk to Joel Semeniuk about the state of Team Foundation Server (TFS) today. Joel digs into how TFS has moved into the cloud and is reaching a larger span of developers. The conversation digs into how to split the work of development up between cloud and premise - source code on the cloud, builds locally, etc.
While at CodeMash, Carl and Richard talk to Phil Japikse about Behaviour Driven Developement. Phil has been doing TDD and BDD for years and has an interesting take on how to be successful with the process - primarily getting over the 'blank slate syndrome.'
Carl and Richard talk to Boris Scheiman about nKinect, a codeplex project to bring Kinect to .NET! Boris talks about what it takes to make nKinect work and the new features that are coming, while Carl and Richard geek out on the possibilities. Minority Report is here!
Carl and Richard talk to Gus Issa from GHI Electronics, a company that makes small programmable boards, devices, controllers, and sensors that use the .NET Micro Framework to allow Visual Studio developers to program smart hardware devices.
Carl, Richard and Mark Miller chat about events that occurred in 2010 that affect the .NET world. From C# to F#, Studio to Lightswitch, Windows Phone 7 to Kinect. What a great year!
Carl and Richard talk to Eric Falsken of db4o. db4o is an open source object database for Java and .NET. Object databases have been around since the 1980s, but recently have become part of the NoSQL movement. Eric discusses the NoSQL movement in general and how various products fit into the ecosystem, including db4o.
Carl and Richard talk to Miguel de Icaza about MonoMac and rest the of the Mono universe. MonoMac is a set of tools to let .NET developers build applications for the Mac using the Mac UI elements in Cocoa.
Carl and Richard talk to Shawn Wildermuth about Silverlight, Windows Phone 7, HTML 5, oData and more! Yes, a lot of topics, but it all holds together on how people are going to build applications in the future, for the desktop, the web and the phones.
Carl and Richard talk to John Waters and Walt Ritscher about the data access technologies available to work with Silverlight. The conversation wanders over all of XAML, including WPF and Windows Phone 7.
Carl and Richard talk to Martin Woodward about Team Foundation Server being used for more than just .NET development. Martin used to work for Teamprise until the technology was acquired by Microsoft in 2009 and he made the transition from being an MVP to being a 'blue badge'. The conversation ranges over the new features of TFS 2010, how Java developers can also use TFS, the effects of different process templates in TFS, and more!
This show is a collection of interviews with the keynote speakers at Oredev. First up is a conversation with Dr. Jeff Norris from NASA, who's keynote focused on the agility shown by folks like Alexander Graham Bell. Next, John Seddon talks about maturing management techniques to get management out of the way of productivity. Finally, Nolan Bushnell, the founder of Atari and Chuck E Cheese, talks about the future of education. Three amazing luminaries in one show!
Carl and Richard talk to Jon Skeet and Bill Wagner about C#. Both Jon and Bill have published books on C# and have reach each other's work. But C# is such a vast language, there are plenty of things that are subject to interpretation. We could have called this show a C# Smackdown, but these guys are too nice for such a thing!
While at DevConnections in Las Vegas, Carl and Richard talk to Tim Huckaby about his new company, turning the great innovations from Interknowlogy into products. Tim digs into his favorite NUI topics, as well as exploring the differences between services and product companies.
While at DevReach 2010 in Bulgaria, Carl and Richard talk to Scott Stanfield, Stephen Forte and Lino Tadros about the working relationship between developers and designers. The conversation explores a number of platforms, including iPhone, Android, Windows Phone 7, Blackberry, Silverlight, Flash and more.
While at DevCon in London, Carl and Richard hosted a discussion with guests Ted Neward and Dierk Konig about the differences and similarities between .NET and the JVM. The discussion ranges over the different languages that are implemented against the platform, how the ownership model of the platforms differs and how that impacts the evolution, right down to how to make the two platforms work and play well with each other.
From the .NET Rocks Live Weekend, Carl and Richard talk to Rocky Lhotka. What else is there to say?
From the .NET Rocks Live Weekend, Carl and Richard talk to Brian Randell about his work with TFS and Hyper-V. The conversation digs into testing infrastructure using Hyper-V.
While Carl and Richard were at Tech Ed New Zealand, Richard moderated a panel discussion on the future of web applications.
Carl and Richard talk to Steve Evans during the .NET Rocks Live Weekend. Steve and Richard totally geek out on living in the space between development and infrastructure.
Holy cow, it's show 600! Carl and Richard look back on memorable moments from the last 100 shows.
While at TechDays Vancouver, Carl and Richard talk to Mark Relph from the Microsoft Windows team about building Windows applications.
From the .NET Rocks Live Weekend, Carl and Richard talk to Billy Hollis. Billy was last on the show during the .NET Rocks Road Trip, and it seems like the conversation just picked up from there...
In the first of a two-part series on the Windows Phone, Carl and Richard talk to developers in the field currently building Windows Phone 7 apps. A talk with Brandon Watson from the WP7 team kicks it off.
From the .NET Rocks Live Weekend, Carl and Richard talk to Charles Petzold about the old days of development and the new days - Charles is focused on WPF, Silverlight and Windows Phone 7.
From the .NET Rocks Live Weekend, Carl and Richard catch up with Rob Howard. Rob talks about how Telligent has changed and their new focus on a different customer base that has significantly refocused their product development efforts toward social media.
While at Tech Ed Australia, Carl and Richard did a variety of interviews with speakers and attendees.
A show from the .NET Rocks Live Weekend, Brian Noyes talks about what's coming up in the latest incarnation of Prism.
During the .NET Rocks Live Weekend, Carl and Richard talked to Glenn Block - discovering he was no longer with the MEF team, but was still a MEF head.
Carl and Richard talk to Seth Juarez on his work with Machine Learning algorithms. Seth breaks it down into a simple process.
Clemens Vasters catches up with Carl and Richard at the Norwegian Developer's Conference to talk about the Service Bus, which Clemens is working on at Microsoft.
Daniel Simmons from Microsoft joins Carl and Richard on the DNR Live Weekend for an hour of Entity Framework goodness.
Kevin Hazzard talks about Code Contracts, which grew out of Spec# and now exists in the .NET Framework 4.0. He also gives us his take on F#.
Jackson Harper from the Mono team and Chris Hardy, an ASPInsider talk to Carl and Richard about the state of Mono, Moonlight, and Monotouch, which Chris swears is not dead.
Jon von Gillern talks about his passion for coding, which has culminated in two unique code analysis products: Nitriq and Atomiq.
Steve Milroy talks about the Silverlight 4 application his company, Onterra Systems, developed to track the DotNetMobile in real time as Carl and Richard drove across Ameria on the .NET Rocks! Visual Studio 2010 Road Trip in April, 2010.
David Miller talks to Carl and Richard about Clojure-CLR, a .NET implementation of the Clojure language.
Brian Harry talks about his experiences at Microsoft on the Visual Source Safe team and the TFS team, and his favorite new ALM (Application Lifecycle Management) features of Visual Studio.
Ivar Jacobson comes back to .NET Rocks, this time as a special guest on the Road Trip. He talks about Microsoft's re-embrace of UML, his work on Software Engineering Method And Theory (SEMAT), and tells a few Bill Gates stories as well.
Chris Sells joins Carl and Richard on the Road Trip at Microsoft in Cambridge, Massachusetts. Chris is working on guidance for when to use what Microsoft Technologies in the data stack: OData, EF, RIA Services, et al.
Rocky and Jay talk with Carl and Richard about the Visual Studio designer experience: XAML vs Cider, as well as ruminations on Silverlight and WPF.
Kate Gregory talks about programming for Windows 7. As well, we have a discussion about the lack of real-world preparation in University for software developers.
Carl and Richard catch up with MLB in Dallas. We find out what she's up to. An interesting question asked: What was the most challenging system you ever had to architect? And yes, of course she tells a joke at the end!
Carl and Richard talk to Dustin Campbell from the Visual Studio team about his work in Language UI and Intellisense. He also talks about his experiences with Mark Miller at Developer Express, and shows off his jazz guitar chops.
Richard and Carl talk to Alan Griver, Beth Massi, and Tim Heuer in front of a live audience on the 5th stop of the .NET Rocks! Visual Studio 2010 Road Trip in Phoenix, AZ.
Carl and Richard talk to Billy Hollis in San Diego on the third stop of the road trip. Billy always has something interesting to talk about.
Carl and Richard talk to Dan Fernandez about Channel 9, online community, Visual Studio Express, and more on the second stop of our Road Trip!
Phil Haack was our guest on the first Road Trip show! We talked about shipping VS2010, ASP.NET MVC, and Phil told us how he got into the business.
Carl and Richard talk to Anders Hejlsberg about languages, LINQ internals, high-levels of abstraction, VB, and a few other goodies. Not to be missed!
Lino Tadros of Borland and Falafel Software fame takes us back to when he worked for Anders Hejlsberg at Borland. Good stories from an old-school geek!
Christian Weyer and Ingo Rammer from Thinktecture talk with Carl and Richard about programming iPhone applications with MonoTouch, an open source iPhone development tool based on Mono.
Carl and Richard talk to Gabriel Torok and Joe Kuemerle about what it takes to really know what's going on in your enterprise in real time.
Carl and Richard talk to Daniel Norwood and Daniel Wood (I know) from Quest Software, makers of Toad - data tools for Oracle. Now providing Toad Extention for Visual Studio .NET, bringing all of the Datadude features of Visual Studio to Oracle developers.
Carl and Richard talk to Dave Mendlen and Sam Gazitt from Microsoft about the launch event April 12-14, 2010 at the Bellagio in Las Vegas where .NET 4.0 and Visual Studio 2010 will be officially launched.
Joel is back to talk about how small development teams can best utilize Team Foundation Server.
Richard and Carl talk to Kent Brown and Ed Pinto about the new features of WCF (Windows Communication Foundation) 4.0, which will be released April 12, 2010.
Juval is back to talk to Carl and Richard. They get to the bottom of his "Every Object Should be a WCF Service" argument, and get his insights into the current state of .NET development.
What's new in the CLR? Jason Olson goes through some of the most important new features.
Carl and Richard talk to the father of UML and the Unified Process, Ivar Jacobson. He recently put forth the Essential Unified Process (EssUp). Not to be missed.
Michael Learned from Microsoft Premier Field Engineering dives deep into Team Foundation Server.
Carl and Richard interview seven contestants in the My .NET Story contest. Enter a story about your .NET application online at www.mydotnetstory.com. The winner gets either a trip to the Galopagos Islands or a Smart Car.
Carl and Richard talk to Chris Bowen of Microsoft and Michael Cummings of Magenic on using XNA to develop games and applications for the PC, XBox and Zune.
I know! We can't believe it either. We went back over the last 100 shows and cherry picked a few of our favorite segments. Thank you for your continued support!
Lev Novik talks to Carl and Richard about the Sync Framework, a comprehensive synchronization platform that enables collaboration and offline access for applications, services, and devices with support for any data type, any data store, any transfer protocol, and any network topology.
Carl and Richard catch up with Chris Sells at DevReach in Sofia, Bulgaria a couple weeks ago. Chris is all about Data Dude, the Visual Studio edition for Database Professionals. Great show on all counts.
Doug Seven talks to the boys about Visual Studio 2010. In particular, pricing, features, and the launch.
Francesco Balena talks about his groundbreaking work in migrating VB6 applications to VB.NET
Mark Miller and Billy Hollis go head to head on User Interface. The conversation ranges from WPF and Silverlight to Visual Studio and Blend to whatever else they felt like talking about...
Software Transactional Memory (shipping as part of .NET 4.0) represents the next generation in writing code that utilizes multiple cores. The best part is, the code gets much more simple!
Steven Borg talks about his experiences delivering solutions with Microsoft Team System, with a special focus on automated builds.
Carl and Richard talk to Leon Gersing about his love affair with Ruby, which he so elequently spoke of as an audience member at DevLink in Nashville (show #476).
Today's show is a previously recorded conversation with Martin Woodward about Team System.
Ben Hall and Jeff McWherter talk with Carl and Richard about testing ASP.NET applications.
Chris Menegay is back to talk about using Team Foundation Server for ALM (Application Lifecycle Management).
Joel Semeniuk is back to catch us up on Visual Studio Team System. Problems solved and features yet to come.
Emre Kiciman and Mark Friedman talk about bringing AjaxView to Visual Studio. Emre previously talked about AjaxView on .NET Rocks when it was a Microsoft Research project to enable developers to profile the behavior of JavaScript on the browser. Since then, AjaxView has been developed as the Microsoft Visual Studio AJAX Profiling Extensions. Mark as part of the Studio team focused on making AjaxView work in Studio. The conversation not only digs into what AjaxView can do for a developer, but the challenges of bringing a research project to the mainstream.
Ananth B talks about Brahma, an open-source library written for the .NET 3.5 framework (in C# 3.0), to provide high level access to parallel streaming computations on a variety of processors.
Carl and Richard talk to Roman Schindlauer on Complex Event Processing (CEP) and Microsoft's Platform for CEP using SQL Server.
Scott Ambler from IBM talks about the Agile Process Maturity Model, which defines three levels of Agile methodology.
TweetSharp is a .NET library for developing Twitter applications. Yeah, that's what I thought too until we talked to these guys! You'll want it.
Peter Vogel talks about code generation pros, cons, technologies, and strategies from Visual Studio to T4
The .NET dudes talk to Nicholas Blumhardt about Autofac, an IoC container that uses lambda expressions in C# 3.0 to create components.
Attack of the Canadians!! In this show Kate gets hardcore, talking about C++, VC10, the Vista Bridge, and a few other technical gems.
Patrick Hynds (our first guest) is back to talk about his experiences and research on why software projects fail. New statistics show that even with agile methodologies such as Test-Driven-Development, most software projects still fail.
Carl and Richard talk with Kathleen Dollard about MEF, the future of development, and more.
Carl and Richard talk to Tess Ferrandez about her experiences as an escalation engineer at Microsoft, focusing on debugging and memory management.
Rob Boucher talks about a very helpful (and free!) application architecture guide contributed to by the who's who in the .NET Community, both inside and outside of Microsoft. You'll pick up some great tips. Writers: J.D. Meier (Project Lead), Alex Homer, David Hill, Jason Taylor, Prashant Bansode, Lonnie Wall, Rob Boucher Jr., Akshay Bogawat, Praveen Rangarajan (Test), and Dennis Rea (Edit).
Lee Zuckett from Microsoft talks about the Microsoft Customer Care Framework, which helps companies create valuable customer relationships by improving the customer experience across all interaction channels -phone, e-mail, chat, and web-bringing together disparate information from different applications into one view, without having to re-enter the same information.
The always-thoughtful Brian Noyes shares his thoughts on the state of WPF, Silverlight, WF, and WCF.
Bryan Wilhite talks about his open-source projects, and his experiences in the trenches as a .NET developer. Great stories!
Aslam Khan tells us his thoughts on good software design, focusing on the domain, resisting prototypes and big design up front. He also shares his thoughts about Software as a Service.
Mark Dunn joins Carl and Richard to review some of the interviews he did at TechEd EMEA in Barcelona, Spain in November, 2008. On board are Bob Beauchemin, John Flanders, Pat Helland, Richard Pawson, and Jay Roxe.
Carl and Richard catch up with Bob Martin at Oredev in Malmo, Sweden. Topics range from debugging to software quality. Great show.
James Whittaker brings a practical approach to testing, and his viewpoint may surprise you.
Anthony Cangialosi and Rico Mariani talk with Richard and Carl about Visual Studio Extensibility and the VS Ecosystem, and a little bit about IdeaBlade.
Oren Eini spoke to Carl and Richard at 0redev in Malmo, Sweden in November about the latest version of Rhino Mocks, Oren's mocking framework. Oren also talks about mocking in General.
Carl and Richard talk to author and developer Jon Skeet about his work with C# and Java at Google and elsewhere.
Carl and Richard talk to Steve Teixeira, Product Unit Manager for the Parallel Development Tools team within Developer Division's Parallel Computing Platform organzation at Microsoft. The conversation is mostly around the future of parallel computing highlighting offerings that Microsoft is currently working on.
Carl and Richard talk with David Aiken about how developers can work more productively with IT professionals.
Carl and Richard talk to Tomas Petricek about Phalanger, a managed code PHP language compiler, as well as his thoughts on F# Web Tools, a toolkit which lets you write both client-side and server-side code at the same time, and the client gets converted to JavaScript.
Carl and Richard talk to Windows veterans Tim Sneath and Ian Ellison-Taylor about the olden days of Windows, how it has evolved, and how it may look in the future from a developer perspective.
Vishwas Lele talks about thinking of Microsoft Office Sharepoint Server as an application platform for .NET development. With all of the power and flexibility of MOSS, it can no longer be categorized simply as a web portal.
In the last of the content from TechEd 2007 Carl and Richard host a panel on Identity issues with Ani Babaian, Michele Leroux Bustamante, Scott Golightly, and Richard Turner.
Rustan Leino discusses with Carl and Richard the features and functionality of the Spec # programming language.
Jack Greenfield talks about software factories, or software that builds software. The conceptual and practical aspects of the future of software development, and implications for developers are discussed.
Rocky Lhotka talks about his new book, the CSLA framework, and makes the case for business objects in this world of DataSets and XML. He also talked a bit about WhiteHorse, Microsoft's new designers for SOA and classes shipping in the Whidbey timeframe. This was a great show, and we're always glad to talk to Rocky about all things .NET.
Carl and Mark talk to Robert about the new Visual Studio Tools for Office, VBA, XML, Office and DataSets, Scripting, and using Word and Excel as the User Interface layer for your .NET framework applications.
Robert also talks about some features of up-coming versions of these tools in the Whidbey timeframe. This is great stuff!
This, our second show was recorded live from the Microsoft Offices in Waltham, MA at the montly meeting of the .NET User Group of Greater Boston.
Carl and Mark interview Daniel Appleman of Desaware, Inc. Dan shares his insights into .NET and offers advice to shops looking at moving to .NET. Topics include Interop, obfuscators, assemblies and memory, performance, C# vs VB.NET, State Machines, and more.