谈谈对于企业级系统架构的理解
在我们刚开始学习架构的时候,首先会想到分层的概念,分层架构比较经典的是三层架构,那么,什么是三层架构呢?它包括表现层,业务层,数据访问层;而对于一个新手来说,从抽象意义上的三层架构,逻辑上就划分为三个层。 ...
基础知识梳理(1)SOAP
序 最近闲时在想能不能自己搞一套分布式开发的框架出来,因为深感使用标准WCF的一些配置繁琐,虽然造车轮的工作非常费精力,劳民伤财,但对理解现在的一些如.net remoting, wcf ,webse... ...
改善代码设计 —— 优化函数的构成(Composing Methods)
某跨国日化公司, 肥皂生产线存在包装时可能漏包肥皂的问题, 肯定不能把空的肥皂盒卖给顾客, 于是该公司总裁命令组成了以博士牵头的专家组对这个问题进行攻关, 该研发团队使用了世界上最高精尖的技术 (如红外探测, 激光照射等), 在花费了大量美金和半年的时间后终于完成了肥皂盒检测系统, 探测到空的肥皂盒... ...
Web页面中5种超酷的Hover效果
想在自己的网站中应用超酷的hover效果吗?也许你可以从如下的这些实例中获得一些灵感,如果你喜欢这些效果,也可以直接拷贝代码并应用到你的站点。 给平淡的站点带来活力 hover效果能给网页增加一些动态... ...
面向领域开发示例
最近面向领域的知识挺火,我也来插一腿。说说我平时做项目时候用到的开发方式,以下代码为伪代码,主要展示一下我现在的开发方式供大家讨论,系统中不考虑持久、UI、AOP和IOC等方面内容。 说到.NET社区的“开发方式”就不得不提一下Petshop了,可以说Petshop真是影响了.NET的一代人。以至于... ...
Microsoft NLayerApp案例理论与实践–DDD、分布式DDD及其分层
这段时间一直在忙工作,已经有一个月没更新博客了。从现在开始,我将继续讨论Microsoft NLayerApp案例,希望各位爱好Microsoft NLayerApp案例、架构设计以及DDD的朋友们能够继续关注。从架构上看,Microsoft NLayerApp对“复杂的业务系统应用程序”这样一种应... ...
为什么要让我们的“领域模型”裸奔?(下)
上篇文章引起不少有价值的回复,我也学到不少东西,谢谢大家。 在此对上篇做下补充说明: 1,因本人毕业以来从事的项目全是业务逻辑复杂的企业应用软件,ERP,SCM,HRP,CRM……,这种系统,如Martin Fowler在PEAA一书中所说,是适合使用Domain Model的,上文和本篇讨论的都是... ...
.net集合类的研究--哈希表(二)--HashSet<T>
.Net3.5之后出现了HashSet<T>,硬翻译过来就是“哈希集合”,跟“哈希”两字挂钩说明这种集合的内部实现用到了哈希算法,用Reflector工具就可以发现,HashSet<T>和Dictionary<TKey,TValue>使用了相同的存储方式和哈希冲突算法,那么,它跟Dictionary... ...
为什么要让我们的“领域模型”裸奔?(上)
三层架构里,往往认为中间的业务逻辑层(BLL)依赖于最下面的数据存储层(DAL),可是每个应用系统的“业务逻辑”才是应用系统存在的理由,才是开发它的目的所在。而UI展现、数据库存储、Cache等都是为了实现“业务逻辑”这个目的所提供的手段,都有成熟的框架、模式可用,都可以是雷同的。那么为什么“业务逻... ...
Linux及Arm-Linux程序开发笔记(零基础入门篇)
Linux及Arm-Linux程序开发笔记(零基础入门篇)作者:一点一滴的Beer http://beer.cnblogs.com/本文地址:http://www.cnblogs.com/beer/archive/2011/05/05/2037449.html目录一、Arm-Linux程序开发平台简... ...
字符集和字符编码(Charset & Encoding)
——每个软件开发人员应该无条件掌握的知识!——Unicode伟大的创想!相信大家一定碰到过,打开某个网页,却显示一堆像乱码,如"бЇЯАзЪСЯ"、"�????????"?还记得HTTP中的Accept-Charset、Accept-Encoding、Accept-Language、Content-... ...
介绍下Nuget在传统Asp.net项目中的使用
最近学了不少NuGet的东西,也看了很多它的视频,特别是在MIX11上的视频。如果我们要在MIX11上评出一个明星的话,你可能会觉得是WP7,或者是SL5,那么你肯定错了,明星肯定是NuGet。因为几乎每个微软演讲的人员都在用NuGet。为什么它会这么受大家欢迎??很简单,它提高了大家做事情得效率,... ...
如何去读一个有50万行代码的项目?
换过几次工作的程序员员一般都比较头疼,新到一个公司,会给你一个项目,别人以前写的,40-50万行代码,并且代码没按照一定的规范去写,因为这个代码来自N个人,一看代码我就头大,我曾经就做过这样的事情,开始的时候也很抓狂,但是慢慢的我认为我找到里面的窍门了,一下算是我给大家提供的一个思路吧。(我之前跟的... ...
《C#妹妹和Objective-C阿姨对话录》(05)自动释放池--拆迁队的外援
C#妹妹:内存的清理跟生活中的拆迁一样是个麻烦事情啊 Objective-C阿姨:是啊,该拆的不拆,占用空间,不该拆的拆了,程序崩溃 C#妹妹:说白了,难度不在拆上,在判定上,判断到底那些内存是用不上的。 Objective-C阿姨:没错,就像现实生活中的拆迁,扒房子不困难,推土机... ...
一步一步教你搭建win7下的Node.js服务(来玩玩服务器端的javascript吧,这可不是前端js插件)
什么是Node.js?还服务器端javascript?对于这个概念我在这篇文章不做解释,可以自己去搜索了解下,服务器端js不是新技术,只是最近的node.js的火爆让他爆发了,我会在以后的文章里解释什么是node.js。这里只是纯粹的搭建,连环境都没有,还玩什么服务器端js,一切都成了浮云,让我们先... ...
编程十年 (8):歪打正着C#
编程十年 (8):歪打正着C#本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/04/26/programming10years-08.html作者:Anders Liu思路回来,接着混吧。2002年,大二。学校开设了面向对象和编译原理的课程。早在... ...
C#基础概念之延迟加载
延迟加载,亦称延迟实例化,延迟初始化等,主要表达的思想是,把对象的创建将会延迟到使用时创建,而不是在对象实例化时创建对象,即用时才加载。这种方式有助于提高于应用程序的性能,避免浪费计算,节省内存的使用等。针对于这种做法,似乎称之为即用即创建更为合适些。先来看一下在Framework4.0中如何实现延... ...
面向对象实践之路-提升抽象层次
回顾编程方法的发展史,我想不外乎两个字:抽象。 从最早的汇编语言中使用的子例程到结构化编程,然后到面向对象、面向组件以及面向服务。我觉得都是不断地提升抽象的层次。所以编程方法没有好坏,只有适合不适合。在汇编时代问题规模都很小,所以我们需要的抽象能力不需要太强。而现代的软件项目,问题的规模非常庞大 ...
Entity Framework 4.1 Code First学习之路(二)
写系列的上一篇已经是很久之前的事儿了= =在此期间,EF 4.1的RTW都已经出来了,NH 3.2的Alpha已经2了。。。其实不是我懒,工作中也在一直使用EF 4.1。主要是上次承诺过的一个Update功能搞不定= = 总之这一次的目标是 实现一个完整的IRepository(添加增删改能力) ... ...