使用ArcEngine开发高可用性应用程序_孙炎

更新时间:2023-07-26 02:24:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2012Esri中国开发者大会

欢迎您

使用ArcEngine开发高可用性应用程序技术应用服务及咨询部孙炎

内容简介如何让GIS软件运行的更好、更快?综合性的就ArcEngine开发项目中常遇到的一些问题进行反思,同大家一同探讨分享交流经验!内容不仅包含ArcEngine的使用技巧,还包括软件开发、项目实施等多方面。

2012Esri中国开发者大会

应用程序的高可用性

2012Esri中国开发者大会

GIS程序的高可用性

ArcEngine开发程序常见的问题用户体验差:–界面简陋,千篇一律。–效率低下,速度缓慢。–数据量大后性能显著下降、资源消耗严重。开发者体验:–接口太多,不知如何选择。–认为没有提供接口,要自己编写。

2012Esri中国开发者大会

提高可用性的几个方面 用户UI篇对象模型图权限篇数据库篇图形显示篇网络篇制图篇

2012Esri中国开发者大会

用户UI1.关于AxControls的使用 LiscenceControl ToolbarControl TocControl MapControl\PageLayoutControl\GlobeControl SymbolControl哪些必须使用?哪些不建议使用?

2012Esri中国开发者大会

用户UI

应用示例

2012Esri中国开发者大会

用户UI 2.用户操作反馈 长事务的消息响应– IFeatureDataConvert\ IGeoDBDataTransfer–实现接口– IFeatureProgress

2012Esri中国开发者大会

对象模型图

2012Esri中国开发者大会

运行许可

2012Esri中国开发者大会

数据库篇

数据库的选择 FileGeodatabase vs PersonalGeodatabase FileGeodatabase高效的原因 Personal Geodatabase存在的理由

2012Esri中国开发者大会

要素的保存IFeatureClass– Create feature()– Store() Vs IFeatureBuffer– Insert feature()– Flush()

2012Esri中国开发者大会

查询优化IFeatureCursor.Search(filter, Recycling );– True:– False:

IQueryFilter– SubFields设置– WhereClass语句的优化 索引的使用注意事项

2012Esri中国开发者大会

Where子句的优化下列SQL条件语句中的列都建有恰当的索引,但执行速度却非常慢: SELECT * FROM record WHERE substring(code,1,4)='5378' SELECT * FROM record WHERE amount/30< 1000 SELECT * FROM record WHERE convert(char(10),date,112)='19991201'

2012Esri中国开发者大会

Where子句的优化2WHERE子句中对列的任何操作结果都是在SQL运行时逐列计算得到的,因此它不得不进行表搜索,而没有使用该列上面的索引;如果这些结果在查询编译时就能得到,那么就可以被SQL优化器优化,使用索引,避免表搜索,因此将SQL重写成下面这样: SELECT * FROM record WHERE code like '5378%' SELECT * FROM record WHERE amount< 1000*30 SELECT * FROM record WHERE date= '1999/12/01'

2012Esri中国开发者大会

内存释放需要––– Marshal.Rel

easeComObject()的地方 ICursor对象务必及时释放。 IEnumXX接口。 GetXX方法获取的对象。 比如IFeatureClass的GetFeature方法 IPointCollection的GetPoint方法– IWorkspace 打开单个文件数据库后的方法– Mxd文档打开后的关闭

2012Esri中国开发者大会

本文来源:https://www.bwwdw.com/article/88em.html

Top