我现在要建一个ASP.NET的网站了,不难吧,开始动手。如下图:

这种方法建立Web Site项目,使用过的开发者都知道,如果需要新建一个类,例如DataBase.cs。此类只服务于web页面,不适于放入网站自身类库中,因此希望其独立存在于类库之外,只是用于在web应用程序中被web页面调用。这样一来此类最好不要通过形成dll文件,并将其放入bin文件夹以供web页面调用。但是如果将DataBase.cs的源文件放在web网站根目录下面后,在web页面却无法调用该类。但如果通过 “右键项目-〉添加-〉添加ASP.NET文件夹” 这种方式添加一个App_Code文件夹,如下图:

 
    把DataBase.cs放到这个文件夹中,就可以直接调用了,为什么呢??
 
    app_code文件夹中可以直接存储源代码,Web Site在运行时将会自动对这些代码进行编译。Web 应用程序中的其他任何代码都可以访问其产生的程序集。因此,App_Code文件夹的工作方式与 Bin 文件夹很类似,不同之处是你可以在其中存储源代码而非已编译的代码。App_Code文件夹及其在 ASP.NET Web 应用程序中的特殊地位使您可以创建自定义类和其他仅源代码文件,并在 Web 应用程序中使用它们而不必单独对它们进行编译。
    那好吧,我可以直接使用源代码文件,而不需要调用DLL文件了,貌似很不错,省了不少事儿。
 
    总结一下app_code文件夹和bin文件夹的区别:
    1:APP_Code文件夹存储的是类的源文件;bin文件夹里存储的是类库的.dll文件,是已经编译过的类库。
    2:使用APP_Code文件夹中类的时候,不需要在页面上添加任何显示的指令或声明来创建依赖性;而要使用bin文件夹中的类时,则必须在页面上先引用对应的命名空间才能使用。
 接下来呢,要干点什么,Web Site貌似简单了一些,来个多层架构的ASP.NET Web Application怎么样,说干就干。也记的先把APP_Code文件夹建好,省的不能调用,如下图:
    问题出来了,怎么居然没有APP_code这个文件夹呢,那就新建立一个普通文件夹,起这样一个名字吧,看起来是完全一样的,然后建立DataBase.cs类,应该可以使用吧。添加文件代码,如下图:
 
    报错信息:“The type or namespace name 'DataBase' could not be found (are you missing a using directive or an assembly reference”;
    崩溃了,为什么不行呢,冷静一下,很明显在“APP_CODE文件夹中,Web Site项目运行时会被自动编译的代码”在这个项目里并没有被编译,因而现在的DataBase.cs还仅仅是一个文件,他并不会在项目执行时被编译,也不会被其他程序文件所使用,所以出现这个错误就正常了,那好吧,手动修改吧。
 
    选中你的类文件,在 Properties -〉Build Action中 -〉默认 "Content" 改为 "Compile" 就可以了,如下图:
 
什么时候该使用app_code文件夹创建需要的类呢?
 
待我去查找

ASP.NET Web网站中App_Code文件夹的作用及使用场景的更多相关文章

  1. asp.net自己创建的app_code文件夹中的类不能访问的解决办法

    在Web应用程序中不能通过右键项目-〉”添加“-〉”添加ASP.NET文件夹“方式添加 .因为Web应用程序中App_Code就不存在 .不过可以通过手动的方式创建,添加一个文件夹命名为App_Cod ...

  2. Asp.net压缩网站中的文件

    为了说明自定义虚拟路径,这里弄个示例,仅仅用一个压缩包存放一个网站的多个文件. 这个东西是要需要通过实现3个抽象类来实现: System.Web.Hosting.VirtualPathProvider ...

  3. VS2010中App_Code文件夹的问题

    在VS2010中新建一个Web Application,然后新建一个app_Code文件夹, 在app_code文件夹下建一个ClassHelper类. 然后在index页面中使用ClassHelpe ...

  4. asp.net网站中增删文件夹会导致Session或cache等等丢失

    因为这会导致网站资源本身重新加载. 如果要改变文件和文件夹,一般应该是对 app_data 下进行操作.

  5. 【Android】项目中每个文件夹的作用

    1. src:存放所有的*.java源程序. 2. gen:为ADT插件自动生成的代码文件保存路径,里面的R.java将保存所有的资源ID. 3. assets:可以存放项目一些较大的资源文件,例如: ...

  6. 09:Linux 中各个文件夹的作用

    参考博客 /  根目录 包含了几乎所的文件目录.相当于中央系统.进入的最简单方法是:cd /. /boot  引导程序,内核等存放的目录 这个目录,包括了在引导过程中所必需的文件.在最开始的启动阶段, ...

  7. Linux 中各个文件夹的作用

    /  根目录 包含了几乎所的文件目录.相当于中央系统.进入的最简单方法是:cd /. /boot  引导程序,内核等存放的目录 这个目录,包括了在引导过程中所必需的文件.在最开始的启动阶段,通过引导程 ...

  8. JavaWeb项目中各个文件夹的作用

    /WEB-INF/web.xml Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则. /WEB-INF/classes/ 包含了站点所有用的 class 文件,包括 se ...

  9. java web项目中classes文件夹下的class和WEB-INF/lib中jar里的class文件加载顺序

    如果是发布到weblogic的话,可以在WebContent\WEB-INF\weblogic.xml里面配置.参考配置如下:<?xml version="1.0" enco ...

随机推荐

  1. GC是如何回收SoftReference对象的

    看Fresco的代码中,有这样的一个类: /** * To eliminate the possibility of some of our objects causing an OutOfMemor ...

  2. 原创 html动态表格

    <table id="opttb"> <asp:Repeater ID="tempOptions" runat="server&qu ...

  3. spring项目后台中打印sql语句

    配置方法很简单,只要在配置文件application.yml加入以下语句 logging: level: main.java.iReview.dao: debug 其中包的位置应为dao层的包位置,不 ...

  4. JSON(未完待续,等讲到对象时再加)

    1 定义 JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言:JSON 使用 Jav ...

  5. Css Hack 大全(IE6、IE7、IE8、IE9 css hack)

    一.IE6 css hack: 1. *html Selector {} /* Selector 表示 css选择器 下同 */ 2. Selector { _property: value; } / ...

  6. 多线程-Thread-Runnable

    一.多线程     1.基本概念         进程:正在运行中的程序,一个进程中至少包含一个线程         线程:进程的任务,执行任务的一个通道,一个进程中可以包含多个线程     2.多线 ...

  7. Eucalyptus——EC2的开源实现(转载)

    Eucalyptus[22]是加利福尼亚大学的 Daniel Nurmi 等人实现的,是一个用于实现云计算的开源软件基础设施.Eucalyptus 是 Amazon EC2 的一个开源实现,它与 EC ...

  8. UVA1607 Gates 与非门电路 (二分)

    题意:给你一个按发生时间的序列,表示与非门电路的输入,一开始全部输入是x,现在要改成尽量少的x,实现相同的功能. 题解:电路功能只有4中0,1,x,非x.那么如果一开始x改变了,输出结果不变,那么说明 ...

  9. spring maven 包

    <spring-framework.version>.RELEASE</spring-framework.version> <dependency> <gro ...

  10. python_84_os模块

    'os模块:提供对操作系统进行调用的接口' import os print(os.getcwd())#获取当前脚本工作目录,即当前Python脚本工作的目录路径 os.chdir('C:\\Users ...