sgcUI Realtime Arayüz Paketi: Delphi, C++Builder ve .NET için Varlık, Bildirimler, Etkinlik ve Canlı Günlükler

· Bileşenler
sgcUI Realtime Arayüz Paketi: Delphi ve .NET için Varlık, Bildirimler, Etkinlik ve Canlı Günlükler
Yeni · sgcUI Realtime arayüz paketi

Uygulamanız, canlı.
Kim çevrimiçi, ne oldu, ne başarısız oluyor.

Varlık avatarları, toast bildirimleri ve bir bildirim kutusu, zil rozeti, denetim kaydı içeren bir etkinlik akışı ve bir canlı günlük görüntüleyici; hepsi WebSocket, MQTT veya Server Sent Events ile beslenir. Delphi, C++Builder ve .NET için yerel denetimler.

  • VCL
  • FireMonkey
  • C++Builder
  • WinForms
  • WPF
  • Avalonia
Realtime operasyon demosu: ekip varlığı, etkinlik akışı, bildirim kutusu ve bir canlı günlük
4canlı model
3canlı kaynak
6arayüz çatısı
12dil

Operasyon konsolları, yardım masaları, yönetim panelleri ve işlem ekranlarının hepsi, veriler akmaya devam ederken aynı sorulara yanıt vermek zorundadır: şu anda kim çevrimiçi, neye dikkat etmem gerekiyor, kim neyi değiştirdi ve şu anda ne başarısız oluyor. sgcUI Realtime arayüz paketi bunların her birini bir model ve bir dizi yerel denetimle yanıtlar ve hepsini tek tür bir JSON mesajıyla canlı bir akışa bağlar.

Realtime UI paketi bir dakikada: tek bir JSON mesajıyla beslenen çevrimiçi durum, bildirimler, etkinlik ve canlı günlükler. YouTube'da da izleyin.

VarlıkAvatarlar, durum noktaları ve kimin çevrimiçi olduğu
BildirimlerToast bildirimleri, gelen kutusu, tercihler ve zil rozeti
EtkinlikKimin ne yaptığını gösteren bir akış ve bir denetim kaydı
GünlüklerHerhangi bir sgcGrid üzerinde canlı günlük görüntüleyici

Realtime arayüz paketi ayrı bir ürün değildir. Her parça, genişlettiği sgcUI ürününde bulunur: sgcUICore, sgcNavigation, sgcToolbar, sgcDashboard ve sgcGrid. Zaten kullandığınız birimlerde, paketlerde ve NuGet paketlerinde yer alır ve o ürünün sürümünü izler. Delphi ve C++Builder için VCL ve FireMonkey üzerinde, .NET için WinForms, WPF ve Avalonia üzerinde çalışır; açık, koyu ve yüksek karşıtlıklı temaları, sağdan sola düzenleri ve 12 dili destekler.

Varlık: Kim Çevrimiçi

TsgcUIPresenceModel, uygulamanızın kullanıcılarını adları, baş harfleri, renkleri, avatar görüntüleri, durumları (çevrimiçi, uzakta, meşgul veya çevrimdışı), durum metinleri ve son görülme zamanlarıyla tutar. Denetimler modeli okur ve bir durum değiştiğinde kendiliğinden yeniden çizilir.

Varlık göstergeleri olan bir ekip listesi ve +7 çipli bir avatar grubu
Araç çubuğundaki ekip listesi ve avatar grubu, ikisi de tek bir varlık modelinden çizilir.
uses
  sgcUICore_Presence, sgcUICore_Presence_VCL;

procedure TfrmMain.LoadTeam;
begin
  // usually set in the Object Inspector
  sgcVCLAvatarGroup1.Model := FPresence;
  sgcVCLAvatarGroup1.MaxVisible := 5;

  FPresence.AddOrUpdate('u1', 'Alex Morgan');
  FPresence.AddOrUpdate('u2', 'Bianca Ruiz', uprAway, 'Back at 3');
  // later, when the status changes
  FPresence.SetStatus('u1', uprBusy, 'In a meeting');
end;

Bildirimler: Toast'lar, Gelen Kutusu ve Zil Rozeti

TsgcNotificationModel, geçerli kullanıcının bildirimlerini başlık, gövde, önem derecesi, zaman, okunma durumu, eylemler ve grupla birlikte tutar ve okunmamış sayısını izler. Bunu dört parça gösterir:

Tercih düzenleyicisinin üstündeki bildirim kutusu ve okunmamış rozetli Bildirimler araç çubuğu öğesi
Güne göre gruplanmış gelen kutusu, kategori başına kanal tercihleri ve araç çubuğundaki okunmamış rozeti.
uses
  sgcNavigation_Notification, sgcNavigation_Toast_VCL,
  sgcNavigation_Inbox_VCL, sgcToolbar_BadgeLink;

procedure TfrmMain.SetupNotifications;
begin
  sgcVCLToastManager1.Model := FNotifications;
  sgcVCLToastManager1.Preferences := FPreferences;
  sgcVCLNotificationInbox1.Model := FNotifications;
  // the unread count as the badge of the first toolbar item
  sgcToolbarBadgeLink1.Source := FNotifications;
  sgcToolbarBadgeLink1.Target := sgcVCLToolbar1;
  sgcToolbarBadgeLink1.ItemIndex := 0;

  FNotifications.Add('Deployed billing', 'Version 1.8 is live in 3 regions',
    nsvSuccess, 'deploy');
end;

Etkinlik Akışı ve Denetim Kaydı: Kim Ne Yaptı

TsgcDashboardActivityModel kimin neyi ne zaman yaptığını kaydeder: eylemi yapan, bir fiil, nesne, bir sonuç ve denetim amacıyla değiştirilen her alanın önceki ve sonraki değeri. Eylemi yapanların adları, renkleri ve avatarları varlık modelinden gelir; böylece akış ile ekip listesi her zaman tutarlı olur.

Eylemi yapanların avatarları, fiiller, nesneler ve sonuçlarla etkinlik akışı
Etkinlik akışı: her satır eylemi yapanın avatarını, fiili, nesneyi ve sonucu gösterir.
uses
  sgcDashboard_Activity, sgcDashboard_Activity_VCL;

procedure TfrmMain.RecordApproval;
var
  oItem: TsgcDashboardActivity;
begin
  FActivity.Presence := FPresence; // actor names, colours and avatars
  sgcVCLActivityFeed1.Model := FActivity;
  sgcVCLAuditTrail1.Model := FActivity;

  oItem := TsgcDashboardActivity.Create;
  oItem.Id := 'a18';
  oItem.Time := FActivity.NowUTC;
  oItem.ActorId := 'u2';
  oItem.Verb := 'approved';
  oItem.ObjectName := 'Change request 102';
  oItem.Outcome := 'success';
  oItem.Changes.Add('status', 'pending', 'approved');
  // the model owns the item and inserts it by Time
  FActivity.AddActivity(oItem);
end;

Canlı Günlük Görüntüleyici: Şu Anda Ne Başarısız Oluyor

TsgcGridLogModel, trace düzeyinden fatal düzeyine kadar seviyeleri, bir kaynağı, bir mesajı ve özellikleri olan günlük satırlarının iş parçacığı güvenli bir halka tamponudur; seviye, kaynak ve metin filtreleri ile metin, JSON ve CSV dışa aktarımı sunar. Herhangi bir iş parçacığı ona ekleme yapabilir; değişiklikler ekrana toplu olarak ulaşır. TsgcGridLogLink herhangi bir sgcGrid'i günlük görüntüleyiciye dönüştürür.

Uyarı ve bilgi satırları seviye renkleriyle gösterilen bir sgcGrid içindeki canlı günlük
Canlı günlük: seviye renkleri, Pause, Resume, bir seviye filtresi ve Copy lines içeren bir sgcGrid.
uses
  sgcGrid_Log, sgcGrid_LogLink;

procedure TfrmMain.SetupLog;
begin
  FLog.Capacity := 100000;
  sgcGridLogLink1.Model := FLog;
  sgcGridLogLink1.Grid := sgcVCLGrid1;
  sgcGridLogLink1.FollowTail := True;
  sgcGridLogLink1.Active := True;
end;

// from any thread
FLog.Append(gllWarning, 'gateway', 'slow query 668 ms');

Canlı Veri: Her Akış için Tek Mesaj

Dört model de aynı türde JSON mesajını okur; bu nedenle tek bir bağlantı hepsini taşıyabilir. Her mesaj type ve op alanlarını belirtir ve her model yalnızca kendi mesajını alır:

{"type":"presence","op":"upsert","user":{"id":"u7","presence":"away","statusText":"Lunch"}}
{"type":"notification","op":"add","notification":{"id":"n2","title":"Build 812 passed","severity":"success"}}
{"type":"activity","op":"add","item":{"id":"a20","actorId":"u7","verb":"updated","objectName":"Invoice INV-17"}}
{"type":"log","op":"append","entry":{"level":"warning","source":"api","message":"Slow query"}}

Üç canlı kaynak, modelleri sgcWebSockets aracılığıyla bir sunucuya bağlar: TsgcUILiveSource_WebSocket, TsgcUILiveSource_MQTT ve TsgcUILiveSource_SSE. Her kaynak, URL'si, kimlik bilgileri, TLS ve yeniden bağlanma ayarlarıyla zaten yapılandırdığınız bir istemciye bağlanır ve her mesajı bağlamalarına iletir. Bir çalışan iş parçacığında gelen mesajlar ana iş parçacığında tek bir toplu işlemde uygulanır; böylece binlerce günlük satırından oluşan bir yığın, kullanıcı arayüzüne yalnızca tek bir uğrama maliyeti getirir. Bir bağlama ayrıca bir MQTT konusunu, bir SSE olay adını, bir filtreyi veya uygulama zarfı içindeki bir yolu seçebilir.

uses
  sgcWebSocket, sgcUICoreWS_Live, sgcUICoreWS_Live_WebSocket;

procedure TfrmMain.ConnectLive;
var
  oSource: TsgcUILiveSource_WebSocket;
begin
  oSource := TsgcUILiveSource_WebSocket.Create(Self);
  oSource.Client := sgcWebSocketClient1;
  // every message carries its type, so each model takes only its own
  oSource.Bindings.Add.Target := FPresence;
  oSource.Bindings.Add.Target := FNotifications;
  oSource.Bindings.Add.Target := FActivity;
  oSource.Bindings.Add.Target := FLog;
end;

Canlı kaynaklar Kayıtlı sürümündedir ve sgcUI'nin her sgcWebSockets köprüsü gibi sgcWebSockets gerektirir. Sunucu olmadan veya bir Community derlemesinde uygulama bunun yerine model API'sini çağırır: AddOrUpdate ve SetStatus, Add veya Post, AddActivity ve Append.

Her Platform, Açık ve Koyu

Aynı modeller ve aynı JSON her platformda çalışır. .NET denetimleri, esegece.sgcUICore, esegece.sgcNavigation, esegece.sgcToolbar, esegece.sgcDashboard ve esegece.sgcGrid paketlerinde aynı adlara sahip yerel WinForms, WPF ve Avalonia denetimleridir ve koyu ve yüksek karşıtlık dahil paketin her teması yeni denetimlere ulaşır.

WinForms üzerinde Realtime operasyon demosu
WinForms
WPF üzerinde Realtime operasyon demosu
WPF
Sağ altta toast bildirimleri olan Avalonia üzerinde Realtime operasyon demosu
Avalonia
FireMonkey üzerinde Realtime operasyon demosu, açık tema
FireMonkey, açık
FireMonkey üzerinde Realtime operasyon demosu, koyu tema
FireMonkey, koyu

Realtime Operasyon Demosu

Realtime operasyon demosu her parçayı tek bir ekranda toplar: bir ekip listesi, gelen kutusu ve tercihlerle toast bildirimleri, bir zil rozeti, etkinlik akışı ve denetim kaydı ile bir canlı günlük; hepsi yerleşik bir simülatörle yönetilir, bu nedenle sunucu olmadan çalışır. VCL, FireMonkey ve C++Builder için Delphi Suite demolarında, WinForms, WPF ve Avalonia için .NET Suite demolarında yer alır ve simülatör her platformda aynı diziyi üretir. İkinci bir VCL demosu olan RealtimeLive, aynı mesajları işlem içi bir WebSocket sunucusu ve bir TsgcUILiveSource_WebSocket üzerinden gönderir; bir URL kutusu ise onu kendi sunucunuza bağlar.

Sürümler

Her parça, onu barındıran ürünün sürümünü izler. sgcUICore'un varlık parçaları ve sgcGrid'in günlük parçaları Community dahil her sürümde bulunur, varlık mesajları da öyle. Bildirim ve rozet parçaları sgcUI Standard ve üzerindeki sgcNavigation ile sgcToolbar'ı, etkinlik parçaları ise sgcUI Professional ve üzerindeki sgcDashboard'u gerektirir. Ücretsiz .NET Community paketlerinde de bulunurlar, Delphi Community sürümü ise yalnızca sgcGrid içerir. Canlı bildirim, etkinlik ve günlük mesajları, rozet hedefi olarak ribbon ve üç canlı kaynak Kayıtlı sürümündedir. Ürün bazında ayrıntılar için Realtime arayüz paketi sayfasını ve Realtime arayüz paketi yardımını okuyun.

Uygulamanızı Canlandırın

Delphi için bir deneme sürümü ve C++Builder için bir deneme sürümü, Realtime arayüz paketi dahil her sgcUI ürününü kurar.

Sorularınız veya geri bildiriminiz mi var? Bize ulaşın, kodu yazan kişilerden yanıt alırsınız.