Modernize .NET Apps: AI, Cloud, and Testing Accelerate Migration
AI-Powered Migration plus Raw Experience with Mike Rousos
Resources
Books
- "The Pragmatic Programmer" by Andrew Hunt and David Thomas - This book is a foundational text for developers, offering timeless advice on software development practices and mindset.
Videos & Documentaries
- "Azure Migrate Application and Code Assessment" - This is a static analysis tool mentioned as an older method for identifying .NET APIs that might behave differently in an Azure PaaS environment.
Research & Studies
- "Paper on AI for Software Engineering" (Mark Grusinovitch) - A paper discussed that explores the implications of AI for the software engineering discipline, particularly regarding early-career professionals.
Tools & Software
- Tuple - A screen sharing and remote pair programming application designed specifically for developers, offering features like one-click annotation and shared control.
- GitHub Copilot - An AI pair programmer that assists developers with various tasks, including code generation, understanding complex reports, and suggesting alternatives.
- GitHub Copilot Chat - A feature within GitHub Copilot that allows for interactive conversations and problem-solving within the code editor.
- GitHub Copilot at Modernization Tool - A tool that helps upgrade .NET applications between versions and prepares them for Azure, integrating with GitHub Copilot.
- Azure Migrate Application and Code Assessment - A static analysis tool used to identify .NET APIs that may behave differently in an Azure PaaS environment.
- Playwright - A tool mentioned for recording user interactions to help generate tests.
- IIS Rewrite XML - An XML file used for configuring URL rewriting rules in IIS.
- .NET Migrate Command Line Tool - A command-line tool for migrating .NET projects.
- Roslyn Analyzers - Tools that analyze C# code and provide feedback, often used in .NET development.
- .NET Upgrade Assistant - A tool that assists in upgrading .NET applications.
- Manfred's X to Y Dependency Transformation - A process or template developed by an engineer named Manfred to codify best practices for effective code transformation with Copilot.
Articles & Papers
- "Stephen Toub's Giant Super Long Blog" - A series of blog posts by Stephen Toub discussing performance improvements in .NET.
People Mentioned
- Johnny Marler (Tuple) - Representative from Tuple, discussing the benefits of their screen-sharing tool for developers.
- Mike Rousos (Microsoft) - Principal Software Engineer and Customer Engagement at Microsoft, discussing AI-powered migration and customer engagement.
- Mayoni - Mentioned in the context of working on the GC (Garbage Collection) for .NET performance.
- Stephen Toub - Author of extensive blog posts on .NET performance.
- Andrew Hunt - Co-author of "The Pragmatic Programmer."
- David Thomas - Co-author of "The Pragmatic Programmer."
- Manfred (Microsoft) - An engineer on Mike Rousos's team who developed the X to Y Dependency Transformation concept.
- Mark Grusinovitch - Co-author of a paper on AI for software engineering.
Organizations & Institutions
- Microsoft - The company where Mike Rousos works and where many of the discussed tools and technologies originate.
- Core AI Platform - The specific organization within Microsoft that Mike Rousos is part of.
- Microsoft Consulting Service (MCS) - A past Microsoft service for paid consulting, contrasted with the customer engagement role.
Courses & Educational Resources
- "Instructions Files" for GitHub Copilot - Files that can be used to provide specific guidance and context to GitHub Copilot, especially for older technologies like .NET Framework and
packages.config.
Websites & Online Resources
- tupleapp (tupleapp) - The website for the Tuple screen-sharing and pair programming tool.
- coderabbit.ai (coderabbit.ai) - The website for Code Rabbit, an AI tool for code reviews.
Other Resources
- .NET Framework - An older version of the .NET platform, often requiring migration.
- .NET Core - The cross-platform, open-source successor to .NET Framework.
- .NET 5, 6, 8, 9, 10 - Various recent versions of the .NET platform.
- Azure App Service - A Platform as a Service (PaaS) offering from Microsoft Azure for hosting web applications.
- Azure App Service Environment - A more isolated and customizable version of Azure App Service.
- Docker Container - A lightweight, standalone, executable package of software that includes everything needed to run it.
- Raspberry Pi - A small, single-board computer often used for hobbyist projects and embedded systems.
- Windows VM - A virtual machine running the Windows operating system.
- Bare Metal - Refers to physical servers without any virtualization layer.
- Net 5 - An older version of .NET that is out of support.
- Net Framework 4.8 - A supported version of .NET Framework.
- Net Framework 3.5 - An older version of .NET Framework mentioned in the context of hiring developers.
- Blazer - A web framework for building interactive client-side web UI with .NET.
- NewGet Packages - Packages used in .NET development, managed via the NuGet package manager.
- Visual Studio - An integrated development environment (IDE) from Microsoft.
- VS Code - Visual Studio Code, a lightweight but powerful source code editor.
- Azure Container Apps - A managed environment for running containerized applications on Azure.
- System Addin - A .NET technology for creating plug-in models that does not exist in .NET Core.
- Registry - A hierarchical database that stores low-level settings for the operating system and for applications that opt to use the registry.
- Time Zones - A system for regulating time, managed by the operating system.
- PR (Pull Request) - A mechanism in version control systems (like Git) for proposing changes to a codebase.
- Vibe Coding - Likely refers to rapid, less structured coding, potentially with AI assistance.
- MSBuild - The build platform used by .NET and .NET Core.
- Packages.config - An older file format for managing NuGet package dependencies.
- CsProj - The project file format for .NET projects.
- LLM (Large Language Model) - The underlying technology behind tools like GitHub Copilot.
- MCP Server - A server that provides a knowledge base for LLMs.
- Build Server - A server dedicated to automating the build process of software.