﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-呆子的生活-随笔分类-.NET</title><link>http://www.blogjava.net/adaiye/category/25353.html</link><description>呆子的生活</description><language>zh-cn</language><lastBuildDate>Fri, 07 Sep 2007 03:41:49 GMT</lastBuildDate><pubDate>Fri, 07 Sep 2007 03:41:49 GMT</pubDate><ttl>60</ttl><item><title>《.NET设计规范》&amp;mdash;&amp;mdash;学习笔记（2.5）框架设计基础</title><link>http://www.blogjava.net/adaiye/archive/2007/09/06/143159.html</link><dc:creator>adaiye</dc:creator><author>adaiye</author><pubDate>Thu, 06 Sep 2007 06:07:00 GMT</pubDate><guid>http://www.blogjava.net/adaiye/archive/2007/09/06/143159.html</guid><wfw:comment>http://www.blogjava.net/adaiye/comments/143159.html</wfw:comment><comments>http://www.blogjava.net/adaiye/archive/2007/09/06/143159.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/adaiye/comments/commentRss/143159.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/adaiye/services/trackbacks/143159.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 框架设计的基本原则：<br><br>    对用户而言，真正的开发效率来自能够轻易地创造非凡的产品，而并非来自能够轻易地创造垃圾。<br><br>   1. 场景驱动设计原则<br>   2. 低门栏原则<br>   3. 自说明对象原则<br>   4. 分层架构原则&nbsp;&nbsp;<a href='http://www.blogjava.net/adaiye/archive/2007/09/06/143159.html'>阅读全文</a><img src ="http://www.blogjava.net/adaiye/aggbug/143159.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/adaiye/" target="_blank">adaiye</a> 2007-09-06 14:07 <a href="http://www.blogjava.net/adaiye/archive/2007/09/06/143159.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《.NET设计规范》&amp;mdash;&amp;mdash;学习笔记（2.4）分层架构原则</title><link>http://www.blogjava.net/adaiye/archive/2007/09/05/142941.html</link><dc:creator>adaiye</dc:creator><author>adaiye</author><pubDate>Wed, 05 Sep 2007 08:54:00 GMT</pubDate><guid>http://www.blogjava.net/adaiye/archive/2007/09/05/142941.html</guid><wfw:comment>http://www.blogjava.net/adaiye/comments/142941.html</wfw:comment><comments>http://www.blogjava.net/adaiye/archive/2007/09/05/142941.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/adaiye/comments/commentRss/142941.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/adaiye/services/trackbacks/142941.html</trackback:ping><description><![CDATA[<p>分层设计使得在单个框架中同时提供强大的功能和易用性成为可能。</p> <ul> <li>考虑对框架进行分层，使高层API能提供最佳的开发效率，低层API能提供最强大的功能和最丰富的表现力。<br>通俗地讲，象我这样的菜鸟只能用高层API，太低层都不懂，而牛人们都是想用也更愿意用低层API的强大功能的（个人意见）。ps：这边的高层跟低层不是指高深的意思。而是从易用性方面考虑的！  <li>避免把低层API和高层API混在同一名字空间中，如果低层API非常复杂的话（即包含了许多类型）。  <li>要确保单个特性域中不同的层能很好的集成在一起。</li></ul><img src ="http://www.blogjava.net/adaiye/aggbug/142941.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/adaiye/" target="_blank">adaiye</a> 2007-09-05 16:54 <a href="http://www.blogjava.net/adaiye/archive/2007/09/05/142941.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ListView 日期,数字,字符排序</title><link>http://www.blogjava.net/adaiye/archive/2007/09/05/142929.html</link><dc:creator>adaiye</dc:creator><author>adaiye</author><pubDate>Wed, 05 Sep 2007 08:34:00 GMT</pubDate><guid>http://www.blogjava.net/adaiye/archive/2007/09/05/142929.html</guid><wfw:comment>http://www.blogjava.net/adaiye/comments/142929.html</wfw:comment><comments>http://www.blogjava.net/adaiye/archive/2007/09/05/142929.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/adaiye/comments/commentRss/142929.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/adaiye/services/trackbacks/142929.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: ListView 日期,数字,字符排序&nbsp;&nbsp;<a href='http://www.blogjava.net/adaiye/archive/2007/09/05/142929.html'>阅读全文</a><img src ="http://www.blogjava.net/adaiye/aggbug/142929.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/adaiye/" target="_blank">adaiye</a> 2007-09-05 16:34 <a href="http://www.blogjava.net/adaiye/archive/2007/09/05/142929.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《.NET设计规范》&amp;mdash;&amp;mdash;学习笔记（2.3）自说明对象原则</title><link>http://www.blogjava.net/adaiye/archive/2007/09/05/142869.html</link><dc:creator>adaiye</dc:creator><author>adaiye</author><pubDate>Wed, 05 Sep 2007 05:11:00 GMT</pubDate><guid>http://www.blogjava.net/adaiye/archive/2007/09/05/142869.html</guid><wfw:comment>http://www.blogjava.net/adaiye/comments/142869.html</wfw:comment><comments>http://www.blogjava.net/adaiye/archive/2007/09/05/142869.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/adaiye/comments/commentRss/142869.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/adaiye/services/trackbacks/142869.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在简单的使用场景中，一定要让框架无需文档就能使用。<br><br>    * 要确保API是直观的，无需查阅参考文档就能用于基本场景<br>      你总不希望写个“Hello World”都去查阅API文档吧。<br>    * 要为所有的API提供优秀的文档。<br>      一方面，并非所有的API都能自说明。不同的人会认为不同的API是自说明的；<br>      另一方面，有些人想在开始使用API之前完全理解它们。&nbsp;&nbsp;<a href='http://www.blogjava.net/adaiye/archive/2007/09/05/142869.html'>阅读全文</a><img src ="http://www.blogjava.net/adaiye/aggbug/142869.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/adaiye/" target="_blank">adaiye</a> 2007-09-05 13:11 <a href="http://www.blogjava.net/adaiye/archive/2007/09/05/142869.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《.NET设计规范》&amp;mdash;&amp;mdash;学习笔记（2.2）低门栏原则</title><link>http://www.blogjava.net/adaiye/archive/2007/09/03/142204.html</link><dc:creator>adaiye</dc:creator><author>adaiye</author><pubDate>Mon, 03 Sep 2007 02:03:00 GMT</pubDate><guid>http://www.blogjava.net/adaiye/archive/2007/09/03/142204.html</guid><wfw:comment>http://www.blogjava.net/adaiye/comments/142204.html</wfw:comment><comments>http://www.blogjava.net/adaiye/archive/2007/09/03/142204.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/adaiye/comments/commentRss/142204.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/adaiye/services/trackbacks/142204.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 框架必须以易于使用的方式来为普通用户提供一个低门栏。&nbsp;&nbsp;<a href='http://www.blogjava.net/adaiye/archive/2007/09/03/142204.html'>阅读全文</a><img src ="http://www.blogjava.net/adaiye/aggbug/142204.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/adaiye/" target="_blank">adaiye</a> 2007-09-03 10:03 <a href="http://www.blogjava.net/adaiye/archive/2007/09/03/142204.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>连接数据库和相关数据库操作——之我的方法 利用OLEDB</title><link>http://www.blogjava.net/adaiye/archive/2007/08/31/141689.html</link><dc:creator>adaiye</dc:creator><author>adaiye</author><pubDate>Fri, 31 Aug 2007 04:25:00 GMT</pubDate><guid>http://www.blogjava.net/adaiye/archive/2007/08/31/141689.html</guid><wfw:comment>http://www.blogjava.net/adaiye/comments/141689.html</wfw:comment><comments>http://www.blogjava.net/adaiye/archive/2007/08/31/141689.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/adaiye/comments/commentRss/141689.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/adaiye/services/trackbacks/141689.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 数据库连接与操作！&nbsp;&nbsp;<a href='http://www.blogjava.net/adaiye/archive/2007/08/31/141689.html'>阅读全文</a><img src ="http://www.blogjava.net/adaiye/aggbug/141689.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/adaiye/" target="_blank">adaiye</a> 2007-08-31 12:25 <a href="http://www.blogjava.net/adaiye/archive/2007/08/31/141689.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《.NET设计规范》&amp;mdash;&amp;mdash;学习笔记（2）框架设计的基本原则</title><link>http://www.blogjava.net/adaiye/archive/2007/08/29/141014.html</link><dc:creator>adaiye</dc:creator><author>adaiye</author><pubDate>Wed, 29 Aug 2007 09:34:00 GMT</pubDate><guid>http://www.blogjava.net/adaiye/archive/2007/08/29/141014.html</guid><wfw:comment>http://www.blogjava.net/adaiye/comments/141014.html</wfw:comment><comments>http://www.blogjava.net/adaiye/archive/2007/08/29/141014.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/adaiye/comments/commentRss/141014.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/adaiye/services/trackbacks/141014.html</trackback:ping><description><![CDATA[<p>由于我怕文章的篇幅过长会使人看了头痛，所以，我打算分几篇文章把《.NET设计规范》第二章的学习笔记写出来，这样大家看着不至于太累！大概是接下去总共五篇文章是说“框架设计基础”的......</p> <p>&nbsp;</p> <p> <script type="text/javascript"><!--
google_ad_client = "pub-2823374497557651";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
//2007-08-27: FileMid
google_ad_channel = "0152175912";
//-->
</script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script> </p> <h3><strong>对</strong>用户而言，真正的开发效率来自能够轻易地创造出非凡的产品，而并非来自能够轻易地创造垃圾。</h3> <h2><strong><font color="#0000ff">场景驱动设计的原则</font></strong></h2> <p>框架通常包含非常大的一组API。但在开发过程中，真正用到的只是其中较小的一个子集，只会涉及一小部分常用场景。</p> <p>在设计框架时，使用场景来驱动。从用户的角度，先自己编写一些对主要场景来说必不可少的代码，然后再设计对象模型（object model）来支持这些样例代码。</p> <p>于功能性规范之前，先撰写一份场景驱动的API规范，应该列出一个给定的技术领域中最常用的5—10个使用场景，并列出实现这些场景的样例代码，至少用两种语言编写。</p> <ul> <li>要确保对任何包含公用API的特性设计来说，其核心部分都是API设计规范。</li> <li>要为每个主要的特性域（feature area）定义一些最常用的场景。</li> <li>要确保使用场景与适当的抽象层次相对应。场景应该大致与最终用户的用例相对应。</li> <li>先为主要的使用场景编写样例代码，然后再定义对象模型来支持这些样例代码。</li> <li>要用至少两种不同的编程语言来为主要场景编写样例代码。<br>最好能保证所选编程语言的语法和风格差异很大。</li> <li>不要在设计框架的公用API时完全依赖于标准的设计方法。<br>标准的设计方法（包括面向对象的方法）是为了使设计的具体实现容易维护，而不是为了使得到的API易于使用。<br>以场景驱动设计为主，辅以原型制作、可用性研究以及一定数量的迭代，这种方法要比标准的设计方法好得多。<br>可用性研究是为了确定开发人员真正的需求。这跟需求获取一样，设计师此时化身为一名需求分析师，而开发人员则变成了客户。需求分析师不能想当然的认为客户的真正需求是什么，一定要通过跟客户交流才行，站在客户的角度考虑问题。跟需求获取类似，可用性研究宜早不宜迟。</li> <li>要安排可用性研究来测试用于主要场景的API。<br>如果开发人员在为主要场景编写代码时，遇到较大问题，则说明API需要重新设计。在原有API的基础上修改，开销反而大，而且是很大。</li></ul><img src ="http://www.blogjava.net/adaiye/aggbug/141014.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/adaiye/" target="_blank">adaiye</a> 2007-08-29 17:34 <a href="http://www.blogjava.net/adaiye/archive/2007/08/29/141014.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《.NET设计规范》——学习笔记（1）</title><link>http://www.blogjava.net/adaiye/archive/2007/08/28/140588.html</link><dc:creator>adaiye</dc:creator><author>adaiye</author><pubDate>Tue, 28 Aug 2007 08:56:00 GMT</pubDate><guid>http://www.blogjava.net/adaiye/archive/2007/08/28/140588.html</guid><wfw:comment>http://www.blogjava.net/adaiye/comments/140588.html</wfw:comment><comments>http://www.blogjava.net/adaiye/archive/2007/08/28/140588.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/adaiye/comments/commentRss/140588.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/adaiye/services/trackbacks/140588.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 如果框架的设计者能够站在使用者背后解释应该如何使用框架，那么就不需要同规范了。&nbsp;&nbsp;<a href='http://www.blogjava.net/adaiye/archive/2007/08/28/140588.html'>阅读全文</a><img src ="http://www.blogjava.net/adaiye/aggbug/140588.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/adaiye/" target="_blank">adaiye</a> 2007-08-28 16:56 <a href="http://www.blogjava.net/adaiye/archive/2007/08/28/140588.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>