7/9/2010 9:44:52 PM

[RUN! PC] 2010 七月號 - 結合檔案及資料庫的交易處理

Microsoft.NET | RUNPC | Transactional NTFS | 技術隨筆 | 我的作品 | 物件導向 | 作業系統

 

IMG_3972

再次感謝編輯大人 :D,Transactional NTFS  #2 也刊出來了!

這篇是延續上一篇,進一步的介紹 TxF  如何與 TransactionScope 互動,讓你可以結合檔案系統及資料庫的異動,變成單一交易的技巧。

由於TxF還沒有正式在.NET Framework裡支援,所以這篇最後也介紹了 AlphaFS,可以簡化應用時的障礙。AlphaFS 是一套想要取代 System.IO.* 的類別庫,它支援了許多 NTFS 的進階功能 (像是 VSS、HardLink 等) 的功能,而 TxF 也在範圍內,透過它就不用再像 上一篇 一樣,辛苦的用 P/Invoke 了。

 

這篇提到的範例程式可以在這裡下載。有任何意見也歡迎在這裡留話給我 :D



5/5/2010 1:51:00 AM

[RUN! PC] 2010 五月號 - TxF讓檔案系統也能達到交易控制

Microsoft.NET | RUNPC | Transactional NTFS | 技術隨筆 | 我的作品 | 物件導向 | 作業系統

 

image 

五月號就刊出來,還真有點意外 :D,這次稿件趕不及,晚了幾天才交出去,編輯大人還是讓我上五月號啦,真是感謝 :D

之前執行緒的系列,是打算把各種應用執行緒的演算法都介紹一下,寫了五篇就沒靈感了。實際寫CODE的技巧倒是很多可以介紹,不過 .NET FX 4.0 出來之後,這些鎖碎的 coding 技巧又大幅簡化了,除非有特別的演算法需要 (如同之前那五篇 :D),否則還自己拿 Thread 物件硬幹已經沒什麼意義了,所以就換另一個我有興趣的主題 - Transactional NTFS 來寫。

這系列第一篇出爐了,主要就是先介紹它的觀念及如何入門,國內這類資訊還不多,我就野人獻曝寫了一篇,試著寫看看了。較鎖碎的實作技巧 (如 P/Invoke) 我會直接貼 BLOG,而較完整的概念及實作探討等等就會整理成文章拿來投稿了。

再次感謝各位支持啦,底下有範例程式跟一些參考資源的 LINK,需要的歡迎取用 :D

 

範例程式:

  1. Visual Studio 2008 Project (C#) File: TransactionDemo.zip

 

參考資訊:

  1. AlphaFS: Brining Advanced Windows FileSystem Support to .NET
    http://alphafs.codeplex.com/
  2. MSDN magazine (July 2007): Enhance Your Apps With File System Transactions
    http://msdn.microsoft.com/en-us/magazine/cc163388.aspx
  3. B# .NET BLOG: Windows Vista - Introducing TxF In C#
    Part 1: Transacted File Delete
    Part 2: Using System.Transactions and the DTC
    Part 3: CreateFileTransacted Demo
  4. Code Project: Windows Vista TxF / TxR
    http://www.codeproject.com/KB/vista/KTM.aspx
  5. BLOG: Because we can
    http://blogs.msdn.com/because_we_can/archive/2005/05/18/419809.aspx
    Discussion and explanation relating to the Transactional NTFS feature coming in Longhorn, plus any other interesting anecdotes...
  6. Performance Consoderations for Transactional NTFS
    http://msdn.microsoft.com/en-us/library/ee240893(VS.85).aspx
  7. When to Use Transactional NTFS
    http://msdn.microsoft.com/en-us/library/aa365738(VS.85).aspx


4/5/2010 3:31:00 AM

[RUN! PC] 2010 四月號 - 生產者vs消費者– 執行緒的供需問題

Microsoft.NET | RUNPC | Threading | 技術隨筆 | 我的作品 | 物件導向

image 

 

隔了足足一年,趁著過年,生出第五篇了 :D,再次感謝編輯賞光啦,願意刊登我寫的題材...

這篇 [生產者/消費者] 其實是延續上一篇 [生產線模式] 而來的,生產線模式,是利用 PIPE 的方式,把工作切成各個階段同時進行。而生產者消費者,則是去探討兩個階段之間如何做好進度的協調。這篇除了講講處理的原則之外,也實作了BlockQueue來簡化這個問題。

其實更漂亮的用法,是我在 MSDN Magazine 上看到的 BlockingStream, 直接把它作成 System.IO.Stream 的衍生類別。像那些包裝成 Stream 的資料處理 (像是壓縮、加密、或是 Socket 這類),都很適合。不過一般情況下不是所有應用都能套上 Stream 的模式,因此就有了把它包裝成 Queue 的念頭,也就是這篇寫的 BlockQueue 的應用。

相關的東西其實過去也寫了幾篇,只不過 BLOG 寫的都比較瑣碎,都是針對特定主題較深入的討論,而投稿的文章就會比較完整的介紹原理及作法等等,細節就沒辦法兼顧了。有興趣的讀者可以參考一下我部落格的相關文章 :D   這期的範例程式可以在底下下載,相關的 LINK 也列在底下。

再次謝謝各位支持啦 :D


MSDN Magazine 閱讀心得: Stream Pipeline
RUN!PC 精選文章 - 生產線模式的多執行緒應用
[RUN! PC] 2008 十一月號 生產線模式的多執行緒應用
生產者 vs 消費者 - BlockQueue 實作



4/17/2009 7:51:00 PM

RUNPC 精選文章 - 運用ThreadPool發揮CPU運算能力

543 | C# | RUNPC | Threading | 我的作品 | 技術隨筆 | Microsoft.NET | [精選文章]

果然這個什麼東西都上網的年代,要三不五時的 GOOGLE 一下自己,才會知道那些網站把你的八卦跟內幕爆了出來... 不過應該沒啥週刊記者對我有興趣吧? 哈哈。在 GOOGLE 自己名字時,倒是意外發現,之前投稿的文章,又有一篇被拿來登在網站上的精選文章了 :D

特此留念一下 :D

http://www.runpc.com.tw/content/main_content.aspx?mgo=176&fid=E02

--

順便整理一下懶人包:

另一篇精選文章 [RUN!PC 精選文章 - 生產線模式的多執行緒應用]

過去投過的系列文章 (multi-threading programming using c#):

2008/11. 生產線模式的多執行緒應用
2008/09. 用ThreadPool發揮CPU運算能力
2008/06. SEMAPHORE在ASP.NET的應用
2008/04. 以ASP.NET開發同步WEB應用程式



1/16/2009 2:10:00 AM

RUN!PC 精選文章 - 生產線模式的多執行緒應用

543 | C# | RUNPC | Threading | 我的作品 | 技術隨筆 | Microsoft.NET | [精選文章]

http://www.runpc.com.tw/content/main_content.aspx?mgo=178&fid=E08

無意間 search 我自己的名字,才發現這篇文章除了投稿到 RUN! PC 之外,原來還有刊在網站上的精選文章啊...

哈哈,暗爽一下,順道貼一下 link, 讓沒看到雜誌的網友們也有機會看一看在下的作品...



11/4/2008 2:11:00 AM

[RUN! PC] 2008 十一月號

Microsoft.NET | RUNPC | Threading | 我的作品 | 技術隨筆

IMG_0208

YA! 第四篇!! :D 還是一樣要先感謝一下編輯賞光,讓我有點空間寫些不一樣的東西。

 

基本的執行緒相關的程式設計跟函式庫,講的差不多了,其實這些也沒什麼好寫的。接下來打算寫一些應用的模式,來談談有那些方法,那些設計方式才能夠有效的發揮多執行緒的優點。看了 .NET Framework 4.0 / Visual Studio 2010 的 ROADMAP,有一大部份的重點擺在平行處理,INTEL年底也要發表四核 + HT 的 CPU ( WINDOWS 會認為有八個處理器 ),軟硬體都備齊了,剩下的就是程式設計師的巧思了。

 

其實之前貼過幾篇類似主題的文章,只是這次把它統合起來介紹一下。生產線模式,如果簡化後就是 [生產者消費者] 的模式,而把它徹底一點的應用,則是上回提到 [Stream Pipeline] ..

這篇也是第一次在雜誌上嘗試說明比較偏設計概念的文章,實作比較少,很怕不合讀者的口味... 應該不會貼了就沒續篇了吧? :P 有買雜誌的記得讀者回函填一下,哈哈,也算是點鼓勵。這次範例程式也是 Console application (我不會寫太炫的程式 :P ),需要的可以點 [這裡] 下載!



9/2/2008 9:58:00 PM

[RUN! PC] 2008 九月號

Microsoft.NET | RUNPC | Threading | 我的作品 | 技術隨筆

image

感謝編輯賞光,第三篇順利刊出 :D

 

執行緒這種東西,實在不是什麼主流的文章,不過雜誌社願意刊到第三篇,真是感謝... 前兩篇分別介紹了同步機制跟旗標,這次用執行緒集區作總結,提供了綜合的應用,也對效能的影響作整理,讓讀者具體的瞭解使用前後的效能差異。

 

這次文章內提到了 ThreadPool 的應用,不過因為內容及篇幅的關係,沒有挖到 ThreadPool 本身怎麼設計。對這部份有興趣的讀者可以參考我寫的這三篇:

ThreadPool 實作 #1. 基本概念

ThreadPool 實作 #2. 程式碼 (C#)

ThreadPool 實作 #3. AutoResetEvent / ManualResetEvent

 

雖然好像沒有人因為看到雜誌才連到這裡來,不過還是要囉唆一下,看到文章有任何意見都可以在這裡留言給我。文章內提到的 SAMPLE CODE 可以在這裡下載! 這次的範例程式是 Console application,不提供直接在網頁上執行,下載回去試試吧!



6/3/2008 11:29:00 PM

[RUN! PC] 2008 六月號

Microsoft.NET | ASP.NET | RUNPC | 技術隨筆

IMG_8698 (Canon PowerShot G9)

 

運氣不錯,還有續集耶 [:D]

沒想到這些有點冷門的內容,雜誌社還願意刊... 真是太感謝了... 隔了兩個月刊出第二篇了。不過這次稿擠,最後簡介跟網址沒貼出來,讀者大概都看不到這邊吧,沒關係,看的到的就是有緣人...。

一樣,一方面只是留個紀念,另一方面讓讀者 (如果真的有的話) 有個留話的地方。文章內提到的 SAMPLE CODE 在這裡。想要線上試試範例程式的可以到 這裡 執行看看。



4/3/2008 11:23:00 PM

[RUN! PC] 2008 四月號

Microsoft.NET | 543 | ASP.NET | RUNPC | 技術隨筆

IMG_6727 (Canon PowerShot G9) - 複製

沒錯,我的文章在四月號的 RUN! PC 刊出來了,之前花了些時間在研究執行緒跟 ASP.NET 搭配起來用的技術問題,有點小心得,就整理了一下投稿了,運氣還不錯,雜誌社也願意刊出。初次投稿花了不少時間,花在重新思考 sample code 怎麼寫比較能突顯主題,圖表要怎麼畫才清楚明瞭等等瑣事上面,原來當個專欄作家 (我沒有專欄啦,只是投稿而以) 也不是這麼簡單的...

文章的內容嘛,看雜誌就知道了,這篇是留著作個紀念,同時也是讓看了這篇文章有話要說的讀者們,有個留下 comments 的地方。

文章裡提到的 sample code 可以到 [這裡] 下載,懶的抓回去執行的人,也可以直接到 [這裡] 試 RUN 看看文章裡提到的範例。

在執行這個範例程式之前,請先注意一下,IE預設只會對同一個網站建立兩個Http Connection,因此有可能會看到不一樣的測試結果。如果想要調大這個限制,請修改下列的註冊機碼,或是下載本文的範例程式,匯入[IE.reg]註冊機碼。

調整IE同時連線數的註冊機碼
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"MaxConnectionsPerServer"=dword:00000008
"MaxConnectionsPer1_0Server"=dword:00000008

相關連結: [範例程式下載] [執行範例程式] [下載調整IE連線上限的註冊檔]






精選文章

RUN! PC 文章及範例下載
2010/07. 結合檔案及資料庫的交易處理
2010/05. TxF讓檔案系統也能達到交易控制
2010/04. 生產者 vs 消費者 - 執行緒的供需問題
2008/11. 生產線模式的多執行緒應用
2008/09. 用ThreadPool發揮CPU運算能力
2008/06. SEMAPHORE在ASP.NET的應用
2008/04. 以ASP.NET開發同步WEB應用程式

如何學好 "寫程式" 系列
#1. 該如何學好 "寫程式" ??
#2. 為什麼 programmer 該學資料結構 ??
#3. 進階應用 - 資料結構 + 問題分析
#4. 你的程式夠 "可靠" 嗎?

#5. 善用 TRACE / ASSERT

安德魯是誰?

Andrew Wu | Create Your Badge

我喜歡鑽研物件導向、軟體工程及作業系統等相關技術。我會在這裡發表我的研究心得,也當作我自己的學習筆記。


Recent comments

Comment RSS