c#篇幅机制的实现

c#篇幅机制的实现

ID:35998179

大小:33.50 KB

页数:4页

时间:2019-04-29

c#篇幅机制的实现_第1页
c#篇幅机制的实现_第2页
c#篇幅机制的实现_第3页
c#篇幅机制的实现_第4页
资源描述:

《c#篇幅机制的实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、做一个WEB程序,能够在尽量修改极少程序代码的情况下,轻松制定皮肤以及切换皮肤,应该都是需要的,谁也不想,在网站界面想要改版的时候,要改一大片逻辑代码。一个合格的皮肤机制体系的实现,应该要做到以下几点:->页面模板上要极少拥有逻辑代码(如果模板上拥有大量逻辑代码,那估计这个也不叫作模板了)。->能够轻松改变页面布局,同时不影响程序代码(.cs)。->新模板的定制,基本上能由皮肤制作者参照旧模板自行完成,不需要开发人员太多介入。->保持性能。然后,来看看,都有哪些方法大家用来实现所谓的皮肤机制,同时进行各个方法的一些个人说明。1.改变页面调用的CSS文

2、件来换肤。这一个,严格上来讲,不应该算作皮肤机制。虽然CSS非常强大,也能够通过它来任意改变页面元素布局,但它的HTML始终是不变的,所以局限性是非常大的。优点:完全不影响性能,甚至可以完全不由服务端代码来管理它的变换,可以使用JS来切换皮肤(由此,在我们有一套完美皮肤机制的情况下,这种方法,可以完全不与此机制冲突,让用户在客户端作更多的个性化)。缺点:如果作为核心皮肤机制的话,非常有局限性。示例:如QQ.COM,114LA.COM上面的一些可点击的小色块,就是改变调用的CSS文件来实现换肤。2.读取模板文件,替换标识符为要显示的内容与数据输出。这一

3、个方法的灵活性比较高,每套皮肤可以有自己的布局,有自己的个性。实现:比如模板中有一个标识$Subject,程序代码会把它替换成文章标题,然后有一个标识块

$Subject

$Content
,程序代码会把它替换成一个文章列表,最后输出处理完所有标识符的内容。通常,我们会缓存读取到的模板内容,但字符串的替换始终不可避免,或者也会把替换过的内容也缓存起来,但这样子,就等于要缓存模板内容以及替换过的内容,占用了两份似乎挺重复内容的内存(为什么?不然总不该

4、每次数据有改变的时候就去作IO操作读取操作读模板文件吧,这似乎比字符串替换性能更差)。优点:模板灵活程度很高,可以随便改动页面布局。缺点:影响性能,开发人员维护难,必须有特定的标识符来表示页面变量,后期维护可能会带来非常多的问题。3.使用ASP.NET的App_Themes。这一个方法,应该是极差的一个方法,根本只是ASP.NET的一个小纂头,鸡肋,基本上不实用。实现:比如,定制一个BUTTON的样式是这样子的,,类似这样

5、的代码,存在于.skin文件中。然后它的换肤机制如下,<%@PageLanguage="C#"Theme="default"%>。在App_Themes目录下,是各套皮肤的独立文件夹,各个文件夹包含皮肤的样式以及图片文件等等,也可以包含.skin文件。优点:只有ASP.NET才有缺点:包含了第一种方法的缺点,.skin的样式定制方式还要严重依赖使用ASP.NET服务端控件,同时也影响性能,灵活性也极低。4.动态载入.ASCX文件(ASP.NET用户控件)

6、

7、使用.master(母版)。这个方法,应该也是很多使用ASP.NET的人使用的方法,有时候,它

8、还会与第三种方法结合使用。如果对性能需求不是很严格的话,中小型项目可以使用。实现:使用LoadControl()动态载入.ASCX文件或(与)指定页面的MasterPageFile(目标皮肤文件夹的)实现(通常.ascx与.master还会结合使用)。优点:灵活性极高,每个皮肤有独立的布局,直接使用了.CS文件的变量与方法ETC…甚至每套皮肤还有自己独立的代码文件。缺点:影响性能。有兴趣可以自己去反编译LoadControl方法。同时,在页面要使用<%%>这种代码块,有时候感觉也有点不雅。5.Xml+xslt传说xml取代html是趋势??不清楚,不

9、了解。应该不可能。此种方法我没有深入了解过,不过大概实现应该是要这样子?每一个XML(输出数据)会有一个对应的XSL文件(控制样式)。如下:xml文件:BelgianWaffles$5.95twoofourfamousBelgianWaffleswithplentyofrealmaplesyrup6

10、50Cakes$1.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。