For my last CIB customer, I upgrade from an old client-server architecture to a 3 tiers Architecture model.
To Implement such evolutions and new RHEL server side business and generic services, I had to take decisions.
Migrating to 64 bits, remove old dependencies, rewrite DB access layers and have a new DAL model that can access either Sybase or PostgreSQL database server.
Many companies require an RHEL-style Linux server to host business services and components. For a major CIB (Corporate and Investment Banking) institution, I developed a generic solution because the trading application’s requirements demanded:
high performance
scalability
gigabytes of reference data
precision to nine decimal places (as is standard in finance)
The legacy application is a Windows-based thick-client front end. The database is migrating from Sybase to PostgreSQL. The bank wants to introduce an RHEL Linux server layer between the workstation and the database.
If I put on my Microsoft Azure Solution Architect hat, I would implement managed services for them:
to handle inbound communications: a bus or a queue—keep it simple
a database instance
a technical platform to run business modules (calculations, reporting, exports, etc.) -> this could involve Docker, Azure Container Instances, and a container registry -> it could involve Kubernetes if the CTO is a “fashion victim” (sorry) -> we would use .NET or Java, depending on preferences (or sovereignty requirements) -> we would use an API management solution (Google Apigee or Azure’s native offering) -> Key Vault (for security) and Blob Storage (essentially for file storage) -> we would use Azure DevOps -> deployment via pipelines, Terraform, YAML, and the like => This type of Microsoft Azure solution and architecture costs approximately $2,000 USD per user per month.
Wearing my hat as a Microsoft & Linux ISO C++ Architect and Principal Software Engineer, here is how I would implement this:
Cross-platform (and thus portable) 64-bit C++ code
A dedicated, internally hosted RHEL PostgreSQL server
A dedicated, internally hosted RHEL “business logic” server
A server software foundation using OpenSSL, Boost.Asio, and generic services built on ISO C++ 17 (minimum)
Real-time (or near real-time) communication via Boost.Asio (direct socket communication), with one communication handle per available vCore *** HARDWARE UTILIZATION ***
Dependencies: Boost Libraries, nlohmann/Json, OpenSSL, and log4cpp
Source code hosted on GitHub/GitLab
Third-party modules fetched from Artifactory
Build process managed via CMake, enabling builds for both the Win32 front-end and the RHEL back-end
Simple, basic deployment using the CMake build and the CMake “install” command => This type of solution or architecture costs 10 times less than its Microsoft Azure Cloud equivalent. The bank estimated the total cost at USD 10,000 per year.
Developing both the Win32 and RHEL components on Windows using ISO C++ (cross-platform, portable code) allows for a “mocking” approach regarding business logic, services, and communication layers.
A comprehensive toolset for extracting data from PowerPoint (PPTX), PDF, and Markdown (MD) files to create Azure Search Index files, with both console and web interfaces for ChatGPT-powered Q&A.
## Features
– **PowerPoint (PPTX) Extraction**: Extracts text content, titles, images, audio files (MP3), and video files from presentations
– **PDF Extraction**: Extracts text content and images from PDF documents
– **Markdown (MD) Extraction**: Parses markdown files to extract text, titles, and image references
– **Azure Search Index Format**: Outputs data in JSON format compatible with Azure Cognitive Search
– **Batch Processing**: Process individual files or entire directories
– **File Merging**: Merge multiple search index JSON files into a single file
– **Azure Deployment**: Deploy search indexes and media files directly to Azure Cognitive Search and Azure Blob Storage
– **Console ChatGPT Integration**: Interactive Q&A service using Azure OpenAI with Azure Search Index for context-aware responses
– **Web Chatbox Application**: Modern Blazor WebAssembly chatbox for web-based Q&A with IIS support (NEW!)
See [ChatboxWebApp/QUICKSTART.md](./ChatboxWebApp/QUICKSTART.md) for detailed web app setup.
See [ChatboxWebApp/README.md](./ChatboxWebApp/README.md) for complete web app documentation including IIS deployment.
## Documentation
See the [detailed documentation](./AzureSearchIndexToolbox/README.md) in the AzureSearchIndexToolbox folder for complete usage instructions, examples, and architecture details.
## Architecture
The solution follows a clean, modular architecture:
### Console Application
– **Models**: Data structures for search index documents and ChatGPT configuration
– **Extractors**: Specialized extractors for each file type (PPTX, PDF, MD)
– **Services**: Azure Search Index service, Azure Deployment service, and ChatGPT service
– **Program**: Main orchestration and CLI interface
### Web Application (NEW!)
– **Backend**: ASP.NET Core 8.0 with RESTful API controllers
– **Frontend**: Blazor WebAssembly for interactive client-side UI
– **Services**: Shared ChatGptService for Azure OpenAI integration
– **Models**: Entity Framework Core models for PostgreSQL storage
– **Deployment**: IIS-ready with web.config included
Every component is fully commented to help users understand how it works.
A complete Blazor WebAssembly chatbox web application has been created for the AzureSearchIndex-Toolbox project. This provides a modern, interactive web interface for querying Azure OpenAI ChatGPT with context from Azure Search Index, complementing the existing console application.
## What Was Built
### 1. Project Structure
“`
ChatboxWebApp/
├── ChatboxWebApp/ # Server project (ASP.NET Core)
│ ├── Controllers/
│ │ └── ChatController.cs # RESTful API endpoints
│ ├── Models/
│ │ ├── ChatGptConfiguration.cs # Configuration model
│ │ ├── ConversationDbContext.cs # EF Core context
│ │ └── ConversationHistory.cs # Database entity
│ ├── Services/
│ │ └── ChatGptService.cs # ChatGPT integration service
│ ├── Program.cs # Server startup and configuration
**Total: ~2,300+ lines of new code and documentation**
## Compliance with Requirements
✅ **”I want a chatbox as a Web IIS ASP.NET Application”**
– Created ASP.NET Core web application with IIS support
✅ **”Single question, multiple questions”**
– Both modes implemented with UI toggle
✅ **”Reset new conversation”**
– Both reset and new conversation features implemented
✅ **”Max questions count”**
– Tracking and display implemented
✅ **”Store the questions, the answers and the conversation ID in a postgreSQL database with a EF Model and EF Service”**
– Full PostgreSQL integration with EF Core
✅ **”May be a WebAssembly Blazor apps with Razor Apps should be more appropriate with it’s services”**
– Implemented as Blazor WebAssembly with Razor components and services
## Summary
A complete, production-ready web chatbox application has been successfully created that:
1. Provides an interactive web interface for Azure Search ChatGPT integration
2. Supports all requested features (single/multiple questions, reset, new conversation, max count)
3. Uses PostgreSQL with Entity Framework for storage
4. Built with Blazor WebAssembly and ASP.NET Core
5. Ready for IIS deployment
6. Fully documented with quick start and deployment guides
7. Follows best practices and clean architecture principles
The implementation is minimal yet complete, adding only the necessary code to fulfill the requirements without unnecessary complexity or features beyond the scope.
– **Software**: Personal software projects with versions and descriptions
– **OpenSourceProject**: GitHub repositories with stars, forks, and language info
– **Comment**: Notes and comments for software/projects
– **Screenshot**: Image references for projects
– **Url**: Related links and documentation
See [Project Specifications](Docs/ProjectSpecifications.md) for complete data model details.
## Development
### Build
“`bash
dotnet build
“`
### Run Tests (Console App)
“`bash
cd src/PersonalSoftwareManager.Console
dotnet run
“`
### Database Migrations
“`bash
cd src/PersonalSoftwareManager.Data
dotnet ef migrations add MigrationName
dotnet ef database update
“`
## Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Submit a pull request
## License
This project is open source and available under the MIT License.
## Support
For issues, questions, or suggestions, please open an issue on GitHub.
# Personal Software Manager – Project Creation Guide
## Overview
This guide walks through the creation of the Personal Software Manager solution, a .NET 10 application for managing personal software projects and tracking open-source repositories.
## Prerequisites
– .NET 10 SDK (version 10.0.101 or later)
– PostgreSQL database
– Visual Studio 2022, Visual Studio Code, or Rider (optional)
– **Lines of Code**: ~500+ (excluding generated files)
## Usage Instructions
### Prerequisites
1. .NET 10 SDK installed
2. PostgreSQL database running
3. Connection string configured
### Quick Start
“`bash
# Build
dotnet build
# Run API (Terminal 1)
cd src/PersonalSoftwareManager.Api
dotnet run
# Run Blazor WASM (Terminal 2)
cd src/PersonalSoftwareManager.Wasm
dotnet run
# Test Console (Terminal 3)
cd src/PersonalSoftwareManager.Console
dotnet run
“`
## Future Enhancement Opportunities
1. **Authentication & Authorization** – Add user login
2. **File Upload** – Actual screenshot uploads
3. **GitHub API Integration** – Auto-sync repo stats
4. **Search & Filtering** – Advanced queries
5. **Export Features** – PDF/CSV export
6. **Dashboard** – Statistics and charts
7. **Tags System** – Categorization
8. **Real-time Updates** – SignalR integration
## Conclusion
The Personal Software Manager project is fully functional and ready for use. All requirements from the problem statement have been successfully implemented:
✅ Blazor WASM project with Razor pages
✅ Web API with basic CRUD functions
✅ Shared DLL for contracts/common models
✅ EF Core layer with PostgreSQL targeting
✅ Data model for software and open-source projects
✅ Console project for testing
✅ Comprehensive documentation
The project follows .NET best practices, uses modern frameworks, and is structured for easy maintenance and future expansion.
# Personal Software Manager – Project Specifications
## Overview
Personal Software Manager is a .NET 10 application designed to help developers manage and track their personal software projects and favorite open-source repositories from GitHub.
Welcome to my living library. Here are the titles of my books — the result of years of work, experimentation, and a mix of technical rigor with satirical rituals. From C# and C++ memory aids at DUNOD, to modern explorations of C++ and STL on Amazon KDP, through advanced architecture, artificial intelligence, and conversations with Copilot, each book is a stone added to the mural of my obsessions.
And because no oeuvre is complete without a touch of absurdity, you will also find ultimate guides, censored biographies, memoirs, and aquatic chickens.
The books:
DUNOD – C# Memory Aid
DUNOD – C++ Memory Aid
Amazon KDP – Modern C++ and STL
Amazon KDP – Learning Modern C++ and STL on Windows, Linux, and Azure
Amazon KDP – Professional C++ – PROD
Amazon KDP – Windows and Microsoft .NET Technology
Amazon KDP – AI Essential LLM Papers
Amazon KDP – AI Technical Papers, October 2025
Amazon KDP – Advanced Architecture and Techniques in C++
Amazon KDP – Conversations with Copilot
Amazon KDP – AI Explanations and Applications
Amazon KDP – The Censored Biography of Pic the American
Amazon KDP – The Great Guide to Pétou
Amazon KDP – The Ultimate Guide to Seduction and Picking Up Girls
.NET Conf 2025 is a free, three-day, virtual developer event that celebrates the major releases of the .NET development platform – such as the launch of .NET 10 on November 11th – 13th!
.NET Conf Local Events are watch-parties, content reviews, localized session re-deliveries, and community building opportunities for you to connect and learn all about the galaxy of .NET 10!
December, 19 : We organize the .NET 10 launch event with demos and presentations.
Based onto ints 543 elements, the built-in Appz folder named “C:\Program Files\WindowsApps\Microsoft.YourPhone_1.24062.90.0_x64__8wekyb3d8bbwe” is what we can call a GARBAGE Folder.
An exemple why such a extravageaous language ? The file named Microsoft.Windows.SDK.NET.dll which is 42 MB.
Does Microsoft needs to fully distribute the hold NET SDK and another 441 DLLs for such a badly application that just make an helper to my smartphone. We are in a mad World. The World of thoses fucki,g Productive “à l’agonie” language that, fault not to be adopted by extrenal developers is IMPOSED by some pseudo architects at Redmond and people who hate and do not know anything about Windows that reinvent the wheel.
The entire folder is precised like that: Total Files Listed: 1645 File(s) 372,501,378 bytes (means 372 MB).
Just put tthe Main Architects and the foolish developers in JAIL !
If Sinosky or Cutler who be here, if Mark Russinovitch add some power except PPTX on Azure…
This is why I left thej Microsoft Games of the NET What The Fuck.
Dear Microsoft, be assured this post wil make the entire tour of the World. My pleasure. Our app ? Just shit.
I offer you my last book 📚 named : Professional C++ – Philosophy and Principles.
This book is the work of 2 years of writing but more importantly, something I was trying to ship when medical health situation could send me a meeting with God. So it was a testimony on the thing I love the most on Earth 🌎, with my 2 wifes, 3 daughters, my cat bébé and family and closed friends: C, C++ and Windows Operating Systems. C/C++ is definitely what gave me a job, a life, money and adventures…
Trying to explain things is hard. I had already done 5 books before this one but this ” Professional C++ ” is more than explaining the C++ language. During 30 years on the Field, I used to learn different ways of thinking, designing, implementing or debugging softwares.
My new book “Aide-Mémoire C#/NET”, written for DUNOD is finished and will be for sale on January 2021. here is the presentation of the book:
C# is a compiled object-oriented language created by Microsoft in 2001 for its .NET Framework platform. The C# language is a derivative of C++ and it shares many similarities with Java. C# is strongly typed, supports classes, functions, properties, fields, generics, operator overloading, delegates (function pointers), events, exceptions, and a LINQ query language. C# is inseparable from its execution engine, the Common Language Runtime (CLR), and from its NET Framework with its class hierarchy, the BCL (Base Class Library). This cheat sheet covers the architecture of the .NET platform with the CLR, the C# language then important elements of the BCL such as I / O flows, the network, serialization, access to ADO.NET data, the multithreading, reflection, native interop and COM. The third part is dedicated to .NET Core, the cross-platform version that runs on Windows, Mac and Linux, with introductions to UWP, modern Windows 10 development and a final chapter on Linux development with Kubernetes for the world of micro-services. C# and NET are the future of software development according to Microsoft.
Christophe Pichaud is a French software developer based in Paris. In his career, he has built large banking infrastructures, opened the first online bank (Banque Populaire) and participated in the construction of banking services for 2,500 Société Générale branches (MAIA, URTA). He also performs C ++ migrations and implements hybrid applications with the Microsoft .NET stack. Its clients are Accenture, Avanade, Microsoft, Sogeti, Capgemini, the Elysée Palace, SNCF, Total, Danone, CACIB and Bnp Paribas. He has MCSD and MCSD.NET certifications. In addition, he participates in Microsoft events as a speaker (TechDays, DevDays) and MVP on the Ask The Expert booths. He has been a regular contributor to Programz magazine since 2011. He is also the Community Manager of the “.NET Azure Rangers”, which contains 26 members including 8 MVPs whose activities are the animation of technical sessions, the writing of articles. techniques and the promotion of Microsoft or Cloud technologies. Christophe works at Infeeny, a subsidiary of the Econocom group specializing in Microsoft Technologies. When he’s not reading books or developing software, Christophe spends his time with his three daughters, Edith, Lisa and Audrey, and also his parents, Jean-Marc and Mireille who are in Burgundy.
Using LMMS and VST plug-in from Korg and Roland, you can make music loud ! You can find midi files on the web (example: https://www.midiworld.com/search/?q=U2) and then you attach a VST to a track.
Don’t miss the rythm box with the famous Roland TR-909 and the bass line with the Roland TB-3030. I also put some legendary synths like Roland D50 and Korg M1. Look at this screen pictures.
Book Author:
- Aide-Mémoire C++ (July 2020) - Dunod
- Aide-Mémoire C#/NET (Jan 2021) - Dunod
- Pro C++ Performance & Optimization (working) - Apress
Technical writer for french magazine Programmez since 2011.
If you are interested in more infomations about C++, Win32, MFC, WRL and Modern Apps, .NET, C#, WCF, SQL Server, IIS and Windows Server, Azure and Docker, Kubernetes, just look at my site : windowscpp.com
Email me at christophepichaud@hotmail.com
Opinions are mine and not those of my company or Microsoft or any Gold Partners in the Microsoft ecosystem.