Time of Update: 2018-12-06
在WindowForm應用程式中主要的線程,是採用一種稱為「Single-Threaded Apartment(STA)」的執行緒模式。這個STA執行緒模式,線上程內加入了訊息幫浦等等機制,減少開發人員撰寫視窗程序的工作量。相關的資訊可以參考:[Object-oriented] 線程。 而在開發類別庫的時候,如果要使用類似的STA執行緒模式,可以使用下列的程式碼提供的類別來完成。 namespace CLK.Threading{ public class STAThread {
Time of Update: 2018-12-06
工作群組查看:在網路位置中找不到工作群組的原因,一般是因為沒有點擊到。請按照下面的方法點擊。開啟整個網路 再開啟 Microsoft Windows Network 最後是workgroup就是工作群組了 --------------------------------------共用資料夾注意:訪問網路上的共用資源,是通過Guest帳戶來訪問的。
Time of Update: 2018-12-06
一台電腦,有多個使用者使用。有一個administrator 超級管理使用者。有一個Ming使用者。如果 Ming 建立了一個檔案夾,並設定了其它安全性,只有Ming 可以查看。 那麼當Administrator 去查看時,就會出現警告:”您無權查看或編輯目前 a 的使用權限設定;但是,您可以取得所有權或更改審核設定“Administrator是超級管理員,不可能沒有許可權查看的。 下面就是解決辦法。 假如檔案名稱是:a.xls
Time of Update: 2018-12-06
目標開發人員只要設計合約類別,就可以跟硬體建立聯機、交換訊息。 架構圖 重點設計採用WCF的ABC設定 1. Host啟動Binding。2. Binding使用Addrerss建立Connecter用來跟硬體聯機。3. Binding使用Connecter建立的硬體聯機,透過CodeDOM建立實作IContract的Channel。4. Binding建立MessagePipeline給Channel使用。5. Binding將建立好的Channel提交Host。6.
Time of Update: 2018-12-06
在WPF內可以使用DataTemplate,來輔助完成對對象集合做DataBinding的工作。並且透過DataTemplate的DataType屬性,來讓對象集合中不同的對象,經過DataBinding之後能有「不同的外觀」。簡單的範例如下:不同的車輛類型,會依照車輛類型,呈現不同的詳細資料。 namespace BindingInterfaceSample{ public class Car { public string Name { get; set; }
Time of Update: 2018-12-06
在Administraot中添加了很多IME,但在Gust中卻找不到了? 解決辦法: 按右鍵工作列通知區域內IME表徵圖,在出現地菜單中點選"設定" --》在出來的對話方塊中點"添加" --》 在出來"添加輸入語言"對話方塊中的"鍵盤配置/IME"中點旁邊的下拉式箭頭, 找到你想加的IME,也就是你已安裝的IME,然後點"確定",關掉這個對話方塊後再點"應用"和"確定".就行了, 再用滑鼠左鍵點擊通知區域的IME表徵圖.找到你想用的IME就行了.
Time of Update: 2018-12-06
目標提供開發人員簡單方便的硬體狀態監控平台。 架構圖 重點設計採用Zookeeper的運作邏輯1.Server端Keeper維護由Client端Author Publish過來的Device。2.Server端Keeper定時移除一段時間內沒有Client端Author Heartbeat 的Device。3.Client端Author Publish Device後,Device狀態有更新要通知Server端Keeper更新。4.Client端Author Publish
Time of Update: 2018-12-06
動機在軟體項目的生命週期裡,每次做軟體版本的修改,難免會去修改到資料庫的Schema。 針對這種資料庫版本的變更,一般的做法會在版本控制系統(SVN)裡,存放產生資料庫的SQL指令檔案。在每個軟體版本的釋出時間點,開發人員會依照當時的資料庫,建立資料庫產生SQL指令檔案並存入SVN。這樣安裝人員只要取得SVN某個軟體版本的執行檔案,以及對應版本的資料庫產生SQL指令檔案,就可以為客戶完成安裝部屬的工作。 這樣的架構模式,遇到舊版本系統要升級為新版本系統的時候。安裝人員會需要:將舊版本的資料保留、
Time of Update: 2018-12-06
前言XAML是微軟推出的一種宣告式標記語言,採用XML的格式讓開發人員設計API。在微軟近期推出的各種開發平台,例如WPF、Silverlight、WP7、甚至Win8的Metro style app開發上都可以看到XAML的身影。XAML可以這麼的神奇的跨平台運作,是因為XAML不涉足執行平台的運作、機制...等等,只單純的依照開發人員的設計,建立對應的對象讓執行平台使用。例如: XAML範例<phone:PhoneApplicationPage
Time of Update: 2018-12-06
通勤時看小說「數字風暴」,裡面有一段話很有趣。 程式員的成長固然和經驗和熟練度有關,但到了一定的境界,熟練度這回事越來越無關緊要了。決定一個程式員的水平的,是想象力,是數學、物理等方面的功底、是對電腦的最底層的東西的洞察。 忽然有感悟,學會了OOP、OOA、DDD、TDD等等技能,學會這些就跟畫家學會用各種顏料來作畫一樣,不過只是基礎。 要如何運用這些基礎技能,解決真實世界的問題,努力成為某個領域的專家,建立起自己的風格、自己的道路。我想這是每個開發人員,有一天都需要面對、思考的問題。
Time of Update: 2018-12-06
接續...[Architecture Pattern] Database Migration
Time of Update: 2018-12-06
今天去面試,面試官希望我多聊一些有關架構設計,當場回答了一些部落格上分享的架構模式。回家的路上,認真的思考了這個問題:「架構設計是做甚麼?」 對我來說,架構是用來處理軟體系統上的各種非功能性需求。不管是增加系統的擴充性、降低開發人員的最低能力、減少維護人員的負擔,都是架構設計該處理的問題。 以部落格上寫過的架構模式來說:「Database Migration」抽象化資料庫部屬升級,減少維護資料庫的成本。「Repository」抽象化系統儲存裝置,增加系統可移植性。「Device
Time of Update: 2018-12-06
前言在前一個章節[.NET] XAML(1)--對象產生,介紹了「XAML對象產生」這個簡單卻強大的對象產生模式。透過這個XAML對象產生配合物件導向的對象設計,可以讓開發人員依照XAML內容產生近乎無限組合的對象。但是光只有前一個章節介紹的內容,在實際的開發應用上,很快就會遇到不足的地方。 假設現在要使用Property-Element的設定,將TextBlock 的Text設定為.NET裡的Null,開發人員可能會寫出下面範例的XAML。 <TextBlock
Time of Update: 2018-12-06
在撰寫程式的時候,錯誤處理是一件很重要的事情。在「C++編程規範」這本書的第71個條款裡,依照不同的錯誤處理結果,定義出三種「安全保證」等級:
Time of Update: 2018-12-06
前台代碼:
Time of Update: 2018-12-06
這篇文章用來記錄重構系統架構時,遭遇到的問題內容,以及當下處理的解決方案。應該會不定時更新 XD 2012/07/03 命名規則定義問題內容 : 命名規則沒有標準化規範,維護程式碼困難。解決方案 : 採用微軟標準命名規則,提高程式碼品質。 系統架構分層問題內容 : 架構分層不明確職責散落各處,容易改東壞西。解決方案 : 架構分層重新設計,一層一層分離職責。 系統架構模組問題內容 : 架構模組不明確職責散落各處,容易改東壞西。解決方案 :
Time of Update: 2018-12-06
動機Repository Pattern是一個在開發系統時,很常用的一個模式。在一些大師的著作:不管是在Martin Fowler所寫的PoEAA或者是Eric Eban著作的DDD裡,都有出現這個Pattern的身影。Repository Pattern最主要是定義如何切割BLL層跟DAL層之間的相依性,讓BLL層不用依賴於DAL層的實做。並且在有需要更換DAL目標的時候,可以有抽換DAL層的能力。 同時學習Repository Pattern,也為架構設計帶入了邊界的概念。在設計架構的時候,
Time of Update: 2018-12-06
當我們在使用RDLC開發報表的時候,如果資料來源內容如下。 private List<UserData> CreateDataSet(){ List<UserData> userDataSet = new List<UserData>(); userDataSet.Add(new UserData() { Name = "Clark", Age = 18 }); userDataSet.Add(new UserData() { Name =
Time of Update: 2018-12-06
前言在做架構設計的時候,資料對象進出系統邊界,可以採用先前的文章介紹的[Architecture Pattern] Repository,來將外部的系統、模組、資料庫…等等,隔離在架構之外。而當系統採用關聯式資料庫來做為儲存資料庫的時候,開發人員必需要在程式內加入ORM(Object Relational
Time of Update: 2018-12-06
做軟體架構設計的時候,三層式體繫結構是一個很常套用的分層模式。三層式體繫結構中會將系統切割成為:PL(Presentation Layer)、BLL(Business Logic Layer)、DAL(Data Access