想问了好久的事情。

hyifeng 2004-03-27 04:14:27
我学.net都有好一段时间了,却一直没有领略到.net的精髓思想。

我以前一直写WIN32的程序,厚脸皮的说也算是从老时代过来的人吧。
现在人人都喊.net,评论都说是一大革命,改变了开发的方式,进入一个新时代。我一时也举不出那里看到这样的评论,不过长时间以来感觉人们都这样说。

可是我总是感觉到和WIN32时代相比变化不大,除了一个学习java的内存管理,就没有什么本质的改变了。
基于组件的设计思想,在发展到COM+已经很成熟了。.net framework提供了一大箩筐的类,把 WIN32API 和 许多其他商业库的集合 替代下来。面向对象的类库,免去了再包装(象MFC)。可除了更方便完整外,并没有什么本质的改变。

Asp.net对ASP的改进都是不少,可是无状态的本质,注定他不能像设计WinFrom那样。

总之,投放在托管的.net framework上的资金,能开发出同样一个“非托管的framework”。
改变就是一句话:好了,写一个系统不用这个那个的了,就.net framework。

至于为什么要从新开发一个,我认为是因为WIN32的设计在新应用技术出台时都出一些规范,新API,新的一二三方类库。这样修修补补,慢慢的就不统一难扩展难应用,索性就从新来过。

是不是太多东西不知道了,以至理解不了.net,望达人指点。




兼问几个技术问题:
.net framework是不是为每个进程分别启动一个gc?gc管理的所有对象都是当前进程内的(这样GC.Collect()不会影响到其他进程)。

还有一个问题,下一代操作系统,.net framework是基本了。可不可能会慢慢的不再兼容WIN32了呢?那时,非.net的语言应用程序都需要调用.net api来完成功能(没有了WINAPI),都需要按照.net的规范(新建一个对象和引用对象的指针处理)来编写代码,没人愿意干,那时是不是大家就只能用.net的开发工具。晕~~~~~~~
...全文
48 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Reeezak 2004-03-29
  • 打赏
  • 举报
回复
看了楼主的话,觉得楼主应该是一个很牛的人,但是后面怎么说“改变就是一句话:好了,写一个系统不用这个那个的了,就.net framework。”???
OS这样的东西,估计楼主也是很了解的了,用.net framework的OS在实现上会比以前的OS难很多倍的,OS毕竟跟我们平时开发的那些这样XX系统、那样XX系统不同的啊!

tpwang 2004-03-28
  • 打赏
  • 举报
回复
asp.net的应用,一个浏览器的客户连上来,IIS根据客户请求的页面把该页的所有对象生成后,扔给客户后,马上就将这些对清除掉,等待下一个连接的再生成其它对象,再回收;
由系统去控制回收比较适合的说法是我们程序员可以不用太多地关心回收的代码,我们可以专注编写完成业务的一些代码了。
hyifeng 2004-03-27
  • 打赏
  • 举报
回复
to tpwang(ping),

“现在都是com+组件与WEB的应用,对象通常都是生成后马上回收掉的”这一段看不明白。
是不是说对象通常是用完后马上回收掉?
为什么由系统控制回收的方法比较适合?我一直认为能即时回收资源是一种优势。
tpwang 2004-03-27
  • 打赏
  • 举报
回复
在windows平台中,内存资源都是进行间独立的,本身.net的程序都由CLR控制运行的,当CLR想启动一次GC回收,它会马上挂起进程中的执行过托管代码的线程,完成回收后,线程诸继续工作。这肯定会比以后自已手工回收会影响效率,但写代码时根本不用管这方法,开效率要快很多,而且现在都是com+组件与WEB的应用,对象通常都是生成后马上回收掉的,.net的由系统控制回收的方法比较适合。

微软是打算不再提供win api了,所有的接口都提供象.net framework的调用,非.net开发语言用统一调用.net framework的类库了,它不但象操作系统统一,而且开发的平台也想统一。
hyifeng 2004-03-27
  • 打赏
  • 举报
回复
虽然对微软对“传统应用程序”开发的打击很不满。
不过看微软这一步确实走的很实在,对开发支持作了大量改善。
后面的改进也很迅速,看着他的发展势头和决心,感觉在上面投资不会错。
hyifeng 2004-03-27
  • 打赏
  • 举报
回复
to CMIC(大象):
可能吧,WIN32和其他程序库发展到今天再增加修补也没什么意思了。不过我不认为传统的应用程序会有什么“先天不足”,差的是一套(二进制)规范。

to tpwang(ping) :
你可不可以告诉我“为每一个进程都建立一个gc”,到底是怎样一个概念(系统开销方面)。
“微软就是这个打算不再提供win api了”,会不会出现一个“非.net开发语言”的使用“GC机制”的封装库?而不是象vc.net那样扩展语言。
singleflower 2004-03-27
  • 打赏
  • 举报
回复
.net 主要是要抢网络这块市场,但。NET还不是很成熟
tpwang 2004-03-27
  • 打赏
  • 举报
回复
楼主,其实很多问题你自已都有答案了 ^O^

.net framework是不是为每个进程分别启动一个gc?gc管理的所有对象都是当前进程内的(这样GC.Collect()不会影响到其他进程)


还有一个问题,下一代操作系统,.net framework是基本了。可不可能会慢慢的不再兼容WIN32了呢?
会,微软就是这个打算不再提供win api了.
CMIC 2004-03-27
  • 打赏
  • 举报
回复
Microsoft.NET计划,用以实现任何时间、任何地点,任何设备都可以获取自己所需要的信息,WIN32的程序在这方面存在先天不足,而这是未来软件发展方向。
hyifeng 2004-03-27
  • 打赏
  • 举报
回复
写错了:
.net是伟大的变革,可是没有给出力征,也理解不了为什么这么说。
hyifeng 2004-03-27
  • 打赏
  • 举报
回复
为什么没有人说话的。

.net是伟大的变革,可是给出力征,也理解不了为什么这么说。

如果为每一个进程都建立一个gc,真的很可怕。如果不是,那么是通过什么技术来解决跨进程对象访问的开销问题。

huangsuipeng 2004-03-27
  • 打赏
  • 举报
回复
UP
raoking 2004-03-27
  • 打赏
  • 举报
回复
还有JAVA呢,但心什么

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧