我现在要建一个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. 基于JAVA的设计模式之组合模式

    概念 将所有对象组合成一种树形结构,有分支节点.叶子节点,分支节点可以有自己的子节点,子节点可以是分支节点.叶子节点,可以进行增删的操作,而叶子节点不可以.比如文件夹就是一个分支节点,而文件就是一个叶 ...

  2. Mybatis基础配置及增删查改操作

    一.简介 平时我们都用JDBC访问数据库,除了需要自己写SQL之外,还必须操作Connection, Statement, ResultSet 这些其实只是手段的辅助类. 不仅如此,访问不同的表,还会 ...

  3. springboot使用过滤器和拦截器

    1.Filter过滤器 @Componentpublic class AuthFilter implements Filter { private static final Log log = Log ...

  4. 关于window.event.returnValue=false的用处

    window.event.returnValue=false放在提交表单中的onclick事件中则不会提交表单,如果放到超链接中则不执行超链接,也就是它禁止了或取消了请求,没有任何效果. 比如: if ...

  5. iOS - NSString 封装

    在实际项目开发过程中,发现字符串使用频率还是非常高的,NSString提供了很多相关的API,但是在开发过程中发现很多业务功能都是相同的.因此根据在开发过程中遇到的字符串使用场景,进行了简单封装.具体 ...

  6. Unity3d通过脚本生成apk

    参考链接:http://www.jianshu.com/p/a9261113b4ac 照着链接的方法并没有正确生成APK,IPA没有测试过,不过大致的方法是正确的,修改如下: Environment. ...

  7. android配置android studio not found target android-*.的问题

    列:not found target android-25, 打开下载android SDK的工具栏,找到android-25版本下载到你本地的sdk路径下就OK了.

  8. get_user

    Name get_user --    Get a simple variable from user space. Synopsis get_user ( x, ptr); Arguments x ...

  9. SQLServer 2012 Always on配置全过程

    AlwaysOn取数据库镜像和故障转移集群之长.AlwaysOn不再像故障转移集群那样需要共享磁盘,从而主副本和辅助副本可以更容易的部署到不同的地理位置:AlwaysOn还打破了镜像只能1对1的限制, ...

  10. POJ 3254 Corn Fields (状压DP,轮廓线DP)

    题意: 有一个n*m的矩阵(0<n,m<=12),有部分的格子可种草,有部分不可种,问有多少种不同的种草方案(完全不种也可以算1种,对答案取模后输出)? 思路: 明显的状压DP啦,只是怎样 ...