开源倾情奉献:基于.NET打造IP智能网络视频监控系统(五)客户端介绍

本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载。

开源倾情奉献系列链接

客户端介绍

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

posted @   sangmado  阅读(7891)  评论(27编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示