<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feeds.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feeds.feedsky.com/csdn.net/uno" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feeds.feedsky.com/csdn.net/uno" type="application/rss+xml"></fs:self_link><lastBuildDate>Mon, 29 Jan 2007 20:10:00 GMT</lastBuildDate><title>UNO</title><link>http://blog.csdn.net/uno/</link><item><title>ASP.NET应用程序级缓存的设计思路与实现</title><link>http://blog.csdn.net/uno/archive/2007/01/29/1497386.aspx</link><wfw:comment>http://blog.csdn.net/uno/comments/1497386.aspx</wfw:comment><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/uno/comments/commentRss/1497386.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1497386</trackback:ping><description>【背景】页面包含许多需要显示数据库数据的控件，每次打开页面的效率都很低【目标】1.减少页面响应时间，从而提高用户访问速度；2.缓存应在用户访问页面之前起作用，而不是像ASP.NET窗体/用户控件缓存那样随用户访问被动创建；3.能提供全局的缓存策略配置；4.不同的控件各自拥有不同的缓存空间、过期时间及数据更新逻辑


&lt;img src =&quot;http://blog.csdn.net/uno/aggbug/1497386.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Tue, 30 Jan 2007 04:10:00 +0800</pubDate><author>uno</author><comments>http://blog.csdn.net/uno/archive/2007/01/29/1497386.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/uno/archive/2007/01/29/1497386.aspx</guid><dc:creator>uno</dc:creator></item><item><title>ASP.NET是微软继MFC之后最无用的框架</title><link>http://blog.csdn.net/uno/archive/2007/01/21/1489396.aspx</link><wfw:comment>http://blog.csdn.net/uno/comments/1489396.aspx</wfw:comment><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/uno/comments/commentRss/1489396.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1489396</trackback:ping><description>ASP.NET的封装隐藏了许多HTML细节，有助于桌面开发者通过最小代价掌握Web开发，但是这种封装是以牺牲浏览器执行效率为代价的。&lt;img src =&quot;http://blog.csdn.net/uno/aggbug/1489396.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Mon, 22 Jan 2007 04:38:00 +0800</pubDate><author>uno</author><comments>http://blog.csdn.net/uno/archive/2007/01/21/1489396.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/uno/archive/2007/01/21/1489396.aspx</guid><dc:creator>uno</dc:creator></item><item><title>使用ASP.NET开发遵循HTML/XHTML+CSS规范的的Web应用</title><link>http://blog.csdn.net/uno/archive/2007/01/19/1488097.aspx</link><wfw:comment>http://blog.csdn.net/uno/comments/1488097.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/uno/comments/commentRss/1488097.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1488097</trackback:ping><description>系统从外到内可以分为：

    * Web应用层

作用：从.NET Framework得到客户端的Http请求，并向.NET Framework输出页面的HTML代码
内容：ASP.NET窗体、ASP.NET用户控件（UserControl）以及其他页面所需要的资源

    * 控件层

作用：为应用层提供通用的界面控件，管理其内部控件并对外输出其自身的HTML代码
内容：ASP.NET Web自定义控件

    * 业务层

作用：向界面层（Web应用及控件）提供业务接口，直接或间接与数据库交互传递数据
内容：数据访问类或OR Mapping实现

本文探讨Web应用层的实现，主要目标包括：

   1. 提供模板页布局支持
   2. 对页面输出的HTML代码进行优化，做到数据和外观分离——也就是遵循基于HTML/XHTML+CSS的网页规范

&lt;img src =&quot;http://blog.csdn.net/uno/aggbug/1488097.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Sat, 20 Jan 2007 06:29:00 +0800</pubDate><author>uno</author><comments>http://blog.csdn.net/uno/archive/2007/01/19/1488097.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/uno/archive/2007/01/19/1488097.aspx</guid><dc:creator>uno</dc:creator></item><item><title>HTML+CSS实现圆角矩形（不需要图片）——抄自GTalk</title><link>http://blog.csdn.net/uno/archive/2007/01/08/1477233.aspx</link><wfw:comment>http://blog.csdn.net/uno/comments/1477233.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/uno/comments/commentRss/1477233.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1477233</trackback:ping><description>从GTalk的css模板里抠出来的东东 :P

道理其实很简单，架设矩形的圆角高度为4，那么由上到下依次是（单位px，所给出的边框宽度均为1px且颜色保持保持一致）：
高度为1，左右间隔均为5，仅有上方边框的div；
高度为1，左右间隔均为3，仅有左右边框的div；
高度为1，左右间隔均为2，仅有左右边框的div；
高度为1，左右间隔均为1，仅有左右边框的div；
左右间隔均为0，仅有左右边框的div——放置内容；
高度为1，左右间隔均为1，仅有左右边框的div；
高度为1，左右间隔均为2，仅有左右边框的div；
高度为1，左右间隔均为3，仅有左右边框的div；
高度为1，左右间隔均为5，仅有下方边框的div&lt;img src =&quot;http://blog.csdn.net/uno/aggbug/1477233.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Mon, 08 Jan 2007 23:54:00 +0800</pubDate><author>uno</author><comments>http://blog.csdn.net/uno/archive/2007/01/08/1477233.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/uno/archive/2007/01/08/1477233.aspx</guid><dc:creator>uno</dc:creator></item><item><title>触发器对记录的更改操作引起Nhibernate异常的解决</title><link>http://blog.csdn.net/uno/archive/2007/01/08/1477030.aspx</link><wfw:comment>http://blog.csdn.net/uno/comments/1477030.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/uno/comments/commentRss/1477030.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1477030</trackback:ping><description>问题产生：原先使用Nhibernate执行更新操作（Store）一切正常，在对数据库表增加了触发器——作用：将当前更改记录的访问用户（suser_sname()）及时间（getdate()）写入被更改记录的特定字段——后，Nhibernate操作发生异常&lt;img src =&quot;http://blog.csdn.net/uno/aggbug/1477030.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Mon, 08 Jan 2007 21:14:00 +0800</pubDate><author>uno</author><comments>http://blog.csdn.net/uno/archive/2007/01/08/1477030.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/uno/archive/2007/01/08/1477030.aspx</guid><dc:creator>uno</dc:creator></item><item><title>为什么要自动生成代码？</title><link>http://blog.csdn.net/uno/archive/2006/03/10/620522.aspx</link><wfw:comment>http://blog.csdn.net/uno/comments/620522.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/uno/comments/commentRss/620522.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=620522</trackback:ping><description>为什么要自动生成代码？
参照Ruby on Rails
完全可以做成一个runtime mvc framework for .NET
支持数据库增删改查
以WebControl为用户提供良好的设计时环境
&lt;img src =&quot;http://blog.csdn.net/uno/aggbug/620522.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Fri, 10 Mar 2006 17:46:00 +0800</pubDate><author>uno</author><comments>http://blog.csdn.net/uno/archive/2006/03/10/620522.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/uno/archive/2006/03/10/620522.aspx</guid><dc:creator>uno</dc:creator></item><item><title>runtime mvc framework for .NET</title><link>http://blog.csdn.net/uno/archive/2006/03/10/620518.aspx</link><wfw:comment>http://blog.csdn.net/uno/comments/620518.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/uno/comments/commentRss/620518.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=620518</trackback:ping><description>为什么要自动生成代码？
参照Ruby on Rails
完全可以做成一个runtime mvc framework for .NET
支持数据库增删改查
以WebControl为用户提供良好的设计时环境&lt;img src =&quot;http://blog.csdn.net/uno/aggbug/620518.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Fri, 10 Mar 2006 17:45:00 +0800</pubDate><author>uno</author><comments>http://blog.csdn.net/uno/archive/2006/03/10/620518.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/uno/archive/2006/03/10/620518.aspx</guid><dc:creator>uno</dc:creator></item><item><title>【MasterPages实用技巧】为模板增加前端控制②——自动注册客户端全局脚本</title><link>http://blog.csdn.net/uno/archive/2004/08/02/59075.aspx</link><wfw:comment>http://blog.csdn.net/uno/comments/59075.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/uno/comments/commentRss/59075.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=59075</trackback:ping><description>HTML页面可以定义客户端脚本，为页面外观提供丰富的可视化行为和逻辑，客户端脚本可以写在或中。写在中的脚本就是文本所指的“全局”脚本，为什么说它是全局的呢？因为中定义的客户端脚本函数可以在中任何地方被访问，而在中函数外部定义的客户端脚本，也能在页面加载后的第一时间，按顺序被浏览器执行，而且能够访问页面中的全部对象。相对的，中的脚本只能按顺序执行，其中定义的函数只能被其后的客户端脚本调用，其访问的页面对象也必须在其之前定义。

由于MasterPages无法正确输出中定义的Region/Content，那么为每一个窗体提供客户端全局脚本注册的任务，同样落在了模板控件的Page_Load事件处理函数身上。&lt;img src =&quot;http://blog.csdn.net/uno/aggbug/59075.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Tue, 03 Aug 2004 04:41:00 +0800</pubDate><author>uno</author><comments>http://blog.csdn.net/uno/archive/2004/08/02/59075.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/uno/archive/2004/08/02/59075.aspx</guid><dc:creator>uno</dc:creator></item><item><title>【MasterPages实用技巧】为模板增加前端控制①——自动生成页面标题</title><link>http://blog.csdn.net/uno/archive/2004/07/31/57600.aspx</link><wfw:comment>http://blog.csdn.net/uno/comments/57600.aspx</wfw:comment><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/uno/comments/commentRss/57600.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=57600</trackback:ping><description>上一回我们已经了解了MasterPages的基本使用方法，但是在实际使用过程中我们也会发现，这样的模板还无法满足要求。
笔者首先遇到的问题是页面标题。

对于使用模板的Web窗体来说，它的页面标题应该怎样写？一般情况下，页面标题由HTML的标准元素TITLE标记指定，它存在于HEAD标记内。可现在只有模板控件内存在完整的HTML标记，其他窗体都仅仅是通过MasterPages“引用”了这些公共的HTML元素。那么页面标题应该写在哪里？&lt;img src =&quot;http://blog.csdn.net/uno/aggbug/57600.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Sun, 01 Aug 2004 07:46:00 +0800</pubDate><author>uno</author><comments>http://blog.csdn.net/uno/archive/2004/07/31/57600.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/uno/archive/2004/07/31/57600.aspx</guid><dc:creator>uno</dc:creator></item><item><title>【MasterPages实用技巧】使用MasterPages实现Web窗体模板</title><link>http://blog.csdn.net/uno/archive/2004/07/30/56911.aspx</link><wfw:comment>http://blog.csdn.net/uno/comments/56911.aspx</wfw:comment><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/uno/comments/commentRss/56911.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=56911</trackback:ping><description>如果你是一个网页开发人员，面对大量含有重复内容的页面，你一定希望能利用“模板”定义网页内的公共部分，而每一个页面只需要完成其特有的内容，通过模板生成最终的页面。

熟悉Dreamweaver的网页开发人员都会喜欢其中的模板（Template）功能。但是当我们转换到了ASP.NET平台，却不得不使用一个基本上只能算是文本编辑器的微软开发环境（当然这应该是一个最完美的文本编辑器），微软在图形化网页设计方面也只能算是一个门外汉。尽管如此，即使没有所见即所得的图形化设计界面，微软以及其他开源志士们还是为我们提供了丰富的Web窗体前端控件。其中的MasterPages可以说是最有用的，因为它实现了Dreamweaver中的模板功能，而且在ASP.NET框架的支持下，使用模板变得更简便，我们甚至可以编程为自己的模板添加许多功能。&lt;img src =&quot;http://blog.csdn.net/uno/aggbug/56911.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Sat, 31 Jul 2004 06:48:00 +0800</pubDate><author>uno</author><comments>http://blog.csdn.net/uno/archive/2004/07/30/56911.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/uno/archive/2004/07/30/56911.aspx</guid><dc:creator>uno</dc:creator></item></channel></rss>