本文为 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 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载。