本文為 Dennis Gao 原創技術文章,發表於博客園博客,未經作者本人允許禁止任何形式的轉載。
開源傾情奉獻系列鏈接
- 開源傾情奉獻:基於.NET打造IP智能網絡視頻監控系統(一)開放源代碼
- 開源傾情奉獻:基於.NET打造IP智能網絡視頻監控系統(二)基礎類庫介紹
- 開源傾情奉獻:基於.NET打造IP智能網絡視頻監控系統(三)命令行工具集
- 開源傾情奉獻:基於.NET打造IP智能網絡視頻監控系統(四)服務端介紹
- 開源傾情奉獻:基於.NET打造IP智能網絡視頻監控系統(五)客戶端介紹
客戶端介紹
系統 C/S 架構客戶端采用 WPF 技術並基於 MVVM 模式實現。
主要分為 3 部分:
- Common - 通用控件、驗證規則等
- Modules - 業務功能模塊
- Applications - 最終呈現應用
業務功能模塊
- UIMessage - MVVM 模式中的消息傳遞
- Navigation - 系統導航菜單
- SkinConfiguration - UI 皮膚設置
- UserManagement - 系統登錄和用戶管理
- DeviceConfiguration - 設備管理
- LiveVideo - 實時視頻
- PublishMedia - 媒體流發布
- Widgets - 小部件,例如 About 頁面
服務連接
GUI 通過調用服務發現接口來獲取需要的服務連接。
1 namespace Gimela.Rukbat.ServiceDiscovery.Contracts.ServiceContracts 2 { 3 [ManagedServiceContractAttribute] 4 [ServiceContract(SessionMode = SessionMode.Allowed)] 5 public interface IServiceDiscoveryService 6 { 7 [OperationContract] 8 [FaultContract(typeof(ServiceDiscoveryServiceFault))] 9 GetServicesResponse GetServices(GetServicesRequest request); 10 } 11 }
例如連接調用 DVC 服務:
1 GetCamerasResponse response = 2 ServiceProvider.GetService<IDeviceConnectorService, IDeviceConnectorCallbackService>( 3 ViewModelLocator.ServiceClient, 4 ViewModelLocator.SelectedService.HostName, 5 ViewModelLocator.SelectedService.Uri.ToString() 6 ).GetCameras(request);
本文為 Dennis Gao 原創技術文章,發表於博客園博客,未經作者本人允許禁止任何形式的轉載。