Обложка канала

.NET Разработчик

Опытный разработчик не так давно зашёл в .Net и поставил цель получить сертификат Microsoft. Свой ежедневный прогресс он описывает на канале .Net Разработчик. Заметки об изученном материале, советы по повышению производительности и поддержке мотивации, ин

.NET Разработчик

3 года назад
Открыть в
День 1514. #ЧтоНовенького Новинки ASP.NET Core 8 Превью 2. Продолжение Начало 3. Новый интерфейс IResettable в ObjectPool Microsoft.Extensions.ObjectPool обеспечивает поддержку объединения экземпляров объектов в памяти. Приложения могут использовать пул объектов, если выделение или инициализация значений требуют больших затрат. В превью 2 упрощено использование пула объектов путём добавления интерфейса IResettable. Повторно используемые типы часто необходимо возвращать в состояние по умолчанию между использованиями. Типы IResettable автоматически сбрасываются при возврате в пул объектов.
public class ReusableBuffer : IResettable
{
  public byte[] Data { get; } 
   = new byte[1024 * 1024]; // 1 MB

  public bool TryReset()
  {
    Array.Clear(Data);
    return true;
  }
}

var bufferPool = ObjectPool.Create<ReusableBuffer>();
var buffer = bufferPool.Get();
try
{
  await ProcessDataAsync(buffer.Data);
}
finally
{
  // Данные автоматически сбрасываются
  bufferPool.Return(buffer);
}

4. Повышение производительности передачи по именованным каналам В превью 1 была добавлена поддержка использования именованных каналов в Kestrel. Именованные каналы — это популярная технология для построения межпроцессного взаимодействия (IPC) между приложениями Windows. Теперь вы можете создать сервер IPC, используя .NET, Kestrel и именованные каналы.
var builder = 
 WebApplication.CreateBuilder(args);
builder.WebHost
 .ConfigureKestrel(opts =>
{
  opts.ListenNamedPipe("MyPipeName");
});

Подробнее про межпроцессное взаимодействие с помощью gRPC в документации. В превью 2 улучшена производительность соединения именованного канала. Теперь принимаются параллельные соединения и повторно используются экземпляры NamedPipeServerStream. Источник: https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-2/