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'ы.
Полезные точки входа:
- Memory API - С чего начать
- Memory basics
- C# Struct Layout
- LocalProcess
- Code Cave
- Кастомный IProcess
- Кастомные memory backend
C# Scripting - UserLicense improvements
Во внутренние API лицензий добавлены новые подписанные поля у UserLicense, а у саблицензий появился явный MaximumSessions.
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, выполнить нужные действия и затем корректно освободить.
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