TOGAF企业连续体和工具之架构资源库及架构工具的选择
摘要:TOGAF企业连续体和工具之架构资源库及架构工具的选择3.架构资源库 在一个企业,尤其是在一个大型企业中,建设一个成熟的架构往往会产生大量的工作产品。为了很好地管理和利用这些工作产品,企业需要制定一个正式的针对不同类型架构资产的分类方法,并且还需要专门的流程和工作来辅助这些内容的存储和管理,而这正是架构资源库所关心的。在TOGAF中架构资源库所包含的内容包括了如下几个方面的信息:架构元模型(Architecture Metamodel):描述了组织为自身量身定制的架构框架,包括架构开发方法和架构内容的元模型。架构能力(Architecture Capability):定义了用于支持架构资源库治
阅读全文
架构讨论
摘要:架构讨论:关于“弦哥”对“粗”与“插”的架构总结及我的“插件化”观1 引言去年6月,“弦哥”在博客园搞了一个架构分享评奖讨论——《.Net项目分层与文件夹结构大全(最佳架子奖,吐槽奖,阴沟翻船奖揭晓)》,并在评奖完了之后,发表了一个总结——《弦哥杯.Net搭架子大赛总结》,弦哥之后还发表了另一篇文章——《对面向接口编程、按分层建项目的反思和新的分层结构思路》。这几篇文章我个人觉得非常的有益,也很有意思。软件架构已经发展多年了,多层软件设计一直是主流,在一个解决方案中搞几十个甚至上百个的项目也不是少数,特别是企业级应用,弦哥的文章给了大家关于架构的分享与交流。在我说的第二篇文章,“弦哥”语言风格
阅读全文
TOGAF企业连续体和工具之企业连续体构成及架构划分
摘要:TOGAF企业连续体和工具之企业连续体构成及架构划分又回头看了之前文章的评论,本人也同样感慨这些文章的确像政治课本般的虚无缥缈,所以对费力看完却觉得无从下手的看官致以诚挚的歉意和理解,因为这个问题也同样困扰着笔者本人,而我能做的也只能是纸上谈兵。之前也接触过国家某大型公司的企业架构建设项目,采用的也是TOGAF标准,但是要将其作为例子罗列出来,实在是件伟大的工程,而且本人也真没接触这么多项目内容,无法列举示例还请见谅。就笔者本人的理解,是否符合TOGAF的判定标准主要是企业架构的建设过程是否遵循企业架构开发方法(ADM),至于后面的内容框架(架构制品、交付物和构建块等)并不是决定是否遵循TOG
阅读全文
Matlab.NET混合编程技巧之——直接调用Matlab内置函数(附源码)
摘要:在我的上一篇文章【原创】Matlab.NET混编技巧之——找出Matlab内置函数中,已经大概的介绍了matlab内置函数在混合编程中的优点,并通过程序找出了matlab中的大部分内置函数,当然更多人关心是如何像我所说得那样,不用直接编译,就直接在C#中调用这些内置函数。本文就带你揭开这些谜团。声明,这篇文章是需要一点点混合编程基础的,基本概念和过程要懂一点,如果能简单成功混编一个简单的计算或者绘图例子,可以更容易理解。1.传统的Matlab.NET混合编程步骤传统的Matlab.NET混合编程有2种方式:1)Matlab编写好M函数,利用deploytool编译m函数生成dll,在C#项目中
阅读全文
多模块分布式系统的简单服务访问 - OSGI原形(.NET)
摘要:多模块分布式系统的简单服务访问 - OSGI原形(.NET)先描述一下本篇描述的适用场景(3台server, 各个模块分布在各个Server上,分布式模块互相依赖、交互的场景):多个OSIG引擎交互上,使用的是.net remoting实现的,原理:当请求某个接口时(也就是要获取某Service Instance时),OSGI通过remoting连接到提供这个服务的url上,如:tcp://localhost:8888/OSGI连接成功后,源OSGI发送OpenService命令,让目标OSGI注册TCP Channel根据接口type、dll路径、appdomain name,在某个AppD
阅读全文
TOGAF架构内容框架之构建块(Building Blocks)
摘要:TOGAF架构内容框架之构建块(Building Blocks)之前忙于搬家移居,无暇顾及博客,今天终于得闲继续我的“政治课”了,希望之后至少能够补完TOGAF方面的内容。从前面文章可以看出,笔者并无太多能力和机会对TOGAF进行理论和实际的联系,仅可对标准的文本进行翻译和整理,间或掺杂点个人理解,望各位看官海涵,如能有所帮助则足以欣慰。5.构建块(Building Blocks) 架构构建块可以说是企业架构内容的核心,也是企业架构开发方法的最终产物。与此相比,架构交付物所面向的是企业架构开发过程,架构制品则可以看作是企业架构内容的表现形式和使用方式,而唯有构建块则是企业架构内容本身。企业架构
阅读全文
一个组件框架的构建
摘要:一个组件框架的构建组件:提供特定功能的软件实体,能够独立编译,通过不同的接口表现不同的行为。目标是实现组件开发和产品开发分离,接口和实现分离。通过注册组件可以在产品中快速的定制组件相关的功能。1:组件定义:明确组件的性质、用途、包含的接口实现接口中的方法一个组件通常由一个外部头文件和若干个实现文件组成,通过库和头文件形式发布//组件ID,组件管理机构统一分配#define CID_TRACE 0x00000001//组件实例化接口,由组件提供者实现ICOMP* insTraceComp();2:接口定义:明确接口的用途、范围确定接口中的方法接口由头文件组成,包括接口ID定义和接口定义//接口I
阅读全文
Redis的探究
摘要:之前大四时候实习的公司有使用过Redis,不过那时所有配置均由主管完成了,而我也只是处于能使用的阶段。时隔1年多,近期回想起这货,在研究中,想把它整合进现在公司的网站系统中,做做数据快照(已完成)和数据缓存,现在把自己学习的一个过程写下来。首先声明,我用的是windows系统开发,所以以下所有的文字只和windows系统有关,其他系统的没研究过!Redis的简介,度娘一搜一大把,这里就不做阐述了。首先要先下载Redis,地址:https://code.google.com/p/servicestack/wiki/RedisWindowsDownload(至BZ写这篇随笔时,使用的最新版本为2.
阅读全文
白话插件框架原理
摘要:白话插件框架原理本文将用尽可能简单的文字来描述插件框架原理。很多人以为插件化很复杂,所以就一直将这类框架阻挡在门外。实际上,在我们的实践过程中,从框架的使用角度来看,它非常简单,我们团队里面非正规院校毕业的女生也可以来实际使用。如果说插件框架难的地方,我反倒觉得克服人的天然惰性更加困难。我们不能习惯于墨守成规,日复一日年复一年,按照相同的模式来开发,将自己打造成一部“编码机器”,成为没有价值的“程序猿/媛”。使用插件框架,没有多少技术难点,不过需要我们提升我们的软件开发思想,改变现有开发方式。1 插件框架本质在.NET平台,一个程序是由“程序集 + 资源”构成的。程序集是由我们开发的一个个的类
阅读全文
支持异步同步的分布式CommandBus MSMQ实现
摘要:支持异步同步的分布式CommandBus MSMQ实现先上一张本文所描述的适用场景图分布式场景,共3台server:前端ServerOrder App ServerWarehouse App Server功能:前端Server可以不停的发送Command到CommandBus,然后由CommandBus分配不同的Command到各自的app server去处理。前端Server可以只发送Command而不必等待Response前端Server可以同步等待Response返回MSMQ消息超过3.5M会自动转为网络共享方式传输消息对于同一Command的处理,可以通过增加App Server的方式
阅读全文
架构设计:一种远程调用服务的设计构思(zookeeper的一种应用实践)
摘要:架构设计:一种远程调用服务的设计构思(zookeeper的一种应用实践) 在深入学习zookeeper我想先给大家介绍一个和zookeeper相关的应用实例,我把这个实例命名为远程调用服务。通过对这种应用实例的描述,我们会对zookeeper应用场景会有深入的了解。 远程调用是系统与系统之间的通信机制,它的另一种理解就是进程间的通信。做分布式系统的开发,远程调用技术是其核心技术。远程调用技术可以将一组计算机系统形成一个网络系统,对外提供整体服务,那么这一群的计算机系统就构成了一个更大型,性能更高的计算机系统。 我在前面的博客里介绍了一种分布式网站的架构设计,其中就有一个使用netty技术编..
阅读全文
框架的设计之IRepository还是IRepository<T>
摘要:【Yom框架】漫谈个人框架的设计之【是IRepository还是IRepository】?前言对于仓储Repository的设计,其实很多人都很纠结,因为从广义来说,Repository有两种类型:IRepository和IRepository框架的重构想得最多的最重要的几个问题:1:解耦(每层可以替换其他的,比如换一个UI层可以把Web 项目快速转换成Winform项目)2:扩展性(可以灵活抹去框架的某个层,让其他的第三方框架依据自己的接口实现该层的逻辑,其它层不变,也就是插拔式扩展)3:灵活(开发便捷,使用灵活)4:维护性(别人了解框架后,可以让别人无障碍维护)........------
阅读全文
系统架构、网络通信、IM、视频会议技术
摘要:专注于系统架构、网络通信、IM、视频会议技术。主要作品:ESFramework强悍的通信框架、P2P框架、群集平台。OMCS简单易用的 网络语音视频 框架。MFile语音视频录制组件。StriveEngine轻量级的通信引擎。可在广域网部署运行的QQ高仿版 -- GG叽叽V1.8(源码)距离的GG 1.0发布已经三周了,这三周内,我利用业余时间为GG增加了视频聊天的功能。个人觉得进展有些缓慢,主要是因为大多数时间都花在了UI上。由于本人不会PS,所以图片素材都是从网上一个一个搜下来的,这个过程确实很烦人,而且最终有些素材还不是很满意。一.GG V1.8 新增功能展现(1)发送视频会话请求,对方
阅读全文
常用的模式、JSON与DTO
摘要:表现层的设计(一)——常用的模式、JSON与DTO上几篇博文介绍了 业务逻辑层和数据访问层,我认为写博文的作用主要是向业界的读者交流一种思想,点到为止,至于学习架构设计,通过几篇博文是讲不清楚的,还需要【基础】扎实的情况下,【反复】研究【权威】的书籍。你会发现我写随笔的特点就是喜欢单一,讲NHibernate就绝不会把easyui参合进来,而这次要谈得json也不会和MVC有什么关系。而实战当中,你会发现我确实可以将他们分开,在需要的时候重新组合各种类库和框架来达到我的目的。表现层(Presentation Layer)它主要由两部分组成:1.界面UI2.表现层逻辑界面UI在.NET中包括的几
阅读全文
.NET项目开发—浅谈面向接口编程、可测试性、单元测试、迭代重构(项目小结)
摘要:.NET项目开发—浅谈面向接口编程、可测试性、单元测试、迭代重构(项目小结)阅读目录:1.开篇介绍2.迭代测试、重构(强制性面向接口编程,要求代码具有可测试性)2.1.面向接口编程的两个设计误区2.1.1.接口的依赖倒置2.1.2.接口对实体的抽象2.2.迭代单元测试、重构(代码可测试)2.2.1.LINQ表达式对单元测试的影响1】开篇介绍最近一段时间结束了一个小项目的开发,觉得有些好东西值得总结与分享,所以花点时间整理成文章;大多数情况下我们都知道这些概念,面向接口编程是老生常谈的话题了,有几年编程经验的都知道怎么运用;单元测试其实在前几年不怎么被重视,然而最近逐渐的浮现在我们眼前,而且被提
阅读全文
了解SOA是什么!
摘要:了解SOA是什么!面向服务架构面向服务的体系结构(service-oriented architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。目简介特征元素利用价值SOA特性概述服务架构服务品质SOA 不是Web服务SOA的优势展开简介特征元素利用价值SOA特性概述服务架构服务品质SOA 不是Web服务SOA的优势展开简介这种具有中立的接口定义(没有强制绑定到特定的实
阅读全文
.NET领域驱动设计—看DDD是如何运用设计模式颠覆传统架构
摘要:.NET领域驱动设计—看DDD是如何运用设计模式颠覆传统架构阅读目录:1.开篇介绍2.简单了解缘由(本文的前期事宜)3.DomainModel扩展性(运用设计模式设计模型变化点)3.1.模型扩展性3.2.设计模式的使用(苦心专研的设计模式、设计思想可以随意使用了)3.3.部分类的使用(封装内部对象)3.4.高强度的OO设计(面向特定领域的高度抽象设计形成特定领域框架)4.DomainModel业务逻辑规则配置(将扩展点分离后使用适当的配置将规则IOC进去)5.DDD简单总结(DDD是什么?它是“战术”)1】开篇介绍这篇文章不会太长,但是绝对让你对DDD有一个比较直观的认可;这篇文章所讲到的内容
阅读全文
Koala Framework
摘要:Koala Framework是什么?我为什么要写这个框架? 当时的监管组,技术力量累积的很少,还在直连DB,使用着DataTable、DataSet作为数据的承载,监管是公司最近几年主推的项目,所以领导们决定进行重要调整。初来乍到 由于之前没有任何的技术积累,所以面临的就是重新开始,当时的项目非常赶,所以先尝试着找现成的框架使用,然而像面向功能的组件、框架非常非常多,如:IOC(Autofac、MEF、Spring.Net…),ORM(Entity Framework、NHibernate、Simple Data…),调度(Quartz…)但是面向整个项目开发过程的可用框架几乎没有或者太重了
阅读全文
钝化程序、逻辑冻结、冻结程序的延续、瞬间转移
摘要:.NET框架设计(三:高级框架架构模式)—钝化程序、逻辑冻结、冻结程序的延续、瞬间转移阅读目录:1.开篇介绍2.程序书签(代码书签机制)2.1ProgramBookmark 实现(使用委托来锚点代码书签)2.2ProgramBookmarkManager书签管理器(对象化书签集合的处理,IEnumerable书签管理)3.可恢复语句组件(将语句对象化)3.1可恢复语句组件管理器(将可恢复语句视为普通的对象成员,IEnumerable可恢复语句组件)3.2可恢复语句组件运行时(Program CLR(简介))3.3可恢复语句逻辑配置(规则的配置(简介))3.4可恢复语句逻辑传输(将逻辑语句对象远
阅读全文
DDD:谈谈数据模型、领域模型、视图模型和命令模型
摘要:DDD:谈谈数据模型、领域模型、视图模型和命令模型背景一个类型可以充当多个角色,这个角色可以是显式的(实现了某个接口或基类),也可以是隐式的(承担的具体职责和上下文决定),本文就讨论四个角色:数据模型、领域模型、视图模型和命令模型。四个角色数据模型:面向持久化,数据的载体。领域模型:面向业务,行为的载体。视图模型:面向UI(向外),数据的载体。命令模型:面向UI(向内),数据的载体。这是四种角色,可以由一至四个类型来承担,具体选择几个类型需要考虑项目的上下文,但不同的选择对编程的要求是不同的,下面举几个例子。数据模型和领域模型采用统一个类型,采用EntityFramework进行持久化。这种设
阅读全文