`

程序集(类库,java里也叫类库,对于NetBean位于其库里)与命名空间(相当于java里的包)

    博客分类:
  • .NET
阅读更多

http://book.51cto.com/art/200904/119450.htm 程序集的表现形式有Dll与exe等(位于bin目录里,winform项目是exe(当然winform程序也可以引入dll文件),webform项目是Dll),在vs中我们可以通过对象浏览器(Ctrl+w,j)来查看所有程序集(好像没有添加引用里的多哦(添加引用里添加的是程序集而不是命名空间)),在对像浏览器的浏览框里选我的解决方案就可以查看我们项目里引用的所有程序集了。我们可以看到有好多程序集mscorlib,System,System.Data等,这些程序集里面又有好多命名空间(如System程序集里还有个System命名空间,System.Web程序集里有System.Web命名空间和System.Web.UI命名空间(UI就是Web命名空间里的嵌套命名空间,它有自己的类接口等)而这些命名空间不一定只能在这个程序集里其他程序集里也可以有该命名空间)。现在的对像浏览器显示的是程序集,你只要随便在一个程序集上右键会发现选中了查看容器上,只要选查看命名空间就可以看你的项目中所有的命名空间了。命名空间不是唯一的,不同程序集拥有相同名称的命名空间是可以,这些相同名称的命名空间里的类接口等也是不一样的,所以当你在一个网页内引用了一个命名空间,编译器在编译时就会到你引入的有该命名空间的程序集里去查找该命名空间,然后根据你具体在程序你使用的是哪个类来决定到底引用哪个程序集里的命名空间里的类。而类库就是一个程序集(后缀名为dll,在java里也叫类库但后缀名为jar)。命名空间在java里叫做包。不要被ASP.NET迷惑(它里面的新建类库其实是新建一个程序集,cs文件中默认的命名空间名与程序集名一样,可以重命名命名空间名(不过当你再新建一个cs文件后其内默认命名空间名还是与程序集名一样,也就是说这俩cs文件内的类位于同一程序集内的不同命名空间内),对于程序集名在程序集生成以后不要改,cs(csharp)文件(.cs位于命名空间内,其内有的类接口等,对于ASP.NET一般所有cs文件都位于与程序集名同名的命名空间内,java文件为.java位于包内,根据其内类所继承的父类的不同可分为普通java类,servlet,javabean等,至于位于哪个包,要看你自己的决定了,编译后为.class)名默认就是其内第一个类的类名)。当生成程序集时程序集内所有的cs文件及所引用的.NET自带的程序集都会被编译进bin目录的一个Dll程序集文件(winform项目是exe)里(而其他引用的外部程序集(如我们建的类库,使用外部控件时引用的程序集)也会被保存到bin目录下)。所以一个Web程序其实就是一个特殊的程序集(它可以被发布,编译时会将自身的cs文件里的命名空间*(之前说了默认是和程序集名相同)和App_Code文件夹(就是嵌套在*里的子命名空间)及App_Code文件夹和命名空间里的类(大多是继承自Page类的网页类)编译为bin目录里的Dll程序集文件。 最后框架是由多个程序集组成的并且里面的类是有联系的,而类库就是一个程序集,里面的类可以是没有任何联系的。

框架(Framework)是一种API,但和一般的API不同。框架一般有领域(Domain),且是面向对象的,有大量的类(Class),这些类之间有相当密切的关系,无法彼此独立。面向对象的领域API很容易就成为框架,所以有人批评:我只想要一根香蕉,却得到握著香蕉的猩猩,以及猩猩背后的整座森林。

对于java的java文件  如果配置好了path 在cmd里可以利用javac将其编译成class文件

对于.net的cs文件 可以在visual studio命令提示里利用csc将其编译成exe文件

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics