开源倾情奉献:基于.NET打造IP智能网络视频监控系统(五)客户端介绍
本文为 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 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库