<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_瑞雪年</title><subtitle type="text"/><id>http://feed.cnblogs.com/blog/u/6076/rss</id><updated>2012-04-26T16:19:27Z</updated><author><name>瑞雪年</name><uri>http://www.cnblogs.com/zhongzf/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhongzf/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/6076/rss"/><entry><id>http://www.cnblogs.com/zhongzf/archive/2012/04/27/2472863.html</id><title type="text">大连第一台智器Q8？</title><summary type="text">快递还是很给力，周四就到了，能算上大连第一台吗?说点体会1. 屏幕比不上ips，不过也过的去。2. 性能绝对没问题。3. 大小重量厚度也不错，拿在手上很舒服。那个宽边，我道感觉还好。4. 无GPS.5. 屏幕上的触摸‘线’，侧着看还是很明显。6. 敲击后盖有点空的感觉，很山寨。7. 随变装了几个应用和游戏，发现兼容性有点差.8. 屏幕右下角是“死角”，竖着看书会稍有不适。9. 机身发热控制很好，连续在线视频，稍有温暖。10. 安装Flash插件后，可玩Flash游戏。11. 五点触摸，精度可以。12. 玻璃面很耐划(钥匙已测)，完全没有贴膜的必要。13. 40%亮度，连WIFI，1小时耗电20</summary><published>2012-04-26T16:19:00Z</published><updated>2012-04-26T16:19:00Z</updated><author><name>瑞雪年</name><uri>http://www.cnblogs.com/zhongzf/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhongzf/archive/2012/04/27/2472863.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhongzf/archive/2012/04/27/2472863.html"/><content type="html">&lt;p&gt;快递还是很给力，周四就到了，能算上大连第一台吗?&lt;br /&gt;说点体会&lt;br /&gt;1. 屏幕比不上ips，不过也过的去。&lt;br /&gt;2. 性能绝对没问题。&lt;br /&gt;3. 大小重量厚度也不错，拿在手上很舒服。那个宽边，我道感觉还好。&lt;br /&gt;4. 无GPS.&lt;br /&gt;5. 屏幕上的触摸&amp;lsquo;线&amp;rsquo;，侧着看还是很明显。&lt;br /&gt;6. 敲击后盖有点空的感觉，很山寨。&lt;br /&gt;7. 随变装了几个应用和游戏，发现兼容性有点差.&lt;br /&gt;8. 屏幕右下角是&amp;ldquo;死角&amp;rdquo;，竖着看书会稍有不适。&lt;br /&gt;9. 机身发热控制很好，连续在线视频，稍有温暖。&lt;br /&gt;10. 安装Flash插件后，可玩Flash游戏。&lt;br /&gt;11. 五点触摸，精度可以。&lt;br /&gt;12. 玻璃面很耐划(钥匙已测)，完全没有贴膜的必要。&lt;br /&gt;13. 40%亮度，连WIFI，1小时耗电20%，估计满电工作应该在5小时左右。&lt;br /&gt;14. 玩机6小时左右时，死机一次，起机35秒左右。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;图1. 小米拍摄Q8&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/3141/2012042700151967.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;图2. Q8拍摄Macbook&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/3141/2012042700165210.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;PS. 我在zhiqifans发的帖子怎么没了？？！！&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zhongzf/aggbug/2472863.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhongzf/archive/2012/04/27/2472863.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhongzf/archive/2012/03/31/2426803.html</id><title type="text">小米手机如期而至</title><summary type="text">小米手机如期而至，把玩中...前段时间打算换手机，就锁定了MX和小米，可是MX不给力，就算定货也不知何时能到货，碰巧小米首发15万电信版，于是果断抢定（真可以算上抢了，半个小时，15万就售完了。），说好的月底到货，昨天真的收到货了，快递也很给力。一切都很满意，只是自已贴膜费了些力气，作为一个业余选手，最终还算基本满意吧。</summary><published>2012-03-31T05:02:00Z</published><updated>2012-03-31T05:02:00Z</updated><author><name>瑞雪年</name><uri>http://www.cnblogs.com/zhongzf/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhongzf/archive/2012/03/31/2426803.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhongzf/archive/2012/03/31/2426803.html"/><content type="html">&lt;p&gt;小米手机如期而至，把玩中...&lt;/p&gt;&lt;p&gt;前段时间打算换手机，就锁定了MX和小米，可是MX不给力，就算定货也不知何时能到货，碰巧小米首发15万电信版，于是果断抢定（真可以算上抢了，半个小时，15万就售完了。），说好的月底到货，昨天真的收到货了，快递也很给力。&lt;/p&gt;&lt;p&gt;一切都很满意，只是自已贴膜费了些力气，作为一个业余选手，最终还算基本满意吧。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zhongzf/aggbug/2426803.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhongzf/archive/2012/03/31/2426803.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhongzf/archive/2012/02/24/2365964.html</id><title type="text">jqGrid + JSON + WebService 完整示例</title><summary type="text">真没找到这样的例子，于是自已写了个，分享出来。第一步，首先在WebService上，添加[System.Web.Script.Services.ScriptService]属性标签，让WebServer支持JSON.namespace jqGrid_JSON_WebService_Sample.Services{ /// &lt;summary&gt; /// Summary description for WebServiceGrid /// &lt;/summary&gt; [WebService(Namespace = "http://tempuri.org/")] </summary><published>2012-02-23T16:58:00Z</published><updated>2012-02-23T16:58:00Z</updated><author><name>瑞雪年</name><uri>http://www.cnblogs.com/zhongzf/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhongzf/archive/2012/02/24/2365964.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhongzf/archive/2012/02/24/2365964.html"/><content type="html">&lt;p&gt;真没找到这样的例子，于是自已写了个，分享出来。&lt;/p&gt;&lt;p&gt;第一步，首先在WebService上，添加[System.Web.Script.Services.ScriptService]属性标签，让WebServer支持JSON.&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;pre&gt;&lt;span style="color: #0000ff;"&gt;namespace&lt;/span&gt; jqGrid_JSON_WebService_Sample.Services&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; Summary description for WebServiceGrid&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;    [WebService(Namespace = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;http://tempuri.org/&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;)]&lt;br /&gt;    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]&lt;br /&gt;    [System.ComponentModel.ToolboxItem(&lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;)]&lt;br /&gt;    &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. &lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;    [System.Web.Script.Services.ScriptService]&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;class&lt;/span&gt; WebServiceGrid : System.Web.Services.WebService&lt;br /&gt;    {&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;接着，添加ajax调用的后端代码，获取数据，返回JSON对象:&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;pre&gt;        [WebMethod]&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; Grid(&lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;? _search, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; nd, &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; page, &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; rows, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; sidx, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; sord, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; searchField, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; searchString, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; searchOper)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; count;&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; data = dc.Query&amp;lt;Issue&amp;gt;(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;.IsNullOrWhiteSpace(searchField) ? &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; : &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;[] { searchField }, &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;[] { searchOper }, &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;[] { searchString }, &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;[] { &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;.IsNullOrWhiteSpace(sidx) ? &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;IssueID&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; : sidx }, &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;[] { sord }, (page - &lt;span style="color: #800080;"&gt;1&lt;/span&gt;) * rows, rows, &lt;span style="color: #0000ff;"&gt;out&lt;/span&gt; count);&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                total = Math.Ceiling((&lt;span style="color: #0000ff;"&gt;float&lt;/span&gt;)count / (&lt;span style="color: #0000ff;"&gt;float&lt;/span&gt;)rows),&lt;br /&gt;                page = page,&lt;br /&gt;                records = count,&lt;br /&gt;                rows = data.Select(item =&amp;gt; &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; { id = item.IssueID, cell = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;[] { item.IssueID, item.Title, item.Description, item.Progress, item.CreateTime, item.Locked } })&lt;br /&gt;            });&lt;br /&gt;        }&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;第二步，添加前台页面，首先添加各种的js,css引用，然后添加jqGrid所需的&amp;lt;div&amp;gt;和js代码：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;pre&gt;&amp;lt;%@ Page Title=&lt;span style="color: #800000;"&gt;""&lt;/span&gt; Language=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;C#&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; MasterPageFile=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;~/Site.Master&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; AutoEventWireup=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;true&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; CodeBehind=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;WebFormGrid.aspx.cs&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; Inherits=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;jqGrid_JSON_WebService_Sample.WebFormGrid&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; %&amp;gt;&lt;br /&gt;&amp;lt;asp:Content ID=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Content1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; ContentPlaceHolderID=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;HeadContent&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; runat=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;server&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;link href=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;/Content/smoothness/jquery-ui-1.8.17.custom.css&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; rel=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;stylesheet&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; type=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;text/css&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; /&amp;gt;&lt;br /&gt;    &amp;lt;link href=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;/Content/Site.css&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; rel=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;stylesheet&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; type=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;text/css&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; /&amp;gt;&lt;br /&gt;    &amp;lt;script src=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;/Scripts/jquery-1.7.1.min.js&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; type=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;text/javascript&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;    &amp;lt;script src=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;/Scripts/jquery-ui-1.8.11.min.js&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; type=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;text/javascript&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;    &amp;lt;link href=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;/Content/ui.jqgrid.css&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; rel=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;stylesheet&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; type=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;text/css&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; /&amp;gt;&lt;br /&gt;    &amp;lt;script src=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;/Scripts/i18n/grid.locale-en.js&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; type=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;text/javascript&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;    &amp;lt;script src=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;/Scripts/jquery.jqGrid.min.js&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; type=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;text/javascript&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;    &amp;lt;script type=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;text/javascript&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;gt;&lt;br /&gt;        $(function ()&lt;br /&gt;        {&lt;br /&gt;            $(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#list #grid&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;).jqGrid(&lt;br /&gt;            {&lt;br /&gt;                url: &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;/Services/WebServiceGrid.asmx/Grid&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;,&lt;br /&gt;                mtype: &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;POST&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;,&lt;br /&gt;                ajaxGridOptions: { contentType: &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;application/json; charset=utf-8&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt; },&lt;br /&gt;                serializeGridData: function (postData)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (postData.searchField === undefined) postData.searchField = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;;&lt;br /&gt;                    &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (postData.searchString === undefined) postData.searchString = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;;&lt;br /&gt;                    &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (postData.searchOper === undefined) postData.searchOper = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;;&lt;br /&gt;                    &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; JSON.stringify(postData);&lt;br /&gt;                },&lt;br /&gt;                jsonReader:&lt;br /&gt;                {&lt;br /&gt;                    root: &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;d.rows&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;br /&gt;                    page: &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;d.page&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;br /&gt;                    total: &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;d.total&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;br /&gt;                    records: &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;d.records&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;                },&lt;br /&gt;                datatype: &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;json&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;br /&gt;                colNames:&lt;br /&gt;                [&lt;br /&gt;                    &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;IssueID&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;,&lt;br /&gt;                    &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;Title&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;,&lt;br /&gt;                    &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;Description&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;,&lt;br /&gt;                    &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;Progress&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;,&lt;br /&gt;                    &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;CreateTime&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;,&lt;br /&gt;                    &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;Locked&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;br /&gt;                ],&lt;br /&gt;                colModel:&lt;br /&gt;                [&lt;br /&gt;                    { name: &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;IssueID&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;, width: &lt;span style="color: #800080;"&gt;100&lt;/span&gt;, index: &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;IssueID&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt; },&lt;br /&gt;                    { name: &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;Title&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;, width: &lt;span style="color: #800080;"&gt;100&lt;/span&gt;, index: &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;Title&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt; },&lt;br /&gt;                    { name: &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;Description&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;, width: &lt;span style="color: #800080;"&gt;300&lt;/span&gt;, index: &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;Description&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt; },&lt;br /&gt;                    { name: &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;Progress&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;, width: &lt;span style="color: #800080;"&gt;150&lt;/span&gt;, index: &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;Progress&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt; },&lt;br /&gt;                    { name: &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;CreateTime&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;, width: &lt;span style="color: #800080;"&gt;100&lt;/span&gt;, index: &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;CreateTime&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;, formatter:&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;date&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;,  sorttype:&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;datetime&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;, datefmt:&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;M d h:i&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt; },&lt;br /&gt;                    { name: &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;Locked&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;, width: &lt;span style="color: #800080;"&gt;100&lt;/span&gt;, index: &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;Locked&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt; }&lt;br /&gt;                ],&lt;br /&gt;                rowNum: &lt;span style="color: #800080;"&gt;10&lt;/span&gt;,&lt;br /&gt;                rowList: [&lt;span style="color: #800080;"&gt;10&lt;/span&gt;, &lt;span style="color: #800080;"&gt;15&lt;/span&gt;, &lt;span style="color: #800080;"&gt;20&lt;/span&gt;, &lt;span style="color: #800080;"&gt;25&lt;/span&gt;, &lt;span style="color: #800080;"&gt;40&lt;/span&gt;],&lt;br /&gt;                pager: &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;#pager&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;,&lt;br /&gt;                viewrecords: &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;,&lt;br /&gt;                sortorder: &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;desc&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;br /&gt;                width: &lt;span style="color: #800080;"&gt;900&lt;/span&gt;,&lt;br /&gt;                height: &lt;span style="color: #800080;"&gt;240&lt;/span&gt;,&lt;br /&gt;            });&lt;br /&gt;&lt;br /&gt;            $(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;#list #grid&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;).jqGrid(&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;navGrid&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;, &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;#pager&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;, { edit: &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;, add: &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;, del: &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt; });&lt;br /&gt;        });&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/asp:Content&amp;gt;&lt;br /&gt;&amp;lt;asp:Content ID=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Content2&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; ContentPlaceHolderID=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;MainContent&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; runat=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;server&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;div id=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;list&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;table id=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;grid&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;/table&amp;gt;&lt;br /&gt;    &amp;lt;div id=&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;pager&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/asp:Content&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;注意jqGrid函数据前面的部分代码：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;pre&gt;                url: '/Services/WebServiceGrid.asmx/Grid',&lt;br /&gt;                mtype: 'POST',&lt;br /&gt;                ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;通过url指定WebService方法，mtype指定使用POST方法，contentType指定为json，这样WebService才会返回json对象。&lt;/p&gt;&lt;p&gt;可是，返回的数据是放在一个属性名为d的对象里，所以还要添加&amp;nbsp;jsonReader，来作数据映射:&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;pre&gt; jsonReader:&lt;br /&gt;                {&lt;br /&gt;                    root: "d.rows",&lt;br /&gt;                    page: "d.page",&lt;br /&gt;                    total: "d.total",&lt;br /&gt;                    records: "d.records"&lt;br /&gt;                },&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;最后，为了保证查询时能够POST正确的参数，还要对POST的参数值进行检查：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;pre&gt;                serializeGridData: &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; (postData)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (postData.searchField === undefined) postData.searchField = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;;&lt;br /&gt;                    &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (postData.searchString === undefined) postData.searchString = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;;&lt;br /&gt;                    &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (postData.searchOper === undefined) postData.searchOper = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;;&lt;br /&gt;                    &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; JSON.stringify(postData);&lt;br /&gt;                },&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;到此，一个完整的jqGrid示例就完成了，成果展示：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/3141/2012022400532928.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;完整示例代码：&lt;a href="http://files.cnblogs.com/zhongzf/jqGrid_JSON_WebService_Sample.zip" target="_blank"&gt;jqGrid_JSON_WebService_Sample.zip&lt;/a&gt;&lt;/p&gt;&lt;p&gt;汗！数据库文件还有版本问题，低版本的数据库文件在这&lt;a href="http://files.cnblogs.com/zhongzf/App_Data.zip" target="_blank"&gt;下载&lt;/a&gt;, 低版本数据库文件的完整示例代码：&lt;a href="http://files.cnblogs.com/zhongzf/jqGrid_JSON_WebService_Sample(v2).zip" target="_blank"&gt;jqGrid_JSON_WebService_Sample(v2).zip&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zhongzf/aggbug/2365964.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhongzf/archive/2012/02/24/2365964.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhongzf/archive/2012/02/18/2356614.html</id><title type="text">【翻译】从头开始编写一个Orchard网上商店模块(6) - 创建购物车服务和控制器</title><summary type="text">原文地址: http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-6创建购物车服务和控制器这是从头开始编写一个新的Orchard模块的教程的第6篇。对于本教程的概述，请参阅介绍。在本篇，我们将使我们的用户可以添加商品到他们的购物车。要创建这样的功能，我们需要： 一个“添加到购物车”按钮，要被添加我们的产品目录上，将产品添加到购物车 某种购物车服务，以存储添加的项 我们的ShoppingCart的概况，以及“继续结帐”按钮 在每个页面上都显示我们的Shopp</summary><published>2012-02-17T16:26:00Z</published><updated>2012-02-17T16:26:00Z</updated><author><name>瑞雪年</name><uri>http://www.cnblogs.com/zhongzf/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhongzf/archive/2012/02/18/2356614.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhongzf/archive/2012/02/18/2356614.html"/><content type="text">原文地址: http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-6创建购物车服务和控制器这是从头开始编写一个新的Orchard模块的教程的第6篇。对于本教程的概述，请参阅介绍。在本篇，我们将使我们的用户可以添加商品到他们的购物车。要创建这样的功能，我们需要： 一个“添加到购物车”按钮，要被添加我们的产品目录上，将产品添加到购物车 某种购物车服务，以存储添加的项 我们的ShoppingCart的概况，以及“继续结帐”按钮 在每个页面上都显示我们的Shopp</content></entry><entry><id>http://www.cnblogs.com/zhongzf/archive/2012/02/16/2355065.html</id><title type="text">【翻译】从头开始编写一个Orchard网上商店模块(5) - 创建和渲染ProductCatalog的内容类型</title><summary type="text">原文地址: http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-5创建和渲染ProductCatalog的内容类型这是从头开始编写一个新的Orchard模块的教程的第5篇。对于本教程的概述，请参阅介绍。为了网站的访问者能够将产品添加到他们的购物车，我们需要一个产品目录。产品目录可以是一个简单的产品清单。然而，在本教程中，我们希望主题作者能够接管渲染(rendering)工作，例好对商品按照某种类别分类进行分类。为了做到这一点，我们需要能够'换肤(</summary><published>2012-02-16T14:52:00Z</published><updated>2012-02-16T14:52:00Z</updated><author><name>瑞雪年</name><uri>http://www.cnblogs.com/zhongzf/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhongzf/archive/2012/02/16/2355065.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhongzf/archive/2012/02/16/2355065.html"/><content type="text">原文地址: http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-5创建和渲染ProductCatalog的内容类型这是从头开始编写一个新的Orchard模块的教程的第5篇。对于本教程的概述，请参阅介绍。为了网站的访问者能够将产品添加到他们的购物车，我们需要一个产品目录。产品目录可以是一个简单的产品清单。然而，在本教程中，我们希望主题作者能够接管渲染(rendering)工作，例好对商品按照某种类别分类进行分类。为了做到这一点，我们需要能够'换肤(</content></entry><entry><id>http://www.cnblogs.com/zhongzf/archive/2012/02/15/2353430.html</id><title type="text">【翻译】从头开始编写一个Orchard网上商店模块(4) - 创建ProductPart</title><summary type="text">原文地址：http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-4定义的ProductPart这是从头开始编写一个新的Orchard模块的教程的第4篇。对于本教程的概述，请参阅介绍。Orchard中的内容项(Content Items)由Content Parts组成。使用我们的网上商店模块，我们希望管理员可以通过把ProductPart附加到任何内容类型(ContentType)上，组成商品(Product)。例如，用户可以定义一个“书”的内容类型，附加</summary><published>2012-02-15T15:51:00Z</published><updated>2012-02-15T15:51:00Z</updated><author><name>瑞雪年</name><uri>http://www.cnblogs.com/zhongzf/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhongzf/archive/2012/02/15/2353430.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhongzf/archive/2012/02/15/2353430.html"/><content type="text">原文地址：http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-4定义的ProductPart这是从头开始编写一个新的Orchard模块的教程的第4篇。对于本教程的概述，请参阅介绍。Orchard中的内容项(Content Items)由Content Parts组成。使用我们的网上商店模块，我们希望管理员可以通过把ProductPart附加到任何内容类型(ContentType)上，组成商品(Product)。例如，用户可以定义一个“书”的内容类型，附加</content></entry><entry><id>http://www.cnblogs.com/zhongzf/archive/2012/02/15/2352015.html</id><title type="text">【翻译】从头开始编写一个Orchard网上商店模块(3) - 创建Orchard.Webshop模块项目</title><summary type="text">原文地址：http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-3创建Orchard.Webshop模块项目这是从头开始编写一个新的Orchard模块的教程的第3篇。对于本教程的概述，请参阅介绍。Orchard模块是一个真正的ASP.NET MVC的Area类库，同时遵循了ASP.NET MVC和Orchard的特定的规范。Orchard 规范提升了您的ASP.NET MVC Area，因此，它可以集成到Orchard中。现在，我们可以使用Orchard命</summary><published>2012-02-14T16:34:00Z</published><updated>2012-02-14T16:34:00Z</updated><author><name>瑞雪年</name><uri>http://www.cnblogs.com/zhongzf/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhongzf/archive/2012/02/15/2352015.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhongzf/archive/2012/02/15/2352015.html"/><content type="html">【摘要】原文地址：http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-3创建Orchard.Webshop模块项目这是从头开始编写一个新的Orchard模块的教程的第3篇。对于本教程的概述，请参阅介绍。Orchard模块是一个真正的ASP.NET MVC的Area类库，同时遵循了ASP.NET MVC和Orchard的特定的规范。Orchard 规范提升了您的ASP.NET MVC Area，因此，它可以集成到Orchard中。现在，我们可以使用Orchard命 &lt;a href="原文地址：http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-3创建Orchard.Webshop模块项目这是从头开始编写一个新的Orchard模块的教程的第3篇。对于本教程的概述，请参阅介绍。Orchard模块是一个真正的ASP.NET MVC的Area类库，同时遵循了ASP.NET MVC和Orchard的特定的规范。Orchard 规范提升了您的ASP.NET MVC Area，因此，它可以集成到Orchard中。现在，我们可以使用Orchard命" target="_blank"&gt;http://www.cnblogs.com/zhongzf/archive/2012/02/15/2352015.html&lt;/a&gt;&lt;img src="http://www.cnblogs.com/zhongzf/aggbug/2352015.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhongzf/archive/2012/02/15/2352015.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhongzf/archive/2012/02/15/2352010.html</id><title type="text">【翻译】从头开始编写一个Orchard网上商店模块(2) - 配置您的Orchard开发环境</title><summary type="text">原文地址：http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-2配置您的Orchard开发环境这是从头开始编写一个新的Orchard模块的教程的第2篇。对于本教程的概述，请参阅介绍。当创建Orchard模块时，建议您下载完整的源代码，让我们从Orchard项目的首页：http://orchardproject.net/下载我不知道这是否是必需的，但只是为了安全起见，你应该在解压之前先解锁zip文件：接下来，解压缩文件，并用Visual Studio 20</summary><published>2012-02-14T16:24:00Z</published><updated>2012-02-14T16:24:00Z</updated><author><name>瑞雪年</name><uri>http://www.cnblogs.com/zhongzf/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhongzf/archive/2012/02/15/2352010.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhongzf/archive/2012/02/15/2352010.html"/><content type="text">原文地址：http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-2配置您的Orchard开发环境这是从头开始编写一个新的Orchard模块的教程的第2篇。对于本教程的概述，请参阅介绍。当创建Orchard模块时，建议您下载完整的源代码，让我们从Orchard项目的首页：http://orchardproject.net/下载我不知道这是否是必需的，但只是为了安全起见，你应该在解压之前先解锁zip文件：接下来，解压缩文件，并用Visual Studio 20</content></entry><entry><id>http://www.cnblogs.com/zhongzf/archive/2012/02/15/2352003.html</id><title type="text">【翻译】从头开始编写一个Orchard网上商店模块(1) - 介绍</title><summary type="text">原文地址：http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-1介绍在这个系列博客中，我们将共同经历从头开始构建一个Orchard模块的过程！虽然Orchard是一个了不起CMS（内容管理系统），有着强大的功能和令人振奋的架构，可以无限的扩展，但它可能需要花费一定时间，以充分了解它的架构，并能够定制您自己的主题的各个方面或甚至创造整个模块来集成Orchard所有的可扩展性点。我希望，你将受益于我前进的道路上所获得的知识，你会看到Orchard及其架构之美</summary><published>2012-02-14T16:17:00Z</published><updated>2012-02-14T16:17:00Z</updated><author><name>瑞雪年</name><uri>http://www.cnblogs.com/zhongzf/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhongzf/archive/2012/02/15/2352003.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhongzf/archive/2012/02/15/2352003.html"/><content type="html">&lt;p&gt;原文地址：&lt;a href="http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-1"&gt;http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-1&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: 16px;"&gt;介绍&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;在这个系列博客中，我们将共同经历从头开始构建一个Orchard模块的过程！&lt;br /&gt;虽然Orchard是一个了不起CMS（内容管理系统），有着强大的功能和令人振奋的架构，可以无限的扩展，但它可能需要花费一定时间，以充分了解它的架构，并能够定制您自己的主题的各个方面或甚至创造整个模块来集成Orchard所有的可扩展性点。&lt;br /&gt;&lt;br /&gt;我希望，你将受益于我前进的道路上所获得的知识，你会看到Orchard及其架构之美。它不仅只是在简单或高级的网站和博客方面表现很出色，同时它也是一个非常基础的平台，用于创建各种基于Web的应用，如电子商务后端,&amp;nbsp; CRM的投票系统，项目管理，社区网站，学习管理系统等等。基本上你打算从头创建的任何应用都应考虑使用Orchard创建。Orchard实际上是一个可扩展的框架，它不仅仅&amp;ldquo;只是&amp;rdquo;一个CMS。你可以通过插件方式做任何常规ASP.NET MVC应用可以做的事，同时Orchard还拥有一套丰富的功能和兼容概念，你可以获得额外的好处。&lt;br /&gt;&lt;br /&gt;本播客系列主要面向刚刚接触Orchard的ASP.NET MVC开发人员，在开始深入这前，如果您还没有阅读过下面文章，我强烈建议您先阅读以下文章：&lt;br /&gt;&lt;a href="http://docs.orchardproject.net/Documentation/How-Orchard-works"&gt;http://docs.orchardproject.net/Documentation/How-Orchard-works&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/hh708754.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/hh708754.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: 15px;"&gt;网上商店功能&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;我们的网上商店模块将启用以下功能：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;管理员将能够将任意ContentType(内容类型)通过附加到ProductPart上，从而把它变成产品。&lt;/li&gt;&lt;li&gt;网站访客（顾客）将能够把产品添加到购物篮，通过网站注册，并成为注册用户。&lt;/li&gt;&lt;li&gt;用户将能够进行结算和通过在线支付服务提供商（PSP）支付（在我们的演示，我们将使用Ogone模拟PSP）选定的产品。&lt;/li&gt;&lt;li&gt;在客户被重定向到PSP之前，系统将创建一个Order(订单)记录，及其OrderDetail (订单明细)记录。&lt;/li&gt;&lt;li&gt;在客户支付订单后，我们需要处理的产品交付。在实物产品的情况下，我们可能要通知一些航运伙伴。在虚拟产品的情况下，我们可能要产生类似于票据，或其他近似的产品。为了这种灵活性，我们将实现某种接口IShippingProvider，我们将创建两个简单的实现：一个是发送电子邮件通知托运人，另一个会产生票据。&lt;/li&gt;&lt;li&gt;管理后台，使管理员能够管理客户以及订单。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;（注意: 关于嵌入截图, 出现一些截图太小，你只需拖动图片到您的浏览器的地址栏中，查看其原始大小的图片。）&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;好吧，就让我们开始创建Orchard Webshop Module(网店模块)！&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://www.cnblogs.com/zhongzf/archive/2012/02/15/2352003.html"&gt;第1部分 - 简介（本篇）&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.cnblogs.com/zhongzf/archive/2012/02/15/2352010.html"&gt;第2部分&amp;nbsp;- 配置您的Orchard开发环境&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.cnblogs.com/zhongzf/archive/2012/02/15/2352015.html"&gt;第3部分 - 创建Orchard.Webshop模块项目&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.cnblogs.com/zhongzf/archive/2012/02/15/2353430.html"&gt;第4部分 - 创建ProductPart&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.cnblogs.com/zhongzf/archive/2012/02/16/2355065.html"&gt;第5部分 - 创建和渲染ProductCatalog的内容类型&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.cnblogs.com/zhongzf/archive/2012/02/18/2356614.html"&gt;第6部分 - 创建购物车服务和控制器&lt;/a&gt;&lt;br /&gt;第7部分 - 渲染ShoppingCart和ShoppingCartWidget&lt;br /&gt;第8部分 - 注册新客户与网站&lt;br /&gt;第9部分 - 创建订单和与PSP通信&lt;br /&gt;第10部分 - 客户和订单管理后端&lt;br /&gt;第11部分&amp;nbsp;- 在内容列表中定制产品和类别的：DisplayTypes&lt;br /&gt;第12部分 - 与ERP系统集成&lt;br /&gt;第13部分 - 处理运费和税费&lt;br /&gt;第14部分 - 实施付款方式：Google Checkout&lt;br /&gt;第15部分 - 实施付款方式：PayPal&lt;br /&gt;&lt;br /&gt;点击&lt;a href="http://demos.skywalkersoftwaredevelopment.net/Orchard-Webshop-Demo"&gt;这里&lt;/a&gt;查看演示！&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zhongzf/aggbug/2352003.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhongzf/archive/2012/02/15/2352003.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhongzf/archive/2012/01/07/2315947.html</id><title type="text">隆重推荐：DAC 4.0 全新发布</title><summary type="text">DAC 4.0 是一个全新的版本， 几乎全部重写了以前的代码，设计的结构也简化很多，基于.net4,使用lambda表达式代替反射，去除大量过时的功能（如DataTable和DataSet的相关功能等），去除自定义表达式部分，通过解析lambda表达式实现自定义条件查询。 使用.net自带Configuration功能，只要web.config或app.config，不需要额外的配置文件，方便配置使用；去除xml mapping方式，支持DLinq属性。支持多种数据库（已测试sql server, mysql, sqlite及oracle), 支持mono(ubuntu 11.10 + mon</summary><published>2012-01-07T11:25:00Z</published><updated>2012-01-07T11:25:00Z</updated><author><name>瑞雪年</name><uri>http://www.cnblogs.com/zhongzf/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhongzf/archive/2012/01/07/2315947.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhongzf/archive/2012/01/07/2315947.html"/><content type="html">&lt;p&gt;&lt;a href="http://dac.codeplex.com/releases/view/80094"&gt;DAC 4.0&lt;/a&gt; 是一个全新的版本， 几乎全部重写了以前的代码，设计的结构也简化很多，基于.net4,使用lambda表达式代替反射，去除大量过时的功能（如DataTable和DataSet的相关功能等），去除自定义表达式部分，通过解析lambda表达式实现自定义条件查询。 使用.net自带Configuration功能，只要web.config或app.config，不需要额外的配置文件，方便配置使用；去除xml mapping方式，支持DLinq属性。支持多种数据库（已测试sql server, mysql, sqlite及oracle), 支持&lt;a href="http://www.mono-project.com"&gt;mono&lt;/a&gt;(ubuntu 11.10 +&amp;nbsp; mono 2.10.5 + mysql 5.1.58测试通过)。&lt;/p&gt;&lt;p&gt;代码示例：&lt;/p&gt;&lt;p&gt;初启化,通过配置文件或connection string构造DataContext:&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;pre&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; dc = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DataContext(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;RaisingStudio.Data.TestProject.Properties.Settings.DefaultConnectionString&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;);&lt;br /&gt;或&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; dc = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DataContext(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;server=localhost;User Id=root;password=root;database=test;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;);&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;lambda表达式查询：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;pre&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; q = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dc.Query&amp;lt;Item&amp;gt;(i =&amp;gt; i.Name == &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;test&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; &amp;amp;&amp;amp; i.Status == &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;ok&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;);&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;或linq查询：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;pre&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; q = &lt;span style="color: #0000ff;"&gt;from&lt;/span&gt; s &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt; dc.GetQuery&amp;lt;Supplier&amp;gt;() &lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;where&lt;/span&gt; s.SuppId &amp;gt; &lt;span style="color: #800080;"&gt;0&lt;/span&gt; &amp;amp;&amp;amp; s.Name == &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;for Test3&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; &lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;select&lt;/span&gt; s;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;增删改：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;pre&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dc.Insert&amp;lt;Product&amp;gt;(&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Product&lt;br /&gt;{&lt;br /&gt;    ProductId = Guid.NewGuid().ToString(),&lt;br /&gt;        CategoryId = categoryId,&lt;br /&gt;        Name = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;for Test4&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;                &lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dc.Delete&amp;lt;Supplier&amp;gt;(suppId);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dc.Update&amp;lt;Product&amp;gt;(product);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dc.Save&amp;lt;Category&amp;gt;(category);&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;通过主键获取单个实例：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;pre&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; product = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dc.GetEntity&amp;lt;Product&amp;gt;(productId);&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;支持排序和分页：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;pre&gt;List&amp;lt;Item&amp;gt; items = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dc.Query&amp;lt;Item&amp;gt;(ExpressionExtension.Empty&amp;lt;Item&amp;gt;().Take(&lt;span style="color: #800080;"&gt;3&lt;/span&gt;)).ToList();&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; q = (&lt;span style="color: #0000ff;"&gt;from&lt;/span&gt; i &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dc.GetQuery&amp;lt;Item&amp;gt;()&lt;br /&gt;                    &lt;span style="color: #0000ff;"&gt;select&lt;/span&gt; i).Skip(&lt;span style="color: #800080;"&gt;1&lt;/span&gt;).Take(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; count = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dc.Query&amp;lt;Item&amp;gt;(ExpressionExtension.Empty&amp;lt;Item&amp;gt;().Skip(&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)).Count();&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;部分列：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;pre&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dc.Save&amp;lt;Item&amp;gt;(item, &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;[] { &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;UnitCost&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; });&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dc.Insert&amp;lt;Item&amp;gt;(item, &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Expression&amp;lt;Func&amp;lt;Item, &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&amp;gt;&amp;gt;[] &lt;br /&gt;{ &lt;br /&gt;        i =&amp;gt; i.ItemId,&lt;br /&gt;        i =&amp;gt; i.Name,&lt;br /&gt;        i =&amp;gt; i.ListPrice,&lt;br /&gt;        i =&amp;gt; i.ProductId,&lt;br /&gt;        i =&amp;gt; i.Status&lt;br /&gt;});&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;无实例类查询：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;pre&gt;Command command = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Command(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;SELECT * FROM Product WHERE CategoryId = @p1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;);&lt;br /&gt;command.AddParameter(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;@p1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;, categoryId);&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; q = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dc.Query(command);&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; count = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;foreach&lt;/span&gt; (dynamic p &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt; q)&lt;br /&gt;{&lt;br /&gt;     Assert.IsNotNull(p);&lt;br /&gt;     Assert.AreEqual(p.CategoryId, categoryId);&lt;br /&gt;     count++;&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;事务处理：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;pre&gt;            &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dc.BeginTransaction();&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; result = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dc.Insert&amp;lt;Supplier&amp;gt;(&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Supplier&lt;br /&gt;                {&lt;br /&gt;                    Name = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;s for Test6&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;br /&gt;                    Status = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;done&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;br /&gt;                    City = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;dalian&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;                });&lt;br /&gt;&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; suppId = Convert.ToInt32(&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dc.GetIdentity&amp;lt;Supplier&amp;gt;());&lt;br /&gt;                result = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dc.Delete&amp;lt;Supplier&amp;gt;(suppId);&lt;br /&gt;&lt;br /&gt;                Category category = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Category&lt;br /&gt;                {&lt;br /&gt;                    CategoryId = Guid.NewGuid().ToString(),&lt;br /&gt;                    Name = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;c for Test6&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;br /&gt;                    Descn = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;d for Test6&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;                };                &lt;br /&gt;                Product product = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Product&lt;br /&gt;                {&lt;br /&gt;                    ProductId = Guid.NewGuid().ToString(),&lt;br /&gt;                    Name = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;p for Test6&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;br /&gt;                    Descn = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;d for Test6&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;br /&gt;                    CategoryId = category.CategoryId&lt;br /&gt;                };&lt;br /&gt;                result = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dc.Insert&amp;lt;Category&amp;gt;(category);&lt;br /&gt;                result = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dc.Insert&amp;lt;Product&amp;gt;(product);&lt;br /&gt;&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dc.CommitTransaction();&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt; (Exception ex)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dc.RollbackTransaction();&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;throw&lt;/span&gt; ex;&lt;br /&gt;            }&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;配置文件示例：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;pre&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;xml version="1.0" encoding="utf-8" &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;configuration&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;configSections&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;sectionGroup &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="raisingstudio.data"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;section &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="CommandConverter.Settings"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="RaisingStudio.Data.CommandConverterSettings, RaisingStudio.Data"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;section &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="CommandBuilder.Settings"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="RaisingStudio.Data.CommandBuilderSettings, RaisingStudio.Data"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;sectionGroup&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;configSections&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;system.data&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;DbProviderFactories&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="System.Data.SQLite"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; invariant&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="System.Data.SQLite"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; description&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ADO.NET Data Provider for SQLite"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="System.Data.SQLite.SQLiteFactory, System.Data.SQLite"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Oracle.DataAccess"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; invariant&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Oracle.DataAccess"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; description&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Oracle.DataAccess"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;      &lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;DbProviderFactories&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;system.data&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;raisingstudio.data&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;CommandConverter.Settings&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="System.Data.OracleClient"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; providerName&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="System.Data.OracleClient"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; usePositionalParameters&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="false"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; parameterPrefix&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;=":"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; useParameterPrefixInParameter&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="false"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; useParameterPrefixInSql&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="true"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Oracle.DataAccess"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; providerName&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Oracle.DataAccess"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; usePositionalParameters&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="false"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; parameterPrefix&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;=":"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; useParameterPrefixInParameter&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="false"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; useParameterPrefixInSql&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="true"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;CommandConverter.Settings&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;CommandBuilder.Settings&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="MySql.Data.MySqlClient"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; providerName&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="MySql.Data.MySqlClient"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;  pagingMethod&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="LIMIT"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; identityMethod&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="LAST_INSERT_ID"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; useBrackets&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="false"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="System.Data.SQLite"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; providerName&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="System.Data.SQLite"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;  pagingMethod&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="LIMIT"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; identityMethod&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="LAST_INSERT_ROWID"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="System.Data.OracleClient"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; providerName&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="System.Data.OracleClient"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; pagingMethod&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ROWNUM"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; identityMethod&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="CURRVAL"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Oracle.DataAccess"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; providerName&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Oracle.DataAccess"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; pagingMethod&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ROWNUM"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; identityMethod&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="CURRVAL"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;  useBrackets&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="false"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;CommandBuilder.Settings&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;raisingstudio.data&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;connectionStrings&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="RaisingStudio.Data.TestProject.Properties.Settings.DefaultConnectionString"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;      connectionString&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Data Source=localhost;Initial Catalog=test;Integrated Security=True"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;      providerName&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="System.Data.SqlClient"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="RaisingStudio.Data.TestProject.Properties.Settings.MySqlConnectionString"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;      connectionString&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="server=localhost;User Id=root;password=root;Persist Security Info=True;database=test"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;      providerName&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="MySql.Data.MySqlClient"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="RaisingStudio.Data.TestProject.Properties.Settings.SqliteConnectionString"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;      connectionString&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Data Source=test.db"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; providerName&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="System.Data.SQLite"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="RaisingStudio.Data.TestProject.Properties.Settings.OracleConnectionString"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;      connectionString&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Data Source= (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = zhongzf-PC)(PORT = 1522))  (CONNECT_DATA = (SERVER = DEDICATED)  (SERVICE_NAME = XE) ) );User Id=demo;Password=demo;"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;      providerName&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Oracle.DataAccess"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;connectionStrings&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;configuration&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;下载地址：&lt;a href="http://dac.codeplex.com/"&gt;http://dac.codeplex.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;相关阅读：&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhongzf/archive/2009/04/05/1429780.html"&gt;http://www.cnblogs.com/zhongzf/archive/2009/04/05/1429780.html&lt;/a&gt;&amp;nbsp;（实体生成工具使用RazorEngine，模版可轻松实制）&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zhongzf/aggbug/2315947.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhongzf/archive/2012/01/07/2315947.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
