• Database Independence–using TestContainers

    Test without Database installing – I use Testcontainers For SQL Server, PostgreSQL, and MongoDB, I use Testcontainers to run the database engines in disposable Docker containers during the integration tests. This lets me test the real EF Core providers instead of replacing them with mocks or an in-memory database. The test project references the provider-specific…

  • VaRe&DaIn–part 060 of n–OptionsBuilder

    Now I want to create the database in each provider (Sqlite, MsSql, Postgresql, Mongo) Let’s say that I have the database context and I want to create the database from a simple connection string For this I need a common interface , IEFCore_DatabasePlugin, to function the same for all database I target .NET 10 and…

  • VaRe&DaIn–part 050 of n–practical database independence

    When I think about database independence, I need to consider two perspectives: the programmer and the application administrator. As a programmer, I want debugging to be straightforward, regardless of which database I am using. I also want to understand how to develop and test against any supported database without having to redesign the application for…

  • Friday links 581

    Build a real-world example with Microsoft Agent Framework, Microsoft Foundry, MCP and Aspire – Microsoft for Developers Get started with GitHub Copilot CLI: A free, hands-on course – Microsoft for Developers github/copilot-cli-for-beginners: Learn how to get started using the GitHub Copilot CLI! GitHub Copilot CLI command reference – GitHub Docs Rob Pike’s 5 Rules of…

  • RSCG – SatorImaging.TDoubles

    RSCG – SatorImaging.TDoubles     name SatorImaging.TDoubles nuget https://www.nuget.org/packages/SatorImaging.TDoubles/ link https://github.com/sator-imaging/TDoubles author Sator Imaging Generating test stubs with mocking for interfaces   This is how you can use SatorImaging.TDoubles . The code that you start with is The code that you will use is   The code that is generated is Code and pdf at…

  • RSCG – PropertyResolvers

    RSCG – PropertyResolvers     name PropertyResolvers nuget https://www.nuget.org/packages/PropertyResolvers/ link https://github.com/tombiddulph/PropertyResolvers author Tom Biddulph Generating code for switch for property in C#   This is how you can use PropertyResolvers . The code that you start with is The code that you will use is   The code that is generated is Code and pdf…

  • RSCG – Pinecone.TypedPath

    RSCG – Pinecone.TypedPath     name Pinecone.TypedPath nuget https://www.nuget.org/packages/Pinecone.TypedPath/ link https://github.com/nickpinecone/typed-path author Nick Pinecone Generating typed paths for file system navigation and manipulation.   This is how you can use Pinecone.TypedPath . The code that you start with is The code that you will use is   The code that is generated is Code and…

  • Friday links 580

    mcollina/snipgrapher Installation & Usage | Shiki HAX Design Library – Microsoft HAX Toolkit ai-agents-for-beginners/08-multi-agent/README.md at main · microsoft/ai-agents-for-beginners AgentEvalHQ/AgentEval: AgentEval is the comprehensive .NET toolkit for AI agent evaluation—tool usage validation, RAG quality metrics, stochastic evaluation, and model comparison—built first for Microsoft Agent Framework (MAF) and Microsoft.Extensions.AI. What RAGAS, PromptFoo and DeepEval do for Python,…

  • VaRe&DaIn–part 040 of n–DatabaseIndependence

    Now comes the real part. I want the app to work with any database—SQLite, PostgreSQL, SQL Server, and MongoDB—and to choose the database type and connection string at startup. In the .NET world, I see two main options: 1. The plain SQL-style approach: I define an interface with methods for the data I need in…

  • Intermezzo–2 Aspire Extensions modified

    In order to can make videos for the VacationRelay , I had to modify 2 Aspire Extensions 1.  https://www.nuget.org/packages/PortExtensionsAspire For an unknown reason( unknown – because I do not like to investigate ) , Adminer extension for Aspire didn’t like the port assigned , but it likes 13456( And the port was useful to send…

I am ok , you are ok