随笔分类 - 其它
摘要:回到占占推荐博客索引DDD之前没有接触过,但一但有了接触就一发不可收拾,他会带去进入一个全新的世界!DDD不是新技术,而是新思想,新模式,是软件开发领域的一次突破,它更接近于业务,对于业务的改动它更加运用自如,它DDD模式里,你可能会涉及到IoC,AOP,OOP,OOD等设计模块,也可能会涉及到mv...
阅读全文
摘要:回到目录 说在前 Ioc组件有很多,之前也介绍过autofac,castle等,今天再来说一下在微软Nlayer DDD架构里使用的unity组件,今天主要说一下依靠注入,如果希望看拦截的用法,可以阅读这篇文章第十三回 实现AOP的拦截组件Unity.Interception 做在后 unity的用
阅读全文
摘要:回到目录上一回写消息组件已经是很久之前的事了,这一次准备把消息组件后续的东西说一下,事实上,第一篇文章主要讲的是发消息,而这一讲最要讲的是收消息,简单的说,就是消息到了服务器之后,如何从服务器实时的发到指定客户端,当然,你可以使用JS的轮询,但由于种种原因,它并不被我推荐,呵呵.准备知识:Signa...
阅读全文
摘要:回到目录看似不伦不类这个题目有点不伦不类,或者说有点伪模式了,不错,确实是这样,我们正确的开发思维是WEB层->BLL层->DATA层,每个层有对它下层的引用,下层不能引用上层,因为这会出现相互引用的错误,在实际工作中,BLL层会有涉及到各个业务的代码组织,实现数据持久化一般在Data层完成,这是可以理解的,也是我们经常使用的开发模式,这当然不是今天的重点,今天主要说一个实际问题,如订单处理的场合.一般订单处理流程如下:1 用户选择商品到购物车2 用户确定购买,生成订单3 选择一种或者几种支付方式4 支付完成,回写订单,修改订单状态5 支付交易成功,或者失败OK,这种订单业务事实上
阅读全文
摘要:回到目录Entityframeworks很聪明不错,非常不错!ef里的contains比linq to sql里的contains有了明显的提升,事实上,是在进行SQL语句翻译上有所提升,在linq to sql里不支持iqueryable的contains集合,它只支持本地集合进行contains,而本地集合的contains会被.net翻译成sql语句是where in (...),即集合有多个元素,在in里就会被列举多少次,这个在性能上是非常低下的,不提倡的,而且它还有长度限制,最多本地集合在linq to sql里是2000多个元素。ef在这点上表示不错,它为了防止你使用低下的查询,它
阅读全文
摘要:回到目录对于transactionscope不了解的同学,可以看我的相关文章第二十六回 将不确定变为确定~transactionscope何时提升为分布式事务?第二十七回 将不确定变为确定~transactionscope何时提升为分布式事务~续第二十八回 将不确定变为确定~transactionscope何时提升为分布式事务~再续(避免引起不必要的MSDTC)第二十九回 将不确定变为确定~transactionscope何时提升为分布式事务~大结局第三十七回 将不确定变为确定~transactionscope何时提升为分布式事务~SQL2005与SQL2008不同声明:对于这种事务,如果..
阅读全文
摘要:百度百科给它的定义实现实时通信。什么是实时通信的Web呢?就是让客户端(Web页面)和服务器端可以互相通知消息及调用方法,当然这是实时操作的。WebSockets是HTML5提供的新的API,可以在Web网页与服务器端间建立Socket连接,当WebSockets可用时(即浏览器支持Html5)Si...
阅读全文
摘要:aop_cache项目的架构aop_cache项目的架构,主要实现前台项目与后台项目共用缓存,缓存使用 Microsoft.Practices.EnterpriseLibrary.Caching,采用方法特性的注入,将需要缓存的方法进行拦截,AOP 功能使用Microsoft.Practices.Unity.Interception进行实现,缓存的中间件采用WCF实现,所以需要缓存的地方都通 过WCF去与Infrastructure.Core进行交互来取数据,WEB层只与WCF通信,如果不需要缓存的地方,WEB层可以直接访问 Infrastructure.Core层。Domain.Core:与
阅读全文
摘要:回到占占推荐博客索引 百度百科 redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希类型)。这些数据类型都 支持push
阅读全文
摘要:回到目录之所以把发消息拿出来,完全是因为微软的orchard项目,在这个项目里,将公用的与领域无关的功能模块进行抽象,形成了一个个的组件,这些组件通过引用和注入的方式进行工作,感觉对于应用程序的扩展性上有很大的提高,消息组件的提出是因为它的不固定性,从小方面说,项目模块的发消息的方式可能是不同的,有过模块是email,有的是数据库,有的是短信;而从大的方面说,对于项目与项目来说,它们发消息的方式也可能不同,所以,把它抽象出来,就显得很必要了。对于一个消息来说,它的行为很固定,即发消息,Send,而考虑到网络阻塞问题,我们也同样提供了异常消息的发送,接口规范如下: /// /// Me...
阅读全文
摘要:下面是我个人在进行WCF开发时,遇到的问题及相关的解决方法,供大家一起学习 1. ......HTTP 响应时发生错误。这可能是由于服务终结点绑定未使用 HTTP 协议造成的. 解决:把返回的实体类添加[DataContract],为属性添加[DataMember],因为你的WCF走SOAP协议,所
阅读全文
摘要:回到目录事情是这样的,前台网站有些数据不希望每次都从数据库里读,所以,应该做个缓存,而引起缓存更新的入口来自网站的后台管理,而前台和后台被部署在不同的网站中,这时缓存的更新就成了问题,前台的缓存与后台的操作不能联系到一起,为了解决这个问题,我引入了WCF作为中间件,所以与数据库的操作,读,写都来自一个入口,那就是WCF,WCF用户告诉你是否从缓存取数据,所有缓存的数据也缓存在WCF中,OK,想法不错,下面来说一下具体的实现步骤。一 首先看一下结构图:注意看我的结构图,前台aop_cache和后台aop_cache_background项目都引用aop_cache_webservice项目,而它
阅读全文
摘要:回到目录对EF开发来说,导航属性肯定都用过,事实上,它是由VS IDE工具根据你的数据库关系结构自动生成的外键属性,在类视图中可以看到相关属性,它是以外键表名来标识的,如果是一对多的关系,那么,它会为属性加上ICollection泛型集合用来标识,而今天我们要说的当然不是自动生成的,而是手动加的属性,这样属性需要我们手动进行join,然后把它按需赋值,而使用include当然是无效的,呵呵。一般地,我们习惯上把集合属性定义为List,但是,对于linq to entities来说,这个东西并不是很受欢迎,而标准结果集大家都知道是IEnumerable,它是所有集合的基类,自身只提供了集合遍历的
阅读全文
摘要:回到目录这个标题很有意思,关系表插入,就是说主表和外表键在插入时,可能会有同步插的情况,如在建立主表时,扩展表需要同步完成数据的初始化工作,而对于多表插入时,我们为了保证数据的一致性会针它写在事务中,而对于.net中的事件,它在一些情况下,会不那么单纯,对于ef和linq to sql来说,你的事务如果出现多次提交动作(submitchange | savechanges),那么,.net这边会把它提升为分布式事务(MSDTC),即.net认为,对于一个数据表的操作,不会出现多个savechanges,OK,这个可以解释的通,一个数据库,一个提交,这是符合性能要求的,呵呵,但对于我们的架构来说
阅读全文
摘要:回到目录一般地,网站出现异常后,我们会通过设置web.config的方法来实现友好页的显示,这个方法比较常用,但捕捉的信息不是很具体,在程序测试阶段,我们可以通过global.asax来实现友好的,详细的异常信息的显示,下面来看一下。WEB.CONFIG里的实现: - 而这种方式不能把具体出错的信息显示出来,这在网站运营阶段是可以接受的,但在网站测试阶段是不可以的,下面看看我的global.asax方法: protected void Application_Error(object sender, EventArgs e) { ...
阅读全文
摘要:回到目录今天在进行EF开发时,遇到一个问题,在进行join查询时,类中的一个集合类型的导航属性,在给它赋值时,将查询出来的结果ToList()后,出错了,linq to entity不支持这种操作,而在linq to sql里这是合法的,在EF中是不行的,所以,使用了替换方法,就是类型强转,代码如下: var linq = from student in base.GetModel() join user_classrooms in new TsingDa_NewLearningBarRepository(base.UnitWork).GetMode...
阅读全文
摘要:回到目录对于SQL左外连接我想没什么可说的,left join将左表数据都获出来,右表数据如果在左表中不存在,结果为NULL,而对于LINQ来说,要实现left join的效果,也是可以的,在进行join时直接into到集合变量就可以了,但在赋值时,如果只需要集合的一条记录,那在写法上又会有两种,而这两种写法所产生的性能是相关千里的,下面来看一下.首先是SQL的左外连接SELECT [t6].[CourseID] , [t6].[UserID] , [t6].[CourseName] , [t6].[ResourceID] , [t6]...
阅读全文
摘要:回到目录看了传说中的弦哥对园子里.Net项目分层与文件夹结构大全(最佳架子奖,吐槽奖,阴沟翻船奖揭晓),我也来说说我的DDD架构吧,主要是看了微软NlayerApp之后,自己写的一个,以后将会应用到我的项目之中。架构说明:0-Modeling and Design:架构的UML层次图,我认为每个项目的架构都应该先有UML图,再是进行具体的代码设计1-Presentation:UI层,它的实现是多种的,你可以是B/s的webpage,web mvc,web api,也可以是C/s的winform,wpf等等2-Application:这一层是网络应用层,它可以进行邮件,短信等功能的实现3-Ser
阅读全文
摘要:最近,由于网络的作用,导致有一些语句泛滥了,以至少之前从未听说过,这些没什么含义的词义就这样,通过这个网络疯狂的流传了,当然,有一些人收益了,因为它们又多了一些奴隶!这些奴隶们把陪家人的时间都用在了网络上,日日夜夜的坚守的,不理家人,最后导致,家破人亡,而最可悲的是,当事人最后居然还说:没有家人我无所谓,因为我有一群虚拟的家人!噪,那他妈的可悲!程序员是一个新兴的职业,为什么有一些人把这个职称改成程序猿了呢,不知道,可能是他们闲的淡疼吧!由于网络,我知道了原来还有一个称呼叫“发小”由于网络,我知道了原来还有一个称呼叫“LZ”,其实就是楼主,那些懒得打中国字的,像淡的人叫它LZ!由于网络,我知道
阅读全文
摘要:回到目录AutoMapper在之前我曾经介绍过,今天主要是把它作一下扩展,因为它的调用太麻烦了,呵呵,扩展之后,用着还可以,感觉.net3.5之后,有了扩展方法这个东西,在程序开发速度及表现力上都有了明显的提升,呵呵。当扩展方法开发完之后的效果如下实体对实体的映射(赋值) var user = new User { ID = 1, Name = "zzl", CreateDate = DateTime.Now, }; UserModel...
阅读全文
浙公网安备 33010602011771号