1.9.9472

April - UI responsiveness, SEO and share fixes

1.9.9472 RU/EN

Небольшой патч, который должен улучшить отзывчивость окон под нагрузкой и помочь вашим пакам быстрее попадать в поисковую выдачу.

C# Scripting - Memory API Docs

Добавлена новая документация по Memory API для C#-скриптов. В ней постепенно раскладывается базовая модель работы с памятью в EyeAuras: какие есть backend'ы, с чего лучше начинать, как искать code cave, как подключать свой IProcess и как строить собственные memory backend'ы.

Полезные точки входа:

C# Scripting - UserLicense improvements

Во внутренние API лицензий добавлены новые подписанные поля у UserLicense, а у саблицензий появился явный MaximumSessions.

csharp
var license = GetService<ILicenseAccessor>();

Log.Info($"UserId: {license.UserId}");
Log.Info($"Roles: {string.Join(", ", license.Roles)}");
Log.Info($"AppVersion: {license.AppVersion}");

if (license.ShareSublicenses.Length > 0)
{
    Log.Info($"MaximumSessions: {license.ShareSublicenses[0].MaximumSessions}");
}

Подробнее: Лицензии на паки

C# Scripting - Memory API - added Free Memory

В IProcessControlApi появились явные FreeMemory(...) и ProtectMemory(...). Теперь выделенный регион можно не только получить через AllocateMemory(...), но и нормально довести до конца: поменять protection, выполнить нужные действия и затем корректно освободить.

csharp
using System.Diagnostics;
using EyeAuras.Memory;

using var process = LocalProcess.ByProcessId(Process.GetCurrentProcess().Id);
var control = (IProcessControlApi) process;

var region = control.AllocateMemory(
    IntPtr.Zero,
    4096,
    MemoryAllocationType.Commit | MemoryAllocationType.Reserve,
    MemoryProtectionType.ReadWrite);

var oldProtection = control.ProtectMemory(region.Address, region.Size, MemoryProtectionType.ExecuteRead);
control.ProtectMemory(region.Address, region.Size, oldProtection);
control.FreeMemory(region);

Подробнее: Memory API - С чего начать

Исправления / улучшения

  • [UI] Значительно доработаны механизмы ресайза и перетаскивания BlazorWindow, из-за чего окно должно вести себя лучше под нагрузкой
  • [Web] Поработал с SEO (search engine optimization) - ваши паки теперь должны быстрее детектиться поисковыми движками и чаще попадать в выдачу
  • [Web / Share] Исправлена гонка при подключении code highlighting во время перезагрузки share-страниц
  • [Licensing] Во внутренние API лицензий добавлены подписанные metadata и явные лимиты для sublicense
  • [Loader / Remote] Улучшено определение Scryde