ASP.Net 中的 App_Code 是否会将新代码编译到辅助临时 AppDomain?
我试图更好地了解 App-Code 文件夹的运行方式,特别是我很好奇 App-Code 文件夹中的新类的新对象如何包含在当前 AppDomain 中。 第二个临时 AppDomain 的创建方式是否与我使用 CodeDom 编译新对象时的方式相同?
在许多方面,将新类/对象移动到 Web 应用程序中的能力非常引人注目。 Rob Connery 的 MVC Storefront 就是一个很好的例子。 如果您使用应用程序代码文件夹来部署新功能,是否需要考虑任何权衡或陷阱?
更新:
我在 CoDe 杂志中找到了一篇 文章这段有趣的段落:
您的应用程序特定代码可以 ASPX 页面或控件的内联,它 可以进入 CodeBeside 部分 类,或者你可以完全创建 APP_CODE 中的自治类 文件夹。 APP_CODE 文件夹是 ASP.NET 2.0 中的特殊文件夹 项目和任何非页面或 与控件相关的源代码 Web 项目必须进入此文件夹。 ASP.NET 处理 APP_CODE 的内容 就像一个图书馆项目并编译 将内容放入单独的程序集中。 然后该程序集被引用 所有页面或目录级别 ASP.NET 创建的程序集 您的 ASPX/ASCX 页面使用任何 APP_CODE 中定义的类。
我的问题仍然存在 - 是否创建了第二个支持该库的 AppDomain,如果是,对性能的影响是否最小?
I am trying to better understand how the App-Code folder operates, and in particular I am curious how new objects that a new class in the App-Code folder are included in the current AppDomain. Is a second, temporary AppDomain created in the same manner as when I compile new objects with the CodeDom?
In many ways the capability of moving new classes / objects into a Web Application is very compelling. Rob Connery's MVC Storefront is a good illustration. If you have used the App-code folder to deploy new functionality were there any trade-offs or gotchas that should be considered?
UPDATE:
I found an article in CoDe Magazine with this interesting passage:
Your application-specific code can go
inline of the ASPX page or control, it
can go into a CodeBeside partial
class, or you can create completely
autonomous classes in the APP_CODE
folder. The APP_CODE folder is a
special folder in an ASP.NET 2.0
project and any non-page or
control-related source code in your
Web project must go into this folder.
ASP.NET treats the content of APP_CODE
like a library project and compiles
the content into a separate assembly.
This assembly is then referenced by
all of the page or directory-level
assemblies that ASP.NET creates from
your ASPX/ASCX pages that use any of
the classes defined in APP_CODE.
My question still stands - is a second AppDomain created that supports this libary, and if so are the impacts on performance minimal?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不知道细节,但它肯定会在不同的动态程序集中。 一个类不能位于另一个 AppDomain 中。 只有类的实例才能在另一个AppDomain中,然后从另一个AppDomain访问确实很麻烦(只能通过remoting)
I don't know the details, but it will certainly be in different dynamic assemblies. A class can't be in another AppDomain. Only an instance of a class can be in another AppDomain, and then it's really a hassle to access from another AppDomain (only through remoting)