[摘自MSDN] ASP.Net2.0学习 [1] 母版页 5 : 在 Visual Studio 中共享母版页
2007-09-29 22:00
316 查看
ASP.NET
在 Visual Studio 中共享母版页
创建完一组母版页后,您可能想将它们提供给其他人,比如在您公司里创建 Web 应用程序的其他开发人员。在大多数情况下,您可能不想让其他开发人员更改母版页。您可以通过多种方式来提供母版页以供重复使用。
最简单的解决方法就是将母版页复制到其他项目可以引用的文件目录中。开发人员可以定位到包含母版页的目录,然后将其添加到 Web 应用程序项目。如果想要控制哪些人员能修改母版页,则可以对包含母版页的目录设置安全权限。在用于重复使用的母版页的存储位置方面,下面介绍的其他解决方法提供了更大的灵活性。
若要使用虚拟目录中的母版页,开发人员可以定位到该目录,然后将母版页添加到当前的 Web 应用程序项目。有关虚拟目录的更多信息,请参见如何:在 Visual Web Developer 中创建 IIS 虚拟目录或如何:在 IIS 中创建和配置虚拟目录。
若要创建可用于提供内容和文件的虚拟路径提供程序,以便在另一个 ASP.NET 2.0 版 Web 应用程序中进行编译,开发人员必须执行以下操作:
创建一个 VirtualPathProvider 类,并实现处理母版页文件请求所需的所有方法。
注册虚拟路径提供程序,以使 ASP.NET 宿主环境了解母版页的位置。
创建 VirtualFile 和 VirtualDirectory 对象以对内容进行流式处理。
有关创建虚拟路径提供程序或使用虚拟路径提供内容的更多信息,请参见 Microsoft 知识库中的文章 910441,“How to use virtual path providers to dynamically load and compile content from virtual paths in ASP.NET 2.0”(如何在 ASP.NET 2.0 中使用虚拟路径提供程序动态加载和编译来自虚拟路径的内容)和“Virtualizing Access to Content: Serving Your Web Site from a ZIP File”(对内容进行虚拟化访问:从 ZIP 文件服务网站)。
如果选择将母版页编译到库中,则必须使用允许以后修改标记的“可更新”生成选项。此选项由“发布网站”对话框中的“允许更新此预编译网站”复选框来决定。有关将页预编译到可重复使用的库中的更多信息,请参见“Building Re-Usable ASP.NET User Control and Page Libraries with VS 2005”(使用 VS 2005 生成可重复使用的 ASP.NET 用户控件和页面库)。
在 Visual Studio 中共享母版页
创建完一组母版页后,您可能想将它们提供给其他人,比如在您公司里创建 Web 应用程序的其他开发人员。在大多数情况下,您可能不想让其他开发人员更改母版页。您可以通过多种方式来提供母版页以供重复使用。
最简单的解决方法就是将母版页复制到其他项目可以引用的文件目录中。开发人员可以定位到包含母版页的目录,然后将其添加到 Web 应用程序项目。如果想要控制哪些人员能修改母版页,则可以对包含母版页的目录设置安全权限。在用于重复使用的母版页的存储位置方面,下面介绍的其他解决方法提供了更大的灵活性。
使用虚拟目录
另一种解决方法是将母版页保存在虚拟目录中。虚拟目录是一种为本地 Web 开发工作设置网站的方便方法,因为它不需要唯一的网站标识。这意味着虚拟目录相对于创建唯一网站来保存母版页所需的步骤要少一些。虚拟目录是对 Web 应用程序可以使用的文件的物理位置的映射。文件不必位于 Web 应用程序的根目录下。此方法使您在一个位置就能维护远程计算机上的各种 Web 应用程序都可以使用的一组母版页。若要使用虚拟目录中的母版页,开发人员可以定位到该目录,然后将母版页添加到当前的 Web 应用程序项目。有关虚拟目录的更多信息,请参见如何:在 Visual Web Developer 中创建 IIS 虚拟目录或如何:在 IIS 中创建和配置虚拟目录。
使用虚拟路径
您可以使用虚拟路径提供来自文件系统之外的位置的内容。例如,如果将母版页保存在 Microsoft SQL Server 数据库中,则可以创建虚拟路径提供程序以动态检索数据库中的内容。您也可以使用虚拟路径来提供压缩的 .zip 文件中的内容。若要创建可用于提供内容和文件的虚拟路径提供程序,以便在另一个 ASP.NET 2.0 版 Web 应用程序中进行编译,开发人员必须执行以下操作:
创建一个 VirtualPathProvider 类,并实现处理母版页文件请求所需的所有方法。
注册虚拟路径提供程序,以使 ASP.NET 宿主环境了解母版页的位置。
创建 VirtualFile 和 VirtualDirectory 对象以对内容进行流式处理。
有关创建虚拟路径提供程序或使用虚拟路径提供内容的更多信息,请参见 Microsoft 知识库中的文章 910441,“How to use virtual path providers to dynamically load and compile content from virtual paths in ASP.NET 2.0”(如何在 ASP.NET 2.0 中使用虚拟路径提供程序动态加载和编译来自虚拟路径的内容)和“Virtualizing Access to Content: Serving Your Web Site from a ZIP File”(对内容进行虚拟化访问:从 ZIP 文件服务网站)。
预编译母版页中使用的代码
如果担心母版页中的代码会被重用这些页的其他用户看到,则可以将母版页的代码预编译到库中。在这个库中,可以包含代码隐藏页以及用户控件或自定义控件。编译母版页不会删除主文件或使用的任何服务器控件的声明性代码,但可以编译主文件以删除母版页使用的控件或隐藏代码页的代码。如果选择将母版页编译到库中,则必须使用允许以后修改标记的“可更新”生成选项。此选项由“发布网站”对话框中的“允许更新此预编译网站”复选框来决定。有关将页预编译到可重复使用的库中的更多信息,请参见“Building Re-Usable ASP.NET User Control and Page Libraries with VS 2005”(使用 VS 2005 生成可重复使用的 ASP.NET 用户控件和页面库)。
相关文章推荐
- [摘自MSDN] ASP.Net2.0学习 [2] 主题 2 :演练:在 Visual Studio 中使用主题自定义网站
- [摘自MSDN] ASP.Net2.0学习 [1] 母版页 1 : ASP.NET 母版页概述
- [摘自MSDN] ASP.Net2.0学习 [2] 主题 3 :如何:定义 ASP.NET 页主题 (Visual Studio)
- [摘自MSDN] ASP.Net2.0学习 [1] 母版页 3 : 为 ASP.NET 母版页创建内容页
- [摘自MSDN] ASP.Net2.0学习 [1] 母版页 4 : 嵌套的 ASP.NET 母版页
- [摘自MSDN] ASP.Net2.0学习 [1] 母版页 6 : 以编程方式使用 ASP.NET 母版页
- [摘自MSDN] ASP.Net2.0学习 [1] 母版页 7 : 母版页和内容页中的事件
- [摘自MSDN] ASP.Net2.0学习 [1] 母版页 7: 引用 ASP.NET 母版页的内容
- [摘自MSDN] ASP.Net2.0学习 [2] 主题 4 :如何:应用 ASP.NET 主题
- [摘自MSDN] ASP.Net2.0学习 [2] 主题 5 :如何:禁用 ASP.NET 主题
- [摘自MSDN] ASP.Net2.0学习 [2] 主题 6 :如何:以编程方式应用 ASP.NET 主题
- [摘自MSDN] ASP.Net2.0学习 [2] 主题 7 :演练:创建用户可选择的主题
- [摘自MSDN] ASP.Net2.0学习 [2] 主题 1 :ASP.NET 主题和外观概述
- 学习笔记--asp.net母版页(转自msdn,仅为自己学习存储和有意读者使用)
- ASP.NET 学习一 基础 内容摘自msdn
- 委托学习笔记[摘自msdn]
- ASP.NET 学习二 内容摘自msdn收藏 How to: Determine How ASP.NET Web Pages Were Invoked
- C#中的virtual与override学习笔记(摘自MSDN)
- windows phone 学习之三种共享数据的方式
- java多线程学习-多个线程访问对象共享数据的方式