上一页 1 ··· 7 8 9 10 11 12 13 下一页
摘要: 『面向对象的架构』是怎么样的东西,今天忽然顿悟该如何用文字将他定义。将在开发软件项目的时候,遇到的各种不同功能面对象,归类并取一个好记的名字。反复重整功能面对象跟名词,最终就会产生一个属于自己的架构。以DDD(Domain-Driven Design)的Domain Layer来说。1.系统有个User对象。DDD将他归类的成Entities,它的职责就是一个有唯一辨识的对象。2.User要存在储存设备。这个储存设备的功能DDD将它归类成Repository,它的职责就是让Entities可以进出系统边界。3.系统还有一个定时检查User生日发送祝福信件的功能。这个定时执行的功能DDD将他归类 阅读全文
posted @ 2011-10-10 09:59 Clark159 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 三层式体系结构里面的"层",其实应该分为Tier跟Layer。这两个中文翻译都是"层",但是他们是相同却有差异的两种"层"。相同的地方在于,将系统依照功能切割为 Presentation、Business Logic、Data Access。差别的地方在于,一个将系统切割成三个子系统(Tier),Presentation Tier、Business Logic Tier、Data Access Tier。一个将系统切割成三个层(Layer) : Presentation Layer、Business Logic Layer、Data 阅读全文
posted @ 2011-10-10 09:58 Clark159 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 跟朋友聊天,得知他们公司采用 WebService来做软件架构的分层。这在软件架构上是对的,但执行时容易有一些些的偏差。1. 提供信息的服务器端,WebService的 Function直接捞数据库回传。 WebService里面的 Function做的事只是建立数据联机+取数据,这样其实只是把 Stored Procedures写在程序代码内。 就本质来说还是『捞数据+排版显示』的数据库导向系统,只是把『捞数据』这一段从 Sql改成 WebService而已。 WebService使用的时机,应该是『软件系统提供给其他系统使用的服务』。 这边软件系统的定义是指有自己 Domain know 阅读全文
posted @ 2011-10-10 09:57 Clark159 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 动机在设计面向对象应用程序的时候,简单的分层会将系统分为Presentation Layer(PL)、 Business Logic Layer(BLL)、Data Access Layer(DAL)。但是三层之间的对象生成、依赖注入等等的设计会是一件很复杂的事情。例如:PL对象该怎么去生成BLL的对象、DAL的对象该怎么注入BLL。本文介绍一个简单的Context模式,用来框出一个面向对象应用程序的架构,让每一层的对象设计有可循的规范。结构参与者 UserReportPage-用户接口,呈现用户数据的报表。-使用ContextContainer的静态属性取得Context。-使用Contex 阅读全文
posted @ 2011-10-10 09:55 Clark159 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 前言 :自定义Configuration区段的数据读取,先前小朱有写了一系列的文章。本篇文章描述,如何使用程序代码做自定义Configuration的数据写入。注意 :在 Microsoft Visual Studio IDE除错环境下,执行程序写入.config时。程序写入的将会是*.vshost.exe.config,而不是预期中的 *.exe.config。并且程序执行结束之后,IDE会覆盖*.vshost.exe.config成为写入前的状态。因此会误认为程序执行失败。只要编译完毕之后,点选bin目录底下的*.exe执行。再去检查*.exe.config,就可以看到预期中的结果。相关资 阅读全文
posted @ 2011-10-10 09:54 Clark159 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 常常有人用车、汽车、模型车,来解释对象的继承。可是却没有特别解释,是因为上层的程序使用了车,汽车跟模型车是用来抽换的下层。反而去解释,因为汽车跟模型车都有一些共通的功能,所以才用继承。就面向对象语言面来说,这样是正确的。就面向对象设计面来说,这样是误导的。 阅读全文
posted @ 2011-10-10 09:52 Clark159 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 前言 :上一篇文章:[ASP.NET] : 可抽换式验证来源 (LDAP验证、Windows验证...)介绍了如何使用自制CLK.Web函式库,实现ASP.NET可抽换式验证来源。所谓的可抽换式验证,就是说可以依照需求不同。采用AD验证使用者、DB验证使用者、或其他验证来源。本篇文章介绍如何实作验证来源,文章实做的验证来源为数据库类型的数据源。实作 :档案下载 : CLK.Web.Security.rar1. 开启CLK.Web.Security方案2. 加入新项目CLK.Web.Security.Extension3.新专案CLK.Web.Security.Extension加入参考4. 加 阅读全文
posted @ 2011-10-10 09:51 Clark159 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 动机 :在设计面向对象应用程序架构的时候,关联的对象进出 Data Access Layer(DAL)是一件很复杂的事情。Entity Framework是一种解决方案的选择,但是它包装了太多用不习惯的功能。例如对象的变更追踪同步这类的功能,一般开发程序的时候主要是新增修改删除查询,很少去处理到追踪同步。本文介绍一个轻量级的边界模式,将它架构在Business Logic Layer(BLL)里。让DAL层,只专注处理永续储存的数据。让BLL层,能简单处理对象与对象关联,方便建立不贫血的对象。结构 :参与者 :User- 被关联的对象,UserID是这个对象的索引值。UserGroup- 包含 阅读全文
posted @ 2011-10-10 09:50 Clark159 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 前言 :本文纪录如何使用自制CLK.Web函式库,实现ASP.NET可抽换式验证来源。所谓的可抽换式验证,就是说可以依照需求不同。采用AD验证使用者、DB验证使用者、或其他验证来源。下面炼结提供的档案内,已经实作完成Windows验证、LDAP验证。有兴趣的朋友,可以自行实作DB验证及其他。(文章范例采用Windows验证)使用范例 :档案下载 : CLK.Web.Security.rar1. 建立ASP.NET专案2. 加入CLK及CLK.Web参考3. 加入Global.asax并且修改4. 加入Web.config并且修改。采用Windows验证,并且拒绝匿名用户。如果要改用LDAP对A 阅读全文
posted @ 2011-10-10 09:48 Clark159 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 前言 :WinForm窗体的多线程开发,有其特定的写法。在非WinForm窗体线程外的线程,控制WinForm窗体上的对象将会引发错误。网络上可以找到很多种的写法,让多线程去跨线程控制WinForm窗体对象。本章采用匿名函式的方式实作这个功能,以提供不同的选择。线程相关数据可以参考 - [Object-oriented] : 线程范例窗体 :button1 : ButtontextBox1 : TextBox范例程序 :private void button1_Click(object sender, EventArgs e){ // 纪录 WinForm SyncContext ... 阅读全文
posted @ 2011-10-10 09:46 Clark159 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 前言 :参加点部落的活动,关于IoC(控制反转)大家有很多的讨论。本文排除对象生成的部份,单纯解释IoC为甚么叫做控制反转。本篇文章以之前写的 [Object-oriented] : 重用内容来举例。未IoC之前的对象图 :很明显的左边的组件A,相依右边的组件B。左边的对象,相依右边的对象public class Robot{ private Car _car = null; public Robot(Car car) { _car = car; } public void Work() { _car.Run(); }}pu... 阅读全文
posted @ 2011-10-10 09:43 Clark159 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 前言 :VS2010内建了测试项目,本篇文章说明测试项目的生命周期。生命周期图 :生命周期范例 :[TestClass]public class UnitTest1{ [AssemblyInitialize()] public static void AssemblyInitialize(TestContext context) { MessageBox.Show("AssemblyInitialize"); } [ClassInitialize()] public static void ClassInitialize(TestContext... 阅读全文
posted @ 2011-10-10 09:26 Clark159 阅读(370) 评论(1) 推荐(0) 编辑
摘要: 前言 :面向对象设计守则里有一条:多用合成,少用继承。 面向对象设计守则的内容可以参考, [深入浅出设计模式] : http://www.oreilly.com.tw/product_java.php?id=a163 本篇文章示范如何实作界面、抽象类的抽象合成,让合成之后的类别依然保有抽象方法。使用时机 :当有一堆抽象类,想要集合成一个大的抽象类时使用。 例如说 现在要实作Facade这个模式 可是有些抽象对象的方法,要让使用者去实作。 这个时候,抽象合成就可以派上用场。结构 :实作 :首先先要有一个抽象类public abstract class Strategy{ public in... 阅读全文
posted @ 2011-10-10 09:25 Clark159 阅读(200) 评论(0) 推荐(0) 编辑
摘要: Builder 是用于对象内部,功能对象的抽换。 Factory 是提供外部对象,抽换对象的功能。 阅读全文
posted @ 2011-10-10 09:23 Clark159 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 前言 :应用程序在Vista或是Win7上执行时,有时会有权限不足的问题。 简单的解法是请用户在应用程序图标上右键单击,然后选择以系统管理员身分执行。 但这个动作常常会被使用者忘记。这个问题在VS2008或是VS2010上已经有了解决方案 : (请参考) http://social.msdn.microsoft.com/Forums/zh-TW/1007/thread/ce70e22d-45f7-4903-b8f4-76a159d3002d http://www.dotblogs.com.tw/jjnnykimo/archive/2009/05/08/8346.aspx http://www. 阅读全文
posted @ 2011-10-10 09:22 Clark159 阅读(275) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 下一页