Best of Nick Chapsas2025

  1. 1
    Video
    Avatar of nickchapsasNick Chapsas·33w

    Why Startups Don't Use .NET and C#

    Explores why startups favor JavaScript, TypeScript, and Python over .NET/C# despite modern improvements. Key factors include persistent stigma around .NET, faster MVP development with JS/Python ecosystems, easier hiring due to larger talent pools, and better AI tooling support. While .NET offers strong performance and complexity management for mature products, startups prioritize speed-to-market and product validation over code quality. The author, running a .NET-based startup, recommends choosing .NET only if teams already know it, as learning curves and hiring challenges outweigh benefits for early-stage companies. Microsoft's recent organizational shift placing .NET under AI platforms signals deeper AI integration coming to the ecosystem.

  2. 2
    Video
    Avatar of nickchapsasNick Chapsas·24w

    The New Cross Platform C# IDE is INSANE

    SharpIDE is a new open-source, cross-platform C# IDE built using C# and the Godot game engine with Photino Blazor for the UI. Created by Mark Parker, it runs on Windows, Linux, and Mac, offering features like syntax highlighting, debugging with Samsung debugger, NuGet package management, test explorer, and fast project loading. While very early in development and not production-ready, it demonstrates working code editing, building, running, and debugging capabilities. The project is fully open-source on GitHub, encouraging community contributions to add features and improvements.

  3. 3
    Video
    Avatar of nickchapsasNick Chapsas·1y

    Everything a .NET Developer Needs to Know in 2025

    A detailed guide for .NET developers outlining essential skills and tools for 2025. It emphasizes varying levels of knowledge based on experience from junior to principal levels. Highlights include the importance of version control with Git, the use of modern IDEs like Visual Studio and Rider, new features in .NET 9, and the increasing relevance of AI with tools like ChatGPT. Additional recommendations cover databases, testing frameworks, caching strategies, and architecture paradigms.

  4. 4
    Video
    Avatar of nickchapsasNick Chapsas·1y

    Stop Using DateTime in .NET

    In most cases within .NET programming, DateTimeOffset is recommended over DateTime. DateTime only represents a date and time, which can lead to ambiguity if the time zone is unspecified. DateTimeOffset, on the other hand, includes the time zone offset from UTC, making it more precise and suitable for business applications that require client-relevant time zones. Using DateTimeOffset helps avoid errors that could arise from using DateTime with unspecified time zones.

  5. 5
    Video
    Avatar of nickchapsasNick Chapsas·43w

    The New Best Scheduling Library in .NET

    TickerQ is a new open-source scheduling library for .NET that aims to replace Hangfire and Quartz.NET by combining their best features while addressing their limitations. The library offers a dashboard interface, Entity Framework Core persistence, compile-time safety with source generators, true async support, and dependency injection. It supports both time-based and cron-based job scheduling, allows programmatic job creation through APIs, and provides comprehensive error handling with retry mechanisms. The tutorial demonstrates setting up TickerQ with PostgreSQL, creating scheduled jobs, and using the web dashboard to manage and monitor job execution.

  6. 6
    Video
    Avatar of nickchapsasNick Chapsas·32w

    Building the Coolest Console Apps in .NET

    Learn how to build modern, interactive terminal UI applications using Razor syntax in .NET console apps. The tutorial demonstrates creating animated, clickable terminal interfaces with components like buttons, counters, and real-time dashboards. Examples include a system monitoring dashboard and a SQL database manager, all built using Razor components with familiar web-like syntax that renders directly in the console.

  7. 7
    Video
    Avatar of nickchapsasNick Chapsas·27w

    Another .NET Open-Source Project is Gone

    Nuke, a popular .NET CI/CD build automation tool with 3,500 GitHub stars and 26 million downloads, faced potential abandonment due to open-source sustainability issues. Creator Matias experienced burnout from maintaining the project without adequate community support or financial compensation. After community outcry and expressions of support, Matias released version 10.0 with critical updates including SLNX support and dependency updates. The situation highlights ongoing challenges in open-source sustainability, with suggestions that commercialization might be a viable path forward for maintaining such projects.

  8. 8
    Video
    Avatar of nickchapsasNick Chapsas·1y

    Don't Use Lorem Ipsum. Use this!

    Using Lorem Ipsum for generating fake text in software development can be problematic as it doesn't look realistic. Instead, developers should use waffle generators, which create customizable and realistic-looking text suitable for any format. To implement this in .NET, install the waffle generator package and use the WaffleEngine class to generate text. The tool also integrates with Bogus for even more flexibility.

  9. 9
    Video
    Avatar of nickchapsasNick Chapsas·48w

    My 100 Tips for Better .NET Code

    A comprehensive collection of 100 practical C# and .NET development tips covering performance optimization, memory management, async programming, language features, and best practices. Topics include proper exception handling, LINQ optimization, dependency injection, modern C# syntax features like primary constructors and collection expressions, testing strategies, and common pitfalls to avoid. The tips range from basic concepts like proper null checking to advanced topics like ref structs, span usage, and memory allocation optimization.

  10. 10
    Video
    Avatar of nickchapsasNick Chapsas·29w

    Big Breaking Changes in .NET 10

    .NET 10 introduces several breaking changes developers should be aware of before upgrading. The IWebHost interface is now obsolete in favor of IHost, and projects should use WebApplication.CreateBuilder instead of WebHostBuilder. The new 'field' keyword can conflict with existing backing fields named 'field', requiring explicit 'this.field' or '@field' syntax. NuGet restore now audits transitive packages by default, which may fail builds when treating warnings as errors. System.Linq.Async is now built into the framework, eliminating the need for the separate NuGet package but potentially causing ambiguity in existing projects. Additional changes include implicit conversions for Span<T> and ReadOnlySpan<T>, and the new .slnx solution format.

  11. 11
    Video
    Avatar of nickchapsasNick Chapsas·1y

    The "in" keyword in C# is Awesome

    The 'in' keyword in C# allows structs to be passed by reference while making them read-only within the method for performance optimization. This avoids costly copying of large structs. However, if the struct isn't marked as readonly, hidden defensive copies may occur, reducing performance benefits. Combining 'in' with 'readonly struct' or read-only members maximizes performance gains.

  12. 12
    Video
    Avatar of nickchapsasNick Chapsas·41w

    Stop Mapping in .NET Use Facets Instead

    Introduces Facets, a new .NET mapping library that offers an alternative to AutoMapper with source generation capabilities. The library supports custom mapping configurations, Entity Framework projections, and provides a faceting approach where objects can have multiple forms. While performance benchmarks show it's slower than ultra-fast libraries like Mapster, the difference is negligible in real-world database scenarios, making it a viable choice for developers seeking feature-rich mapping solutions.

  13. 13
    Video
    Avatar of nickchapsasNick Chapsas·1y

    .NET Will Get MUCH faster

    The post discusses the continuous and significant performance improvements observed in .NET, highlighting the ongoing potential for further optimization and enhancement. While initially skeptical about how much more could be improved, the author acknowledges that there is always room for progress, leading to a constant cycle of upgrades.

  14. 14
    Video
    Avatar of nickchapsasNick Chapsas·1y

    The Most Cursed C# Library

    This tip introduces a creative yet unconventional C# library called 'interpolated pauser'. It allows you to extract variables from a string using a template through reverse string interpolation, making variable extraction simpler without the need for complex regular expressions. The library can be installed via the 'interpolated pauser yid' package.

  15. 15
    Video
    Avatar of nickchapsasNick Chapsas·1y

    Why is .NET so Insanely Fast? with Stephen Toub

    Nick engages in a detailed discussion with Stephen Toub, a Partner Software Engineer at Microsoft, about the performance improvements in .NET 9, including the integration of AI and the advancements in Profile Guided Optimization (PGO). They also cover the impact of open-source contributions on .NET's performance and explore the evolution of API usability and performance in .NET Core.

  16. 16
    Video
    Avatar of nickchapsasNick Chapsas·46w

    Logging correctly in .NET

    String interpolation in .NET logging creates unnecessary allocations even when logging is disabled. Structured logging using message templates with parameters is more efficient, avoiding allocations and formatting costs while maintaining queryable logs in tools like Kibana and Application Insights.

  17. 17
    Video
    Avatar of nickchapsasNick Chapsas·1y

    The New Extension Members of C# are INSANE

    Nick introduces a new feature in .NET called extension members, which allows developers to add instance and static members to types using the new 'extension' keyword. This feature enhances existing extension methods by enabling extension properties and extending functionality without being limited to static methods. Nick demonstrates how to implement and use these new features through various examples and discusses the potential impact on how developers write C# code.

  18. 18
    Video
    Avatar of nickchapsasNick Chapsas·1y

    Annoy Your C# Colleagues With This

  19. 19
    Video
    Avatar of nickchapsasNick Chapsas·1y

    Solving A Naming Problem in .NET

    C# 12 introduces the 'Alias any type' feature, allowing you to use the 'using' directive to create aliases for any type in your project. This simplifies complex type names, resolves naming conflicts, defines value Tuple types for shared use in assemblies, and enhances code clarity with descriptive names.

  20. 20
    Video
    Avatar of nickchapsasNick Chapsas·1y

    The New Way to Seed Your Database in .NET 9

    Learn about the new database seeding approach introduced in .NET 9 using EF Core 99. The post includes a step-by-step guide, highlights the importance of managing the seed process to avoid concurrency issues, and addresses the use of synchronization methods for effective data seeding.

  21. 21
    Video
    Avatar of nickchapsasNick Chapsas·29w

    Date and Time correctly in .NET

    Instead of using DateTime for storing dates or times separately in .NET, use the DateOnly and TimeOnly types. DateOnly represents dates without time components, while TimeOnly represents times without dates. This approach clarifies intent, reduces confusion from ignoring components or creating arbitrary values, and improves code maintainability. Both types can be converted to and from DateTime when needed.

  22. 22
    Video
    Avatar of nickchapsasNick Chapsas·34w

    dotnet format is awesome in .NET

    The dotnet format command automatically fixes code style issues like indentation, newlines, braces, and unused using statements in .NET projects. It can be applied to entire solutions or individual files, integrated into pre-commit hooks or CI pipelines, and configured with an .editorconfig file to enforce team-wide coding standards.

  23. 23
    Video
    Avatar of nickchapsasNick Chapsas·1y

    Don't use async void in C#

    Async void methods in C# should generally be avoided because they can't be properly awaited, leading to issues with error handling and control flow. The only appropriate use of async void is in event handlers, where tasks are not returned.

  24. 24
    Video
    Avatar of nickchapsasNick Chapsas·1y

    The LINQ trap in .NET

    Understanding the deferred execution in LINQ is crucial as it can cause unexpected data changes in .NET. LINQ methods like where, select, and take build a query rather than executing immediately. This allows adding conditions dynamically, but beware of data changes before execution, as they will reflect in the results. Knowing these rules makes LINQ a powerful tool.

  25. 25
    Video
    Avatar of nickchapsasNick Chapsas·1y

    .NET has an AI problem

    The focus of an upcoming .NET conference revolves around AI, emphasizing various applications of AI in .NET. Key highlights include using AI-powered services, AI integration tips, and showcasing new AI features and demos. Tutorials on Blazor and AI implementation in .NET applications will also be featured.