用户操作
[即时聊天] [发私信] [加为好友]
清清月儿ID:21aspnet
1950576次访问,排名5好友0人,关注者314
21aspnet的文章
原创 959 篇
翻译 9 篇
转载 22 篇
评论 1188 篇
清清月儿的公告
最近评论
Maco007:唔,启发很大,之前一直在用js搞的
lxf2580:收了。谢谢。
ghostbear:很好的一个工具类!
Henry_bai:傻了吧,你们遇到这样的问题,肯定是没有做第四步,即是在WEB CONFIG文件里面加入<httpHandlers>
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
</httpHandlers>……
truely720:非常不错,正好派上用场了!谢谢啦!!
文章分类
收藏
    相册
    图片库
    图片库2
    .NET 工具
    C# to VB.NET Translator
    Fiddler
    FxCop代码标准检测工具
    httpwatch
    Memcached
    Multiple IE
    Nunit单元测试
    Tab集合
    VB.NET and C# Comparison
    VB.NET 代码转为C#
    网站国际排名查询工具
    .NET 下载/讲座视频
    chinaitlab
    enfull
    Visual Studio 2005 的工具
    wrox出版社书刊代码下载
    中国台湾微软MSDN
    中文MSDN WebCast网络广播全部下载列表
    源码之家
    .NET 优秀Blog
    cathsfz
    cnkiminzhuhu
    cuike519的专栏
    dahuzizyd的专栏
    DotNet技术交流乐园
    DotNet男孩社区
    dudu
    gztoby
    Kemin's booootLog
    kimyoo(RSS)
    LoveCherry
    MSDN每日追踪
    Nios.Org
    Think Different and Think More
    Visual Studio.net专栏
    WCF Tools 中国研发团队的专栏
    中国DotNet俱乐部
    体验ASP.NET 2.0新特性
    刘洪峰
    天轰穿
    孟宪会
    宝玉
    开心就好【博客堂】
    张子阳
    思归呓语
    木子 [I am praying]
    李会军
    李洪根【VB】
    永春阁
    汉飞扬【Vista】
    涂曙光【SharePoint】
    维生素C.net
    网际浪子
    葛涵涛
    蒋涛
    蝈蝈俊.net[csdn版]
    蝈蝈俊.net[joycode版]
    谭振林
    邹建
    阿不
    阿良.NET
    雨痕
    鸟食轩(RSS)
    .NET 优秀网站
    .NET 官方网www.asp.net
    .NET开发资源精华收【不得不看】
    ASP .NET FAQ
    asp101
    aspfree
    C#开源资源
    C#开源资源大全
    C#语言在线帮助网站
    codeproject
    infragistics
    iwebsms
    MSDN Web/服务
    MSDN中文
    Scott Guthrie(ASP.NET之父)
    SharePoint爱好者
    VS2005.com
    Wintellect
    www.411asp.net
    世界上最大的Open Source项目在线网站
    中国C#技术学习中心
    官方ASP.NET入门教程
    微软中文新闻组
    微软官方.NET指导站点
    最好的索引网站
    正则
    邮件发送常见问题解决方法
    Ajax链接
    AJAX载入等待图片在线生成
    bindows(RSS)
    DHTML menu4作者主页(RSS)
    Dhtmlgoodies
    Dynamicdrive
    EXT类库
    json
    Tabs
    Tabs
    Tabs
    Yahoo YUI
    大量DHTML代码
    无忧脚本 - JavaScript
    索漫
    综合开发技术网
    CSDN
    IBM中文Web 项目资源中心
    W3C技术在中国
    中国BS网
    中文C#技术站
    天新网
    天极网开发频道
    太平洋电脑网web开发
    看雪
    统一教学网
    编程爱好者
    网页设计师:web标准教程及推广,网站重构
    老猫理想
    蓝色理想
    豆豆技术网
    赛迪网
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    翻译 学习.net应该知道什么收藏

    新一篇: WAS服务器负载测试软件导读 | 旧一篇: 大型互联网网站架构心得

    原文地址:http://www.hanselman.com/blog/WhatGreatNETDevelopersOughtToKnowMoreNETInterviewQuestions.aspx 作者:Scott Hanselman 译者:Tony Qu 前些日子我发了一份ASP.NET面试题 清单. 有一些访客比较保守,觉得我是没事找事,里面都是些很琐碎的问题。剩下的人则说“蛮不错的,我得去看一看其中的一些问题” 我更喜欢后者的回复,我觉得后者才是正确的态度。

    当然我并不想把.NET软件开发概括为一些简单的小问题,我只是想让大家多思考。我相信一个真正优秀的ASP.NET(及WinForm)开发人员应该不仅仅会拖放控件到设计器中,也应该掌握更多的东西。一个优秀的赛车比赛选手很了解他自己的坐驾,他知道哪些可以做?哪些不能做?

    所以我准备了另外一份清单——一份扩展的清单,供你使用。这是我上个星期在从博伊西去波特兰的路上写在一块板上的,并且我也考虑到了那些觉得我的清单过于琐碎的意见,试图把这个清单按节管理。如果你从来没有深入ASP.NET,你肯定不会知道所有ASP.NET问题的答案。如果你是一个独立顾问,你可能从来没有遇到过这些概念。但在我呆在科林斯的这4年中,这些问题我都遇到过。因此,是否全面理解这些问题也许与你是不是一个优秀的开发者没有关系,但在遇到问题时它的确可以帮你节省不少时间。 

     

    任何一个使用.NET的人

    1) 描述线程与进程的区别?

    线程(Thread)与进程(Process)二者都定义了某种边界,不同的是进程定义的是应用程序与应用程序之间的边界,不同的进程之间不能共享代码和数据空间,而线程定义的是代码执行堆栈和执行上下文的边界。一个进程可以包括若干个线程,同时创建多个线程来完成某项任务,便是多线程。而同一进程中的不同线程共享代码和数据空间。用一个比喻来说,如果一个家庭代表一个进程,在家庭内部,各个成员就是线程,家庭中的每个成员都有义务对家庭的财富进行积累,同时也有权利对家庭财富进行消费,当面对一个任务的时候,家庭也可以派出几个成员来协同完成,而家庭之外的人则没有办法直接消费不属于自己家庭的财产。

    2) 什么是Windows服务,它的生命周期与标准的EXE程序有什么不同

    Windows服务是运行在windows后台指定用户下(默认System)的应用程序,它没有标准的UI界面,想比标准的EXE程序,Windows服务是在服务开始的时候创建,而在服务结束的时候销毁,而且可以设置服务是否与操作系统一起启动,一起关闭。它支持三种方式:1)自动方式 2)手动方式 3)禁用 。自动方式的时候,windows服务将在OS启动后自动启动运行,而手动方式则必须手工启动服务,禁用的情况下服务将不能被启动。另外标准的EXE默认使用的当前登录的用户,而windows服务则默认使用System用户,这在对系统资源访问的时候特别需要注意。

    3) Windows单个进程所能访问的最大内存量是多少?它与系统的最大虚拟内存一样吗?这对于系统设计有什么影响?

    这个需要针对硬件平台,公式为单个进程能访问的最大内存量=2的处理器位数次方/2,比如通常情况下,32位处理器下,单个进程所能访问的最大内存量为:232 /2 = 2G 。单个进程能访问的最大内存量是最大虚拟内存的1/2,因为要分配给操作系统一半虚拟内存。

    4) 什么是强类型,什么是弱类型?哪种更好些?为什么?

    强类型是在编译的时候就确定类型的数据,在执行时类型不能更改,而弱类型在执行的时候才会确定类型。没有好不好,二者各有好处,强类型安全,因为它事先已经确定好了,而且效率高。一般用于编译型编程语言,如c++,java,c#,pascal等,弱类型相比而言不安全,在运行的时候容易出现错误,但它灵活,多用于解释型编程语言,如javascript,vb等

    5) PID是什么?在做系统的故障排除时如何使用它?

    PID是进程编号,在系统发现故障的时候,可以根据它寻找故障所发生的具体进程,并且可通过visual studio.net等ide将故障进程附加到进程中进行调试(debug)

    6) 单个TCP/IP端口上能够被多少个进程侦听?

    可以为多个,多个为端口复用 (多谢蛙蛙池塘的提醒)看下面代码

    端口复用 Socket socket1 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);             Socket socket2 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);             socket1.Bind(new IPEndPoint(IPAddress.Parse("127.0.0.1"),8235));             socket1.Listen(10);             socket2.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);             socket2.Bind(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8235));             socket2.Listen(10);             Console.Read();

    7) 什么是GAC?它解决了什么问题?

    Gloal Assembly Cache,全局应用程序集缓存。它解决了几个程序共享某一个程序集的问题。不必再将那个被共享的程序集拷贝到应用程序目录了,其实这道理很简单,.net应用程序在加载的时候,会首先查看全局应用程序集缓存,如果有就可以直接使用,没有再到应用程序目录进行查找。

     

    中级.NET开发人员

    1) 阐述面向接口、面向对象、面向方面编程的区别

    面向接口更关注的是概念,它的原则是先定义好行为规范,再根据行为规范创建实现,严格的来说,面向接口应该是面向对象中的一部分吧,因为面向对象也强调的是依赖倒置原则,也就是实现依赖于抽象,而抽象不依赖于具体实现,更具比较的应该是面向接口与面向抽象对象,我的体会是面向接口更加灵活,但实现时候,稍微有些代码冗余,而面向抽象可以结合面向接口,先定义接口,再定义抽象类,在抽象类中处理一些公共逻辑,再实现具体实现类。面向对象是对复杂问题的分解。面向方面的编程是一种新概念,它解决了很多面向对象无法解决的问题,比如面向对象技术只能对业务相关的代码模块化,而无法对和业务无关的代码模块化。而面向方面正是解决这一问题的方案,它的关键思想是"将应用程序中的商业逻辑与对其提供支持的通用服务进行分离"。

    2) 什么是Interface?它与Abstract Class有什么区别?

    接口(Interface)是用来定义行为规范的,不会有具体实现,而抽象类除定义行为规范外,可以有部分实现,但一个类能实现多个接口,但只能继承一个父类

    3) 什么是反射?

    程序集包含模块,而模块又包括类型,类型下有成员,反射就是管理程序集,模块,类型的对象,它能够动态的创建类型的实例,设置现有对象的类型或者获取现有对象的类型,能调用类型的方法和访问类型的字段属性。它是在运行时创建和使用类型实例

    4) 使用ASMX的XML Web服务与使用SOAP的.NET Remoting的区别?

    Web服务使用的消息机制,而Remoting采用的RPC. Web Service能用于不同平台,不同语言,Remoting只适用于.Net。效率上Remoting高于Xml Web Service

    5) 类型系统是由XMLSchema表示的吗?CLS是XMLSchema表示的吗?

    不清楚

    6) 从概念上阐述前期绑定(early-binding)和后期绑定(late-binding)的区别?

    这个就像是强弱类型的比较相似,前期绑定是在编译的时候就确定了要绑定的数据,而后期绑定是在运行的时候才填充数据。所以前期绑定如果失败,会在编译时报编译错误,而后期绑定失败只有在运行时的时候才发生

    7) 调用Assembly.Load算静态引用还是动态引用?

    动态

    8) 何时使用Assembly.LoadFrom?何时使用Assembly.LoadFile?

    呵呵,这个比较有意思,相比LoadFile,LoadFrom则显得不地道,因为它娶媳妇的时候,是让人家穿上嫁妆,坐上马车,还得带着人家的妹妹来,:)用它加载的是程序集,这就要求同时将此程序集所依赖的程序集加载进来。而LoadFile就地道的多,它是加载程序集文件的内容,只将传入参数的文件加载,不考虑程序集依赖,但如果有相同实现,但位置不同的文件用LoadFrom是不能同时加载进来的,而LoadFile却可以。由于LoadFile加载的是文件,所以调用它之后,可能因为缺少必要的依赖造成无法被执行。

    9) 什么叫Assembly Qualified Name?它是一个文件名吗?它有什么不同?

    它不是一个文件名,相比文件名,Assembly Qualified Name(程序集限定名称),更能确定一个程序集,它包含文件名,但同时包含版本,公钥,和区域。因为同样一个名称的文件可能有不同的版本和区域,此时单独靠文件名称,可能会造成不能确定程序集的正确性。

    10) Assembly.Load("foo.dll"); 这句话是否正确?

    错误,正确的应该是Assembly.Load("foo"); 或者Assembly.LoadFrom("foo.dll"); (多谢 Tristan(Guozhijian)的提示更正)

    11) 做强签名的assembly与不做强签名的assembly有什么不同?

    强签名的程序集可以做成com,而不做强签名的就不行,同样强签名程序集可以安装到GAC中,而不做强签名的确不能。

    12) DateTime是否可以为null?

    不能,因为其为Struct类型,而结构属于值类型,值类型不能为null,只有引用类型才能被赋值null

    13) 什么叫JIT?什么是NGEN?它们分别有什么限制和好处?

    Just In Time 及时编译,它是在程序第一次运行的时候才进行编译,而NGEN是所谓的pre-jit,就是说在运行前事先就将生成程序集的本机镜像,并保存到全局缓存中,适用NGEN可以提高程序集的加载和执行速度,因为它可以从本机映像中还原数代码和数据结构,而不必像jit那样动态生成它们。感觉和缓存的道理大同小异。

    14) Finalize()和Dispose()之间的区别?

    Finalize()用于隐式释放资源,Dispose()用于显示释放资源 (Finalize()的确相当于C++中的析构函数(多谢Jeffrey Zhao提示更正)

    15) using() 语法有用吗?什么是IDisposable?它是如何实现确定性终结的。

    有用,实现了IDisposiable的类在using中创建,using结束后会自定调用该对象的Dispose方法,释放资源。不明白什么是确定性终结

    16) tasklist /m "mscor*" 这句命令是干嘛的?

    列出所有使用了以" mscor"作为开头的dll或者exe的进程和模块信息

    17) in-proc和out-of-proc的区别

    in-proc是进程内,进程内能共享代码和数据块,out-of-proc是进程外,进程外的互操作需要用进程间通讯来实现。

    18) .NET里的哪一项技术能够实现out-of-proc通讯?

    .Net Remoting技术或者WCF技术

    19) ASP.NET在Windows XP, Windows 2000, Windows 2003上分别跑在哪个进程里面?

    Xp : aspnet_Wp.exe Windows 2000 : aspnet_Wp.exe Windows 2003 : w3wp.exe

    发表于 @ 2008年06月24日 18:15:00|评论(loading...)|收藏

    新一篇: WAS服务器负载测试软件导读 | 旧一篇: 大型互联网网站架构心得

    评论

    #lschenjin 发表于2008-06-25 12:23:23  IP: 199.64.0.*
    好不容易看到清清月儿发篇文章,可喜


    ps:这篇文章在cnblogs上早就有人介绍过的
    #Gatx303x 发表于2008-06-25 13:29:08  IP: 10.10.108.*
    http://www.yeeyan.com/articles/view/15070/5074

    刚刚好4个月前就在yeeyan上有的翻译的文章...
    转载的话请带上翻译地址
    #apeng0626 发表于2008-06-25 13:36:58  IP: 58.247.150.*
    有没有答案?呵呵
    #f891379133 发表于2008-06-25 13:50:55  IP: 221.10.97.*
    很好!已阅!
    #can_er008 发表于2008-06-25 14:19:26  IP: 61.160.111.*
    不错呵呵,看来以后这段时间有事情干了.
    #suretrueno 发表于2008-06-25 16:49:02  IP: 61.144.21.*
    呵呵.现在是在问自己是什么级别了..
    #bestdowt1314 发表于2008-06-26 08:44:37  IP: 222.180.188.*
    如果可以话,把相关的知识介绍一下就更好了呀
    #lanfei1976 发表于2008-06-26 09:18:02  IP: 220.113.47.*
    本来认为楼主水平还可以的,看了这篇文章,觉得不过如此。
    如此多的知识点,足以把一个程序员变成微软的奴隶,再也没有自己的思想,再也没有了创造力。也许掌握如此多的小知识可以让博主成为微软MVP,却无法成为软件大师。如果程序员按这个方向去学习,除了多了一个微软系的程序工人,对中国的软件没太大的贡献。
    大师是什么,大师看穿了这些技术,看透了程序的本质,程序无非就是输入输出数据处理。程序员的水平不是看你具体学习了那些技术,而是看你对程序的理解,也就是对程序之道的悟,只有你对某一层的道悟了,你才能灵活使用这一层的技术,手中无剑(不用自己动手),心中有剑,那些学了楼主指出的这些技术的程序员,只不过是人家随意挥舞的剑。
    我劝有些朋友千万别被楼主列出的知识吓倒,学程序远没有那么烦杂,虽然需要经历悟道的痛苦,却很多终究开窍的快乐,程序所有的技术都是相通的,学会了本质,悟了这一层的道,这一层的所有其它技术只需要快速了解,便可灵活应用,帮助很多,goole随意,不必细究也。
    作程序是一种快乐,最珍贵的是思想和创造,不是那些具体的技术。
    如果每个都去学,你如何学得完,学完了这个,你还学不学j2ee的,你不学,你如何能够达到优秀的架构师的境界。
    基础知识很重要,那是悟道的基础,但到架构师这个级别,还强调的是一些细微的技术,端口的情况,垃圾的回收,真是怡笑大方啊!!!!
    个人观点,无恶意,^_^!
    #jjyjjyjjy 发表于2008-06-26 13:23:56  IP: 61.144.178.*
    我同意LS的说法,大部分属于技术点,学会这些并不代表就会写出整洁可用的代码,其实我觉得初学者应该首先要领悟语言背后的抽象思想,设计这门语言的初终是什么,怎么样用才能语这门语言发挥最大威力.
    #donghai83 发表于2008-06-26 21:18:03  IP: 221.235.87.*
    清清月儿,我好仰慕你啊。
    #wenguoli 发表于2008-06-26 21:23:43  IP: 59.41.80.*
    QQ空间的那种留言板怎么做的??

    是不是asp.net自带的那种label和literal
    那怎么样才能正确的翻译html呢
    麻烦你能为我详细的描述一下~~最好能用伪代码的方式~~谢谢了



    还有:parameter怎么样才能用try来捕获他的错误呢?
    #skinfeature 发表于2008-06-28 17:10:06  IP: 221.205.29.*
    一句话使用skinfeature在您的程序中界面更换皮肤

    SkinFeature皮肤界面控件介绍
    SkinFeature 完全支持Win9X/NT/2K/XP,UNICODE/ANSI,能够对目标进程里的所有Widows标准控件,系统菜单,通用对话框等实现换肤。
    而且完全支持PNG图象格式,对于界面美工来说是一个非常可喜的事情。同时,皮肤文件rss可以设置密码,对于我们保护自己的皮肤文件,保护版权来说是非常有必要的!对非商业用途而言,它是完全免费的。关键的是SkinFeature的使用非常简单,很容易添加到已有的工程中。我使用的是 1.0 版,你也可以到它的网站 http://www.SkinFeature.com 去下载最新版本 。
    SkinFeature 支持三种皮肤加载方式,从磁盘文件加载,从资源加载,从内存加载。下面我就说说如何加载磁盘的普通rss皮肤文件:
    首先,要确保你下载了SkinFeature 开发包,我们要用到其中的三个文件: "SkinFeature.h", "SkinFeature.dll" ,"Coolorange.rss" 。
    接着,创建一个 VC 可执行文件工程, MDI/SDI/DIALOG/WIN32 类型的都可以,我以创建一个DIALOG 工程 ResSkin 进行说明 。将"SkinFeature.h" 拷贝到该工程目录下,将"SkinFeature.dll","Coolorange.rss" 拷贝到该工程的输出目录下,例如:"debug\"。

    准备工作全部完成了,现在进入正题:
    1.在ResSkin.cpp 中加入: #include "SkinFeature.h"
    2.在CResSkinApp::InitInstance() 成员函数中添加如下代码
    CResSkinApp::InitInstance()
    {
    ...
    //只需添加如下一行代码从文件加载skinfeature 皮肤文件 rss 。其中最后一个参数是皮肤文件的密码
    //如果有的rss皮肤文件是用户自己希望得到保护,不让别人使用的。会设置加载密码
    InitializeSkin(); //初始化skinfeature界面库,这句话可加可不加,主要是当多线程中换肤需要加。
    LoadSkinFile("..\\skin\\Coolorange.rss"); //line 1
    CResSkinDlg dlg;
    m_pMainWnd = &dlg;
    int nResponse = dlg.DoModal();
    ...
    }
    int CResSkinApp::ExitInstance()
    {
    //退出skinfeature界面库,释放内存资源。
    UnLoadSkin(); //line 2
    return CWinApp::ExitInstance();
    }
    编译... 一切搞定 !

    #Mc_Clure 发表于2008-06-30 16:47:19  IP: 58.209.31.*
    受益匪浅
    #wlsizeking 发表于2008-07-01 00:15:03  IP: 116.224.245.*
    很好!已阅!
    #Tears_In_Heaven 发表于2008-07-01 10:53:01  IP: 58.214.7.*
    学习中!谢谢
    #SYC_SC 发表于2008-07-04 21:59:37  IP: 60.212.59.*
    太好了啊,谢谢
    #baofen14787 发表于2008-07-15 11:17:13  IP: 218.15.57.*
    了解一下,起码你去面试的时候,也有东西说,有些虽然是很理论,但对于面试官第一次接触你。你除了拿出作品外,对理论知识的了解,也会在面试中获得好的成绩。

    这些东西有些没必要深究,了解一下,知道怎么回事就行了。
    #Q_QIANG 发表于2008-07-20 08:59:46  IP: 116.228.8.*
    #diwei823 发表于2008-08-08 09:46:38  IP: 218.106.60.*
    我很支持你
    #wantingqiang 发表于2008-08-08 16:56:35  IP: 218.5.4.*
    顶一下哈。。
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 清清月儿