欢迎
游客
,
注册
|
登录
|
会员
|
界面
|
简洁版本
|
在线
|
帮助
商都网教育宝典宝库
商都网教育宝典宝库
计算机
软件开发
只买对的,不选贵的!感悟.Net的版本问题!
本主题被查看1044次, 共1个帖子, 1页, 当前为第
1
页 选择页数: 1 跳转到第
页
上一主题
下一主题
标题: 只买对的,不选贵的!感悟.Net的版本问题!
zxf_1
张小峰
超级版主
UID: 14
来自:
精华:
4
积分: 313
帖子: 285
注册: 2007-8-23 10:27:00
状态:
离线
威望: 8.00
金钱: 75.55 元
发短消息
用户资料
树型
回复
引用
只看楼主
2007-09-07 11:36
只买对的,不选贵的!感悟.Net的版本问题!
只买对的,不选贵的!
如果你是一位理性的消费者,你应该遵守这一原则。商家总会想一切办法让你相信,他的最新产品是最好的,是最适合你的。然而,他的很大一个目的就是想要你口袋里的
Money
,当然他的新产品也许真的很不错。但我们应该理智一点,仔细的判断一下:这是你必须的?还是你想要的?(呵呵,这跟编程有鸟关系?!!)
OK
,前两天在
CSDN
上看到一文,是讲述
MS
中国在北京做的一次技术宣传会。里面说到,就连
MS
自己的技术宣传人员都到
MS
的新技术太多太杂了,他们不得不花大量的时间去学习和了解这些新东西,更别说那些准备使用新技术的开发人员了。不是吗,大家应该深有体会,就在
.Net
上,短短几年时间,从
1.0
到
3.5
,一下子好几个版本就出来了,同时也带来了一些新的技术。什么
ASP.Net
,
Ajax(MS
的开发包
)
,托管
C
++,
SQL2005
(托管的),
DirectX
(托管的),还一个
SilverLight
等等,开发平台也从
VS.Net2002
到
2003,2005
,还有已经
Beta2
了的
2008
。
Oh
,
my God
!你“买”得起这些吗?
永远别相信商家的话,自己须要的,才是最好的。当初我学习和使用
C
#
(Framework 1.1)
的时候,确实下了很大功夫,看了不少书,特别是一些关于程序性能与运行平台的内容。当初我对
C
#不了解,是从
C
开始学起,然后学
C
++,后来再学的
MS
的
VC
,然后才是
C
#。当时真的以为
C
#就是
C
++的一个升级,而且很多书都是这样写的:
C/C++/C#
,看看吧,他们三兄弟还真像会事。当然,也有一些书把
C
#和
Java
对比的,可惜
Java
的书我只看过一本,对它不了解,所以作者怎么去比,我就看不明白了,但有些作者既然让我先去学
Java
再学
C#
,
oh, my God
,这作者真的混蛋。还好我没听他的。
回忆一下当时我看的一些书的里的内容吧。先是安装开发平台,
VS.net2003
以及
Framework
,当然当时只有两个版本可比较,一个
Beta
版(其实也就是
2002
,先在这里说一下,还有一些大型公司在使用
2002
版的开发平台)和一个
2003
。然后就是机器的最低要求(永远的骗局,全世界骗人最多的,最真实的慌言),程序的跨平台性(当然,得要安装
Framework
,然而它的版本成了我最近很郁闷的事情,后面再说),再就是版本控制,
DLL
陷阱,代码安全等一些问题。
OK
,我并不是一位权威的专家,只对上面这些问题说说我最近的一些体会吧。我用
VS.Net2003
+
Framework 1.1
开发有近
4
年时间了,从
ASP.Net
到
WinForm
,从
JS
脚本到
SQL
存储过程,大大小小代码写了也近有近
20
万行了,读的代码应该过百万行了,相信对这些还算是了解一点点的。想当初开始用
2003
开发应用程序时,从来不用考虑版本问题,不就是安装一个
.Net Framework
吗,而且
MS
的网站上直接可以下载,而且做的安装包里会先自动检测这个依懒。
MS
真是想的太周到了,生怕我们不知道用
C
#
.Net
开发的程序要
Framework
的运行平台。还好,我只用跟别人解释一下,安装一个扩展包就行了。客户再要问什么,我就说是一个
MS
的补丁。还好,后来的
XP
补丁里还真的把
.Net1.1
给打上去了。好了,这样就不用担心客户机上没有
.net
平台了。算是松了一口气。
然而最近却发生了一件很不幸的事。因为
.Net Framework
版本的升级(它升的很快,比我的工资快多了),我们不得不考虑版本问题了。最开始我相信
MS
的一贯作风:向下兼容。而且这次我也有理由充分相信
MS
在
.Net
的版本问题上会比其它任何产品的版本问题解决的都要好。然而,我不得不说这是一个很大很深的陷阱!!!
由于
Framework
版本的升级,在不同版本下的开发的程序也出来了,当然还有很多第三方控件。因为这些程序和控件所依懒的
.Net
版本不同,因此就意味着目标机器上要安装不同的版本。不错,
MS
是说了它的版本不冲突。然而,不冲突的牺牲是什么呢?严重的性能损失。我看来看一个很有可能发生的假设(其实我就遇到了,只是没这严格):一个应用程序用
1.1
开发的,使用了第三方公司的一个
2.0
下的数据持久层控件,又用到了另一个第三方公司的界面库,很不巧,这个界面库是
3.0
的。没错,我们完全可以把程序配置起来,让它来运行!
我们先来看看运行条件吧:
Framework1.1
,
2.0
,
3.0
都得安装!!!!(
MS
想的太好,不冲突)。而且还有一个好事,就是
3
个随便先后顺序安装都没问题。
Oh, my God!
他们三个好像谁也不认识谁!确实是这样的,谁也不与谁相关,完全独立!好吗?
看看程序运行时的状态吧:加载程序集
XXX1.1,
加载程序集
XXX2.0,
加载程序集
XXX3.1,
呵呵,这下有戏看了,同样的一个程序集,版本不一样,加载了
3
次(这里是假设,但我确实跟踪到加载了两个的),为什么?因为第三方公司的控件里的引用只认它自己的版本,确切的说,是唯一的一个文件(在为
Public Key
的原因,能且只能引用唯一的文件)。
OK
,再来想象一下多几个版本,多几个控件的问题吧?最后
GAC
里的程序集你要加载多少才能运行一个程序?(我都不敢想了,这比
DLL
陷阱可怕多了)或许我说的有一些夸张,但下面这种情况是一定存在的:
1.1
,
2.0
。
3.0
的几个程序同时运行,或者先后运行!同样也存在上面的程序集加载问题。呵呵,只好苦笑了吧!
再来看一下安装吧。我遇到过这样的一个问题:用
1.1
做了一个安装
Merge
,然后用
Install Shield
把它合并到一个非托管程序的安装包中。然而不幸的是,运行
Install Shield
的机器上安装的是
.net Framewore2.0
,它在合并安装包时,以
2.0
的要求给我合并了我的
Merge
,然后安装到了目标机器上。
OK
,安装一切正常,自动给检测和安装了
Framework
。不幸,真不幸,它给我安装了
2.0
。结果是程序无法运行,因为没有
Framewor1.1
的运行库!讽刺,真够讽刺的!!!!难以想象遇到更高,更多版本的时候会是什么情况!我真的不敢想了,
4.0
,
5.0……
???
再来看一下自己写的程序的版本问题吧。我在做序列化时遇到这样的一个问题:如果某个文件是以
a.DLL
,
1.0
版本为基础进行的序列化,那么请你注意,这个文件就和这个
a.DLL(1.0)
永生绑定了
(
当然,如果你直接用二进行制来读取这个文件就不在讨论之列了
)
。当你把
a.DLL
文件修改了文件名后,不好意思,序列化文件就无法反序列化了。当你不小心把版本号从
1.0
修改到了
1.001
,不好意思,文件也不能反序列化了!怎么办?!听
MS
,让这几个
DLL
文件共存,然后用
1.0
反序列化文件,再用升级后的程序重新序列化成高级版本可用的文件!
Oh
,可怜的程序员,可怜的程序,这意味着程序的发布的每个新版本中,如果有我说的这上问题,那就必须在新版本中包含旧版本的文件,以及升级工具!(
55555
,我想哭呀,是每个版本呀!)最后我怕了,只好把版本号统一固定,不能随便修改!然后自己再对序列化与反序列化进行控制,这样就可以使用旧程序生成的文件了。(注意:不仅是文件序列化与反序列化,这个问题同相也存在于其它序列化当中,例如网络流的序列化,内存流的序列化等,因为安全性问题,序列化与反序列记录了序列化的依懒文件和版本以及
Public Key
,就意味着如果一些
DLL
文件的丢失,你就永远无法反序列化数据文件了,当然还可以用其它方法来读取,但如果是经过验证后的序列化文件,那你就可得先学学密码学再来读取这个文件吧,反正我是没办法读取的)
VS.2005
是安装了,可是没敢用。它太“贵”了,为之付出的东西决不仅仅是一个开发环境的升级和一些所谓的版本兼容问题。
2008
又像春风一样吹来了,我都没敢去下载!我觉得我还算是有点理智的,选择必须的就行了。
VC6.0
近
10
年了,大多数
VC++
程序员还在用它,因为它是对的,而且不“贵”!
2003
虽然把托管
C
++“吹”的神呼奇神,然而那些经过多年锤炼的
VC
++程序老手们还是坚持在使用他们最好的东西(并不是瞎说,我们公司的所有
C
++程序的机器上都安装了
.Net 2003
,但开发却只用
VC6.0
,而且我从网上下载的一些
C
++例子与一些
SDK
,都是基于
VC6.0
的,
2003
好象与
C
++说
Bye-bye
了,后面的版本就更不用说了,还把什么
Silver Light
都搭上了,却不搭个必须的单元测试或者代码重构之类的东西,
MS
真是太会卖东西了)!
好了,
VC
我是暂时没机会使用的了,但对于
.Net
,我还是觉得
2003
,
1.1
是一个比较便宜的东西,而且是我目前必须的。
基于这一原则:只买对的,不选贵的!我想我还是可以坚持使用
2003
好长一段时间的。一些商业炒作,过些时候就知道了什么是好的了!
#1
大
中
小
本主题被查看1044次, 共1个帖子, 1页, 当前为第
1
页 选择页数: 1 跳转到第
页
论坛跳转...
胎教早教
准备怀孕
怀孕期
出生与分娩
婴儿期(0-1岁)
幼儿期(1-3岁)
学龄前(3-6岁)
中小学
课件
试题
中招
中招动态
招生快讯
相关政策
考试辅导
语文
数学
英语
物理
化学
生物
政治
历史
地理
家长交流
历年中招资料
满分作文
高考
高考动态
高考状元
历年试题
家长必读
志愿填报
心理减压
复习技巧
考生经验
备考辅导
高考大纲
历年分数线
高考常识
高考指南
语文
数学
外语
物理
化学
生物
历史
地理
政治
文综
理综
高考满分作文
家长
教师
读书
作文
郑州新东中学
学校动态
学生天地
高等教育
移民留学
成人高考
自学考试
考研
论文
外语
雅思
托福
四六级
实用英语
职称外语
公共英语(PETS)
商务英语
英语口语
小语种
英思力美语
在线留言
学校动态
课程
学生作业
英思力相册
学英语资料
计算机
办公应用
软件开发
平面动画设计
IT资格认证
等级考试
网络工程
初学者之路视频教程
计算机基础
Windows
Word2003
Execl2003
Powerpoint
Flash
Deamweaver
Fireworks
黑客基础
北大青鸟
青鸟新闻
开班信息
青鸟师资
在线问答
学员相关
技术文章
职业资格
企业培训师
资料库
历年试题
案例探讨
相关政策
财务会计
公务员考试
营养师
营养动态
职业前景
健康权威
学习指导
营养知识
健康食谱
心理咨询师
心理俱乐部
学习指导
花季少年
爱情婚姻
心理障碍
人在职场
职业前景
经典案例
导游
司法考试
建筑工程资格
外贸资格
医药资格考试
教师资格考试
电子商务师
人力资源师
资料库
历年试题
案例探讨
相关政策
技能培养
汽车驾驶
美容美发
美容
美发
化妆
整体形象设计
相关课程
人才信息
茶艺
调酒
厨师烹饪
手机维修
音乐乐器
舞蹈健身
企业管理
人力资源
市场营销
管理激励
管理书籍
管理视频
信诺专栏
职场招聘
招聘信息
职场沙龙
现在的时间是 2008-10-11 02:49:58
版权所有
商都网教育宝典
Powered by
Discuz!NT
1.0.6666 Copyright © 2001-2008
Comsenz Inc
.
Processed in 0 seconds