RogerTong's Tech Space

文章书傲骨,程序写春秋

导航

2016年9月2日

摘要: 在Centos7上部署kubernetes时,碰到很多坑,特别在摸拟在内网部署时,有来自GFW的障碍,有来自Firewalld的阻塞,反正是各种不服,终于慢慢理顺了思路,自己记录一下,防止遗忘。 环境为Centos7, 准备VMWare快照, 快照环境如下: 安装好 CentOS7 1 2 3 4 阅读全文

posted @ 2016-09-02 13:47 RogerTong 阅读(1393) 评论(0) 推荐(0) 编辑

2008年10月11日

摘要: 在前面的章节中,我们了解了如何通过DynamicProxy来实现对接口调用的拦截,在今天的实例中,我们将会看到一个具体的应用。 在我们所开发软件系统中,权限鉴别是一个非常重要的部分。通常在具体的需要权限访问的方法中,我们需要加入大段的代码来校验当前用户是否有权限操作当前的方法中的一些环节,不仅如此,我们甚至于还需要在方法的签名中加入相关的可代表用户身份的信息,例如: void DoOperationxx(string userId,string param1,string param2).. 在这个方法中,可能实际需要用到的参数只是"string param1,string param2",但是我们加入userId 的参数,纯粹只是为了鉴别当前用户是否有权限访问而以,导致我们的代码显得非常的冗余。 阅读全文

posted @ 2008-10-11 12:54 RogerTong 阅读(2940) 评论(5) 推荐(3) 编辑

2008年7月14日

摘要: 在前面的章节中,我们了解到Mussel是一个基于插件的应用框架。Mussel内核的本身不包含任何方面的功能,它只是负责对我们所编写的插件项目进行协调,维护起插件项目之间的依赖关起,并构建起插件项目之间的沟通渠道。通过编写各种不同的应用插件,我们可以无限的扩展Mussel的功能。同时,Mussel还可以按照用户指定的需求在进程中开辟不同的AppDomain,将不同职能的插件载入不同的AppDomain中,亦可以将相类似职能的不同插件加入到同一个AppDomain。在今天的讲述中,我们将看到如何利用Mussel默认提供的通信及Proxy生成器插件来开发一个简单的 C/S(客户端/服务器)应用 阅读全文

posted @ 2008-07-14 23:10 RogerTong 阅读(1714) 评论(16) 推荐(0) 编辑

2008年7月12日

摘要: 继续我们上一章的讲解。现在我们用一个具体的程序示例来演示我们插件的加载及卸载过程,我们先回顾一下上一章中我们总结出来的一些思路: 1. 建立一个新的AppDomain: AppDomain.CreateDomain()。 2. 利用的AppDomain的实例,采用 CreateInstanceFromAndUnwrap() 方法在新的AppDomain中构建一个指定的类型,并返回相应的Proxy。 3. 根据获取的Proxy就可调用插件了。 4. 卸载时,完成一些资源清理后可以直接对新建出的AppDomain进行UnLoad 阅读全文

posted @ 2008-07-12 10:21 RogerTong 阅读(2260) 评论(9) 推荐(0) 编辑

摘要: 在过去几年时间里,我一直都只是在看别人写的东西,属于那种典型的“看贴不回贴”的一类。自我感觉似乎这些编程语言社区与我没有太大的关系。总是在一些对问题摸不着头脑、急得只能干瞪眼时才想起来有这么一些积累了别人经验教训的地方,这个时候别人的博客文章,社区里面的一些技术文献便成了我救命的稻草。一直在社区中吸取营养,却未能给这片土地带来什么有价值的东西,呵呵,说起来真是惭愧!前段时间... 阅读全文

posted @ 2008-07-12 03:08 RogerTong 阅读(1773) 评论(16) 推荐(0) 编辑

2008年7月11日

摘要: 在软件开发的领域中,插件技术一直是一项非常实用的技术。许多优秀的软件产品都提供了通过加载插件来扩展、丰富产品本身功能的能力。而像Firefox、 Eclipse之类的软件,更是将插件的功能发挥到了极致。顺便做点广告的是,我们的Mussel框架便是一套基于插件扩充应用功能的框架:),在这里我们来分析一下.Net中常用的插件技术…… 阅读全文

posted @ 2008-07-11 20:24 RogerTong 阅读(2884) 评论(9) 推荐(0) 编辑

摘要: 在前面的章节中,我们知道了如何利用DynamicProxy程序集从类及接口中进行方法拦截。现在我们可以做一个更有趣并且更实用的操作:我们利用前面章节所讲述的知识来完成一次调用指令的路由操作,借此让我们对Castle AOP的应用层面有一个更感性的认识,因为这一章节要讲述的内容稍微有些复杂,我会试图尽量的将这些内容讲解清楚,由于写文章的水平有限,如有讲解不周的地方也请大家谅解…… 阅读全文

posted @ 2008-07-11 14:09 RogerTong 阅读(3466) 评论(8) 推荐(4) 编辑

2008年7月10日

摘要: Castle中有一个扩展的DynamicProxy程序集(DynamicProxy2),在这个程序集中,提供了对接口方法做动态拦截的能力。相比于对类方法的拦截,对接口方法的拦截为我们的架构设计方面提供了更大的自由度。在这里先罗列一些简单的代码,大家可以从这些代码中先思考一下接口方法的动态拦截可以应用于哪些方面,在以后的章节中,我们会深入的讨论具体的应用层面,其实这个在我们Mussel通信层的插件的实施中,于客户端产生服务端接口的 Proxy起到了决定性的作用…… 阅读全文

posted @ 2008-07-10 11:59 RogerTong 阅读(3850) 评论(1) 推荐(0) 编辑

2008年7月9日

摘要: 熟悉Castle的朋友一定清楚:在Castle体系中,有一个叫Aspect#的子项目。Aspect#是一个AOP的框架,在这篇文章中,我并不打算直接开始讲Aspect#,因为Aspect#的封装过于完善,不太利于用来讲述AOP的具体实现细节。其实Aspect#的基础是 DynamicProxy,所以,我们先来讲讲DynamicProxy。 在很多朋友的眼中,AOP似乎是一个很神秘的东西,其实在我看来,AOP的本质就是对一切操作行为的拦截,在.Net中,AOP的本质更简单,纯粹是对方法的拦截。为什么这么说呢?因为在.Net中,一切的操作都是方法调用:事件的 “+=” 及 “-=”最终被转换为 Addxxxx(...),Removexxxxx(...)类型的方法;属性的 get/set 过程也被转换为 getxxxxxx(...),setxxxxxx(...)类型的方法;而方法的本身就更不用说了…… 阅读全文

posted @ 2008-07-09 16:42 RogerTong 阅读(3870) 评论(3) 推荐(0) 编辑

摘要: 这是一个曾被热烈的讨论过的问题。之所以忽然谈起这个... 阅读全文

posted @ 2008-07-09 16:42 RogerTong 阅读(1229) 评论(2) 推荐(0) 编辑