Browse by Tags

MicroHttpServer - 用100行C#寫一個HTTP Server
有個點子,想在WinForm上跑程式模擬出Web Server功能,讓Browser或程式可以透過HTTP協定與其溝通。既然想到,就動手做看看囉! HTTP Server絕大部分的核心功能,其實都可用.NET搞定: 用 TcpListener 接受特定Port連入的TCP連線,取得 NetworkStream ,以StreamReader、StreamWriter讀取及寫入資料... .NET BCL 真是應有盡有!相較之下,以前那種基礎元件跟函式庫都得自己張羅的時代,只能用茹毛飲血來形容。 有了BCL的加持...
CODE-一個陽春但堪用的Silverlight XML文件檢視器
寫了一個很簡陋但可用的XML文件檢視器,一方面是專案剛好有需求,另一方面旨在強迫自己盡快熟悉Silverlight的開發。 這個Silverlight小元件可以嵌在網頁中檢視XML文件,各節點可展開收合,並提供XML原文對照。 Silverlight程式碼如下。其實只是借用Silverlight的TreeView控件,XML原文對照則推給ToolTipService的現成功能: using System; using System.Net; using System.Windows; using...
Posted 21 July 2010 08:16 AMJeffrey | with no comments
Filed under: ,
筆記-讓ASP.NET TreeView可以透過Javascript新增節點
同事在網頁上用了 ASP.NET TreeView控件 ,但專案規格中需要由Javascript端完成新增節點的動作,很不幸地,這不是ASP.NET TreeView內建支援的功能。 如果時間充裕的話,我會建議改用jQuery TreeView Plugin,較符合大量Client端客製的需求,但因時程迫在眉睫,且只差這個小功能,所以大家不要考究"破解"ASP.NET TreeView前端設計的意義,把它想像成打破水缸救人就好。 寫完這段程式,等同於小小地破解ASP.NET TreeView前端HTML與Script設計...
CODE-以jQuery實作側邊滑入選單
今天接到的挑戰是做一個側滑入鏡的選單,點選其中的項目後會關閉選單並執行指定的動作。 花了十來分鐘用jQuery的animate()功能完成粗坯,為了怕未來移交時自己忘光光,索性PO文做個記錄: < html xmlns ="http://www.w3.org/1999/xhtml" > < head > < title > Simple Slide Menu </ title > < script src ="http...
反白圖檔做環保
網友山姆先生問了一個 有趣 問 題 : 如何在Excel插入(或複製貼上)時將圖片反黑,因為經常會複製一些類似Dos的黑底白字畫面,列印時相當浪費印表機碳粉,很不環保... 這個需求其實不少螢幕擷取工具已內建了現成功能,例如: SnagIt 雖然已有工具,但畢竟還是要幾個操作步驟才能搞定。想了一下,其實應用先前 修正VS2010剪貼內容 展示過的剪貼簿 篡改 修改技巧,配合GDI+豐富的圖形處理功能,自己寫應該也不難。再加上寫程式為環保貢獻心力是很有意義的事,所以我索性當成題材小練了一下武功。 以下程式我是寫成Console...
Posted 29 June 2010 09:01 AMJeffrey | 2 comment(s)
Filed under: ,
CODE-自動產生對應Javascript物件的.NET類別
Abstract : This is a code generator to declare reflected .NET class of Javascript object using JSON.NET JObject features. 這是跟同事在討論系統架構時冒出的議題... 網頁前端將使用者輸入結果組裝成結構單純的Javascript物件,一個欄位對應一個屬性,但有些欄位如電話、地址等可能有多筆,故屬性型別除了字串、數字外,也有會有電話號碼物件陣列,電話號碼物件則包含國碼、區碼、號碼三個屬性...
Posted 06 June 2010 11:01 AMJeffrey | with no comments
Filed under: , ,
CODE-使用JSON.NET處理動態物件屬性
之前在文章裡 提過 .NET內建兩種JSON轉換工具: JavaScriptSerializer及DataContractJsonSerializer。不過,它們都基於一個假設--"JSON轉換對象是事先已知的Class"! 在某些狀況下,前端所傳回的JSON字串是開發階段無法完全掌握的。 舉個極端的例子。在Javascript裡可用以下寫法搞出一個你做夢都想不到的物件,轉成JSON傳到後端: var o = {}; for (var i = 0; i < 10; i+...
Posted 05 June 2010 09:48 AMJeffrey | with no comments
Filed under: ,
CODE-使用OpenXML SDK讀取docx中的表格內容
試了用 OpenXML SDK 讀取docx中的表格內容,發現挺直覺易用的。基本上取得文件的Body後,透過Elements<T>可以取得Table、TableRow、TableCell等組成,從TableCell中找出Paragraph再取其InnerText,就可得到儲存格的內容。 簡單示範如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using DocumentFormat...
Posted 01 June 2010 09:06 AMJeffrey | 1 comment(s)
Filed under:
筆記-自訂Silverlight 3檢核邏輯(同場加映統一編號檢核)
Silverlight有個深得我心的設計--TextBox等輸入元素已內建了驗證失敗顯示。 如上圖,當輸入結果不符合預先指定的檢核邏輯時,TextBox會出現紅框、右上角還多個小三角形,點擊後會以動畫浮出檢核失敗的說明訊息(配置時,TextBox右側最好保留一些空白,以免訊息被裁掉;若右側完全無空間,失敗說明會出現在左側),頗為直覺簡潔。 TextBox要如何知道檢核規則? Silverlight巧妙地把它跟Binding(有人翻繫結,有人說綁定,我還是習慣直接說Binding。[ 參考資料 ]...
CODE-XML資料的整併轉換範例
為了開發地址輸入控件,需要台灣地區郵遞區號及地址路名的基本資料。中華郵政網站提供了完整的3+2碼式郵遞區號對照表 可供下載 ( 3+2郵遞區號資料XML檔(自解壓縮檔) 98/11 ),是絕佳的權威資料來源: < NewDataSet > < zip32 > < zipcode > 10058 </ zipcode > < city > 台北市 </ city > < area > 中正區 </ area >...
Posted 20 May 2010 03:38 PMJeffrey | with no comments
Filed under:
CODE-使用Outlook VBA列出所有人員信箱
需求是這樣的,我想出一份清單,列出所有公司同仁的Email清單,以校正資料庫中的記錄是否有誤。爬了文,發現有好幾種做法可以實踐這個需求: ADSI、WebDAV、 Get-GlobalAddressList PowerShell cmdlet... PowerShell cmdlet應是Exchange 2007時代解決此類問題的王道,不過由於必須在Exchange主機上執行,得協調有管理權限的同事代勞。心念一轉,既然Outlook可以看得到全公司的人員信箱,就應可用程式取出來。 拼湊了一下,程式還挺好寫的...
Posted 08 May 2010 08:46 AMJeffrey | 8 comment(s)
Filed under:
CODE-檢查伺服器時間同步
最近因為伺服器時間不同步,造成資料庫記錄時間基準不一,形成困擾。 理論上同一Domain下的主機都應會自動同步時間,但實務上偶爾就是會有出鎚的狀況。為了能快速掌握時間誤,我寫了以下的工具,可自動比對多台主機時間,將之整理成一張網頁報告,以便能快速找出伺服器時間不同步的問題。最終產出如下: 程式的運作原理是以 多執行緒 方式透過 NetRemoteTOD API 同時向多台主機取得時間。誤差判定是以計算"收到結果時間"與"結果內容時間"間差異求得(這不算精準的衡量做法...
Posted 23 April 2010 10:01 PMJeffrey | 2 comment(s)
Filed under: ,
CODE-LINQ to SQL-讀取資料時略過部分欄位
依照資料庫的效能原則 -- 進行SELECT查詢時,應只選取必要欄位,選取欄位數愈少愈好。 以SELECT * FROM Attachment為例,假設資料有1萬筆,其中還有個Content欄位存放檔案的二進位內容,若平均檔案大小為1M,這個查詢動作將會引發10GB的磁碟機存取及網路傳輸量。如果我們的目的只不過想出一份檔案名稱及寫入日期的清單,那就千萬別這麼做,請以蒼生為念: SELECT FileName, CreatedDate FROM Attachment就成了! 在LINQ to SQL裡...
Posted 09 April 2010 08:00 AMJeffrey | 4 comment(s)
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: ,
更多文章 下一頁 »

搜尋

Go

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

Tags 分類檢視
關於作者

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

文章典藏
其他功能

這個部落格


BlogLook Score and Rank

Syndication