博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MapGuide应用最佳实践--采用托管(Managed)资源还是非托管(Unmanaged)资源
阅读量:6594 次
发布时间:2019-06-24

本文共 1775 字,大约阅读时间需要 5 分钟。

我们在介绍MapGuide Studio加载数据时讲过有两种数据加载方式,Load Procedure和 Data Connection, 这两种方式有什么区别呢?这和托管资源或者非托管资源有什么关系么?这篇文章中我们就来阐述这个概念。

 

托管资源(Managed)是指已经被上传到MapGuide服务器的资源库中的文件资源。也就是说这些资源一般都是文件型的数据,比如SDF文件,SHP文件等等。他们可以通过在MapGuide Studio中使用Load Procedure的方式上传到MapGuide Server的资源库中。

比如,我们通过Load Procedure上传一个shp文件,如图

看一下在MapGuide Server中资源的存储情况如下, 在C:\Program Files\Autodesk\MapGuideEnterprise2010\Server\Repositories\Library\DataFiles目录下能找到你上传的资源文件,不过SHP格式已经转换成了SDF格式。

这种驻留在MapGuide 服务器的资源库中的资料即为托管(Managed)资源. 对应托管资源,你可以通过创建Package(*。mgp)的方式把资源打包,并传递给别人或者到其他MapGuide服务器上。关于打包问题,可以参考以前的文章--

 

那什么是非托管资源呢?非托管资源驻留在普通文件系统中,MapGuide通过文件名引用这些资源。我们可以在MapGuide Studio中通过Data Connection的方式连接到非托管资源。连接到非托管资源,首先要在Site Administrator中创建一个Alias name,指向真正存放SHP文件的目录。这里可以支持网络共享目录。

然后在MapGuide Studio中通过Data Connection,选择适当的Provider即可连接到非托管资源。如图

注意到对应shp的Provider,我们可以选择连接到一个文件或者连接到一个目录。

对应非托管资源在打包时,这些资源不会打入到数据包中,你还需要把必要的数据文件也一般发生给别人,方便他能建立好这个alias name才行。

 

下面讨论一下托管资源和非托管资源的选择方法。基本上采用托管资源和非托管资源,在性能上影响不大。如果你的数据很少更新,那么可以选择托管资源,在给客户部署时,直接把mpg文件发过去加载就可以了。

如果你的数据需要经常更新,并且使用的还可能是除SDF之外的其他格式,比如SHP。这时候可以采用非托管资源方式。如果需要对资源数据进行更新,只要把文件覆盖即可,MapGuide会自动检测到资源的更新,而不用重新上传。在实际项目应用中,这中方式无疑有很大的优势。在运用Unmanaged资源方式时,为提高性能也有以下两点需要注意:

1. 在使用SHP Provider时,用使用目录方式,而最好是一个一个的链接到具体文件上。因为如果使用目录方式,当目录中的文件很多时,会造成性能的低下。

2. 尽量不要使用网络共享目录,尤其是网络情况不好的场合。MapGuide Alias Name虽然支持网络共享目录,当如果网络状况不好,还是会引起性能问题。

 

再引申一点,好多项目需要在Map 3D中对数据进行编辑,同时又要把数据通过MapGuide发布出来。怎么才能方便的保持数据的更新呢?非托管资源就是一种选择。我们可以在Map 3D中和MapGuide中同事通过FDO Provider连接到同一份资源文件,这样在Map3D中对数据进行的更改就能及时反映到MapGuide中了,是不是很酷?

 

好了,今天我们讲了托管资源和非托管资源的概念和他们的应用场景,希望你能在今后的项目实践中应用这一特性,达到更好的应用效果。先到这儿,您有任何问题可以下面评论,或者到MGDN论坛讨论。

峻祁连(Daniel Du)

作者:
邮箱:junqilian@163.com 
出处:  
转载请保留此信息。
本文转自峻祁连. Moving to Cloud/Mobile博客园博客,原文链接:http://www.cnblogs.com/junqilian/archive/2009/12/17/1626629.html
,如需转载请自行联系原作者
你可能感兴趣的文章
iOS 7用户界面过渡指南
查看>>
ansible变量定义
查看>>
smack 监听不同packet机制
查看>>
用例图
查看>>
“#51CTO学院四周年#互相交流,共同提高!
查看>>
同样是做内容创业,你为什么没有别人赚得多?
查看>>
检查Linux系统日志error和mysql错误日志的脚本
查看>>
高效制冷与自然冷却并重
查看>>
SQL Server 2008 全文搜索的一些知识
查看>>
GUN as 使用
查看>>
一周最新示例代码回顾 (4/16–4/22)
查看>>
TCPDUMP快速入门手册
查看>>
【转】Ubuntu13.04配置:Vim+Syntastic+Vundle+YouCompleteMe
查看>>
Nginx学习之二-配置项解析及编程实现
查看>>
点击edittext并显示其内容
查看>>
从机器学习谈起
查看>>
[Effective Java]第十一章 序列化
查看>>
[算法导论]红黑树实现(插入和删除) @ Python
查看>>
iPhone开发 数据持久化总结(终结篇)—5种数据持久化方法对比
查看>>
使用ReaderWriterLock类实现多用户读/单用户写同步
查看>>