Browse by Tags

TIPS-將Manifest內嵌至EXE檔案
照著 MSDN Create and Embed an Application Manifest (UAC) 一文的說明,為.NET程式附加.manifest檔案註記為需管理者權限執行,並在Visual Studio專案屬性的Post Build Event中加入 mt.exe -manifest "$(ProjectDir)$(TargetName).exe.manifest" -updateresource:"$(TargetDir)$(TargetName).exe;#1"...
網站下載程式碼後無法編譯
從 CodePlex 下載SourceCode回家玩,Build時卻發生錯誤: The "ValidateXaml" task failed unexpectedly. System.IO.FileLoadException: Could not load file or assembly 'file:///C:\WorkRoom\WP7\3rdParty\PhoneControls\Phone.Controls.Samples.dll' or one of its...
MicroHttpServer - 用100行C#寫一個HTTP Server
有個點子,想在WinForm上跑程式模擬出Web Server功能,讓Browser或程式可以透過HTTP協定與其溝通。既然想到,就動手做看看囉! HTTP Server絕大部分的核心功能,其實都可用.NET搞定: 用 TcpListener 接受特定Port連入的TCP連線,取得 NetworkStream ,以StreamReader、StreamWriter讀取及寫入資料... .NET BCL 真是應有盡有!相較之下,以前那種基礎元件跟函式庫都得自己張羅的時代,只能用茹毛飲血來形容。 有了BCL的加持...
反白圖檔做環保
網友山姆先生問了一個 有趣 問 題 : 如何在Excel插入(或複製貼上)時將圖片反黑,因為經常會複製一些類似Dos的黑底白字畫面,列印時相當浪費印表機碳粉,很不環保... 這個需求其實不少螢幕擷取工具已內建了現成功能,例如: SnagIt 雖然已有工具,但畢竟還是要幾個操作步驟才能搞定。想了一下,其實應用先前 修正VS2010剪貼內容 展示過的剪貼簿 篡改 修改技巧,配合GDI+豐富的圖形處理功能,自己寫應該也不難。再加上寫程式為環保貢獻心力是很有意義的事,所以我索性當成題材小練了一下武功。 以下程式我是寫成Console...
Posted 29 June 2010 09:01 AMJeffrey | 2 comment(s)
Filed under: ,
Unsafe, But Fast!
想當年在初學C#時,知道C#有 unsafe 這種東西,可以解開.NET對指標(Pointer)的封印,允許像C語言一樣透過指標直接存取記憶體。對C語言沒有深厚基礎的我,模糊地知道直接存取記憶體效能較佳,卻不很是清楚它的應用時機。最近胡亂玩了一些視覺元素識別的題目,參考一些圖形運算前輩的範例程式,才訝異地發現,原來密集大量運算的場合,就是unsafe橫掃千軍的絕佳舞台。 舉個簡單的例子,假設我們在某本書的綠色書背擷取到一塊包含ISBN條碼的影像,打算透過演算法找出條碼區所在位置。由於綠色書皮與白色條碼區在顏色上有明顯區別...
Posted 19 June 2010 01:30 PMJeffrey | 4 comment(s)
Filed under:
ReflectPropertyDescriptor無法被序列化
試著用以下程式將一個有實作INotifyPropertyChanged介面的物件序列化: BinaryFormatter bf = new BinaryFormatter(); MemoryStream ms = new MemoryStream(); bf.Serialize(ms, s); 結果傳回以下錯誤: System.Runtime.Serialization.SerializationException was unhandled by user code Message="Type...
Posted 17 June 2010 04:00 PMJeffrey | 1 comment(s)
Filed under:
System.Data.OracleClient將走入歷史
印象中有看過微軟未來將不再建議使用System.Data.OracleClient,昨天無意翻到正式 宣告文 ,特別PO文整理一下。 主要考量是有很大比例的使用者,實務上用的都是夥伴廠商提供的ADO.NET Provider,一方面是配合Oracle改版的更新腳步較快,能較快用到資料庫的新功能,另一方面這些廠商都提供了不錯的軟體品質及客服支援。ADO.NET Team評估之後,認為即便繼續投注心力強化,也很難將使用者拉回ADO.NET OracleClient。(頗有"閃開! 讓專業的來"的感覺...
Posted 14 May 2010 09:49 AMJeffrey | 2 comment(s)
Filed under: ,
CODE-檢查伺服器時間同步
最近因為伺服器時間不同步,造成資料庫記錄時間基準不一,形成困擾。 理論上同一Domain下的主機都應會自動同步時間,但實務上偶爾就是會有出鎚的狀況。為了能快速掌握時間誤,我寫了以下的工具,可自動比對多台主機時間,將之整理成一張網頁報告,以便能快速找出伺服器時間不同步的問題。最終產出如下: 程式的運作原理是以 多執行緒 方式透過 NetRemoteTOD API 同時向多台主機取得時間。誤差判定是以計算"收到結果時間"與"結果內容時間"間差異求得(這不算精準的衡量做法...
Posted 23 April 2010 10:01 PMJeffrey | 2 comment(s)
Filed under: ,
C#隨堂考-object超級比一比
最近寫程式遇到的C#基本觀念問題--物件比對,原本信仰不夠堅定,就被唬住了。 特別整理一份隨堂考題給大家溫故知新,也順便確認自己信仰正確,意志堅定。 請使用大腦編譯並執行以下程式碼,回答其中10題比對測試的結果: using System; namespace ConsoleApplication1 { class Program { static void Main( string [] args) { //Integer Comparison int a = 1, b = 1; Console...
Posted 16 April 2010 03:56 PMJeffrey | 1 comment(s)
Filed under:
LINQ to SQL-當心CHAR(1)欄位比對條件寫法的效能差異
今天意外發現,LINQ to SQL在轉譯CHAR(1)欄位比對時,可能因寫法不同而產生極無效率的SQL指令! 當資料表的欄位為CHAR(1)時,在DataContext裡產生的 對應物件型別 是char,而我們直覺上可能寫成CharCol == 'A'的比對條件。但今天發現一件可怕的事... CharCol == 'A'的寫法會被轉換成極無效率的WHERE UNICODE(CharCol) = 65 對SQL查詢效能略有研究的人都知道,Func(SomeCol)...
Posted 25 March 2010 09:00 PMJeffrey | with no comments
Filed under: , ,
CODE-非同步方法之同步化及逾時機制(完成回Call版)
前天寫了一篇 非同步方法之同步化及逾時機制 ,與chicken大人討論程式碼中Polling的部分(指每隔一段時間檢查一次結果的輪詢寫法),固然邏輯簡單,但效率與精確度不優,但若被呼叫的元件本身不提供"完成後主動通知"的機制,Polling雖然討厭,卻也無法避免! 若被呼叫端在完成工作時,可透過事件回呼方式通知呼叫方,則整個局勢就改觀了! 於是索性也 提筆 敲鍵練習一番,補充"完成後會回Call"情境的做法。 如下例,我們在AsyncJobClass完成工作後...
Posted 24 March 2010 09:44 AMJeffrey | 1 comment(s)
Filed under: ,
CODE-非同步方法之同步化及逾時機制
今天遇到的小需求: 有個元件函數以非同步方式執行,透過旗標變數表示執行狀態,我想在Console Application中以同步方式呼叫該函數,等待其執行完畢程式就結束,但要有逾時中止的功能。 非同步函數的例子如以下範例中的AsyncJobClass.DoAsyncWork(),它會以另開執行緒方式執行,在5秒後將Ready旗標設為true。透用這種方式,我模擬了一個非同步執行的作業。若非同步過程發生錯誤時,AsyncJobClass會呼叫自訂OnError事件執行特定邏輯。 我寫了一個AsyncToSyncHelper實現非同步作業的同步化...
Posted 22 March 2010 09:24 PMJeffrey | 4 comment(s)
Filed under: ,
LINQ應用實例-對字串陣列元素逐一做處理
今天有個需求,要將某目錄下的圖檔清單轉成Javascript字串陣列,以方便網頁處理。例如: B:\100311\目錄下有F1.gif, F2.gif, F3.gif三個圖檔,便要產出var data = ["F1.gif","F2.gif","F3.gif"];,心血來潮,分別列出傳統組字串寫法、String.Join及應用LINQ概念的程式碼比較一番。 static void Main( string [] args) { StringBuilder...
Posted 11 March 2010 11:11 PMJeffrey | 1 comment(s)
Filed under:
Mini C# Lab 1.4 Release
The primary new feature of Ver 1.4 is batch mode ! Now you can run Mini C# Lab program as a scheduled task, no UI interactivity is needed. Here are some batch argument examples: Load and execute x:\temp\test.cs, use the output to overwrie x:\temp\log...
【茶包射手日記】不限條件選項之SQL組裝與資料庫OR運算特性驗證
在設計查詢介面時,下拉式選單是很常見的條件選取方式,而往往我們都會再加上一個"不限條件"選項,允許使用者不限制條件,列出所有項頁。舉例來說: 在設定查詢地區的下拉選單(例如: ddlArea),除了列出基隆市、台北市、台北縣、桃園縣...等各縣市Option外,常會再多一個"所有地區"選項,將Option Value設定='*',選取時表示不限定地區。在Server端,便要將這些篩選條件轉為SQL指令,如何將'*'視為不限地區...
更多文章 下一頁 »

搜尋

Go

<September 2010>
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789
 
RSS
【工商服務】
最新回應

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


BlogLook Score and Rank

Syndication