垃圾收集,元数据等问题

ncsmt 2006-03-31 12:04:57
1.我的理解在垃圾收集中就是用析构器代替的Finalize方法,阀值到4K左右开始自动收集,又分什么老中青,代龄,可觉得没有什么指导意义,因为.NET中是自动内存管理,没多大用?

2.听说凡是.NET问题都可以用CLR推敲出来,而且和元数据有很大关系,可我都分析到PE表头了,ildasm也没少看,但现在还没有头绪看出什么来

3.个人感觉无论WINFROM,还是ASP.NET,微软都给做了,无非就是程序加载个进程,进程里包含些类的关系(比如系统程序集合,GAC程序集,用户程序集),然后把继承,哪个需要重写搞清楚,就OK了,是这样吗?

4.总觉得代码写得不爽,OO思想不能很好的体现,虽然我也知道属性封装起来,但如果没人注意的话,我到宁愿直接写个字段省事,完全是为了OO而OO

5.觉得ASP.NET就组件能体现些技术含量,HttpContext 类,IHttpHandler 接口留下很深的印象,dataGrid等比较费事,剩下就完全不知道怎么学了,下一步该怎么走?

6.较为郁闷的是,CSS,javascript,VBscript,个人觉得没多大用,但接的活需要,晕的厉害
...全文
214 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
chengbo1983 2006-04-14
  • 打赏
  • 举报
回复
1.我的理解在垃圾收集中就是用析构器代替的Finalize方法,阀值到4K左右开始自动收集,又分什么老中青,代龄,可觉得没有什么指导意义,因为.NET中是自动内存管理,没多大用?
这个我记不太清了,隐约记得好像是CLR认为越老的代越有用吧,这样GC可以根据需要把那些不常用的从内存中去除,提高效率。

2.听说凡是.NET问题都可以用CLR推敲出来,而且和元数据有很大关系,可我都分析到PE表头了,ildasm也没少看,但现在还没有头绪看出什么来
--
一般来说,不需要观察那么深入。元数据相当于程序集的资料索引,有什么方法,有什么字段,到里面一查就出来了。

3.个人感觉无论WINFROM,还是ASP.NET,微软都给做了,无非就是程序加载个进程,进程里包含些类的关系(比如系统程序集合,GAC程序集,用户程序集),然后把继承,哪个需要重写搞清楚,就OK了,是这样吗?
--

4.总觉得代码写得不爽,OO思想不能很好的体现,虽然我也知道属性封装起来,但如果没人注意的话,我到宁愿直接写个字段省事,完全是为了OO而OO
--
概念不清,再学习一下OO。

5.觉得ASP.NET就组件能体现些技术含量,HttpContext 类,IHttpHandler 接口留下很深的印象,dataGrid等比较费事,剩下就完全不知道怎么学了,下一步该怎么走?
--
看MSDN,多写代码,多思考

6.较为郁闷的是,CSS,javascript,VBscript,个人觉得没多大用,但接的活需要,晕的厉害
--
做web的,css和js是必须要掌握的,怎么可能会没用呢?
css控制页面的显示,js可以做很多其它东西做不到的事
ncsmt 2006-04-13
  • 打赏
  • 举报
回复
TO:calmzeal(demon)

是指下面这个么?
aspx页面:
<%@ Page language="c#" Codebehind="CheckAccounts.aspx.cs" AutoEventWireup="false" Inherits="NIFMP2006.CheckAccounts" %>

aspx.cs文件里定义类NIFMP2006.CheckAccounts继承自page,
aspx页面是这个类的子类
----------------
Inherits指名ASPX页面继承的ASPX.CS中间基类,微软也确实把ASPX编译成一个类,刚刚找到:)
ncsmt 2006-04-13
  • 打赏
  • 举报
回复
谢谢楼上各位兄弟,ASPX确实编译成一个类,正在反汇编看,因为以前是搞C++的,直接delegte,所以在看.NET反而不明白自己需要做什么了,垃圾收集的算法很牛啊,不知道会判断到多少层的引用
Ivony 2006-04-11
  • 打赏
  • 举报
回复
1、垃圾回收的理解完全错误,垃圾回收是释放托管对象所占用的内存空间,如果托管对象有Finalize,则会在回收前先执行Finalize,这对于托管对象包含非托管资源来说是很重要的,托管对象也许会包含一些非托管资源的信息,例如内存地址,释放方法,如果在释放托管对象的时候没有一个Finalize方法通知托管对象,则这些非托管资源的释放信息可能会丢失,导致永远不能释放。

2、但凡“凡是”开头的言论差不多就是错的

3、这仅仅是UI而已。

4、VS2005提供了更加简便的方法,另外,字段可以随时变为属性不用更改调用方的代码。

5、写几个控件。

6、WebForm如果不明白你的控件是怎么被呈现出来的,等于没学……

另、
是用PageParser将aspx文件给编译成了一个类,网上很多研究ASP.NET架构的文章你可以找找。
calmzeal 2006-04-10
  • 打赏
  • 举报
回复
--
asp.net在page基类和HTML页面之间加了一个中间基类(codebehind),谁能和我说一下,HTML怎么会编译成一个类,也许我能在.NET系统文件中找到点什么,但总觉得把HTML编译成类是不是太牵强了,用的什么编译器?
--
是指下面这个么?
aspx页面:
<%@ Page language="c#" Codebehind="CheckAccounts.aspx.cs" AutoEventWireup="false" Inherits="NIFMP2006.CheckAccounts" %>

aspx.cs文件里定义类NIFMP2006.CheckAccounts继承自page,
aspx页面是这个类的子类

aspx文件类型在IIS里注册为aspnet处理
simonzone 2006-04-05
  • 打赏
  • 举报
回复
一、有关元数据。
引用C/C++写的程序需要“头文件”;
引用COM组件需要“IDL”;
引用.net 组件不需要额外的说明性文件,因为它写到自己的本身,会自描述自己。

二、....完全是为了OO而OO....
多做项目。
ncsmt 2006-04-04
  • 打赏
  • 举报
回复
TO:Marg(三月的雪)

不赞成你的观点,我会坚持1-5的学习.这些都是最基本,但最重要的.我不相信连网页的生命周期都不知道的人能写出多少优雅的代码,同样只会在page_load方法里边写点东西,点击button加点代码确实没多大意思,看过很多老外写的ASP.NET代码,压根就没有ASPX页面,没有扎实的基本功的人怎么理解?
copico 2006-04-04
  • 打赏
  • 举报
回复
mark
Marg 2006-04-03
  • 打赏
  • 举报
回复
晕干吗把自己搞那么累
个人观点
“2.听说凡是.NET问题都可以用CLR推敲出来,而且和元数据有很大关系,可我都分析到PE表头了,ildasm也没少看,但现在还没有头绪看出什么来”
你都有兴趣研究
“6.较为郁闷的是,CSS,javascript,VBscript,个人觉得没多大用,但接的活需要,晕的厉害”
你一天就能搞定呀

asp.net在page基类和HTML页面之间加了一个中间基类(codebehind),谁能和我说一下,HTML怎么会编译成一个类,也许我能在.NET系统文件中找到点什么,但总觉得把HTML编译成类是不是太牵强了,用的什么编译器?

典型的中国试技术书籍的受害者,你既然选择了.net就用吧,管一些个这那那这的干吗,你累不,学明白了自然就知道了。
ncsmt 2006-04-01
  • 打赏
  • 举报
回复
没人答啊,高手帮帮菜鸟吧,自学太苦了,也不知道学的乱了没有
ncsmt 2006-03-31
  • 打赏
  • 举报
回复
另:
asp.net在page基类和HTML页面之间加了一个中间基类(codebehind),谁能和我说一下,HTML怎么会编译成一个类,也许我能在.NET系统文件中找到点什么,但总觉得把HTML编译成类是不是太牵强了,用的什么编译器?

17,740

社区成员

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

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