GIS集成技术之四:Office, AutoCAD, MatLab集成

一。Office

1.介绍
毫无疑问,Office是与dotnet集成性,兼容性做的最好的。在visual studio 2005中,集成的vsto技术,提供了几乎完全的对象模型,现在可以对world,excel,powerpoint,outlook等进行design time support,给OA开发人员带来了强的的生产动力。结合Smart Client技术,可以开发出高性能的integration of desktop & web Applicaiton。

2。评论
在很多oa中,我们并不需要Office的全部功能,我们希望利用Office的core technology,而全部的开发模式有过多的缺点(必须安装office,交互性不强,自由度不大,升级维护难,过于臃肿。。。)好像微软一直都不想把office组件化,模型化。

二。AutoCAD

1。介绍

在AutoCAD2004及其以前,用高级语言,主要用ObjectARX,仅限于C++人员(VBA和Visual Lisp不值一提);而直接利用AutoCAD Type Library调用应用程序本身,我认为并不是一个合适合理的方法(实际上是两个程序)

在AutoCAD2005及其以后,增加了对dotnet的support:provide managed wrappered packed 对象模型,可以供dotnet调用,其原理是在dotnet编写namespace, class method, CommandMethod, 生成.dll链接库,在AutoCAD中,用netload命令,load .dll,然后9can call CommandMethod。

2。评论
AutoCAD Managed ObjectARX提供的对象类型,并不是基于dotnet的,仅仅是对C++的类库进行了进一步的wrappered,其编程模型与dotnet相差甚大,跟dos,win32关系倒是很密。在实际应用中,会发现有些member can nto be detected by intelli sense,而且,还有一些get_***,set_***这样的语法,这应该是对COM进行简单包装而产生的。这种对com组件进行包装的做法,对公司而言可以充分利用现有资源,避免因为对宣传的蛊惑而产生的垃圾新技术风险,但另一方面,提高二次开发的难度:基本上很多优秀的dotnet framework class base,很少能够用的上,仅仅使用dotnet语言而已,这于平台技术的目的相差甚远。例如AutoCAD自己提供了Class Color,但是ObjectARX的Color不可能做的比Framework class理的class好,我们需要去熟悉ObjectARX里的Color,而这个类除了对AutoCAD有用之外,对别的开发没有什么帮助,各种弊端由此产生...
AutoCAD好像也没有组件化的可能,不能嵌入在集成项目中。

三。MatLab
1。介绍
不管GIS有多么大的空间分析计算能力,不管他能管理多么海量的数据,他的科学计算功能还是很弱的。而且GIS的计算,大部分是一种基于统计的模糊算法,很多问题不能得到精确解。但GIS要与行业应用结合起来,基于组件库,模型库(数学模型,仿真模型,物理模型等,前面已提到)集成是一个很好的解决方案,这些模型的计算,如果能用上matlab强大的科学计算功能,将如虎添翼,迅速打入各个技术行业。遗憾的,matlab提供的集成开发功能很弱:一种基于m,mex等文件转换成com组件(com组件的缺点在此不谈),一种是直接操作MatLab应用程序本身。它的这种操作本身最低级:直接对有MatLab命令组成的字符串计算求值,相当与解释语言中的Macro,没有提供对象模型。从这里可以看出,这些世界工程科学计算大师的计算机水平是实在是不敢恭维:强的科学计算功能+丑陋的二次开发,典型的头重脚轻。到现在为止,用dotnet call MatLab 功能的最好的方法是把MatLab脚本程序 用comtool conver to com。

2。评论
MatLab大师们已经看到他们的弱点。

这两天,我在网上到处搜索MatLab新的二次开发技术,确实有很多人在关心这个问题,在Mathworks官方网站上我找到了他们的答复:

Subject:

Does The MathWorks offer a product that works with Microsoft's .NET technology?

Problem Description:

I would like to generate .NET objects from my MATLAB functionality. The MATLAB Compiler and Builder for COM allow me to generate shared libraries and COM objects. However, I would like to generate .NET objects which integrate directly with my .NET project.

Solution:

We are investigating Microsoft's .NET technology and are determining how this technology fits into our development strategy. We do not offer specific products that work with Microsoft's .NET technology.

However, using the MATLAB Builder for COM, you may generate COM objects then use the .NET COM Interop supplied with the .NET framework to write a wrapper for the COM object. With this wrapper, you may create a .NET object for your project.

Subject:

Does The MathWorks offer a product that works with Microsoft's .NET technology?

Problem Description:

I would like to generate .NET objects from my MATLAB functionality. The MATLAB Compiler and Builder for COM allow me to generate shared libraries and COM objects. However, I would like to generate .NET objects which integrate directly with my .NET project.

个人希望MathLab能够(1)提供一个完善的对象模型,(2)组件化他们的产品,(3)改变M文件的某些过于简化因而导致容易出错的语法,形成安全,快速,现代的开发语言(现在的M文件不安全,开发速度,运行速度过慢,部署复杂),(4)与dotnet无缝集成,(5)改进应用程序的管理机制,以namespace ,class等对象模式管理,或者以虚拟目录管理,抛弃文件路径管理方式(这种管理方式太低级,缺点太多,一直让我难以接受)


I 'll be right here waiting for you !

你可能感兴趣的:(Office)