C#打造一个开源webgis(四)地图客户端(中)

应用场景

做过开发的会遇到过这样一个情景:

1、写了很多代码做了一个系统;

2、后来又要做一个类似系统,也有了设计模式概念,就把第一个系统的代码抽调出来,封装成公用模块或类库,供第二个系统使用;

3、又有几个类似的系统要做,为了减少工作效率,提炼出自己的一个框架。

说起这个,就绕回到第一节提到过地图系统架构问题,在这里主要就是地图服务api的概念。可以想象一下,本来做的GIS系统只支持桌面方式,突然说要做出WebGiS,是不是要重新开发?没必要,我们只需做一个共有的地图服务接口供调用,无论是给桌面程序还是浏览器,都可以获得一致的效果,这也就是从B/S和C/S转向B/S/S和C/S/S概念,中间的S就是Application Server,我们把服务api部署在这里,基于此,我们又可以做一个DEMO。


DEMO

1、在此,借用一下WCF,创建控制台程序,构建解决方案如图,由于只是简单演示,具体细节先不做深究:


IDomain.cs、DomainService.cs、clentaccesspolicy.xml是为了实现跨域,Site是数据库里的基站信息model,ISiteService和SiteService为模拟的地图查询服务,具体代码为:
IDomain.cs
[csharp]  view plain copy
  1. [ServiceContract]  
  2.   public interface IDomain  
  3.   {  
  4.       [OperationContract]  
  5.       [WebGet(UriTemplate = "ClientAccessPolicy.xml")]  
  6.       Message ProvidePolicyFile();  
  7.   }  
ISiteService.cs
[csharp]  view plain copy
  1. [ServiceContract]  
  2.   public interface ISiteService  
  3.   {  
  4.       [OperationContract]  
  5.       List<Site> GetSites();  
  6.   }  
Site.cs
[csharp]  view plain copy
  1. [DataContract]  
  2.   public 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值