05 2013 档案

摘要:新技术不是不能用,而是堆了新技术,接手的人就要学会这些。这边对于新技术的定义,是很广泛的定义为系统中没有使用过的技术。在系统一开始的时候,技术需求就是一片空白,后续设计的时候,每次加入的没有用过的技术,都需要去考虑是否有延续性、是否要定义为基础技术...等等考虑。大一点就像是要不要使用Design Patterns、DDD、TDD,或是MVVM要不要用、ASP.NET MVC不错要不要推。小一点的就像是版本控管要用哪种、版本分支、合并的策略是甚么。这些都是需要依照目前团队、未来目标等等方面去考虑。每个系统都有隐藏的项目天赋表,天赋就是系统里的技术,开发人员点满天赋才能吃透系统。--以开发人员的 阅读全文
posted @ 2013-05-21 23:59 Clark159 阅读(190) 评论(0) 推荐(0) 编辑
摘要:使用Visual Studio开发软件项目时,透过Visual Studio所提供的方案总管,可以很方便的管理程序代码与相关资源。方案总管中每个软件项目的程序代码档案会以树状结构的方式来呈现,这个树状结构主要是依照实体目录路径、实体档案路径来做为呈现的参考。随着时代的演进,单纯依照实体目录路径、实体档案路径来做为树状结构呈现的参考,已经慢慢跟不上开发上的需求。例如说,软件项目里一个ASP.NET网页,就包含了开发人员撰写的.aspx、.cs以及系统产生的.designer.cs三个程序代码档案。这时方案总管上如果单纯依照上列规则来呈现,可以预期到,当项目内ASP.NET网页越来越多的时候,方案 阅读全文
posted @ 2013-05-19 16:26 Clark159 阅读(537) 评论(0) 推荐(0) 编辑
摘要:在设计父对象的时候,会遇到对象方法的参数为类别本身,然后再由子对象去实做这个方法的场合,例如:比较对象是否相等的方法。在这个情景中,通常会设计为下列范例的写法,在子对象中先做转型、再做比较。这是一种可以正常运作的设计,但是子对象的方法参数会是父对象型别,而不是子对象型别。namespace ConsoleApplication1{ class Program { static void Main(string[] args) { ChildAddress addressA = new ChildAddress(); ... 阅读全文
posted @ 2013-05-10 15:19 Clark159 阅读(258) 评论(0) 推荐(0) 编辑
摘要:在多线程程序中使用MessageQueue Class来传送数据,很容易遇到InvalidCastException、NullReferenceException等等错误讯息。 这时只需要在传送数据的程序代码上加入lock机制,强制一次只能有一条线程传送,就可以避免掉这个问题。lock(_messageQueue){ _messageQueue.Send(dataBytes);} 阅读全文
posted @ 2013-05-10 15:18 Clark159 阅读(401) 评论(0) 推荐(0) 编辑
摘要:呼叫线程无法存取此对象在WPF、WinForm这些应用程序中,必需是UI线程才能控制窗体。如果像是下列的范例程序一样,使用了非UI线程来控制窗体,那就会看到内容为「呼叫线程无法存取此对象,因为此对象属于另外一个线程」的InvalidOperationException例外错误。<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schema 阅读全文
posted @ 2013-05-04 01:47 Clark159 阅读(2666) 评论(3) 推荐(2) 编辑

点击右上角即可分享
微信分享提示