Chinaunix首页 | 论坛 | 博客
  • 博客访问: 502695
  • 博文数量: 225
  • 博客积分: 2175
  • 博客等级: 大尉
  • 技术积分: 2443
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-05 22:02
个人简介

目前在一家公司担任软件总监,主要涉及智能手机,笔记本电脑的开发

文章分类

全部博文(225)

文章存档

2024年(6)

2023年(68)

2022年(13)

2021年(7)

2020年(11)

2019年(3)

2018年(10)

2017年(8)

2012年(7)

2011年(4)

2010年(32)

2009年(41)

2008年(6)

2007年(9)

分类: WINDOWS

2009-11-16 11:37:24

Windows的技术变化{BANNED}最佳快了,从我读书的时候,大家忙着学习VB去找兼职,如今,景象却完全不一样了。
先看看语言。在Windows上运用的语言有
1) Basic --> VB --> VB.net ,这个也接近淘汰了,现在很少用这个了。但是我的一个同学说:老外还用VB.net ,呵呵 我发现老外学新东西比我们中国人慢多了:)
2) C/C++ ---> VC --> VC.net
3) J++   ---> VJ++ , MS的Java实现,虚拟机为MSJVM , 但是它又不完全符合java标准,因为有些java标准的功能未实现。后来MS和Sun打官司了, .net出来以后,基本表明ms已经放弃了vj++
4)C#: 新的语言  和java很像,取代J++,它是微软在跨平台领域和java竞争的一个重要筹码
  不过我看 C#也只是在windows平台上运用,在其他的平台,还是java的天下。
个人认为C/C++ ,C#目前还是有用(找工作)。其他的两门语言,没必要学习了:)

由于语言的变化,开发工具也是跟着变化。以前VB,VC,VJ ,到Visual Studio 2003 ,以及Visual Studio 2005 . 到了2005以后,所有的MS产品都统一到Visual Studio 2005了。连Windows CE 也是,以前还有evc ,自己WINCE 5.0以后,evc慢慢退出了,(在此之前,evc用来开发本机代码,VS.Net 2003用来开发托管代码),在WINCE6.0的时候,Platform Builder也作为Visual Studio 2005的一个插件 。
 所谓.net技术,以及托管代码,其实和Java原理是一样的,先编译成微软中间语言MSIL (Microsoft Intermediate Language),当程序执行并且遇到这些指令时,公共语言运行时(Common Language Runtime CLR)负责把它们即时(Just In Time , JIT)地编译成CPU相关的本机代码,使得托管代码能够以运行应用程序的硬件平台的本机语言运行。现在VC.net 也可以把VC的代码编译成本机代码或者托管代码了。
  我一直学习的是C/C++,以前学习它,觉得这个语言不会被淘汰,生命力强。不过在windows下面的编程技术也变化日新月异。
  刚开始的时候,我用Windows API直接编写应用程序,因为所编写的应用程序是放在网络上给客户下载的,希望程序体积很小。确实,windows API编写出来的程序很小。但是开发效率太慢了。后来就学习MFC了,MFC其实就是微软对于Windows API的一个面向对象的封装,比如CWnd就是窗口的一个封装,里面的变量
m_hWnd就表示窗口句柄。
  后来我在MS的鼓吹下学习了OLE , COM , ActiveX技术。OLE技术是为了解决应用程序间的通讯问题。{BANNED}最佳开始的时候,我们可以用剪贴板”(Clipboard)(由剪贴板作为数据交换中心,进行复制、粘贴的操作),但是剪贴板传递的都是“死”数据,应用程序开发者得自行编写、解析数据格式的代码,并且ClipBoard需要用户来进行操作。于是动态数据交换(Dynamic Data ExchangeDDE)的通信协定应运而生,它可以让应用程序之间自动获取彼此的{BANNED}最佳新数据,但是,解决彼此之间的“数据格式”转换仍然是程序员沉重的负担。对象的链接与嵌入(Object Linking and EmbeddedOLE)的诞生把原来应用程序的数据交换提高到“对象交换”,这样程序间不但获得数据也同样获得彼此的应用程序对象,并且可以直接使用彼此的数据内容。一开始OLE是MS的符合文档技术,后来OLE2是基于COM基础上。
  COM的思想就是:
让某个软件通过一个通用的机构为另一个软件提供服务。有点像qtopia的service概念:),它依赖注册表,利用接口来实现,应用A调用某个COM对象,然后找到相应的接口,调用该接口。COM对象其实就是一系列接口的集合,每个接口完成特定的功能。
  ActiveX控件也是基于COM技术的,为了贯彻微软的Internet战略使它更易于在网络环境中使用,ActiveX是指宽松定义的、基于COM的技术集合,而OLE仍然仅指复合文档。当然,ActiveX{BANNED}最佳核心的技术还是COMActiveXOLE的{BANNED}最佳大不同在于,OLE针对的是桌面上应用软件和文件之间的集成,而ActiveX则以提供进一步的网络应用与用户交互为主。
  对于COM技术的编程,微软提供了ATL (ActiveX template Library),它是一套C++模板,对COM组件的开发提供了代码自动生成以及可视化支持。
  今天我们经常还会用到很多ActiveX控件,比如IE控件,Media Player控件 。
  不过,现在OLE,COM等过时了,现在流行.net .  .net framework其实相当于MFC, MFC是对Windows API的封装,而.net Framework是与CLR紧密集成的可重复使用类的集合。基于.net开发者使用.net framework提供的接口。
 
  结论: 对于目前的windows 开发(不包括web开发技术),应用部分大多采用C#,基于.net framework来开发,这种开发效率{BANNED}最佳高。
           不过,我经常采用VC开发一些模拟器,下载工具等小应用,有时候也会用到ActiceX控件(比如media player控件)。
     至于开发工具,我用的是Visual Studio 2005 ,很多人已经用2008了。但是一些老的工程,比如MTK的代码工程 还是需要用VC6来编译。

 



 




 
阅读(830) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~