今天跟大家分享一下我們在日常開發中並不常用的開發模式“外掛程式系統模式”,什麼叫外掛程式從大一點的概念講就是我們開發的軟體是由很小的模組組成,每一塊都能成功的裝卸,使我們的軟體成為一個有機體,在發生重大事故、改良最佳化等等的時候,我們不需要重新編譯我們的系統就能很方便的進行升級替換進行使用;這樣的開發模式就是外掛程式系統開發模式;這個概念很大,每個人的技術水平不同使用的效果也是不同的;一個大型的系統,不能簡簡單單的用三層或者MVC來概括,我們要站在一個更高的角度去思考程式,每當我們開始一個新系統
在很久以前,我剛開始接觸.NET的時候,總是搞不清楚.NET與VisualStudio之間的關係,我開發的東西是怎麼樣層層流轉最終形成可執行檔的;這樣的疑惑一直困擾著我,我想也困擾著許許多多剛接觸.NET的開人員;儘管在學校的學生學過編譯原理、作業系統等等電腦原理方面的理論知識;但是就是無法將這股力量用到實實在在的理解上;下面本人就簡談一下.NET中的主要核心東西:進階語言(C#,VB.NET,J#等)、編譯器、CLR引擎、VisualStudio系列工具等等之間是如何協調工作的,這樣的理解有利
一:系統簡介該系統採用3D全視角模仿現實中的企業辦公環境,以一個通訊中心平台讓各個想相互連訊的企業可以接入進來,系統完全擺脫傳統的開發思想和應用方式以真實環境面對使用者,使用者可以在本系統中找到自己所屬的部門自己的工作空間自己的辦公室可以清楚的看見自己座位辦公用品,系統會類比真實員工的3D造型。系統的出發點是想讓不同的企業或本企業的不同分公司能在一個類比的環境中通訊,本系統帶點遊戲色彩以娛樂的方式在系統中通訊,使用者與使用者之間可以聊天,視頻,傳檔案多媒體互動(如共用視頻,音樂)系統最大的技術
在本人的 “ .NET簡談事務本質論”一文中我們從整體上瞭解了事務模型,在我們腦子裡能有一個全域的交易處理結構,消除對資料庫事務的依賴理解,重新認識事務編程模型。今天這篇文章我們將使用.NET C#來進行事務性編程,從淺顯、簡單的本地事務開始,也就是我們用的最多的ADO.NET交易處理,然後我們逐漸擴大交易處理範圍,包括對分散式交易處理的使用,多線程交易處理的使用。 資料庫交易處理資料庫交易處理我們基本都很熟悉了,begin Transaction ……end
說到委託我想大家基本上都用過的,今天這篇文章就來講解關於委託的非同步奧秘。在我們正常使用的時候很少會去用非同步委託技術來提高代碼效率。委託的好處就是能對方法進行物件導向的封裝,隨意傳遞。在任何組件客戶代碼中都能對其進行調用,而不是傳遞方法對象的引用,這樣能大大的降低代碼的耦合。事件就是運用委託的優勢進行對象的訊息傳遞。。[王清培著作權,轉載請給出署名]那麼什麼是非同步委託呢?簡單點講就是非同步調用一個方法,但是如果我們直接用背景工作執行緒(main入口進行來的)去調用方法的話,肯定是做不到非同
互操作系列文章:.NET簡談互操作(一:開篇介紹).NET簡談互操作(二:先睹為快).NET簡談互操作(三:基礎知識之DllImport特性).NET簡談互操作(四:基礎知識之Dispose非託管記憶體).NET簡談互操作(五:基礎知識之Dynamic平台叫用).NET簡談互操作(六:基礎知識之提昇平台調用效能).NET簡談互操作(七:資料封送之介紹)我們繼續.NET互操作學習。在上篇文章中我們學習了關於託管與非託管記憶體Dispose(釋放)問題;下面我們繼續學習基礎知識中的Dynamic(動
網上關於安裝部署的文章太多,我就不多寫那些重複的東西了;這篇文章就簡單介紹部署ActiveX控制項要注意的細節。本人的“.NET實現之(ActiveX外掛程式開發)”一文中介紹了在.NET平台下開發ActiveX控制項的方法,但是沒有介紹怎麼部署開發好的ActiveX外掛程式,所以今天就來彌補這個空缺;由於ActiveX外掛程式屬於早期的COM原理技術,在COM剛出來的時候,它的技術複雜度是每個C++程式員高不可攀的,本人認為非常的複雜,雖然在開發的時候不是認為不是很複雜,我所說的複雜是在遇到技
做開發的人,尤其是做用戶端(C/S)系統開發的人都會遇到一個頭疼的問題,就是軟體的自動更新;系統發布後怎樣自動的更新程式,在下有幸開發過一個自動更新程式,更新程式與任何宿主程式是完全獨立的;只要在主程式裡面啟動更新程式就行了;更新程式也是一個可執行檔,在啟動的時候可以設定是否是自動更新和是否是手動更新,自動更新的意思就是說不需要人工的幹預實現從遠程伺服器下載更新包,而如果是手動更新就會涉及到使用者點擊程式中的按鈕實現更新;在自動更新與手動更新中可以根據項目的需要進行選擇,有的程式必須要求使用者進
說起鏈表大家都很熟悉,說起委託相信大部分的.NET程式員都也很瞭解;在平時的開發過程中經常會用到這兩種技術,只不過鏈表在.NET裡面已經被封裝了,讓我們用起來更加的方便就是集合類型Collection,在某種時候我們是有必要要瞭解這些方便而又快捷的背後是怎樣封裝的,委託是一種特殊的類型在.NET裡面是用來作為方法的一種封裝,在一些非託管的代碼中如C++就沒有這麼幸運了,我們要面對是一些複雜的地址變換、鏈表的指標維護、記憶體的取址等等;微軟一向都是人性化模仿的對象,不管是他的作業系統還是開發平台I
在上一篇文章“NET簡談事務、分散式交易處理”中我大概總結了關於.NET中的交易處理方式和結合了WCF架構的簡單應用。在事務性操作中我們的重點是能將資料進行可逆化,說白了就是能保證資料的ACID(關於事務的整體模型、原理請參見“.NET簡談事務本質論”一文),在.NET交易處理架構中強大的類庫幫我們實現了很多事務傳遞、事務自動提升的技術痛點,同時也提供了很多擴充介面,只要我們肯去研究總能有收穫。這篇文章主要講解怎樣利用.NET為我們提供的擴充介面進行自訂的交易處理範圍內的資源管理,在事務的操作範
由於多線程的內容比較多我會用幾篇文章來講解。多線程在我們日常開發過程中用的很多,上一篇“.NET簡談組件程式設計之(非同步委託)
其實大大小小的文章討論程式員的人生規劃不計其數。本人還是堅持談談個人對於程式員日後規劃的看法,也是本人做事的一種風格跟對人生的態度吧。希望能給大家有點協助。首先我們慶幸的是我們是軟體行業的一員,我們作為程式員從最基礎的“農民工”開始的,從反反覆複的代碼中成長起來。我們要為我們的職業感到驕傲才對,他賦予了我們善於動腦的習慣,程式員每天要應對的問題多種多樣,我們要快速的思考,不知不覺我們鍛鍊出了思考的習慣。[當思考成為習慣,成功將隨之而至]思考是前進的本質,我們在當初能進入程式員行業,就說明我們還是
在本人的“每個程式員都應該經曆一次軟考的”一文中,強烈的分析了軟考對我們程式員的重要性,儘管有些人覺得我在亂說;我還是那句話,任何一篇文章都有存在的價值;作為我們剛剛步入軟體開發領域的初學者來說,有時候真的會覺得迷茫,學著學著就會覺得沒興趣或者說是沒有力氣,當然軟體開發本來就屬於一種高智商的腦力活動,在我大學裡面學電腦編程的人多的不得了,但是我們仔細的想一想在扳扳手指,又有多少人能學出來的,能在軟體開發領域沉澱下來的;真的很少;不要覺得技術部落格裡面不是有很多人嗎?恰恰想法,在部落格園裡面真正稱
在本人的“.NET簡談外掛程式系統開發模式”一文中我們詳細介紹了外掛程式系統開發模式的優越性,儘管.NET平台或者第三方提供的平台都為我們實現了底層外掛程式原理模型,我們可以在上面進行開發,作為一名有求知慾的程式員才是一名合格的程式員;我們不能滿足系統為我們提供的功能,我們要向下沉,沉的越深越好,躲開那些應用變化給我們帶來的勞累感,所以我們是否需要掌握一些別人不會的技術,才能讓我們在眾多的程式員中脫穎而出呢;[王清培著作權,轉載請給出署名]我們今天來探討“構件”系統開發模式,其實各種各樣五花八名
我們繼續“.NET實現之(WebBrowser資料擷取)“系列篇之最後一篇,這篇本人打算主要講解怎麼用WebBrowser控制項來實現“虛擬”的互動性程式;比如我們用Winform做為宿主容器,用Asp.net做相關收集程式頁面,我們需要通過用戶端填寫相關資料項目,在通過Asp.net進行收集傳遞到伺服器端進行查詢,然後展現給使用者,這樣的操作是需要使用者介面的;請看圖:1:這是伺服器端的aspx頁面,這個頁面是要根據地區名稱查詢相關資訊的,而我們的地區名稱需要使用者在用戶端的程式中填寫;如果是
過程式的開發方式已逐漸退出福士的眼線,隨之而來的是各種各樣的高抽象的開發模式;我們不得不承認在沒有設計模式的時候,我們很難總結出有價值的開發模型,便於以後重複使用和推廣;物件導向的流行,讓我們開發人員重新站在一個高的起點來看待軟體模型,抽象固然是好事,但是也給初學者帶來了迷惑,將軟體中的東西都想成很簡單的封裝,我們只需要調用就行,這樣越來越多的開發人員開始慢慢的往上“浮”[王清培著作權,轉載請給出署名],有一定編程經驗和感觸的人,能夠明白我所說的“浮”,也算是給初學者提個醒吧;1:2:我們將電腦
之前本人發過一篇關於程式員該如何規劃自己的人生的文章(程式員該如何規劃自己的人生
本人最近一段時間在學習關於.NET組件編程方面的技術,在學習過程中確實有很多好的東西需要與大家分享。[王清培著作權,轉載請給出署名]關於什麼叫組件編程,其實就是利用.NET來開發基於組件模型的程式,面向組件編程而非物件導向編程,這是一個高度,沒有很長時間的學習與磨練是體會不到這個感覺的。我們現在的開發思想應該是以物件導向為主的,但是如何提升這個高度,只有慢慢的學習了。其實面向組件編程包含了物件導向編程思想,將一組功能獨立的封裝起來供以後重複使用,但是在開發組件的過程中需要使用到物件導向的思想來
本篇文章講解關於路由事件的相關原理。什麼叫路由事件,字面理解就是事件是可以傳遞,路由的意思也好理解。路由事件其實就是,事件是會隨著某種變化,來回傳遞。路由事件其實在.NET2.0時期就已經存在了,只不過在一般開發過程中用不到。從C#3.0開始,就已經封裝了關於路由事件的機制。其實這種實現應該可以換個名字來解釋。我們可以給路由事件起個便於理解的名字,“事件的路由設計模式”。我們都知道,任何大的架構都是從微小的基本文法開始編寫的,平台、語言給我們提供的僅僅是一些能滿足日常需求的東西;好東西還得我們自
互操作系列文章:.NET簡談互操作(一:開篇介紹).NET簡談互操作(二:先睹為快).NET簡談互操作(三:基礎知識之DllImport特性).NET簡談互操作(四:基礎知識之Dispose非託管記憶體).NET簡談互操作(五:基礎知識之Dynamic平台叫用) .NET簡談互操作(六:基礎知識之提昇平台調用效能).NET簡談互操作(七:資料封送之介紹)我們繼續.NET互操作學習。前一篇文章中我們學習了基礎知識中的DllImport關鍵特性;我們繼續學習基礎知識中的記憶體釋放相關技術;在託管與非