Time of Update: 2017-02-28
分析要做一個基於資料庫的應用程式,我們有大量的重複勞動要去做,建表,寫增 刪改查的SQL語句,寫與資料庫表對應的實體類,寫執行SQL的c#代碼,寫添加、 修改、列表、詳細頁面等等。這些活動都是圍繞著一個個都資料表來開展的, 在.NET領域有很多的OR Mapping的方案,但好多方案用起來好用,但原理很複雜 ,而且效能也不好把握,所以我們可以做一個輕型的ORM方案。有了ORM架構,根 據資料表寫c#實體類這些勞動,其實也可以寫一個代碼產生器來幫我們產生,甚
Time of Update: 2017-02-28
今天我們來研究下用IL書寫For迴圈和Foreach迴圈,在書中一直看到說使用 Foreach迴圈比普通的For迴圈來的好,這次正好趁機來看看他們的IL代碼有何不同 .按照慣例,我們先給出要實現的類的C#代碼,如下:class Iterator{ public int ForMethod(int[] ints) { int sum = 0; for (int i = 0; i < ints.Length; i++) {
Time of Update: 2017-02-28
本文簡單比較了動軟三層結構和“Nhibernate三層結構”。(1)動軟三層架構剛開發ASP.Net應用時,使用動軟自動產生的三層架構,用起來方便。就是改動起來麻煩。比如要加一 個查詢資料的方法,先在DAL層添加介面方法,再到SQLServerDAL層添加實現代碼,再到BLL層添加一個包 裝方法。向某個表裡添加一個欄位,就得重建一遍,要不然就自己一層一層改。IDAL層,可以由OracleDAL或DB2DAL來實現,目的是屏蔽資料操作的細節。BLL層是有必要的,封裝業
Time of Update: 2017-02-28
在WinForm的開發中,有時有些特殊的要求。例如:在某個Form上徹底屏蔽中 文IME,使之不能切換到中文輸入,不能進行中文輸入。這個問題看上去簡單,實現起來並沒有想象中的簡單。下面,把我做的幾個實
Time of Update: 2017-02-28
當我們看到一些設計新穎的網站時,可以藉助瀏覽器內建的Inspector 工具或 外掛程式方便的瀏覽網站布局結構及邏輯。如果是WPF 應用程式能否看到控制項的架構 方式呢?本篇將介紹兩款工具Snoop 和WPF Inspector 可用來窺探WPF 應用程式 內部結構。Snoop開啟Snoop 程式,它是以一個工具列形式出現(如下圖)。接下來開啟一個經典WPF 應用程式Expression Blend 4(下文簡稱:EB4), 點擊“重新整理”按鍵即可看到Snoop
Time of Update: 2017-02-28
一個複雜的項目往往是由成千上百的元素構成。如何迅速定位元素對於開發人 員來說非常的重要。要做到這一點,其實並不難。在VS中可以通過HTML標記導航 器來實現。現在主要的問題就是開發人員的一個習慣與經驗問題。筆者雖然不能 夠說是這方面的專家,但是也蠻有心得的。在這裡就跟大家分享一下。一、最常見的兩類元素定位。在VS項目開發中,有兩類比較特殊的、也是用的最頻繁的元素。一是父子項目 ,如td與Table,td是子項目,Table是父元素。通過VS 的標記導航器,可以從當
Time of Update: 2017-02-28
有資料,有真相,相信大家在平時的工作或學習過程中,都需要比較幾種不同方法或實現之間的效能 差距。在這些時候,往往就需要我們不斷地建立Stopwatch,開啟,關閉,然後列印時間。這種一遍又一 遍的重複終有一天會讓人忍無可忍,因此如果能有一個“標準”的效能計數器,那應該可以讓生活輕鬆許 多。這個效能計數器不用複雜,夠用就好;也不需要考慮擴充性,要擴充時直接修改代碼就夠了;同樣不 需要考慮輸出格式,直接列印在Console就行。在上次的.NET技術大會中,Jeffrey
Time of Update: 2017-02-28
最近在項目中,遇到了一個需要在遠程監視自動運行軟體的即時情況的例子。因為MS面向服務方面有 WCF,而且看了一些資料,覺得WCF比較適合這個應用。因此決定用WCF來實現這個功能。首先,先說一下具體的應用,監控,顧名思義,有兩個方面的意思,一方面是”監”,也就是遠程要 能即時查看終端的各種情況。這裡其實指的就是被監控的要能主動的,即時的向遠端控制端發送自己的情
Time of Update: 2017-02-28
從最原始的編譯器,逐漸到 Shell 命令組合、Make工具,到現在的針對性 Build 工具,Rake、Ant、MSBuild,甚至於 PowerShell 這樣的工具;都為我們 軟體開發以及系統管理做出了貢獻,我甚至不能想象幾十年前使用編譯器產生程 序的複雜步驟(其實就是把 makefile 拆開,相當恐怖)。探討 Make、Ant 以及 MSBuild 無太多意義,甚至從純技術和擴充性上來說, 我認為 MSBuild 弱於 NAnt,但是軟體並不是這麼簡單,之所以深研 MSBuild,
Time of Update: 2017-02-28
Microsoft Sync Frameworks簡稱MSF,是一個綜合的同步平台,MSF支援應用程式,服務,裝置的線上以及離線同步。MSF主要有以下幾個組件組成:* Sync Services for ADO.NET: 同步ADO.NET的資料* Sync Services for FeedSync: 同步 RSS 和 ATOM 種子* Sync Services for File Systems: 同步檔案和檔案夾* Sync Framework Core Runtime:
Time of Update: 2017-02-28
在WinCE或者Windows Moblie開發中常常把大量的批處理工作提交給背景工作處理序 (Worker Thread)進行,當批處理工作完成時,或者該進程發生失敗以及異常的 時候需要通知介面進程(UI Thread)進行同步。(PS:有時候同步的是兩個 worker thread,而不是UI Thread,這由具體應用來決定。)這時候往往需要等 待事件。。NET Framework 提供的等待事件封裝在System.Threading.WaitHandle 裡面。但是。NET
Time of Update: 2017-02-28
1. assembler 和 compilerassembler 彙編器,一般用於組合語言,如本書的ILAsm。動詞形式為 assemble,翻譯為彙編。compiler 編譯器,一般用於進階語言,如C#等。動詞形式為compile,翻譯為 編譯。原書中,作者對這兩個詞是有所區分的。2.assembly 程式集。很多人常常會與module(模組)混淆,以至於分不清哪 一個才是真實存在的。 沒辦法,Visual Studio預設產生單模組程式集,而多模組程式集則需要命令列工
Time of Update: 2017-02-28
雖然詳細地討論視頻和3-D超越了這本書的範圍,但是獲得這些特徵的支援是值得的。視頻由MediaElement類型支援。這個元素可以被添加到UI樹的任何地方。簡單的設定它的Source屬性 以關聯到它要播放的視頻流,如樣本7-49所示。樣本7-49<MediaElement Source="C:\WINDOWS\system32\oobe\images\intro.wmv" Stretch="Fill"
Time of Update: 2017-02-28
WPF極易建立可視化的極好的應用程式。它提供了十分豐富的繪圖能力,而且 用來充分開發當今顯卡的能力。這就支援設計者建立複雜的設計和使用動畫,使 UI比以往更加容易蘇醒。WPF的圖形架構不僅適用於開發人員。WPF中圖形支援的主要方面是它的深層次 綜合其餘的編程模型。它易於添加圖形化元素到應用程式的一部分中,而不用困 惑於編程技術的改變——需要很多使用者介面技術。由於WPF是一種表現技術,圖形是一種重要的和實質的一部分架構。單獨使用 WPF圖形化能力填充整本書—&
Time of Update: 2017-02-28
今天無意中看到這一篇文章Linq beyond queries: strong-typed reflection,發現Linq除了查詢還 可以用於其它方面,這篇文章裡面主要介紹了如何通過Linq來實現強型別的反射。通常在使用反射的時候,如果不小心把方法名稱寫錯或者參數類型不符,運行時就會拋出異常。一 般來說我們會這樣寫代碼來獲得MethodInfo:MethodInfo mi = typeof(MyTest).GetMethod("TestFunc",new Type[]{
Time of Update: 2017-02-28
命名樣式非常有用,當你得到一組屬性並應用到特點的元素上。然而,如果 你想要應用一個統一的樣式到所有確定元素類型的執行個體,設定TargetType而不用 一個Key,如樣本5-16所示。樣本5-16<!-- no Key --><Style TargetType="{x:Type Button}"> <Setter Property="FontSize" Value="32" />
Time of Update: 2017-02-28
在PDN順利執行了啟動邏輯後,就進入Application.Run(new MainForm(arg))了,接下來我們一起來 看看Main裡面有什麼奧秘。進入MainForm類,發現該類繼承自PdnBaseForm類,而這個基類的注釋裡,說明了該基類用於修複 Form類中透明度不能為1.0的bug,那麼我們之後再看,還是先看看MainForm(string[])建構函式。在該建構函式中,一進來先是檢查啟動參數。(如何使用啟動參數啟動PDN?這裡提供一個比較簡單 的方法:進入CMD(命令列模式),
Time of Update: 2017-02-28
說在,開篇之前在.NET世界裡,我們常常聽到的一句話莫過於“System.Object是一切類型的根,是所有類型的父類”,以至於我在《你必須知道的.NET》8.1節 以“萬物歸宗:System.Object”這樣的title為System.Object授予至高榮譽。所以,基於這樣的觀點就有了下面這句“介面是否也繼承於System.Object?”,事實上這正是今天在技術群裡小小討論的一個插曲。 1
Time of Update: 2017-02-28
作為一個樣式如何使其在WPF使用的例子,,讓我們看一下TTT簡單的實現, 如樣本5-1。樣本5-1<!-- Window1.xaml --><Window x:Class="TicTacToe.Window1" xmlns="http://schemas.microsoft.com/winfx/avalon/2005"
Time of Update: 2017-02-28
目前為止,你已經看到一些樣本將控制項綁定到一個單獨的對象。然而,更複 雜的使用是綁定到一個對象列表。例如,想象一下,我們的對象資料來源可以建立 一個新類型表示Person對象的列表,正如樣本4-19:樣本4-19using System.Collections.Generic; // List<T>namespace PersonBinding { // XAML doesn't (yet) have a syntax // for generic class