ASP.NET Core

xAPI 2.0 için .NET kütüphanesi ve LRS geliştirirken öğrenilenler

Yazar, xAPI 2.0 (IEEE 9274.1.1) için xapi-dotnet kütüphanesini geliştirdi. Kütüphane doğrulamalı statement modelleri, async bir istemci, dayanıklı bir outbox ve ASP.NET Core içine gömülebilen bir Learning Record Store sunuyor. Yazı; CI'da uyumluluk testleri, Native AOT ve Unity uyumlu JSON işleme ile kalıcı yazmanın maliyetini anlatıyor. E-öğrenme verisi gönderen .NET geliştiricileri için faydalı.

DEV Community: #aspnetcore Nurullah Türkoğlu
Yayın tarihi
Okuma süresi
8 dk okuma
agent çalıştırması #5
agent çalıştırması #5
Orijinale git dev.to

Bu haberi bildir

Özette bir hata mı var, ya da bu içeriğin sahibi misin? Mesajın doğrudan bana e-posta olarak gelir.

Mesaj türü

Kilit noktalar

  • Paketler: Xapi.Core, Xapi.Client, Xapi.Client.Outbox ve ASP.NET Core için Xapi.Lrs; sürüm 0.2.0 NuGet'te yayında.
  • Uyumluluk testi paketinin çıkış kodu 256 hatada sıfıra döner; CI'da JSON günlüğünü okumak daha güvenli.
  • Outbox teslimatı en az bir kez garanti eder; statement kimliği (UUIDv7) tekrar gönderimde aynı kalır.
  • macOS'te FileStream.Flush(true) enqueue başına pahalıdır; yüksek hacimli döngülerde her enqueue'yu beklemeyin.
  • PostgreSQL'de yazmalar SERIALIZABLE ile yapılır ve 40001 hatasında yeniden denenir.
  • API 1.0 öncesinde değişebilir; migration rehberi TinCan.NET kullanıcıları içindir.

Yazar, 0.2.0 sürümüyle xAPI 2.0 (IEEE 9274.1.1) standardını uygulayan xapi-dotnet kütüphanesini yayımladı. Paket; statement modelleri ve doğrulama, async bir LRS istemcisi, dayanıklı bir outbox ve SQLite ya da PostgreSQL üzerinde ASP.NET Core uygulamasına gömülebilen bir LRS içeriyor. 2018'den beri değişmeyen ve 2.0'ı desteklemeyen TinCan.NET'e alternatif olmayı hedefliyor.

Yazı bir dizi mühendislik dersi niteliğinde. Uyumluluk testi paketinin çıkış kodu 256 hatada sarmaladığı için CI, bunun yerine JSON günlüğünü okuyor. Statement'lar Native AOT, trimming ve Unity IL2CPP ile uyumlu olsun diye Utf8JsonReader ve Utf8JsonWriter ile işleniyor. Outbox, tekrar gönderimleri güvenli kılmak için UUIDv7 kimliği atıyor; ancak macOS'te dosya flush işlemi enqueue başına yaklaşık 4,7 ms maliyet getiriyor. PostgreSQL yazmaları ise yeniden denemeli SERIALIZABLE işlemlerinde çalışıyor.

Gerçek dünyada kullanımı

  • Kurs tamamlama ve puan bilgilerini LRS'e gönderen bir e-öğrenme platformunun .NET backend'i.
  • Ağ kesintilerinde olay kaybını önlemek için mobil ya da masaüstü eğitim uygulamasında dayanıklı outbox kullanımı.
  • Küçük bir eğitim kurulumunda SQLite ile kendi LRS'ini ASP.NET Core uygulamasının içinde barındırmak.
  • Unity ile yapılan simülasyon ve oyunlarda WebGL, Android ya da iOS üzerinden öğrenci ilerlemesini raporlamak.

Neden önemli

xAPI verisi gönderen bir .NET uygulamasında TinCan.NET artık tek seçenek değil. Yazıdaki at-least-once teslimat, idempotent yeniden gönderim ve SERIALIZABLE yeniden deneme dersleri, kendi outbox veya veri yazma katmanınızı tasarlarken de işinize yarar.

Bu özet, DEV Community: #aspnetcore üzerindeki orijinal yazıdan agent tarafından üretildi. Yazının tamamı ve tüm hakları ilgili yazara/yayıncıya aittir. Orijinal yazıya git

Benzer haberler

Geri bildirim

Bir hata mı buldun, bir fikrin mi var? Yazdığın mesaj doğrudan bana e-posta olarak gelir.

Mesaj türü