[SQL] 將關聯資料彙整成單一欄位並傳回的小技巧

今天在設計 Master-Detail 顯示畫面時, 面對煩雜的關聯資料, 一時突發奇想, 然後隨口問了公司的 DBA 老大, 想請教他有沒有什麼想法, 結果竟然有解法, 而且異常的簡單! 所以就有了這一篇文章的出現。(順便說一下, 對一個沒有時間去鑽研資料庫的開發人員而言, 公司裡有位 DBA 是件蠻幸福的事情)...

...繼續閱讀 »

[入門] 給 ASP.NET 新手的建議 - 關於網頁生命週期

我當過電腦講師、寫過不少文章、也在國內外各個 ASP.NET 討論區轉戰了好幾年, 接觸過無以數計想學網站設計的新手或學生。在這麼多人裡面, 我大致上可以歸納出一種或少數幾種性質蠻接近的族群, 這些人有共同的特色、遇到相同的問題、也有相同的盲點。我現在要在這裡給這些人提供幾點小小的建議。


這些人有個共同的特色, 那就是不完全清楚網站運作的基本邏輯。我時常喜歡打個比方: 以電視 (尤其是陰極射線管的電視) 為例, 我們在看電視時, 總以為電視上的圖像總是永遠是連續的, 但其實電視的畫面是從上到下、從左到右一點一點畫出來的, 每秒畫三十幀 (略估), 然後靠畫面上螢光物質的暫時殘留現象, 讓人眼 (其實人眼也有視覺殘留效應) 看不出來它其實是每秒三十次一直重畫的...

...繼續閱讀 »

在 Visual Studio 建立資料庫專案

我從很久以前就對 Visual Studio 中新加入的資料庫專案範本感到很有興趣; 但是一來我並不熟資料庫, 二來工作上也用不到, 所以從來沒有真正較深入地研究它, 只有嘗試過建立幾個測試專案, 然後被搞得灰頭土臉, 被迫放棄。但是最近由於工作上突然有了一點變化, 讓我回頭來思考在原來的專案中加上一個資料庫專案的想法, 所以就重新把它又拿來研究一番...

...繼續閱讀 »

在 VS2013 Preview 中使用 Scaffolding 快速建立 CRUD 網頁

在 VS2013 Preview 中, 我們可以透過它的 Scaffolding (支架) 功能在 MVC 專案中快速建立一整套的 CRUD 網頁, 不用寫一行程式碼。甚至, 它已經內建了 Bootstrap 框架, 這使得我們甚至不需要具備美工能力, 也能設計出比以前漂亮得多的網頁...

...繼續閱讀 »

ASP.NET 和 VS 2013 新功能彙整

微軟在近日 (2013/6/26) 公開了最新的 Visual Studio 2013 Preview (預覽) 版本; 我在前幾天的發文中也有提到過。不過, 到底這個最新版本有什麼不一樣之處? 微軟又為什麼在短短一年之後, 再度推出 Visual Studio 的新版本? 由於現在的資訊都不充份, 我想, 唯一, 也是最好的答案, 恐怕也只有 Scott Hanselman (現任微軟 Azure & Web Tools 的 Principal Community Architect 兼書籍作者) 能夠回答你了...

...繼續閱讀 »

在 ASP.NET Web Form 專案中加入 Bootstrap 套件

Bootstrap 是由 Twitter 所開發的一個免費的網頁框架, 它提供了許多從基本到進階的 CSS 和 JavaScript 功能, 讓網頁開發者可以很快速地把網頁架起來, 同時還兼顧了還算不錯的美感。通常, 網頁設計師不會、也不懂得美工設計, 所以我們如果只是很單地把網頁建立起來, 很不幸的, 這個網頁通常不會跟「美觀」這兩個字有交集。但是有了 Bootstrap, 你的網頁很容易就能讓人為之驚艷 (尤其是跟之前的做法對比的話)。
當然, 我不是說 Bootstrap 從此會讓美工人員丟掉工作。我相信美工人員也會感謝 Bootstrap 的存在, 這樣至少可以讓網頁在進行 layout 時省去一些功夫, 能夠早一點下班。
其實 Bootstrap 的應用方式並不難, 但是對於完全沒有概念的人, 仍然存在著一點門檻。在這裡, 讓我花點篇幅解釋一下...

...繼續閱讀 »

JavaScript 字串處理效能分析

作為一個前端語言, JavaScript 天生就註定要比其它任何一種語言要處理更多的字串。如何才能更有效地處理字串, 想必也是每個程式設計師最關心的問題。最近, 我看到有人很堅持地在程式中把個別的字串以陣列元素方式宣告, 然後把它們 join 起來, 說這樣才能達到最佳的效能, 其速度遠比使用字串的加號運算來得快! 起初我也半信半疑, 直到我寫了一個程式來仔細分析為止...

...繼續閱讀 »

從 LinkedIn 密碼外洩事件看網站的保密策略

根據 Macworld 在 2012/6/6 所發表的一篇文章, 一位俄羅斯駭客聲稱已駭進 LinkedIn 的資料庫並盜走帳號資料, 然後把六百五十萬 (實際數字為 6,458,020) 個密碼公布在一個俄羅斯的論壇中作為證據 (僅公布密碼資料, 並無關連的帳戶名稱及其它資料)。這些密碼事實上並不是明文, 而是已經過 SHA-1 (SHA 是 Secure Hash Algorithm 的縮寫; SHA-1 是在 1995 年發表) 方式加密的...

...繼續閱讀 »

[ASP.NET] 字型單位的轉換

當我們在設計網頁時, 對於文字所使用的寬度多半使用 Pixel 或者 Em 來表示。不過我記得在更早以前是廣泛地採用所謂的 Point; 這是跟印刷息息相關的單位, 但是近來已經不太使用了, 尤其是在網頁設計上...

...繼續閱讀 »

[入門][ASP.NET] 在 VS2010 中建立 New Web Site 與 New Web Application 的差異

差不多每隔一段時間, 就會看到有人又重覆的詢問這個問題, 或者雖然沒有問到這個問題, 卻不停的懷疑為什麼在某些網站可以做的事情, 在另一個網站上面卻不行。其實這些問題通通必須回歸到一個最基本的問題, 那就是請你恢復一下記憶, 你是用什麼方式建立你的網站的...

...繼續閱讀 »

[ASP.NET] 離開表單時向使用者確認

當我們在網頁上設計了表單, 讓使用者填寫資料, 使用者通常有很大的機率會因為各式各樣的原因而意外地跳出頁面。如果表單很簡單, 或者使用者根本還沒有填寫什麼資料, 那麼使用者就算不小心離開頁面, 也不會有什麼損失。但是如果使用者已經填寫了很多資料 (例如姓名、地址、電話等等), 但是在他按下確認按鈕之前, 卻不小心按到上一頁、下一頁、關閉分頁、關閉視窗等按鈕, 那麼不管他使用何種方式回到這一頁, 他曾經填寫的資料可能都無法救回來。除非你只寫網頁給別人用, 自己從不上網, 否則我相信你一定也遇過這種切身之痛 -- 花了幾十分鐘, 甚至幾個小時打進去的文章, 卻由於一個不小心的動作, 讓自己辛苦的成果在瞬間徹底消失了! 不瞞你說, 我自己遇過太多次此種痛苦的經驗, 導致我曾有一段很長的時間, 即使只是填入自己家裡的住址而已, 我也一定要開啟 Notepad 來打字(而且還要隨時存檔), 打完之後再把文字複製貼回網頁...

...繼續閱讀 »

Johnny's ButtonGen - 專供網頁設計人員使用的按鈕設計小工具

這個小工具是我使用 C#, Winform 在 Visual Studio 2010 上面開發的, 其主要目的原本是寫來專供自己使用, 但是一不小心把它做得似乎完整了一點, 覺得應該也可以拿來貢獻給其他人來用用, 所以就繼續稍為給它加了一點工, 順手連多國語言也做好了 (雖然目前只有繁體中文和英文而已, 但是框架是 OK 的, 可以擴充)...

...繼續閱讀 »

運用 CSS 讓過長文字以省略符號取代

在某種情況下, 我們可能需要把一段過長的文字從中截斷, 並在截斷處以省略符號 (...) 取代, 表示這段文字其實尚未結束, 只是被省略。如果你的文字是從資格庫中取得, 那麼你可以從資料庫取出時就載斷字串並加上簡略字元後傳回; 然而, 如果你不想把原始資料真的截斷...

...繼續閱讀 »

[ASP.NET] 將預設的會員資料庫以 SQL Server 取代

我們知道, 從 ASP.NET 2.0 開始,我們可以使用內建而且現成的 Membership、Roles、Profile 等等功能。而且如果你使用 Visual Studio 進行開發時, 你可以利用 ASP.NET 組態工具來建立 app_data 資料夾下的 aspnetdb 資料庫,裡面就是上述功能所使用的資料庫檔案。不過在上述情況中,你必須在本機上安裝有 SQL Express 來作為資料庫引擎。然而,畢竟 SQL Express 只能使用於小網站,其功能無論如何都不能與 SQL Server 相比擬。那麼你要如何將資料庫轉移到 SQL Server 而非 SQL Express 呢...

...繼續閱讀 »

使用 DataSet 建立一個三層式架構的資料存取網頁

在上文中作者示範了一個使用 VS2008, 利用 DataSet/ObjectDataSource 以建立 3-tier 的資料存取網頁。重點在於作者是使用螢幕錄影的方式進行教學的, 十分清楚易懂。在微軟又發表一大堆新技術的今天(像 LINQ、Entity Framework 等), 我們仍能看到使用傳統 ADO.NET 方式來存取資料的教學, 這已經愈來愈不容易了...

...繼續閱讀 »