日期:2013-10-07  浏览次数:20501 次

最近一直在用java + javabeans + jsp,chicken来我来,就对这几个问题谈谈我自己的看法吧,肯定有不准确的地方,只是我自己的感觉而已。

1. Page class 实现了哪个重要的 interface?   30分
page class主要是提供了一种机制,就是把server端的webcontrol或htmlcontrol转换成hidden表单域,然后通过这些隐藏表单域来传递值,但由于封装的很好,对于编程者来说可以不去理会这些。感觉上asp.net的这个机制比javabeans来的自然,也方便一些。

2. foo.aspx 编译后的 class 名字是什么?      20分
这个和jsp差不多,系统在运行时如果发现没有这个class或class生成的时间早于aspx文件的最后修改时间,就会重新编译,类的名字是根据一定的规律随机起的,系统自己知道,对于一般程序员是看不出什么来的,类存放于document and setting里的application data的一个子目录里,具体我也记不清了。

3. Shadow-copy dll 存在哪里?                30分
不知道想问什么。

4. 谈谈 AutoEventWireup                      50分
这个实在是不清楚,感觉加不加目前没什么区别,msdn也没有相关资料,很有可能是为以后预留的接口。

5. 关于 Directive 中的 Inherits:一个 aspx 可能 inherits 多个 class 吗?
   多个 page 可能 inherits 一个 code behind 吗?        15分
一个aspx不能inherits多个class , 但多个page可以inherits一个code behind,前提是page里的server端control必须一样,并且最后完成的功能也一样。这个实际的作用就是可以实现不同页面布局而不用分别写codebehind

6. @Assembly 和 csc /r 和 vs.net 项目中 reference 的关系是什么?  20分
这个关系不太好说,reference的作用是告诉编译器要把所引用的dll编译到现有的dll中,而@assembly时告诉虚拟机有这么个类,让他能够解释这个。

7. web control 和 html control 在 performance 上有区别吗?        30分
这个没试过,但感觉web control更好一些,而 html control只不过是为了保持向后兼容而已。

8. 对 asp.net 的请求是由哪个 isapi extension 处理分发的?         20分
这个需要知道吗?真想知道只要打开iis的属性页看看.aspx指向的dll或exe就行了。

9. 这个 isapi extension 实际上把请求 forword 到哪个 process?      20分
这个更简单,你按ctrl + alt + del 看看服务器上那个线程占用内存最多就是哪个,哈哈。

10 如果使用外部进程维护 session,这个进程是什么?                 30分
   如果对它做 serialization 效率不满意应该怎么办?                30分
不明白要问什么,session指什么?

11 如何自己做个 httphandler? 能想出它有什么实际用处吗?           50分
后一个问题问的很傻,没用ms做他干嘛。怎么做可以看msdn,有很详细的例子。


12 谈谈 HttpModule                                                30分
没有仔细研究过,不过作用大概就是使客户端请求更具象化一些吧。

13 如何在 VS.NET 中 debug asp.net 应用?                          30分
      这个和普通应用程序的debug除了权限没什么不同,如果iis和vs.net在同一台机器上那就根本和debug普通应用程序一样,如果不在同一台机器上,那你需要在服务器上增加一个debug groups,然后把你的用户加进去就可以了,具体怎么做可以看帮助。

14 如果你通过继承 System.Web.UI.Control 写了个 Custom Control,
   如何加上对 client-side script 的支持?                          50分
asp.net提供这个机制,page , webcontrol等都有registerclientscriptblock等几个对client-side script的支持方法。

15 在 aspx 页面中放上一些 TextBox, ListBox 等等 Web Control,
   但在 code-behind 中并不定义它们,是否可能使用这些 control?     50分
可以使用,但在服务器端不能使用,只能在客户端使用他们。

16 自己写个 control 如何支持 template?
   能否在 control 中写代码读取 template 中将要放入的内容(比如控件)的值?                  50分
第一个问题是当然可以,第二个问题是用createchildcontrol创建这些控件,然后当成成员变量来引用,取得她们的值。