摘要: Adhesive框架的数据访问层是基于ADO.NET Entity Framework,所以用法和实体框架基本相同。为了满足实际项目的需要,我们在实体框架的基础上做了一些扩展,主要有以下几点: 1、对数据库连接字符串中比较敏感的密码字段进行加密; 2、数据库连接字符串配置脱离本地配置文件(web.config或app.config),集中在配置服务后台进行配置和管理; 3、数据自动审核,只要实体对象实现了IAuditable接口,当添加或修改实体对象时,CreatedOn和ModifiedOn字段会被自动设置为当前日期; 4、逻辑删除,像一些比较重要的业务数据,一般是不允许物理删除的,只要实体 阅读全文
posted @ 2011-10-27 10:57 陈 锋 阅读(2069) 评论(6) 推荐(1) 编辑
摘要: 在上一篇文章中提到配置服务模块分为服务端和客户端,作为使用者只需要关心客户端的一些接口就行了。我们来看一下这些接口的定义。public interface IConfigService { T GetConfigItemValue<T>(string cateName, T defVal); T GetConfigItemValue<T>(string cateName, T defVal, ConfigItemValueUpdateCallback callback); T GetConfigItemValue<T>(string cateNa... 阅读全文
posted @ 2011-10-12 15:42 陈 锋 阅读(1561) 评论(1) 推荐(2) 编辑
摘要: 首先谈一下配置服务的相关背景。在一个复杂的系统中,有些部分可能会存在经常性的变动,这些部分可能是系统本身也可能是业务需求,考虑到系统的灵活性和可扩展性,我们将经常需要改动的部分作为参数配置,以达到在不修改代码的前提下,调整系统功能及业务逻辑。像一些大型系统,比如SAP就是就是一个很好的例子。系统可以通过6000 个"开关"设置,调整软件的业务流程。通常我们会使用本地配置文件(XML)保存配置信息,使用配置文件缺点也很明显,当我们的系统越来越庞大,配置文件会越来越多,甚至需要大量的服务器来支撑时,配置文件的更新相当麻烦,而且各个服务器上配置文件版本的一致性也很难保证。我们的思 阅读全文
posted @ 2011-10-11 12:46 陈 锋 阅读(1784) 评论(2) 推荐(2) 编辑
摘要: The problemIn Java, imagine you have a list ofUserobjects, each encapsulates the user’sid,first name,last nameandage. Then you want to call a web serv... 阅读全文
posted @ 2014-07-15 01:52 陈 锋 阅读(261) 评论(0) 推荐(0) 编辑
摘要: Batch processing is a common solution to improve database performance by inserting or updating massive data in bulk. However, there are some hiccups y... 阅读全文
posted @ 2014-07-12 00:16 陈 锋 阅读(1402) 评论(0) 推荐(0) 编辑
摘要: 天天使用电脑要主要保护眼睛。下面介绍下不伤眼睛的文字背景色 苹果绿 RGB 204,255,204 #CCFFCC 杏仁黄 rgb 250 249 222 #FAF9DE 青草绿 rgb 227 237 205 #E3EDCD 海天蓝 rgb 220 226 241 #DCE2F1 豆沙绿 RGB 199 237 204 (这个最被推荐) #C7EDCC 灰色 RGB235,235,228 #EBEBE4 阅读全文
posted @ 2012-08-13 09:52 陈 锋 阅读(3776) 评论(0) 推荐(0) 编辑
摘要: 在面向对象设计中,如何通过很小的设计改变就可以应对设计需求的变化,这是令设计者极为关注的问题。为此不少OO先驱提出了很多有关面向对象的设计原则用于指导OO的设计和开发。下面是几条与类设计相关的设计原则。 1. 开闭原则(the Open Closed Principle OCP) 一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。因此在进行面向对象设计时要尽量考虑接口封装机制、抽象机... 阅读全文
posted @ 2012-05-30 17:32 陈 锋 阅读(720) 评论(0) 推荐(1) 编辑
摘要: 由于数据量的巨大,大部分Web应用都需要部署很多个数据库实例。这样,有些用户操作就可能需要去修改多个数据库实例中的数据。传统的解决方法是使用分布式事务保证数据的全局一致性,经典的方法是使用两阶段提交协议。长期以来,分布式事务提供的优雅的全局ACID保证麻醉了应用开发者的心灵,很多人都不敢越雷池一步,想像没有分布式事务的世界会是怎样。如今就如MySQL和PostgreSQL这类面向低端用户的开源数据库都支持分布式事务了,开发者更是沉醉其中,不去考虑分布式事务是否给系统带来了伤害。事实上,有所得必有所失,分布式事务提供的ACID保证是以损害系统的可用性、性能与可伸缩性为代价的。只有在参与分布式事务 阅读全文
posted @ 2012-04-27 13:57 陈 锋 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 考虑到部署方便,我们一般都会将C#写的Windows服务制作成安装包。在服务安装完成以后,第一次还需要手动启动服务,这样非常不方便。查阅了网上的一些资料,发现有一种方法是在安装完成事件里面调用命令行的方式启动服务,这种方式虽可行,但觉得不够完美。好了,下面来看看如何更好地做到服务自动启动。 1、重写ProjectInstaller的Commit方法using System;using Syste... 阅读全文
posted @ 2011-12-04 12:11 陈 锋 阅读(4728) 评论(5) 推荐(3) 编辑
摘要: 说明:本篇文章参考CentOS 6.0 安装 MONO 2.10.6 一文,结合自己实际安装后遇到的一些问题,对原文进行了一些mark。 1.更新系统 yum update 2.安装必要的相关库 yum install gcc gcc-c++ bison pkgconfig glib2-devel gettext make libpng-devel libjpeg-devel libtif... 阅读全文
posted @ 2011-11-04 23:00 陈 锋 阅读(1865) 评论(0) 推荐(0) 编辑
摘要: 一、安装 yum-priorities 插件 1、安装 yum-priorities 插件,并正确设置,以保证官方库的优先级最高。 yum -y install yum-priorities 2、然后,设置 /etc/yum.repos.d/CentOS-Base.repo,添加顺序指令 priority=N(N 从 1 至 99,1 优先级最高),对 [base]、[updates]、[ad... 阅读全文
posted @ 2011-10-25 13:00 陈 锋 阅读(767) 评论(0) 推荐(0) 编辑
摘要: 一、 下载redis最新版本2.2.14 cd /usr/local/src wget –c http://redis.googlecode.com/files/redis-2.2.14.tar.gz 二、 编译安装redis tar zxvf redis-2.2.14.tar.gz cd redis-2.2.14 make make命令执行完成后,会在src目录下生成5个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-dump,它们的作用如下:redis-server:Redis服务... 阅读全文
posted @ 2011-10-22 03:16 陈 锋 阅读(16901) 评论(1) 推荐(3) 编辑