以上下文(Context)的形式创建一个共享数据的容器
摘要:以上下文(Context)的形式创建一个共享数据的容器在很多情况下我们具有这样的需求:为一组相关的操作创建一个执行上下文并提供一个共享的数据容器,而不是简单地定义一个全局变量,或者将数据通过参数传来传去。这样的上下文一般具有其生命周期,它们在目标操作开始执行的时候被激活,在执行完成之后被回收。该上下文一般不能跨越多个线程,以避免多个线程操作相同的数据容器造成数据的不一致。针对这个需求,我们写了一个非常简单的例子,有兴趣的朋友可以看看。[源代码从这里下载]目录一、ExecutionContext的基本编程方式二、异步调用的问题三、ExecutionContext四、DependentExecut
阅读全文
DDD:拥抱幸福之道(DDD&CQRS)
摘要:DDD:拥抱幸福之道(DDD&CQRS)感谢软件架构群(109404699)今天有机会参加这个群的一个线下的交流活动,本着“积极分享"和"不怕被批”的原则,我主动要求分享一下我对DDD和CQRS的一点认识。准备这次主题演讲的过程让我对DDD和CQRS有了更深刻的认识,这个过程迫使我主动的思考了很多内容。我在此想呼吁的是:技术人员要试着走出去,多积极的参与线上交流和线下交流。关于这次交流的收获,下周一我会好好总结一下。推荐的两个领域驱动群(32066589、14138539)我演讲的PPT(下载地址)框架地址:http://happy.codeplex.com/博客地
阅读全文
分布式ACM Online Judge 架构设计
摘要:分布式ACM Online Judge 架构设计服务器职责: Web Server:提供用户界面,获取用户提交的代码,通知Judge Server评测编号,为Judge Client提供获取评测数据和提交评测结果的接口; Judge Server:维护评测队列,维护Judge Client的状态,维持与Judge Client的连接,监听Web Server的通知,将评测任务分派给Judge Client; Judge Client:接收Judge Server传来的评测编号,通过Web Server获取评测数据和提交评测结果。流程说明:1、 用户提交代码给Web Server;2、 Web
阅读全文
Tair监控及统计技巧
摘要:Tair监控及统计技巧Tair是淘宝自主开发的一个分布式 key/value 存储系统。Tair 分为持久化和非持久化两种使用方式. 非持久化的 Tair 可以看成是一个分布式缓存. 持久化的 Tair 将数据存放于磁盘中. 为了解决磁盘损坏导致数据丢失, Tair 可以配置数据的备份数目, Tair 自动将一份数据的不同备份放到不同的主机上, 当有主机发生异常, 无法正常提供服务的时候, 其于的备份会继续提供服务.项目主页参见:淘宝Tair. 受NoSQLFan上的一遍文章Redis监控技巧 一文的启发,本文系统的总结下我们在生产环境使用Tair时进行的各类监控和统计,希望对开源社区有所回馈
阅读全文
Winform开发框架之混合型框架的实现
摘要:Winform开发框架之混合型框架的实现在之前一篇文章《Winform开发框架之框架演化》中,介绍了传统Winform开发框架、传统WCF开发框架、离线式WCF开发框架、混合式WCF开发框架,其中前面两种就是大家比较熟悉的框架了,后面的离线式WCF开发框架,我在《Winform开发之离线式WCF开发框架的实现介绍》一文中也做了阐述,离线式的WCF开发框架,可以看做为传统Winform开发框架+WCF同步模块而成,本文继续探讨这方面的框架设计和实现,重点介绍混合式WCF开发框架的设计思路及具体实现。Winform开发框架之混合型框架,可以看成是传统winform开发框架和WCF开发框架之间能自由
阅读全文
gpio框架及处理流程分析
摘要:gpio框架及处理流程分析gpio作为一种通用的IO接口,使用方法主要如下:----------------------------------------------------------------------------------------------Gpio:每个 GPIO 都代表一个连接到特定引脚或球栅阵列(BGA)封装中“球珠”的一个位标准头文件 <linux/gpio.h> [对外接口]其中根据是否定义CONFIG_GENERIC_GPIO判断系统是否支持gpio头文件为 <asm/gpio.h>;实现文件为 <driver/gpio/gpio
阅读全文
幸福框架:如何阅读幸福框架的代码
摘要:幸福框架:如何阅读幸福框架的代码 HappyFramework是一个支持DDD、CQRS、OSGI、EPC、EventDriven、MetadataDrivenProgramm理念的开源框架,而且她是可以实战的。 不要被上边的话给欺骗了,当然了,其实也没有欺骗大家,只是HappyFramework的CQRS、OSGI、EPC、EventDrivent、MetadataDrivenProgramming都是实现的很简单,全是限制在AppDomain内和仅支持单线程。这并不代表不可以跨越AppDomain甚至无理进程,或者支持多线程,只是如果想做到这一步,已经有很多的框架提供此类功能了,如:NS.
阅读全文
借书场景领域建模分析
摘要:借书场景领域建模分析关于借书场景的领域建模,我从以下几个方面进行分析(尽量简洁不讲废话,呵呵):1.分析模型静态结构:我分析一个领域模型的静态结构的思路一般是:先找出我们需要关心的对象,对于借书这个场景,我们关心的有:1)Account(账号):Id(账号唯一标识,自动生成), Number(卡号), Owner(账号当前拥有者用户信息), BorrowedBooks(账号当前借到的书)2)Book(书本):Id(唯一标识,自动生成),BookInfo(值对象,包含书本基本信息),Count(表示当前库存数量)3)BorrowHistory(借书历史、借书日志):AccountId(借书账号)
阅读全文
.NET领域驱动设计—初尝(一:疑问、模式、原则、工具、过程、框架、实践)
摘要:.NET领域驱动设计—初尝(一:疑问、模式、原则、工具、过程、框架、实践)1.1.疑问1.1.1.UML何用1.1.2.领域建模1.2.模式1.3.原则1.4.工具1.5.过程1.6.框架1.7.项目演示最近在研究DDD颇有收获,所以整理出来跟大家分享,共同进步!我们在设计业务系统的时候都会存在一个非常棘手而又无法回避的问题“业务扩展性”、“业务灵活性、”面向对象化“,尽管我们熟练掌握设计思想、设计模式、设计原则等等关于如何设计灵活性的系统设计理论,但是我们似乎都没有将它们运用到真正业务系统设计、开发当中去,为什么?这样的疑问如果对有心想设计好系统的朋友来说肯定是很早就出现过,只是无法解决,因
阅读全文
SCA简介及配置示例
摘要:SCA简介及配置示例SCA(Service Component Architecture)是为实现 SOA 而产生的一种规范。它提供了一种编程模型,能够十分方便、快速地来构建 SOA 所需的系统和应用。 SCA内部既融合了IOC的思想,同时又把面向对象的复用由代码复用上升到了业务模块组件复用,同时将服务接口,实现,部署,调用完全分离,通过配置的形式灵活的组装,绑定。从代码级的面向对象思想,到组件级的EJB概念,再到服务级的SOA理念,是一个开发复用的不断提升的过程,经历的经验教训正在给实践做出最好的指导。SOA提倡的就是更高级别的复用,服务的复用。 SCA基于这样的理念:将业务功能作为...
阅读全文
介绍Asta4D
摘要:介绍Asta4D友好的开发框架-Asta4D(4)开始介绍Asta4D的主要特点和功能。1. 可继承的模板与参数化嵌入 模板文件是可继承的,同时,子模板文件允许对父模板的指定位置进行覆盖,追加,插入操作。parent.html<html> <head> <afd:block id="block1"> <link href="parent1.css" rel="stylesheet" type="text/css" /> </afd:block> <a
阅读全文
Opensource .NET and Mono REST Web Services framework---.NET Community Content on InfoQ Servicestack
摘要:Thoughtfully architected, obscenely fast, thoroughly enjoyable web services for allhttp://www.servicestack.net/http://www.infoq.com/dotnet/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clkhttp://blog.monirabuhilal.com/http://www.servicestack.net/A modern, code-first, DTO-dri
阅读全文
DDD:策略模式如何结合动态表达式
摘要:DDD:策略模式如何结合动态表达式 企业应用中我们经常会遇到各种业务规则,针对这种规则,我们多数情况会采用策略模式,每种策略对应一个具体类和一个具体的配置界面。但是企业业务的规则经常变化,现有的策略随着时间的推移而不能满足要求,针对这种情况我们可以用动态表达式来解决。 动态表达式:在静态语言中动态的执行代码,目前可选的技术有:动态编译、Iron、Roslyn、内嵌小语言。 今天来测试一下内嵌Javascript: 代码如下: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using ...
阅读全文
动态软件框架开发模型图
摘要:动态软件框架开发模型图动态软件模型结构图服务器端设计概念使用后台服务模式运行,客户端使用本地加载模块{插件}形式运行或动态从服务器下载运行模块{插件}结构,客户端支持点对点形式任何扩展支持,支持SSL与对称加密解密数据方式传输,客户端模块可以通过管理员权限在模块运营商下载模块部署运行,软件形式使用动态模式框架可以减少软件开发后维护升级的维护难度与快速灵活的模式部署到企业中运行,在企业需要扩展或卸载业务模块提升了最有力的灵活性。设计者:郭树灿{洁斌}当前标签: 动态 软件 框架 开发 模型图动态软件框架开发模型图洁斌 2013-04-01 17:32 阅读:129 评论:2动态软件框架开发模型图
阅读全文
SpringMVC+Apache Shiro+JPA(hibernate)案例教学整合配置
摘要:SpringMVC+Apache Shiro+JPA(hibernate)案例教学(一)整合配置序:关于标题: 说是教学,实在愧不敢当,但苦与本人文笔有限,实在找不到更合理,谦逊的词语表达,只能先这样定义了。 其实最真实的想法,只是希望这个关键词能让更多的人浏览到这篇文章,也算是对于自己写文章的一个肯定吧。^_^!关于内容: 再写这系列文章之前,本人和许多人一样都是伸手党,并深深的了解咱伸手党且英文较差的朋友对于新知识的学习及获取中文资料少的痛苦。所以本着“取之于民,共享与民”的原则,记录下实际工作中对SpringMVC+Shiro整合应用的部分心得。本人技术水平有限,仅希望文章对他人有...
阅读全文
OSGI:C#如何实现简单的OSGI
摘要:OSGI:C#如何实现简单的OSGI我对OSGI的认识面向接口编程在组件(DLL)级别的体现。插件机制的一种扩展。动态管理组件(DLL)的生命周期(加载、启动、停止、卸载)。回调和插件的支持,在Bundle的生命周期中,允许通过插件和回调进行拦截。Ioc容器的集成(非必须),如:Bundle启动时自动将服务注册到Ioc中,停止时自动取消服务注册。Ioc管理服务的生命周期,OSGI管理组件的生命周期。代码示例(下载地址) 项目结构及他们的依赖关系 Program.cs 中的代码 1 using System; 2 using System.Collections.Generic; 3 usi..
阅读全文
IoC容器Autofac4
摘要:IoC容器Autofac(4) - Autofact + Asp.net MVC + EF Code First(附源码)本篇文章,讲解如何使用Auotfac, Asp.net MVC和EF Code First,搭建一个松散的架构。 例子代码主要完成的功能是:列出数据库中Student表中的所有学生信息。阅读目录:一、 使用Entity Framework Code First, 写代码创建Student表二、使用Migrations, 生成数据库和初始化数据三、创建Controller方法和View四、正式项目开发中的困境五、解耦合,脱离数据层六、实例化,可恶的实例化七、使用Autofac
阅读全文
架构与模式11
摘要:架构与模式关于如何设计一个基于事件驱动架构的思考摘要: 最近一直在思考一个问题:有没有这样一种可能,就是一个领域模型的状态不依赖于外部,它只负责接收外部的事件,然后根据这些事件做出响应;响应分两种:1)根据模型当前的内存状态进行业务逻辑处理,然后产生事件,注意:这个过程不会改变模型当前的内存状态;2)根据事件改变自己的状态;另外,也是最重要的,领域模型不用关心自己所产生的事件到底怎么样了,比如不关心有没有持久化,不关心是否和别的事件有并发冲突。它只管根据自己当前的内存状态做上面这两点的响应;如果这样的设想有可能,那领域模型就是真正的中央业务逻辑处理器了,和CPU很类似了。这样它才能真正快起来。
阅读全文
NET应用加载容器KGlue
摘要:NET应用加载容器KGlue当在更新应用的时候是否碰到以下烦琐的工作[停址服务-更新服务-启动服务];的确由于文件被程序占用所以在更新文件的时候必须把程序停止,更新完成后又手动启动.而KGlue就是为了解决以上问题而出现的,它的主要作用是使用appDomain来加载运行每个配置的应用;监控相关应用文件变化自动对应用进行卸载和重启动的服务功能.简单而言在更新应用的时候直接替换文件后,KGlue就会对程序进行重新加载.使用配置KGlue可以配置多应用程序,应用程序可以存放在KGlue能访问的任意目录下.只需要简单地在配置文件中添加相关应用目录即可.?1234567891011121314<?
阅读全文
Entity Framework模型在领域驱动设计界定上下文中的应用
摘要:Entity Framework模型在领域驱动设计界定上下文中的应用【本文翻译自Julie Lerman发表在MSDN Magazine上的一篇技术文章,原文题为《Shrink EF Models with DDD Bounded Contexts》。对自己英语比较自信的朋友可以直接在MSDN Magazine的在线文章收录中阅读原文。】在使用Entity Framework(以下简称EF)来定义模型(Model)时,开发人员往往喜欢把应用程序中的所有模型对象都一股脑地塞进一个模型中。这种开发习惯估计是源于Database First的开发方式,在这种方式下,开发人员可以很方便地将数据库中的表
阅读全文