четверг, 30 июля 2026 г.

NamedPipes, slnx

NamedPipes, slnx

D:\Projects\VS\26\Gemini\NamedPipesSln\NamedPipesSln.slnx

D:\Projects\VS\26\Gemini\NamedPipesSln01\NamedPipesSln01.slnx

D:\Projects\VS\26\CaNamedPipeServer01\NamedPipesSln.slnx

D:\Projects\VS\26\Aspire\AspireNamedPipesQuotesService01\AspireNamedPipesQuotesService01.slnx

D:\Projects\VS\26\AspQuotesService01\AspQuotesService01.slnx

D:\Projects\VS\26\AspQuotesService\AspQuotesService.slnx

среда, 29 июля 2026 г.

Aspire, Simple Example, AspireApp1.slnx, Work Well

Aspire, Simple Example, AspireApp1.slnx, Work Well

Main project AS IS form Microsoft

D:\Projects\VS02\2606\Aspire\VisualStudio\AspireApp1\AspireApp1.slnx

D:\Projects\VS02\2606\Aspire\VisualStudio\AspireApp1\AspireApp1.ApiService\AspireApp1.ApiService.csproj

D:\Projects\VS02\2606\Aspire\VisualStudio\AspireApp1\AspireApp1.AppHost\AspireApp1.AppHost.csproj

D:\Projects\VS02\2606\Aspire\VisualStudio\AspireApp1\AspireApp1.AppHost\AspireApp1.AppHost.csproj

D:\Projects\VS02\2606\Aspire\VisualStudio\AspireApp1\AspireApp1.Web\AspireApp1.Web.csproj

Стандартный вариант от Microsoft

четверг, 19 марта 2026 г.

NamedPipes, Qoutes,

NamedPipes, Qoutes, 

!!!!! Works well NamedPipesSln01.slnx

D:\Projects\VS\26\Gemini\NamedPipesSln\NamedPipesSln01.slnx

Local Sln folder: PipePoolQuoteServer

D:\Projects\VS\26\Gemini\NamedPipesSln01\PipePoolQuoteServer03\PipePoolQuoteServer03.csproj

D:\Projects\VS\26\Gemini\NamedPipesSln01\CaUniClient021\CaUniClient021.csproj

D:\Projects\VS\26\Gemini\NamedPipesSln01\CaUniClient022\CaUniClient022.csproj

D:\Projects\VS\26\Gemini\NamedPipesSln01\CaUniClient023\CaUniClient023.csproj

D:\Projects\VS\26\Gemini\NamedPipesSln01\CaUniClient024\CaUniClient024.csproj

вторник, 17 марта 2026 г.

Projects, Quotes

26.03.17, Projects, Quotes, Pipelines

https://learn.microsoft.com/ru-ru/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-10.0&tabs=visual-studio

D:\Projects\VS\26\AspQuotesService\AspQuotesService.slnx

Частично работает.
Котировки доходят до Сервера
Котировки НЕ доходят до Клиента

---------------------------------------

D:\Projects\VS\26\AspQuotesService01\AspQuotesService01.slnx

Не работает, не включен модуль Quotes.Contracts

---------------------------------------

Aspire

AppHost01 - работает. Поднимает все проекты правильно в Aspire

Но Приложение не работает

D:\Projects\VS\26\Aspire\AspireNamedPipesQuotesService01\AspireNamedPipesQuotesService01.slnx

----------------------------------------

Два поекта работают

D:\Projects\VS\26\Giga\StockQuotes\StockQuotesApp02\StockQuotesApp02.csproj

D:\Projects\VS\26\Giga\StockQuotes\StockQuotesApp03\StockQuotesApp03.csproj

D:\Projects\VS\26\Giga\StockQuotes\StockQuotes.slnx

-----------------------------------------

Не понятно что это 

D:\Projects\VS\GS.Aspire\MyChadAppSln\MyChadAppSln.slnx

--------------------------------------------------------------------------------------------

D:\Projects\VS\26\CaNamedPipeServer01\NamedPipesSln.slnx

D:\Projects\VS\26\CaNamedPipeServer01\CaNamedPipeClient01\CaNamedPipeClient01.csproj

D:\Projects\VS\26\CaNamedPipeServer01\CaNamedPipeServer01\CaNamedPipeServer01.csproj

-----------------------------------------------------------------------------------------

!!!!! Works well NamedPipesSln01.slnx

D:\Projects\VS\26\Gemini\NamedPipesSln\NamedPipesSln01.slnx

Local Sln folder: PipePoolQuoteServer

D:\Projects\VS\26\Gemini\NamedPipesSln\PipePoolQuoteServer03\PipePoolQuoteServer03.csproj

D:\Projects\VS\26\Gemini\NamedPipesSln\CaUniClient021\CaUniClient021.csproj

D:\Projects\VS\26\Gemini\NamedPipesSln\CaUniClient022\CaUniClient022.csproj

D:\Projects\VS\26\Gemini\NamedPipesSln\CaUniClient023\CaUniClient023.csproj

D:\Projects\VS\26\Gemini\NamedPipesSln\CaUniClient024\CaUniClient024.csproj

------------------------------------------------------------------------------------------

D:\Projects\VS\GS.Aspire\AspireTypes01\AspireTypes01.slnx

D:\Projects\VS\WebService\WebService.slnx

--------------------------------------------------------------------------------------------

!!!!!!

Local Sln folder: PipePoolQuoteServer

Server

D:\Projects\VS\26\Gemini\NamedPipesSln\PipePoolQuoteServer03\PipePoolQuoteServer03.csproj

Clients

D:\Projects\VS\26\Gemini\NamedPipesSln\CaUniClient021\CaUniClient021.csproj

D:\Projects\VS\26\Gemini\NamedPipesSln\CaUniClient022\CaUniClient022.csproj

D:\Projects\VS\26\Gemini\NamedPipesSln\CaUniClient023\CaUniClient023.csproj

D:\Projects\VS\26\Gemini\NamedPipesSln\CaUniClient024\CaUniClient024.csproj

-----------------------------------------------------------------------------------------------

TimCorey

D:\downloads\Aspire\TimCorey01\AspireDemoApp.sln

D:\Projects\VS\TimCorey01\AspireDemoApp.sln

-------------

https://learn.microsoft.com/ru-ru/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-10.0&tabs=visual-studio

вторник, 24 февраля 2026 г.

EventHub, Services, Dashboard, BusLibrary02, Static, Keys, Registration

EventHub, Services, Dashboard, BusLibrary02, Static, Keys, Registration

D:\Projects\VS\WebService\WebService.slnx

D:\Projects\VS\WebService\EventHubRazorExample05\EventHubRazorExample05.csproj

D:/AAA/EventHubRazorExample05.txt

Two Services write LOGS to Separate BackgroundService

---------------------------------------------------------------------

// Program.cs


using EventHubRazorExample;

using BusLibrary02.Core;


using Microsoft.AspNetCore.Builder;

using Microsoft.Extensions.DependencyInjection;

using Microsoft.Extensions.Hosting;

using Microsoft.Extensions.Logging;

using System.Reflection;


using EventHubRazorExample.Configuration;


var builder = WebApplication.CreateBuilder(args);


// Настройка логгирования

builder.Logging.ClearProviders();

builder.Logging.AddConsole();

builder.Logging.SetMinimumLevel(

    builder.Environment.IsDevelopment()

        ? LogLevel.Debug

        : LogLevel.Information

);


// Добавляем Razor Pages

builder.Services.AddRazorPages();


// Регистрируем EventHub с динамическими подписками

builder.Services.AddEventHub(options =>

{

    options.ChannelCapacity = 2048;

    options.Assemblies = new[] { typeof(Program).Assembly };

});


// Регистрируем фоновые сервисы

builder.Services.AddHostedService<FirstBackgroundService>();

builder.Services.AddHostedService<SecondBackgroundService>();

builder.Services.AddHostedService<LoggerBackgroundService>();


builder.Services.Configure<ServicesConfiguration>(

    builder.Configuration.GetSection("Services"));


var app = builder.Build();


// Автоматическая регистрация статических ключей для всех сообщений

using (var scope = app.Services.CreateScope())

{

    try

    {

        var subscriptionManager = scope.ServiceProvider.GetRequiredService<IDynamicSubscriptionManager>();

        var logger = scope.ServiceProvider.GetRequiredService<ILogger<Program>>();


        // Регистрируем все типы сообщений из текущей сборки

        var messageTypes = typeof(Program).Assembly.GetTypes()

            .Where(t => typeof(IMessage).IsAssignableFrom(t) && !t.IsAbstract && !t.IsInterface)

            .Where(t => t.GetCustomAttribute<MessageKeyAttribute>() != null);


        foreach (var type in messageTypes)

        {

            try

            {

                var attr = type.GetCustomAttribute<MessageKeyAttribute>();

                if (attr != null)

                {

                    // Используем рефлексию для вызова RegisterStaticKey<T>

                    var method = typeof(DynamicSubscriptionManager).GetMethod("RegisterStaticKey");

                    var genericMethod = method!.MakeGenericMethod(type);

                    genericMethod.Invoke(subscriptionManager, new object[] { attr.Key });


                    logger.LogDebug("Registered static key '{Key}' for message type {Type}",

                        attr.Key, type.Name);

                }

            }

            catch (Exception ex)

            {

                logger.LogError(ex, "Error registering static key for type {Type}", type.Name);

            }

        }


        logger.LogInformation("Registered {Count} message types with static keys", messageTypes.Count());

    }

    catch (Exception ex)

    {

        var logger = app.Services.GetRequiredService<ILogger<Program>>();

        logger.LogError(ex, "Error during static key registration");

    }

}


// Настройка конвейера

if (!app.Environment.IsDevelopment())

{

    app.UseExceptionHandler("/Error");

    app.UseHsts();

}


app.UseHttpsRedirection();

app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();


app.MapRazorPages();


// Запускаем

Console.WriteLine();

Console.WriteLine("🚀 EventHub Razor Example Starting...");

Console.WriteLine("📡 Open browser to: https://localhost:5001");

Console.WriteLine("👀 Check console for service logs");

Console.WriteLine();


app.Run();


понедельник, 23 февраля 2026 г.

суббота, 21 февраля 2026 г.

QuotesClient, QuotesServer, DeepSeek

QuotesClient, QuotesServer, DeepSeek

QuotesServer - 1 qty
QuotesClient  - 4 qty

Try to Build Aspire with many projects

https://chat.deepseek.com/share/edxdat0b8sjvo6a5d6

QuotesClient, WebApp

Strat Second

F:\Projects\VS\26\Gemini\NamedPipesSln\QuotesClientRazor01\QuotesClientRazor01.csproj

-------------------------------

QuotesServer, WebApp

Start Firs

F:\Projects\VS\26\Gemini\NamedPipesSln\PipePoolQuoteServer03\PipePoolQuoteServer03.csproj