开发学院WEB开发ASP.NET ASP.NET皮肤机制的实现 阅读

ASP.NET皮肤机制的实现

 2010-11-01 08:17:39 来源:WEB开发网   
核心提示:6.读取模板文件,生成.aspx文件到每套皮肤的独立文件夹下,ASP.NET皮肤机制的实现(2),通过地址重写指定到这些文件夹, 这个方法的最终效果对于用户来说,个人先不发表观点,比如:使用BuildProvider,和第二种方法应该是差不多的,优点就是性能比较高
6.   读取模板文件,生成.aspx文件到每套皮肤的独立文件夹下,通过地址重写指定到这些文件夹。

  这个方法的最终效果对于用户来说,和第二种方法应该是差不多的,优点就是性能比较高,而且还能直接使用.CS代码里面的变量方法ETC…另外,也可以不会有<%%>代码块的存在,可以存在自己的模板语言,如同第二种方法的$Subject, <!—Loop-->标识符一般。

  优点:几乎不影响性能,只有第一次读取生成.ASPX文件需要损失性能。灵活性极高。模板代码可读性也可以实现到很高。

  缺点:启动时需要读取分析时间(不过,这应该算是小问题),另外,有一套皮肤,它就要生成与之对应的一套.ASPX文件(当然这个可以解决)。

7.   利用ASP.NET2.0开始才拥有的VirtualPathProvider来实现。

  虚拟文件机制。这个,应该算是第六种方法的加强版。最终的效果,和第六种差不多,只是不会生成那些.ASPX文件而已,取而代之的,便是长驻在内存中。

  实现:实现两个类,一个继承至VirtualPathProvider,一个继承至SkinFile。VirtualPathProvider里有个FileExists方法,重写成判断请求的路径是否是皮肤文件路径,如果是,GetFile就实例一个SkinFile(这一个SkinFile,我们会对模板进行处理,可以拥有自己的模板语言)。另外有一个GetCacheDependency方法,可以来将模板文件作为虚拟文件机制的缓存依赖文件,一旦模板文件被修改了,它就会再重新解析模板文件。这里先不作赘述,具体的,查看MSDN的相关文档,具可了解。

  优点:与6相同。

  缺点:第一次启动需要损失性能(但这也不可避免)。

8.    还有更多的实现方法,还没用过,个人先不发表观点,比如:使用BuildProvider,但这一个,需要有比较强的词法分析与语法分析能力

上一页  1 2 

Tags:ASP.NETl皮肤机制

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接