代码改变世界

随笔档案-2013年08月

Asp.net MVC使用Filter解除Session, Cookie等依赖

2013-08-24 11:43 by JustRun, 9065 阅读, 收藏, 编辑
摘要: 本文,介绍了Filter在MVC请求的生命周期中的作用和角色,以及Filter的一些常用应用场景。 同时针对MVC中的对于Session,Cookie等的依赖,如何使用Filter解依赖。如果大家有什么好的Filter应用方法,希望一起多交流。阅读目录:一、Filter在MVC生命周期中的位置二、Filter常见的应用场景三、Filter的执行顺序四、MVC中常见的对于Session, Cookie的依赖五、使用Filter解除依赖1. Filter在MVC生命周期中的位置下面的图中, 一个完成的MVC的生命周期分为5个步骤, 对应图例中的1~5IIS中传递请求到程序MVC根据Routing来 阅读全文

Entity Framework返回IEnumerable还是IQueryable?

2013-08-15 23:02 by JustRun, 7031 阅读, 收藏, 编辑
摘要: 在使用EF的过程中,我们常常使用repository模式,本文就在repository层的返回值是IEnumerable类型还是IQueryable进行探讨。阅读目录:一、什么是Repository模式?二、IEnumerable还是IQueryable的区别三、实际检验IEnumerable和IQueryable的效率差别四、总结一, 什么是Repository模式?Repository是隔离在数据访问层和业务逻辑层之间的。它提供业务逻辑各种对象,使得业务逻辑代码不需要关心数据是如何存储和获取的。下图,是MVC中使用Repository模式的模型图。Controller调用Repositor 阅读全文

理解C# 4 dynamic(3) – DynamicObject的使用

2013-08-14 21:36 by JustRun, 9662 阅读, 收藏, 编辑
摘要: 上篇文章"理解C# 4 dynamic(2) – ExpandoObject的使用" 了解了ExpandoObject的基本使用。但ExpandoObject的问题就是它是一个万金油,什么都可以做,但是又都不专注。使用DynamicObject正好可以解决这个问题。这篇文章介绍DynamicJson是如何继承DynamicObject,包装一个用来处理Json的动态类型。阅读目录:一、JS可以灵活处理Json字符串二、DynamicObject分析三、DynamicJson代码四、总结一,JS可以灵活处理Json字符串看下面的代码,var jsonString='{ 阅读全文

开发和常用工具推荐清单

2013-08-12 23:43 by JustRun, 20844 阅读, 收藏, 编辑
摘要: 常说”工欲善其事必先利其器”, 下面的一些工具软件,必能提高你的工作效率。 开发相关 Resharper(收费) 如果说在VS中,必装的插件是什么,那么一定是Resharper.园中甚至有看到朋友因为老板不愿意掏钱买Resharper而辞职。(不过我觉得也对,如果老板认为工具比人值钱,跟这样的老板混 阅读全文

使用ExposedObject对Asp.net MVC中匿名类型的JsonResult做单元测试

2013-08-11 16:02 by JustRun, 1506 阅读, 收藏, 编辑
摘要: 返回JsonResult是MVC中的常见返回值类型,而且简单方便的方式是结合匿名类型一起使用。比如:public ActionResult PreviewEmail(){ …… return Json(new { HtmlContent = htmlContent, Title = title }, JsonRequestBehavior.AllowGet);}下面讨论一下,针对这个函数,如何单元测试。ExposedObject可以通过Nuget下载安装,介绍中已经说明了它的主要用处: 快速包装一个对象成dynamic,可以方便的访问对象的隐藏field和方法。这里的隐藏应该主要是... 阅读全文

Entity Framework在Asp.net MVC中的实现One Context Per Request(附源码)

2013-08-10 00:22 by JustRun, 4124 阅读, 收藏, 编辑
摘要: 上篇中"Entity Framework中的Identity map和Unit of Work模式", 由于EF中的Identity map和Unit of Work模式,EF体现出来如下特性:唯一性: 在一个Context的生命周期中,一个Entity只会有一个实例,任何对该实例的修改,即使这些改动没有保存到数据库中,修改都会影响到整个Context的生命周期。事务性: 所有对于Entity的修改,都会在调用SaveChange方法的时候,一起保存到数据库中,最终实现持久化。下面基于EF的上面特点,分析一下为什么需要在MVC中实现One Context Per Reque 阅读全文

Entity Framework中的Identity map和Unit of Work模式

2013-08-07 22:59 by JustRun, 2672 阅读, 收藏, 编辑
摘要: 阅读目录:一、什么是Identity map模式二、关于Identity map模式的验证示例三、Unit of Work 模式四、总结和注意的问题一,什么是Identity map模式Identity map是EF获取和缓存数据的模式。Identity map模式指的是任何数据都只会被加载一次,以map的形式缓存,以唯一的identity来再次获取这些数据。在EF中,就是在一个Context的生命周期中,所有查询过的数据都会缓存到Context的local中缓存。当再次访问这些数据的时候,就会以主键(identity)从缓存中获取这些数据。二,关于Identity map模式的验证示例看看下 阅读全文

旧项目如何切换到Entity Framework Code First

2013-08-06 23:57 by JustRun, 1226 阅读, 收藏, 编辑
摘要: Entity Framework Code First固然是好东西,然而如果是已经存在的旧有项目,如何简单方便的使用切换呢?这里介绍一个VS的插件Entity Framework Power Tools Beta 3下载地址是:http://visualstudiogallery.msdn.microsoft.com/72a60b14-1581-4b9b-89f2-846072eff19d安装完成后,打开VS,在项目上右键,就能看到如下的选项了。点击以后,弹出一个数据库连接设置window, 选择项目的数据库,耐心等待一下,工具就能够为该数据库生成所有的实体类了。 阅读全文

为Asp.net MVC中的RenderSection设置默认内容

2013-08-01 23:45 by JustRun, 7635 阅读, 收藏, 编辑
摘要: 1. RenderSection的简单介绍Asp.net MVC中提供了RenderSection方法,这样就能够在Layout中定义一些区块,这些区块留给使用Layout的view来实现比如我们定义的Layout如下, 定义了一个”Footer”的section, 把这个section留给各个view去填充。 Sample Layout @RenderBody() @RenderSection("Footer") 在使用该Layout的view中,可以这样来填充“Footer” section.@{ ... 阅读全文
点击右上角即可分享
微信分享提示