<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_LoveCherry</title><subtitle type="text">技术无极限</subtitle><id>http://feed.cnblogs.com/blog/u/10191/rss</id><updated>2012-05-07T05:48:37Z</updated><author><name>lovecherry</name><uri>http://www.cnblogs.com/lovecherry/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lovecherry/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/10191/rss"/><entry><id>http://www.cnblogs.com/lovecherry/archive/2010/12/11/1903035.html</id><title type="text">一个MVC框架的原型</title><summary type="text">基于ASP.NET MVC2和VS2008 SP1，此框架提供以下功能：为Controller提供Unity的依赖注入为ActionFilter提供Unity的依赖注入为Action的方法的参数提供Unity的依赖注入动态以代码方式定义Action如果Action直接返回View可以省略Action使用代码方式为Controller注册ActionInvoker使用代码方式在Action/Controller/Global三个层次注册ActionFilter使用代码方式注册Unity组件使用配置文件方式注册Unity组件使用代码方式注册路由使用配置文件方式注册路由（add/remove/ign</summary><published>2010-12-11T08:27:00Z</published><updated>2010-12-11T08:27:00Z</updated><author><name>lovecherry</name><uri>http://www.cnblogs.com/lovecherry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lovecherry/archive/2010/12/11/1903035.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lovecherry/archive/2010/12/11/1903035.html"/><content type="html">&lt;p&gt;基于ASP.NET MVC2和VS2008 SP1，此框架提供以下功能：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;为Controller提供Unity的依赖注入&lt;/li&gt;&lt;li&gt;为ActionFilter提供Unity的依赖注入&lt;/li&gt;&lt;li&gt;为Action的方法的参数提供Unity的依赖注入&lt;/li&gt;&lt;li&gt;动态以代码方式定义Action&lt;/li&gt;&lt;li&gt;如果Action直接返回View可以省略Action&lt;/li&gt;&lt;li&gt;使用代码方式为Controller注册ActionInvoker&lt;/li&gt;&lt;li&gt;使用代码方式在Action/Controller/Global三个层次注册ActionFilter&lt;/li&gt;&lt;li&gt;使用代码方式注册Unity组件&lt;/li&gt;&lt;li&gt;使用配置文件方式注册Unity组件&lt;/li&gt;&lt;li&gt;使用代码方式注册路由&lt;/li&gt;&lt;li&gt;使用配置文件方式注册路由（add/remove/ignore），修改配置文件后路由规则直接生效，支持路由到mvc或webform&lt;/li&gt;&lt;li&gt;使用AutoMapper映射Model到ViewModel，提供ActionFilter支持自动映射&lt;/li&gt;&lt;li&gt;提供每个请求开始和结束执行的PerRequestTask&lt;/li&gt;&lt;li&gt;支持同时存在NVelocity和Webform两种视图引擎&lt;/li&gt;&lt;li&gt;NVelocity视图引擎支持各种HtmlHelper扩展方法，支持自定义的扩展方法，支持母板页，支持PartialAction和RenderPartial&lt;/li&gt;&lt;li&gt;演示各种RouteConstraints、ActionFilter、ActionResult、ValueProviderFactory、TempDataPrivider的自定义方式&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;代码点击&lt;a href="http://files.cnblogs.com/lovecherry/MvcInfrastructure.rar"&gt;这里&lt;/a&gt;下载，只是一个原型，仅供参考原理&lt;/p&gt;&lt;img src="http://www.cnblogs.com/lovecherry/aggbug/1903035.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/lovecherry/archive/2010/12/11/1903035.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/lovecherry/archive/2010/10/13/1850122.html</id><title type="text">有关网站UI实现的几种方式的讨论</title><summary type="text">抛砖引玉，提出一些知道的做法，欢迎大家提出更多做法。 对于网站来说，UI最终的形式无非是（X）HTML + 脚本 + 样式，现在的问题是怎么样生成这些前端的元素，在以下几个方面达到平衡： （假设有开发和前端两种角色，前端负责表现逻辑和表现，而开发负责业务逻辑和业务数据） 1） 开发人员的工作量，工作难度 2） 前端开发人员（后面省略为前端）的工作量，工作难度 3） 产品（假设前端属于产品部）对U...</summary><published>2010-10-13T06:55:00Z</published><updated>2010-10-13T06:55:00Z</updated><author><name>lovecherry</name><uri>http://www.cnblogs.com/lovecherry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lovecherry/archive/2010/10/13/1850122.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lovecherry/archive/2010/10/13/1850122.html"/><content type="html">&lt;p&gt;抛砖引玉，提出一些知道的做法，欢迎大家提出更多做法。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;对于网站来说，UI最终的形式无非是（X）HTML + 脚本 + 样式，现在的问题是怎么样生成这些前端的元素，在以下几个方面达到平衡：&lt;/p&gt; &lt;p&gt;（假设有开发和前端两种角色，前端负责表现逻辑和表现，而开发负责业务逻辑和业务数据）&lt;/p&gt; &lt;p&gt;1） 开发人员的工作量，工作难度&lt;/p&gt; &lt;p&gt;2） 前端开发人员（后面省略为前端）的工作量，工作难度&lt;/p&gt; &lt;p&gt;3） 产品（假设前端属于产品部）对UI的改动需求能否快速落实（能否只依靠前端实现）&lt;/p&gt; &lt;p&gt;4） 服务端的压力（客户端的性能问题暂时不考虑）&lt;/p&gt; &lt;p&gt;（怎么发现自从翻译了《微软应用架构指南》之后，写什么都是翻译的口气了）&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;第一种方式：XML + XSLT&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;数据源是XML，由开发人员提供，XSL可以一开始由开发人员写，以后由前端参与开发和维护。&lt;/p&gt; &lt;p&gt;T的过程可以在服务端进行，优点是搜索引擎友好，缺点是服务端压力大。&lt;/p&gt; &lt;p&gt;T的过程也可以在客户端进行，和服务端进行的优缺点互反。&lt;/p&gt; &lt;p&gt;这种方式比较适用访问量大（特别是客户端进行T）、交互简单的系统，比如论坛，因为服务端只需要提供数据源，而XSL则是静态资源可以在客户端缓存。&lt;/p&gt; &lt;p&gt;这种方式的优点是，如果前端直接维护XSL，那么在开发不介入的情况下可以直接对页面布局等进行调整，并且可以做到最好的性能。&lt;/p&gt; &lt;p&gt;而缺点则是，学习成本比较大，如果在客户端进行转换那么搜索引擎支持会不好，而且XSL相对比较难以维护，实现复杂逻辑成本比较大。&lt;/p&gt; &lt;p&gt;&lt;br&gt;&lt;strong&gt;第二种方式：ASP.NET Webform&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;最常见的方式，基于控件，由控件生成HTML，开发也可以直接操作服务端控件。这是一种开发人员主导的方式。&lt;/p&gt; &lt;p&gt;这是一种普适的方式，什么应用都可以支持。缺点是不太利于实现UI快速改动，前端很难参与aspx的维护，因为很多UI都是由控件进行，开发人员很可能在后端操作控件进行一些UI的修改。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;第三种方式：纯粹的javascript + 服务端数据源&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;所有和呈现相关的逻辑，都由javascript来写（可以依赖jquery,jtemplate等组件），以AJAX方式从服务端获取数据进行数据的填充和一些业务逻辑的实现。&lt;/p&gt; &lt;p&gt;这是一种前端主导的方式，会写大量的脚本来实现逻辑，需要的数据从服务端获取。&lt;/p&gt; &lt;p&gt;这种方式比较适合前端互动比较丰富的应用，比如网页游戏。&lt;/p&gt; &lt;p&gt;优点是，前端对页面的布局、行为有很大的自主权，并且服务端的压力也比较小。&lt;/p&gt; &lt;p&gt;缺点是，需要写大量的脚本代码，难度大并且容易出错，并且容易出现安全问题。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;第四种方式：模板引擎&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;模板引擎通过基于HTML的模板加上各种预定义的占位符来实现数据的动态填充。在保证了UI灵活性的同时也保证了非常高的性能。&lt;/p&gt; &lt;p&gt;这种方式对于需要有多界面的新闻系统、博客系统，甚至每一个版块布局都不同的论坛系统来说很适用。&lt;/p&gt; &lt;p&gt;虽然足够灵活，但是前端和开发的配合还是双向的，也就是前端还是需要知道开发提供的数据结构。&lt;/p&gt; &lt;p&gt;并且，对于交互比较复杂的应用来说，可能需要用模板引擎预定义的脚本来写很多逻辑，造成难以维护。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;第五种方式：ASP.NET MVC&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;这同样是一种普适的方式，只不过更适用于面向互联网的网站,而不是面向局域网的内部应用。&lt;/p&gt; &lt;p&gt;虽然MVC已经在UI和UI逻辑方面实现了很好的分离，但是我觉得还是很难在开发没有介入的情况下直接对页面的布局等进行调整。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;第六种方式：在服务端为HTML的适当位置动态注入数据&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;这是一种比较新颖的方式，在服务端加载HTML作为模板文件，然后写代码修改HTML中的dom元素，为元素填充数据。&lt;/p&gt; &lt;p&gt;比如一个a.html配合a.shtml，a.shtml（httphandler）加载a.html然后解析HTML文档，从数据库加在数据填充到HTML中，输出这个HTML。&lt;/p&gt; &lt;p&gt;前端提供的HTML文件可以直接使用，不需要加任何模板标签，不需要加任何控件，所有数据由代码填充进去。&lt;/p&gt; &lt;p&gt;可以像jquery一样支持各种方式来搜索数据的填充路径，也可以把一段html作为模板，循环复制成一个列表页面。&lt;/p&gt; &lt;p&gt;优点是，前端维护HTML/脚本/样式，开发人员写代码生成数据，填充数据，彻底的分离。&lt;/p&gt; &lt;p&gt;缺点是，前端不能改变一些涉及到路径的元素（比如我们通过className来定位元素，前端改变了className就不行），还有性能可能会差一点。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;第七种方式：在服务端为HTML动态载入数据，在客户端注入数据&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;还是以HTML作为模板文件，只不过这个数据组装的过程在客户端进行，相比第六种方式有更好的性能。&lt;/p&gt; &lt;p&gt;也就是服务端不用解析HTML文档，直接为HTML文档中加上一个JSON数据片段，这些数据是这个页面需要的所有数据。&lt;/p&gt; &lt;p&gt;然后，在服务端使用&lt;a href="http://projects.nikhilk.net/ScriptSharp" target="_blank"&gt;ScriptSharp&lt;/a&gt;等框架编译时生成填充数据到HTML的脚本，这个填充过程由客户端执行。&lt;/p&gt; &lt;p&gt;代码还是像第六种方式一样写，但是这段代码会完成两个工作，一个是把部分代码生成脚本文件，第二是把部分代码生成json数据写到页面上。&lt;/p&gt; &lt;p&gt;好像还没看到过有现成的框架是这么干的，难道这种方式不太实用？&lt;/p&gt; &lt;p&gt;其实演变一下的话，也可以是直接写脚本，不用ScriptSharp来生成，但是在服务端写的很大的一个好处是可以直接利用强类型的实体。&lt;/p&gt; &lt;p&gt;想象一下这样的伪代码：Document.FindElement("path").Fill(product.Take(10), product =&amp;gt; product.Name);&lt;/p&gt; &lt;p&gt;这样，product这个List的前10项就会以json输出在页面上，而定位元素以及赋值的代码也会以jquery/javascript代码输出在页面上。&lt;/p&gt; &lt;p&gt;优缺点和第六种方式一致。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;第八种方式：由服务端生成HTML&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;这是一种比较极端的方式，所有HTML由代码生成，可以拼字符串也可以利用&lt;a href="http://sharpdom.codeplex.com/" target="_blank"&gt;SharpDom&lt;/a&gt;之类的框架。&lt;/p&gt; &lt;p&gt;适合UI随着业务逻辑变化非常大的流程系统，或者一些模板生成工具，不太适合业务系统。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;欢迎讨论：&lt;/p&gt; &lt;p&gt;1） 您的网站是怎么样的业务并且采用哪种方式？&lt;/p&gt; &lt;p&gt;2） 还有什么更好的方式方便前端和开发职责的分离？&lt;/p&gt; &lt;img src="http://www.cnblogs.com/lovecherry/aggbug/1850122.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/lovecherry/archive/2010/10/13/1850122.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/lovecherry/archive/2010/04/01/1701997.html</id><title type="text">httpmodule和httphandler配合的又一应用——合并脚本样式</title><summary type="text">页面上数十个脚本和样式文件怎么去合并又少写人工干预？首先，使用查找替换把所有的&lt;script&gt;和&lt;link&gt;替换为&lt;resource&gt;然后在&lt;resrouce&gt;中加上runat="server"：母板页：&lt;%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.maste...</summary><published>2010-04-01T02:03:00Z</published><updated>2010-04-01T02:03:00Z</updated><author><name>lovecherry</name><uri>http://www.cnblogs.com/lovecherry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lovecherry/archive/2010/04/01/1701997.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lovecherry/archive/2010/04/01/1701997.html"/><content type="text">页面上数十个脚本和样式文件怎么去合并又少写人工干预？首先，使用查找替换把所有的&lt;script&gt;和&lt;link&gt;替换为&lt;resource&gt;然后在&lt;resrouce&gt;中加上runat="server"：母板页：&lt;%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.maste...</content></entry><entry><id>http://www.cnblogs.com/lovecherry/archive/2010/02/26/1674223.html</id><title type="text">如何把ASP.NET TRACE HANDLER的信息持久化保存</title><summary type="text">ASP.NET TRACE是一个不错的功能可以收集下列信息Request DetailsTheRequest Detailssection displays general information about the current request and response.ValueDescriptionSession IDThe session identification for the s...</summary><published>2010-02-26T05:49:00Z</published><updated>2010-02-26T05:49:00Z</updated><author><name>lovecherry</name><uri>http://www.cnblogs.com/lovecherry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lovecherry/archive/2010/02/26/1674223.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lovecherry/archive/2010/02/26/1674223.html"/><content type="text">ASP.NET TRACE是一个不错的功能可以收集下列信息Request DetailsTheRequest Detailssection displays general information about the current request and response.ValueDescriptionSession IDThe session identification for the s...</content></entry><entry><id>http://www.cnblogs.com/lovecherry/archive/2009/08/20/1550624.html</id><title type="text">.NET 4.0改进（一）</title><summary type="text">核心服务大部分的新特性都是围绕自定义和扩展来的，原先不能自定义的东西现在可以自定义了，可以自己扩展了，然后把自己的组件在web.config中配置即可应用我们自己的组件。Web.Config精简.NET框架4.0中会把大部分配置放到machine.config中，这样在web.config中甚至可以一行代码都不写。自定义输出缓存策略输出缓存对于改善性能有很大好处，在ASP.NET 4.0中可以自定...</summary><published>2009-08-20T06:23:00Z</published><updated>2009-08-20T06:23:00Z</updated><author><name>lovecherry</name><uri>http://www.cnblogs.com/lovecherry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lovecherry/archive/2009/08/20/1550624.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lovecherry/archive/2009/08/20/1550624.html"/><content type="text">核心服务大部分的新特性都是围绕自定义和扩展来的，原先不能自定义的东西现在可以自定义了，可以自己扩展了，然后把自己的组件在web.config中配置即可应用我们自己的组件。Web.Config精简.NET框架4.0中会把大部分配置放到machine.config中，这样在web.config中甚至可以一行代码都不写。自定义输出缓存策略输出缓存对于改善性能有很大好处，在ASP.NET 4.0中可以自定...</content></entry><entry><id>http://www.cnblogs.com/lovecherry/archive/2009/07/29/1534316.html</id><title type="text">到底怎么样的面试才是最公平的才能找到合适的人又不产生误判</title><summary type="text">一般来说，技术面试会是如下集中形式的一种或是多种的组合：1、笔试，做题目2、面对面交流3、上机编程其实我个人不喜欢笔试，感觉笔试关注的点太细了，更不喜欢上机编程，觉得这种方式的面试并不是很尊重面试者，比较喜欢轻松的面对面的交流。我面试过很多人也被很多人面试过，越来越感觉其实任何一种形式的面试都有其优点和缺点。在之前公司，我面试别人都是采用1和2组合的方式，候选人会先做一套题目，这样对每一个人都有一...</summary><published>2009-07-29T09:16:00Z</published><updated>2009-07-29T09:16:00Z</updated><author><name>lovecherry</name><uri>http://www.cnblogs.com/lovecherry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lovecherry/archive/2009/07/29/1534316.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lovecherry/archive/2009/07/29/1534316.html"/><content type="text">一般来说，技术面试会是如下集中形式的一种或是多种的组合：1、笔试，做题目2、面对面交流3、上机编程其实我个人不喜欢笔试，感觉笔试关注的点太细了，更不喜欢上机编程，觉得这种方式的面试并不是很尊重面试者，比较喜欢轻松的面对面的交流。我面试过很多人也被很多人面试过，越来越感觉其实任何一种形式的面试都有其优点和缺点。在之前公司，我面试别人都是采用1和2组合的方式，候选人会先做一套题目，这样对每一个人都有一...</content></entry><entry><id>http://www.cnblogs.com/lovecherry/archive/2009/07/19/1526653.html</id><title type="text">最近项目的一些心得（纯贴代码）</title><summary type="text">唉，眼看着ASP.NET第一步已经出版2年了，这2年貌似自己进步也不是很大，最近完成了一个项目，分享一点代码吧，以后要复制粘贴自己也方便点，因为主要是给自己看的，大家看不懂别见怪。1、WCF中统一处理异常，并自动包装为 FaultException 返回给客户端：先建立这么一个ServiceBehavior特性：[代码]然后呢，需要实现啊这么一个自定义的ErrorHandler：[代码]Log类代...</summary><published>2009-07-19T11:56:00Z</published><updated>2009-07-19T11:56:00Z</updated><author><name>lovecherry</name><uri>http://www.cnblogs.com/lovecherry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lovecherry/archive/2009/07/19/1526653.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lovecherry/archive/2009/07/19/1526653.html"/><content type="text">唉，眼看着ASP.NET第一步已经出版2年了，这2年貌似自己进步也不是很大，最近完成了一个项目，分享一点代码吧，以后要复制粘贴自己也方便点，因为主要是给自己看的，大家看不懂别见怪。1、WCF中统一处理异常，并自动包装为 FaultException 返回给客户端：先建立这么一个ServiceBehavior特性：[代码]然后呢，需要实现啊这么一个自定义的ErrorHandler：[代码]Log类代...</content></entry><entry><id>http://www.cnblogs.com/lovecherry/archive/2009/05/07/1452210.html</id><title type="text">有关CPU占用和缓存的一些见解，希望给大家一些启发</title><summary type="text">缓存多份数据不一定会占用相同的多份内存、缓存的方案需要根据应用来选择，静态变量不一定不好，分布式缓存也不一定好、只要不是死循环等恶性代码问题的话，CPU如果占用的高不一定就是坏事情</summary><published>2009-05-07T13:12:00Z</published><updated>2009-05-07T13:12:00Z</updated><author><name>lovecherry</name><uri>http://www.cnblogs.com/lovecherry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lovecherry/archive/2009/05/07/1452210.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lovecherry/archive/2009/05/07/1452210.html"/><content type="text">缓存多份数据不一定会占用相同的多份内存、缓存的方案需要根据应用来选择，静态变量不一定不好，分布式缓存也不一定好、只要不是死循环等恶性代码问题的话，CPU如果占用的高不一定就是坏事情</content></entry><entry><id>http://www.cnblogs.com/lovecherry/archive/2009/03/06/1404561.html</id><title type="text">没有linq让我怎么活</title><summary type="text">[代码][代码]</summary><published>2009-03-06T04:34:00Z</published><updated>2009-03-06T04:34:00Z</updated><author><name>lovecherry</name><uri>http://www.cnblogs.com/lovecherry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lovecherry/archive/2009/03/06/1404561.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lovecherry/archive/2009/03/06/1404561.html"/><content type="text">[代码][代码]</content></entry><entry><id>http://www.cnblogs.com/lovecherry/archive/2009/01/15/1376417.html</id><title type="text">ADO.NET EF不方便之处（BUG）收集帖</title><summary type="text">考虑在项目中使用ADO.NET EF，但是怎么都用不顺手，甚至比L2S少了很多关键功能。我先列几个让我很郁闷的（只用了不到5小时就遇到这么多问题）：1）存储过程自动封装是一个很常用的功能，在ADO.NET EF中可以和L2S一样对基本的INSERT/UPDATE/DELETE映射存储过程。也可以对存储过程自动封装，把返回值是结果集的存储过程和实体进行关联，但是很吃惊的是：a) 设计器并没有提供对返...</summary><published>2009-01-15T07:49:00Z</published><updated>2009-01-15T07:49:00Z</updated><author><name>lovecherry</name><uri>http://www.cnblogs.com/lovecherry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lovecherry/archive/2009/01/15/1376417.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lovecherry/archive/2009/01/15/1376417.html"/><content type="text">考虑在项目中使用ADO.NET EF，但是怎么都用不顺手，甚至比L2S少了很多关键功能。我先列几个让我很郁闷的（只用了不到5小时就遇到这么多问题）：1）存储过程自动封装是一个很常用的功能，在ADO.NET EF中可以和L2S一样对基本的INSERT/UPDATE/DELETE映射存储过程。也可以对存储过程自动封装，把返回值是结果集的存储过程和实体进行关联，但是很吃惊的是：a) 设计器并没有提供对返...</content></entry></feed>
