JX / Junexis SDKSDK w platformie →
Menu SDK

Twoja droga

Tworzę dostawcęIntegruję narzędzieIndeks kontraktówZgodność i weryfikacjaDostępność i ograniczenia

Wspólna platforma

Rola SDK w platformiePobieranie ↗

SDK / kontrakty i rozszerzenia

Tworzę dostawcę

Zbuduj własne rozszerzenie Storage Runtime, które zapisuje wartość w pamięci sesji i pozwala ją odczytać. Pierwszy wynik to działający dostawca i raport 11/11, nie samo wygenerowanie plików.

Co powstanie?

Dostawca Junexis.Example.Memory z operacjami sample.write, sample.read i kontrolą stanu. Nie wymaga zewnętrznej bazy. Dane nie przetrwają zamknięcia sesji.

1. Przygotuj lokalny zestaw

Próba wymaga .NET SDK 10 oraz zgodnego lokalnego zestawu: Junexis.Installer, Junexis.Compiler.CLI, Junexis.SDK.Tool i Junexis.Storage.Runtime.Abstractions. Zestaw testowy ma wersję paczek 0.1.0, a instalator zawiera poprawkę delegowania sdk. Sam numer 0.1.0 starszej paczki nie potwierdza obecności tej poprawki. Publiczny katalog nie udostępnia jeszcze tych paczek. Dostępność sprawdzaj we wspólnym Pobieraniu.

Poniższa instrukcja jest dla osoby posiadającej przygotowany zestaw. Wariant poleceń pokazuje PowerShell na Windows — środowisko, w którym wykonano opisaną próbę. Nie jest instrukcją instalacji platformy na pustym komputerze.

Przygotowanie wspólnego CLI z lokalnych paczek

W nowym katalogu roboczym, poza repozytorium z narzuconą centralną polityką NuGet, umieść cztery zgodne paczki w podkatalogu sdk-feed. To nazwa wybranego przez Ciebie katalogu, nie adres publicznego źródła.

$sdkSource = (Resolve-Path .\sdk-feed).Path
dotnet tool install Junexis.Installer --tool-path .\.tools --version 0.1.0 --add-source $sdkSource --ignore-failed-sources
dotnet tool install Junexis.Compiler.CLI --tool-path .\.tools --version 0.1.0 --add-source $sdkSource --ignore-failed-sources
dotnet tool install Junexis.SDK.Tool --tool-path .\.tools --version 0.1.0 --add-source $sdkSource --ignore-failed-sources
$env:PATH = (Resolve-Path .\.tools).Path + [IO.Path]::PathSeparator + $env:PATH

Narzędzia instalują się tylko w wybranym katalogu, bez globalnej instalacji. Instalator przekazuje grupę sdk do kompilatora, a kompilator uruchamia narzędzie SDK. Jeśli masz ustawione JUNEXIS_SDK_TOOL, ma ono pierwszeństwo przed wyszukiwaniem SDK w PATH; wskaż zgodne narzędzie z tego samego zestawu.

Sam pack-sdk.ps1 przygotowuje dwie paczki SDK, nie cały zestaw z instalatorem i kompilatorem. Pełną lokalną próbę i paczki odtwarza junexis-installer/scripts/verify-sdk-routing.ps1. Skrypt wymaga przygotowanych zależności repozytoriów. Nie jest publicznym instalatorem.

Posługujemy się wspólnym programem .tools/junexis.exe z poprawionego lokalnego zestawu. Całą drogę sprawdzono z zainstalowanych paczek, bez uruchamiania DLL bezpośrednio ze źródeł. Ograniczenia rozróżniają ten wynik od publicznego wydania.

2. Wygeneruj dostawcę

W katalogu roboczym z poprzedniego kroku:

.\.tools\junexis.exe sdk new provider Junexis.Example.Memory --output .\MemoryProvider --sdk-source $sdkSource

Powstaną między innymi:

MemoryProvider/
├── junexis.provider.json       tożsamość, ABI i deklarowane zdolności
├── junexis.conformance.json    próby zapisu i odczytu
├── src/Junexis.Example.Memory/ implementacja fabryki oraz sesji
└── tests/                     lokalna próba pomocnicza

Projekt dostawcy używa paczki SDK przez PackageReference. Nie potrzebuje zależności źródłowej od kompilatora ani Hosta Runtime. Generator odrzuca istniejący katalog docelowy, zamiast nadpisywać Twój kod.

3. Sprawdź dokumenty i zgodność

.\.tools\junexis.exe sdk validate provider .\MemoryProvider --json
.\.tools\junexis.exe sdk compatibility provider .\MemoryProvider --runtime-version 0.1.0 --require read --require write --json

Oczekuj kolejno status: valid i status: compatible. Pierwsze polecenie porównuje dokumenty z regułami projektu. Drugie sprawdza wymagane wersje i zdolności. Żadne z nich nie jest jeszcze dowodem wykonania operacji.

4. Zapisz i odczytaj wartość

.\.tools\junexis.exe sdk test provider .\MemoryProvider --json

Zestaw zgodności buduje dostawcę, ładuje jego fabrykę, otwiera sesję i wykonuje próby z junexis.conformance.json. W tym przykładzie sample.write zapisuje wartość Junexis, a sample.read ma zwrócić tę samą wartość.

sample.write
Junexis
→Pamięć sesji→sample.read
Junexis
Co dokładnie sprawdza ta próba?

Ładowanie fabryki, zgodność tożsamości, ABI i zdolności, otwarcie sesji, gotowość, anulowanie, nieznaną operację, zapis, odczyt oraz obsługę transakcji. Szablon nie deklaruje transakcji — zaliczenie tej kontroli oznacza ich poprawne odrzucenie.

Opcja --offline wyłącza audyt NuGet i toleruje niedostępne źródła przy restore. Sama nie gwarantuje braku prób połączenia z każdym skonfigurowanym źródłem. Wariant --no-build testuje już zbudowanego dostawcę.

Twój pierwszy wynik

{
  "schemaVersion": "junexis.sdk.provider-conformance/0.1",
  "status": "pass",
  "summary": { "passed": 11, "failed": 0, "total": 11 }
}

To skrót rzeczywistego raportu z próby lokalnych paczek z 24 października 2026, nie dodatkowy format odpowiedzi narzędzia. Otwórz pełny raport · Zobacz przebieg i sumy paczek.

Próba używała osobnego cache i wyłącznie lokalnego źródła paczek; nie zmieniała globalnie zainstalowanych narzędzi. Sprawdzono również zachowanie kodów wyjścia przy błędach: 1 — brak narzędzia SDK, 2 — istniejący katalog, 3 — niezgodna implementacja, 5 — brak wymaganej zdolności. Zaliczenie tej próby nie jest odbiorem instalacji całej platformy na czystym komputerze.

Potrafisz teraz połączyć deklarację dostawcy, implementację i dowód wykonania. Kolejnym krokiem może być zastąpienie pamięci rzeczywistym magazynem oraz dodanie odpowiadających mu prób. Sama zmiana nazwy na Redis lub PostgreSQL nie tworzy sterownika.

Gdzie przebiega granica?

Szablon implementuje IStorageProviderFactory oraz sesję IStorageProviderSession. Host Runtime jest osobnym programem, który może korzystać z tych interfejsów. Zaliczenie zestawu zgodności nie instaluje dostawcy w profilu użytkownika i nie wdraża aplikacji .jnx.

Po kontrakt dokumentów przejdź do integracji narzędzia, a przed rozbudową sprawdź zgodność wersji.