﻿# 常見的 ASP.NET 開發錯誤與一些開發技巧

1\. Typed DataSet 誤用

    在 Typed DataSet 中，在Adapter中的方法，若回傳不同的欄位數，要使用不同的DataTable，才不會常發生「無法啟用條件約束」的問題！！

    亂 JOIN 表格，導致執行效能太差

    資料量大的資料表不適合用 Typed DataSet

2\. 名稱亂無章法，甚至寫錯誤的英文名稱！

    如：SiteNode (正確)    =>    SiteNote (錯誤)

    建議：

    1. 使用英文命名，一律使用單數  
    2. 使用英文命名，務必確認單字正確  
    3. 不知道怎麼命名請用中文！

3\. 強型別資料集 (Typed DataSet) 規劃技巧

    一般技巧

        盡量不要在 Typed DataSet 裡做 Table Join，若要 Join 請使用檢視表(View)

        不同的 Select 欄位數，要新增不同的 DataTable 儲存回傳的資料

    管理介面用

        命名範例：

            dsAdminNews.GridViewDataTable

            dsAdminNews.DetailsViewDataTable

            dsAdminDistributor

    前台介面用

        善用檢視表

        設定資料顯示的時間區間 （開始時間 ~ 結束時間）

        命名範例：

            dsFrontNews  
            dsFrontDistributor

5\. 管理介面開發技巧

    先做好一些常用到的 UserControl 以因應表格間關連的資料顯示

    先做好一些好用的 UserControl 以因應常見的表單輸入需求

    - 年份  
    - 月日 ( 月 / 日 )  
    - 日期 ( 年 / 月 / 日 ) ( 含 Calendar 互動選單 )  
    - 時間 ( 時 / 分 )  
    - 數字 ( 含格式驗證 )  
    - 電子郵件 ( 含格式驗證 )  
    - 網站網址 ( 含格式驗證 ) ( 一定要 http:// 或 https:// 開頭，且網址要正確 )  
    - 下拉選單 ( 是否第一項包含 null ? ) ( 可直接傳入 SQL Command 即可回傳下拉選單 )  
    - 台灣地址 ( 縣市 / 鄉鎮市區 / 郵遞區號 / 地址 )  
    - 台灣縣市 ( 下拉選單 )  
    - 台灣地區 ( 下拉選單 ) ( 北區 / 中區 / 南區 / 東區 / 離島地區 )

6\. 資料庫規劃技巧

    善用 View 並妥善命名

    適時的使用 Stored Procedure 降低系統複雜度  
    適時的使用 Trigger 降低系統複雜度
