发表用户:讨论贴
收集整理:James.Liu
相关讨论:http://www.mygis.com.cn/forum/dispbbs.asp?boardID=23&ID=2176
信息原始来源:James MapInfo技术论坛

文章标题:MapXtreme2004/2005和.net关系与技术实现探讨

archive

转自:http://www.rytto.com/bbs/dispbbs.asp?boardID=6&ID=10&page=1

MapInfo是微软GIS领域的重要合作伙伴,它本身也是微软操作系统战略转换的坚定支持者,因此MapInfo的Windows产品的技术发展路线也是与微软的技术发展路线完全一致的。下面让我们首先简单看一下MapInfo和微软的过去:
DDE(动态数据交换):微软COM技术的前身,MapInfo Professional早期的IDE开发技术;
OLE(对象链接和嵌入):微软COM技术的基础,MapInfo Professional 主流的IDE开发技术——OLE Automation;
COM(组件对象模型):微软 Windows 2000之前所有Windows操作平台的基础,MapX/MapXtreme For Windows开发的技术基础;
COM+ :微软.net架构和Windows 2003的技术核心,MapXtreme 2004的技术基础。

由于MapX和MapXtreme For Windows 都是基于COM技术实现的产品,而微软.net架构是完全兼容COM技术的,因此用户可以在.net平台上开发基于MapX的应用程序和基于MapXtreme For Windows 的Web地图应用。如果大家希望如此使用,应该注意将COM组件托管化,只有托管化后的COM组件才是完全被.net兼容的。具体托管化的方法请参看论坛中文章:http://www.rytto.com/bbs/dispbbs.asp?boardID=6&ID=7&page=1。我将在随后的帖子中放入MapX和MapXtreme托管后的DLL包,希望对大家工作有所帮助

至于MapXtreme 2004(原名MapInfo.net)则是MapInfo根据.net框架设计和开发的全新产品,根据规划,该系列产品未来将包括从桌面到Web应用的全系列开发平台。

目前看来,利用.net开发应用尤其是Web应用的最大特点就是速度,这一点在MapInfo系列产品中的表现尤为明显。根据测试,利用在ASP和ASP.net开发MapXtreme For Windows 3.0的应用,系统速度差异相当明显,对一定数量的地图数据的处理速度,ASP.net会比ASP快2-3倍;而.net+MapXtreme 2004与ASP+MapXtreme For Windows 3.0相比,尤其在大数据量处理速度,更是不可同日而语。

但由于MapXtreme 2004 是一个全新的产品,因此产品的稳定性还需要大家共同努力。 

archive

这个帖子对MapInfo和.net的相互关系理解比较清楚,大家可以参考,有问题大家切磋啊

MILearner

那也就是说新的mapinfo产品的底层将仍然以COM+为基础,而不是在.NET框架下重新来过?完全倚仗于.NET对unmanage组件的托管来与.NET兼容?
不过,俺看过MAPINFO.NET的介绍,感觉好像是重新设计的样子啊?

archive

你可能没有仔细看上面的文章,.net框架是基于COM+架构的,MapXtreme 2004是完全基于.net框架设计的

MapXtreme For Windows 3.0是基于COM架构的,在.net当中可以采用托管化的方式开发

MapXtreme2004 和MapXtreme 3.0不是同一个东东来的 

MILearner

呵呵,听了斑竹的话,俺还真有点摸不到门了,用了.NET大半年了,连啥是.NET的核心技术都不知道,俺只知道NET Framework的核心技术为:
通用语言运行库(CLR:Common Language Runtime)、类库、ASP.NET及ADO.NET
于是赶快去找书看,渐渐明白了斑竹的意思,在NET本质论中有以下叙述:
为了处理COM约定及其定义所引发的问题,MS公司的COM MTS小组计划开发一个新的组件平台,名为COM3。就在选定该名称不久,MS的多个组织一致认为,在特定的MS平台下,COM3这个名称不合适。随即将其更名为COR,在开发过程中,还采用过COM+在内的其他名称……在第一个beta版发布之前,最终将名称定为CLR.
呼,打了一堆,目的是想说明,COM+看来是个代号而已,以它来作为.NET的核心(其实是CLR),会让人联想到.NET是从COM演变来的,实际上它只是CLR演化开发过程中的一个阶段,当然,COM+也在MS中有所应用
http://www.microsoft.com/com/tech/COMPlus.asp
尽管俺有些咬文嚼字,也知道在MAPX上俺没法和斑竹的水平相提并论,但俺觉得如果新的MapXtreme2004是基于.NET的,那它就应该完全架构在CLR+ADO.NET基础之上的
拙见,欢迎斑竹批评:) 

archive

呵呵,这样啊,看来在知识上真是来不得半点儿马虎啊,谢谢楼上大哥的指正
当时写这篇文章只是为了充分说明微软相关技术路线和MapInfo技术路线发展的切合度
看来用CLR在上文中更合适,这样吧,我把文章重写一下,发在下面吧:

MapInfo是微软GIS领域的重要合作伙伴,它本身也是微软操作系统战略转换的坚定支持者,因此MapInfo的Windows产品的技术发展路线也是与微软的技术发展路线完全一致的。下面让我们首先简单看一下MapInfo和微软的过去:
DDE(动态数据交换):微软COM技术的前身,MapInfo Professional早期的IDE开发技术;
OLE(对象链接和嵌入):微软COM技术的基础,MapInfo Professional 主流的IDE开发技术——OLE Automation;
COM(组件对象模型):微软 Windows 2000之前所有Windows操作平台的基础,MapX/MapXtreme For Windows开发的技术基础;
CLR :微软.net架构和Windows 2003的技术核心,MapXtreme 2004的技术基础。

由于MapX和MapXtreme For Windows 都是基于COM技术实现的产品,而微软.net架构是完全兼容COM技术的,因此用户可以在.net平台上开发基于MapX的应用程序和基于MapXtreme For Windows 的Web地图应用。如果大家希望如此使用,应该注意将COM组件托管化,只有托管化后的COM组件才是完全被.net兼容的。具体托管化的方法请参看论坛中文章:http://www.rytto.com/bbs/dispbbs.asp?boardID=6&ID=7&page=1。我将在随后的帖子中放入MapX和MapXtreme托管后的DLL包,希望对大家工作有所帮助

至于MapXtreme 2004(原名MapInfo.net)则是MapInfo根据.net框架设计和开发的全新产品,根据规划,该系列产品未来将包括从桌面到Web应用的全系列开发平台。

目前看来,利用.net开发应用尤其是Web应用的最大特点就是速度,这一点在MapInfo系列产品中的表现尤为明显。根据测试,利用在ASP和ASP.net开发MapXtreme For Windows 3.0的应用,系统速度差异相当明显,对一定数量的地图数据的处理速度,ASP.net会比ASP快2-3倍;而 .net+MapXtreme 2004 与 ASP+MapXtreme For Windows 3.0 相比,尤其在大数据量处理速度,更是不可同日而语。

但由于MapXtreme 2004 是一个全新的产品,因此产品的稳定性还需要大家共同努力。 

MILearner

呵呵,斑竹过谦了,谢谢斑竹让俺们对新的产品有了宏观的认识,谢谢!
俺期待您说的:“MapXtreme托管后的DLL包”
因为俺想试着用MapXtreme做些研究,但没有MapXtreme,MAPINFO的网站下不了评估版,好像总连不上(俺已经注册了: 

archive

人太多了吧,多试试,最好是晚上7/8点的时候应该可以搞定

我们南方区那边的网站正在加紧做MapInfo各产品的试用版下载,但现在要考虑下载风险等等问题,一时不敢弄开,怕把网站弄瘫了,你最近多关注我们的网站吧www.rytto.com

"MapXtreme托管后的DLL包"我昨天忘了放,我今天会发到我们的论坛上,到时我会再这边加链接的,希望对你有帮助 

shell

asp.net 的速度是快了
可是vb.net,vc.net甚至c#.net的速度都慢的要死
总体评价下来
.net的速度增加实在是不敢恭维 

archive

.net架构本身应该是主要为做Web Application和Web Service而设计的架构,正如上文所说他使用的核心是CLR(通用语言运行库),这种概念从技术上说与Java的JVM基本上如出一辙,只是Java是希望跨平台,而.net是希望跨语言

我想你说的vb.net、vc.net、c#.net的速度慢都是在说我们平常说得C/S的Application,在这种程序上,由于.net采用的是CLR中间语言及相关标准运行库支持,因此他的常规执行效率是会变慢的。这一点在进行内存置位等底层系统运算上尤为明显

不过.net在对底层操作这一方面允许你采用UnSafe标准,使用类似C/C++的指针等底层操作概念,如果你使用这些东东,那你的执行效率会比你以前用VC写的程序的速度还要快些(有些底层函数微软在原有的基础上已经做了进一步的升级了)

我想,加上UnSafe方案来看.net才算完整的方案吧