2015/12/9

怪異的「找不到型別或命名空間名稱」錯誤

這是一個不容易理解的錯誤(但是很容易解決)。直到現在, 我還是不了解為什麼 VS 會出現這種怪異的「找不到型別或命名空間名稱」錯誤訊息

2015/12/2

[VS] Visual Studio 中發生 No EditorOptionDefinition Export Found 問題的解法

今天將我的 VS2013 更新成 Update 5 之後, 竟然發生了如下的錯誤:

No EditorOption Definition export found

MVC 中「找到多個與名稱為'Home' 的控制器相符的型別」問題

今天在建立一個新的 MVC5 專案後, 突然發生了「找到多個與名稱為'Home' 的控制器相符的型別」的奇怪問題...

MVC 中「找到多個與名稱為'Home' 的控制器相符的型別」問題

2015/8/19

如何找出已移除的程式

最近我把 VS2015 RC 從機器上移除掉, 但是移除後, 我突然想看看 uninstaller 到底都移除了什麼東西。結果, 在控制台找來找去, 始終找不到能在哪裡看到移除記錄。最後, 終於在網路上找到幾個解法。我把一個無需於事前安裝任何軟體的解法列在下面, 做為備忘, 也供讀者們參考

2015/8/3

[MVC] MVC5 的 AutoComplete 筆記

ASP.NET MVC 的版本雜沓, 我時常遇到過去慣用的程式碼在新版本中突然無法使用的情況。最近想在一個案子裡套用許久未用的 AutoComplete 功能, 但是當拿出舊程式來用時, 卻發現完全無效! 翻了幾本書, 發現都是舊的, 情況完全一樣。情急之下, 上網東查西查, 結果發現有時不太看得出來網路上的範例到底是新是舊, 而且也都全部無效。直到現在, 我還是搞不懂, 為什麼以前天天在用的程式, 什麼時候突然不能用了, 而且我真看不出來到底是哪裡被改了。這幾年間, 似乎有什麼東西沒有 follow 到

2015/7/30

[C#] 屬性中的屬性: 自訂 Attributes

不知讀者們有沒有遇到過如下的狀況? 假設你需要從某個 CSV 檔案中匯入資料; 我們已經知道每個欄位是什麼。然後你為這份資料建立了類別, 也為每一個需要的欄位建立了屬性。當然, 你也一定知道每一個欄位是第幾欄, 但是 Visual Studio 並不知道。你必須每次都去查, 才能知道哪個欄位是哪一欄。假設 CSV 檔案內容如下

2015/7/21

[VS] VS2015 新功能簡介

對 Windows 開發者而言, 今年 (2015) 七月真是熱鬧的月分。首先, Visual Studio 2015 在 7/20 正式發行, 而 Windows 10 也緊跟著在 7/29 正式發行。這次的 Visual Studio 有以下幾個相關的版本

2015/7/13

[C#] C# 6.0 中新字串格式化功能簡介

在 C# 6.0 中新增了方便的 String Interpolation 的功能, 它能進一步將原本的 string.Format 功能簡化。我們現在就可以使用 Visual Studio 2015 來做測試

2015/5/24

[Regex] 正規表示式的應用

許多人很害怕 Regular Expressions, 除了它的確不好學之外, 主要是因為大家普遍不太了解它能拿來做什麼。所以我在這裡要陸續舉出一些實際上的應用範例, 向讀者們示範 Regular Expression 在實際生活中能幫我們解決什麼問題。依照我的慣例, 當我想到什麼, 就會在原來的文章裡直接修改, 不另做通知, 也不會再寫另一篇新的文章

2015/3/11

[CSS] 以 CSS 自製物件背景

CSS3 所提供的許多新功能真的可以幫我們節省許多時間與精力。對於我這種沒有美工基礎的程式設計師來說, 如果想幫 HTML 元件做個可以看的背景圖, 雖然不是辦不到, 但是如果自己畫, 可能花了許多工夫, 還是覺得難看; 如果上網路去找, 除了隨時有侵權的疑慮, 同樣要花掉許多時間。後來轉念一起, 為何不使用 CSS 本來就提供的功能? 東西是自己做的, 高興怎麼用就怎麼用, 改起來也容易。

首先, 先來看看成果, 再來做技術性的說明:

2015/1/23

[JavaScript] 檢測瀏覽器支援度小技巧

想要知道某個功能能不能在瀏覽器中使用, 除了在網路上到處搜尋以外, 另有一個很簡單的方法。如下所述

2015/1/7

[ASP.NET] 找不到方法驚魂記

對於寫網頁的朋友而言, 或許和我一樣, 最害怕的問題就是, 在冗長的開發過程中解決了很多疑難雜症, 一路打通關之後, 卻在終於要發行到目標網站時, 才發生問題。這就像千辛萬苦爬上了 101 的頂樓, 才發現門竟然打不開

2014/12/14

[C#] C# 建構子多載技巧

今天遇到一個以前從未遇到過的小問題。我想把一個類別的建構式做成多載型式, 卻突然發現這個看起來很小的問題, 似乎並沒有直覺的做法

2014/11/6

[入門] .Net 非同步處理與同步機制全解析 (三)

.Net 4.5 新增的 Async/Await 功能也出來一陣子了, 我相信有許多人都已經對它相當熟悉。不過我在本文中要把重點往回拉一點點, 談一下 .Net 中早已提供的非同步功能。坦白說, 這才是我一開始想寫的東西。

在「[入門] .Net 非同步處理與同步機制全解析 (一)」一文中, 我們已經看過以手動方式叫出執行緒以進行非同步作業的方法。在這裡, 我要介紹以委派方式以進行非同步作業的方法

2014/10/29

當隨機不再隨機的時候

前幾天, 我寫了一個 Unit Test, 用來測試一個非同步的資料庫寫入方法。如果我一次寫入一百筆, 那麼結果很順利; 寫入兩百筆, 也很順利; 一路測到一千筆, 都很順利, 都能夠在一秒之內成功結束。直到測到一千一百筆, 突然這個 Unit Test 執行不完了。我看到測試總管中狀態條不停地跑, 完全沒有停止的跡象, 直到我把測試取消為止

2014/10/23

解決 .Net 日期與 SQL 日期的匹配問題

雖然這是一個陳年的老問題, 我在實際應用中卻從來沒有給我帶來麻煩 -- 直到今天。當然, 這也是一個陷阱; 如果我不是以前就知道有這個問題, 我恐怕會百思不得其解。

這個問題很簡單, 相信許多人都有經驗: 把一個日期欄位寫進資料庫, 再取出來時, 發現兩個日期並不相等。它的陷阱在於, 這兩個日期可能有完全相同的年、月、日、時、分、秒, 但是寫進去 SQL 之後, 再讀出來, 它的 millisecond 值卻不同。Ticks 也不同。這個問題使得我的單元測試始終過不了

2014/10/6

[Winform] 自訂 app.config 區段

在撰寫 Windows Form 程式時, 我們時常會在 app.config 中放入一些參數。如果把它們存放在 appSettings 區段中, 那麼我們就可以很方便地使用 ConfigurationManager.AppSettings["MyKey"] 取出。但是, 如果我們要放進去的資料稍為複雜一點, 操作起來就沒那麼直覺。例如, 我們可以將鍵值以 a-XXX, b-XXX 方式命名, 再使用字串處理方式分出群組。

一般而言, 我們通常不會在 app.config 中存入大量資料, 也不會存入太複雜的資料 (否則你應該使用更適合的格式檔案, 例如 XML 或 JSON), 更不會進行大量且持續的存取, 所以上述做法是 OK 的。然而, 如果你和我一樣有奇怪的潔癖, 或許你也會覺得上述做法有點 low。我們就是要去找最有彈性的做法 (明明就用不到)。

2014/9/29

[ASP.NET] 讓游標停駐在文字框最後一字

最近遇到一個小需求。原本我為了讓使用者方便, 在不使用 TimePicker 的情況下, 讓他們可以手動方式輸入日期時間 (若使用 DateTimePicker 之類的工具, 效率會減少十倍)。然後我又幫他們自動加入當天的日期 (因為在大多數情況下, 他們需要輸入的日期都是當天, 但是都不是現在時間), 例如 "2014/9/29 "。接著, 我又下了 autofocus 屬性, 當網頁載入後, 讓這個文字框自動成為焦點, 因為這是第一個必須輸入的欄位。如此, 他們只要輸入時間的部份就行了。

問題是, 他們每次要輸入時間時, 都必須再按一下滑鼠游標或者 End 鍵, 才能讓文字游標指到日期的後面, 這樣才能開始輸入時間。雖然這只是一個小工夫, 但是總讓人覺得討厭! 難道不能讓游標自動跑到最後面嗎?

2014/9/12

[Winform] 在 RichTextBox 中著色的偷懶小技巧

在寫 Windows Form 時, 如果不花錢的話, 那麼除了 TextBox 這個文字控制項, 就只剩 RichTextBox 可用了。可惜的是, 雖然都是 RichTextBox, Winform 裡的 RichTextBox 卻不像 WPF 的 RichTextBox 那樣可以賦予方便的屬性。因此, 即使只是對 RichTextBox 裡的文字做著色這般簡單的動作, 都不見得容易, 也不直覺

2014/7/30

[ASP.NET] Server Exception Log 速成

在各式網站中採用了一些 Log 套件之後, 我覺得其實有時候我們不一定需要那麼多複雜的功能, 或許我們只需要偶爾攔截並記錄一些例外錯誤而已。這時候, 我會推薦大家使用最簡單的方法, 也就是把網站中出現的所有例外情況都記在 Server 的 Event Log 裡面

載入中…