編寫本書的主要目的是要給已經學會ASP.NET基礎技能,而想要持續精進、提升能力的專業工程師,是一本具備實戰經驗的進階範例集,全書涵蓋重點如下:
★最詳細的「會員控管」範例,自己動手親自撰寫程式(Session),由淺入深,一應俱全。
★會員權限控管,從入門的「障眼法」到「PlaceHolder動態加入控制項」。
★GridView、ListView、DetailsView與FormView四大天王控制項,自己動手寫各種功能。
★防範資料隱碼(SQL Injection)與XSS(跨網站腳本)攻擊。
★透過Windows AD登入與網路銀行同級的「CA個人憑證」登入。
★簡單完成多國語系的網站。MasterPage主版頁面的動態切換。
★LinqDataSource、ObjectDataSource(商業物件)控制項的深入解說,搭配Class類別檔。
★自己動手寫首頁、網站增修功能。不需大型控制項,磨練ADO.NET功力。
★強調網站的Master-Detail(主表明細)涵蓋電子商務、知識管理、媒體網站各種需求。
★CKEditor超強大的線上HTML輸入畫面。NPOI讓您讀取與輸出Excel檔。
★網路問卷、線上投票、網路長條圖的應用。ASP.NET Chart(圖表)控制項入門。
★不可思議的網頁圖表Google Chart + JavaScript與ASP.NET整合。
★「全自動化投票」範例即裝即用。「動態問卷產生器」可自行搭配題型(單、複選、文字輸入)。
★北風貿易系統、線上飲料訂購系統,一個畫面完成關聯式訂單、購物車。
★OutputCache網頁輸出快取,輕而易舉提升網頁效能。
★One ASP.NET,Web Form的Model Binding。
作者簡介:
周棟祥 博士
現職:國立高雄第一科技大學 資訊管理學系 副教授
學歷:國立政治大學 資訊管理博士
經歷:
‧區域產學合作中心 執行長
‧研究發展處 產學合作組組長、推廣服務及教育組組長
‧管理學院 院長特別助理
‧中華電信研究所 助理研究員
專長:
‧B2B與B2C之電子商務規劃設計與應用
‧Web Service技術之應用及分散式元件DCOM與COM+程式設計
‧Microsoft .NET之程式設計、開發與應用
‧XML轉換技術與應用、Web程式設計與Web Chart應用分析
‧熟悉C#、VB.NET、C、JAVA、Assembly、Pascal等程式語言與開發資訊系統
‧網頁技術(如ASP.NET)與資料庫開發應用(如SQL SERVER、ORACLE)
‧服務科學與知識管理與應用
‧商業智慧與資料倉儲架構研究
吳進魯
學歷:國立屏東科技大學 資訊管理研究所碩士
經歷:
‧1998~2000年為國立屏東科技大學計算機中心、屏東縣教育局舉辦的多場資訊教育訓練擔任講師(授課時數超過250小時)。
‧資策會各式網站系統開發(七年經驗)、電信產業分析與Internet指標研究工作。教育訓練中心(南區)專任講師(專長Web程式設計)。
‧星動計畫B2Bi(XML資料交換,採用RosettaNet標準) ,VB 6.0與 MS BizTalk Server系統開發與維護。客戶為國內電子業十大股票上市公司。
‧任職某資通訊大廠(全球資訊業百大公司)技術經理,軟體技術規劃與系統整合。
‧2008~2017/7/1年MVP(微軟最有價值專家),專長ASP.NET。
‧2010~2015年台中市電腦公會辦理 行政院勞委會職訓局 產業人才投資計畫,ASP.NET專任講師。
審稿教授:吳 盛 博士
現職:南台科技大學 資訊管理學系 副教授
學歷:國立中山大學 資訊管理博士
目錄
CHAPTER 01 MasterPage(主版頁面)
1-1 HTML 網頁的頁框(frameset)
1-2 MasterPage 主版頁面(.master 檔)
1-3 使用 MasterPage 設計網頁
1-4 自動切換手機版 MasterPage(.Mobile.master)
1-5 透過程式,動手存取 MasterPage 裡面的控制項
1-6 @ MasterType 指示詞,MasterPage 的公開屬性
1-7 MasterPage 與 .FindControl() 方法
1-8 MasterPage 搭配 FileUpload(檔案上傳)的技巧
1-9 透過程式,手動切換多個 MasterPage 檔案
1-10 巢狀(Nest)MasterPage
1-11 MasterPage 與 JavaScript、jQuery 的搭配
CHAPTER 02 巡覽(Navigator)控制項與多國語系─ Menu、TreeView、SiteMapPath
2-1 何謂 Menu、TreeView、SiteMapPath ?
2-2 Web.Sitemap 檔案解析
2-3 SiteMapDatasource 控制項
2-4 Case Study (I):動態變更巡覽內容與 .sitemap 檔
2-5 Case Study (II):寫程式抓取 .sitemap 檔各節點的屬性
2-6 Case Study (III):抓取此一節點底下是否還有子節點?
2-7 Case Study (IV):自建 XML 檔並搭配 XmlDataSource 自動產生節點
2-8 Case Study (V):搭配資料庫自動產生節點
2-9 多國語系與資源檔(.resx 檔)
2-10 Case Study (VI):FormsAuthentication 與 Cookie 的綜合應用
2-11 Case Study (VII):Menu 控制項、MenuItem(功能表項目)與資料庫
CHAPTER 03 Theme(佈景主題)與 Skin(面板)
3-1 控制項的 Skin 範本
3-2 佈景主題(Theme)
3-3 沿用既有的 Skin 面板檔案
3-4 搭配 CSS 樣式表
3-5 Case Study:動態改變佈景主題(Theme)
CHAPTER 04 商務物件與資料存取層 ObjectDataSource控制項
4-1 ObjectDataSource 控制項
4-2 ObjectDataSource 的操作步驟
4-3 自己撰寫後置程式碼的 ObjectDataSource
4-4 TableAdapter 概觀
4-5 Case Study (I):ObjectDataSource 主表明細(Master-Detail)
4-6 Case Study (II):中介層商務物件與 ObjectDataSource 控制項互動
4-7 Case Study (III):自訂商業物件(Class & XML)搭配 ObjectDataSource
4-8 Case Study (IV):自訂商業物件(類別 & 強型別來源物件)
CHAPTER 05 DataBinding(資料繫結)
5-1 網頁程式連結資料庫的四大步驟
5-2 DataBinding(資料繫結)的革命
5-3 Code Behind,自己寫程式控管 DataBinding 的時機
5-4 GridView 可「新增」?透過程式控制 EmptyDataTemplate
5-5 DataBinding 應用 (I):與 Page.IsPostBack 的關聯
5-6 DataBinding 應用 (II):餐廳的點菜系統
5-7 DataBinding 應用 (III):新增、修改、刪除
5-8 DataBinding 應用 (IV):GridView 內嵌 DropDownList
5-9 FAQ 常見問題與觀念釐清
5-10 Gridview 的 RowUpdating 事件其他作法 ─ e.NewsValues 與 IBindableTemplate 介面
CHAPTER 06 DataBinding Expression,資料繫結運算式
6-1 樣板欄位的 DataBinding Expression(繫結運算式)
6-2 Case Study (I):DetailsView 與 FormView 文章換行換列?分段落?
6-3 Case Study (II):大型控制項樣板內的Calendar 與 DateTime
6-4 Eval 與 Bind 的用法與異同
6-5 Repeater 的樣板 + HyperLink 控制項
6-6 JavaScript 的 window.Open() 與資料繫結運算式
6-7 Case Study (III):自己撰寫 DataBinding Expression
6-8 資料繫結運算式的其他用法
6-9 單一數值(Single-Value)與重複數值(Repeated-Values)的資料繫結
6-10 Case Study (IV):成績不及格就出現警告
6-11 Case Study (V):GridView 的加總與小計
6-12 補充範例:PreRender 事件,在控制項出現在網頁「之前」就處理
CHAPTER 07 檔案上傳與資料庫的綜合範例
7-1 Case Study (I):ListView+FileUpload 圖片式、棋盤式首頁
7-2 Case Study (III):fancybox 的圖片效果(燈箱、圖層)
7-3 Case Study (IV):jQuery 呈現多媒體檔案(fancybox)
7-4 Case Study (V):圖片(二進位)存入資料表,透過 IO Stream 處理
7-5 .ashx 檔(泛型處理常式)範例與解說
7-6 Case Study(VI):圖片(二進位)存入資料表,FileContent 與 FileBytes 屬性
7-7 將檔案放入資料庫的缺點 & FILESTREAM 設定步驟
CHAPTER 08 GridView 匯出 Excel 檔與 NPOI Library
8-1 傳統的作法(不建議使用)
8-2 輸出 Excel 檔,為何不建議上述傳統方法?
8-3 NPOI Library 存取 Excel 檔案
8-4 在 Visual Studio 安裝 NPOI Library
8-5 產生空白 Excel,並添加三個試算表(Sheet)
8-6 寫入資料,放在 Excel 內的儲存格
8-7 將資料庫的紀錄,逐筆寫入 Excel 檔
8-8 凍結窗格(凍結、鎖定 Excel 欄位)
8-9 修改 Excel 儲存格的格式與加入公式
8-10 修改 Excel 儲存格的底色
8-11 上傳 Excel 檔案,讀取後寫入資料庫(批次上傳大量數據)
8-12 Excel 欄位裡面有「公式」,如何取得「運算後的 " 值 "」?
8-13 Excel 版本只支援 2003 ? NPOI 其他問題?
8-14 Case Study:讀取 Excel 檔之後,繼續加入新的資料?
8-15 補充範例,Gr idView 輸出各種格式(PDF、XML 等)
CHAPTER 09 ADO.NET 動手寫,主表明細(Master-Detail),首頁 / 留言版
9-1 Master—網站首頁
9-2 Master ─網站首頁(改良版)
9-3 Master ─網站首頁(搭配美工網頁)
9-4 Details ─展現一筆紀錄的細部內容 & SQL Injection 攻擊
9-5 設定參數和參數資料型別(ADO.NET)
9-6 文章的留言功能(關聯式資料表)
9-7 自己動手寫出「分頁」程式
CHAPTER 10 線上問卷、自動化投票區、HTML 長條圖
10-1 簡單投票 (I):計算每個候選人的總得票數
10-2 簡單投票 (II):每一票都是一筆記錄
10-3 Case Study:自動化投票
10-4 直立式長條圖
10-5 線上測驗系統(答題後,立即知道分數)
CHAPTER 11 自動化投票區(動態產生畫面 & 控制項)
11-1 觀念解析與構思、資料表的設計
11-2 PlaceHolder 控制項與畫面設計
11-3 第一個 Question_M 資料表,問卷主題
11-4 Question_D1 資料表,每一題(單選、複選、文字輸入)
11-5 如何抓取「動態產生」的控制項,被人填寫後的「值」?
11-6 小結
CHAPTER 12 網頁圖表—ASP.NET Chart 控制項與 Google Chart
12-1 ASP.NET Chart 控制項,自動產生統計圖表
12-2 SQL 指令的「扭轉」,PIVOT 與 UNPIVOT
12-3 Case Study:微軟 MSDN 範例
12-4 Case Study:Chart 控制項轉成 PDF、圖片檔
12-5 Google Chart,強大、簡單的 JavaScript 圖表 API
12-6 ClientScriptManager 類別—透過後置程式碼,撰寫 JavaScript
12-7 ADO.NET 將資料庫的數據變成 Google Chart 圖表
12-8 補充範例:其他網頁圖表產生器
CHAPTER 13 會員登入、後端管理區的權限管理(I)─ 使用 Session
13-1 會員資料庫的設計
13-2 會員登入(會員專屬區)
13-3 每一支後端程式的保全人員,Include file 與 defense.aspx
13-4 Case Study (I):會員登入才能看見文章列表(GridView 控制項 + 超連結)
13-5 Case Study (II):修改某位會員發表的文章(FormView 控制項)
13-6 Case Study (III):唯有特定權限,才能修改資料
13-7 Case Study (IV):區分「編輯」與「刪除」的使用者 權限
13-8 Case Study (V):區分「編輯」與「刪除」的使用者權限,障眼法與 DataBinding Expression
13-9 Case Study(VI):密碼過期(定期更新密碼)&新密碼不跟舊的重複
13-10 Case Study (VII):註冊後,透過 E-Mail 啟動會員權益
13-11 Case Study(VIII):網頁的虛擬鍵盤
13-12 EnableSessionState 屬性,讓 ASP.NET 效能更好
CHAPTER 14 會員登入、後端管理區的權限管理 (II) ─ GridView的 RowCreated 與 RowDataBound 事件
14-1 唯有本人可修改 (I) ─障眼法、.FindControl() 方法
14-2 唯有本人可修改 (II) ─動態加入命令欄位,PlaceHolder 控制項
14-3 同一筆記錄的某些欄位可編輯?唯讀?
CHAPTER 15 會員登入─ MD5 與 SHA1 雜湊與資料保護(System.Security.Cryptography 命名空間)
15-1 MD5 雜湊演算法,進行密碼保護
15-2 Case Study (I):將會員的密碼,透過 MD5 雜湊處理
15-3 Case Study (II):SHA1 演算法
15-4 RSA 演算法,雙向加 / 解密(僅供參考)
CHAPTER 16 Windows AD(Active Directory 網域服務驗證)、 網路銀行的個人 CA 憑證
16-1 FormsAuthentication 與 Cookie 的綜合應用
16-2 Active Directory 網域服務驗證(Windows AD 帳號登入)
16-3 DirectoryEntry 與 DirectorySearcher 類別
16-4 個人 CA 憑證,網路銀行與線上交易
16-5 網站如何申請 SSL(https)
CHAPTER 17 如何寫出安全的 ASP.NET 與注意事項
17-1 指令碼攻擊
17-2 防範惡意的指令碼
17-3 可能遭受攻擊的 HTML 標籤,XSS 攻擊
17-4 避免提供太多的錯誤訊息
17-5 縮減帳號的權限,越小越安全
17-6 如何設定安全密碼並增加密碼強度?
CHAPTER 18 Microsoft Anti-XSS Library 與跨網站腳本攻擊
18-1 安裝最新的 Microsoft Anti-XSS Library
18-2 AntiXSS 編碼方式與修正 Web.Config 的預設編碼
18-3 不同命名空間的 .HtmlEncode() 方法
18-4 .UrlEncode() 與 .UrlPathEncode() 方法
18-5 Anti-XSS Library 的 Sanitize 類別
CHAPTER 19 自訂「資料新增」畫面 / CKEditor 線上網頁編輯器
19-1 透過 SqlDataSource 精靈,不需寫程式
19-2 實力扎根!自己手寫 DataSet+DataAdapter 後置程式碼
19-3 Case Study (I):當心 SQL Injection 攻擊
19-4 Case Study (II):新增一筆資料後,取得自動識別 id(Primary Key)
19-5 線上 HTML 編輯器,CKEditor
19-6 Case Study (III):新增紀錄順便檔案上傳,FormView + FileUpload
CHAPTER 20 北風貿易 Master-Detail 關聯式訂單一頁搞定
20-1 關聯式資料表之間的「關係」
20-2 訂單系統的報表功能(不用寫程式)
20-3 訂單系統的新增資料
20-4 Case Study:一氣呵成的訂單系統(資料新增)
CHAPTER 21 泡沫紅茶線上訂購系統(另一種購物車,自訂資料庫)
21-1 設計概念與工作流程
21-2 系統執行畫面與流程
21-3 設計資料表
21-4 HTML 設計畫面(訂單主檔,Master 部份)
21-5 訂單明細的 Detail 部份 (I) ─挑選飲料
21-6 訂單明細的 Detail 部份 (II):確認飲料的糖份、冰塊量
21-7 訂單明細的 Detail 部份 (III):每次輸入完成,GridView 展示最新狀態
21-8 如何確定訂單已完成(可出貨)?
CHAPTER 22 LinqDataSource 控制項與 DataContext 類別
22-1 單一資料表
22-2 LinqDataSource 與 SqlDataSource 的 HTML 標籤,差異在哪?
22-3 關聯式資料表(留言版的功能)
22-4 LinqDataSource 類別
22-5 進階!自己動手寫 LINQ 程式
22-6 Case Study:自己撰寫 Class 作為資料來源,搭配 LINQ
22-7 LINQ-to-SQL 的分頁,Skip 與 Take 函式
22-8 LINQ 基礎語法(線上閱讀與補充文章)
CHAPTER 23 Model Binding 與 Web Form
23-1 第一個 Model Binding 程式(Web Form)
23-2 修改版,Model Binding 與 ADO.NET
23-3 Case Study:搜尋引擎,簡單的 Model 與類別檔
23-4 Model Binding、ADO.NET 分頁與技巧改善
23-5 微軟 MSDN 範例:Model Binding 與 ASP.NET Web Forms
23-6 Model Binding 與非同步(Async.)
23-7 Model Binding 與 Repository
23-8 常見問題:ASP.NET Web Form 與 MVC 如何抉擇?
CHAPTER 24 ASP.NET 輸出快取、OutputCache 與 PartialCachingAttribute 類別
24-1 ASP.NET 快取概論
24-2 網頁輸出快取,@ OutputCache 指示詞
24-3 相同內容進行快取,VaryByParam 屬性
24-4 相同內容進行快取,VaryByControl 屬性
24-5 @ OutputCache 指示詞的屬性與介紹
24-6 SqlDependency 屬性,將 @ OutputCache 搭配 SQL Server
24-7 使用者控制項(User Control)的輸出快取,PartialCachingAttribute 類別
24-8 Case Study (IV):使用者控制項(User Control)搭配 OutputCache
CHAPTER 25 Visual Studio「專案」與「網站」之異同、IIS 網站部署
25-1 Visual Studio 的「專案」與「網站」有何不同?
25-2 安裝與測試 IIS(Web Server 環境)
25-3 Visual Studio 的「專案」與 IIS 部署
25-4 IIS 的移難排除
25-5 Visual Studio 的「網站」與 IIS 部署
25-6 網站上線前的基本觀念
CHAPTER 01 MasterPage(主版頁面)
1-1 HTML 網頁的頁框(frameset)
1-2 MasterPage 主版頁面(.master 檔)
1-3 使用 MasterPage 設計網頁
1-4 自動切換手機版 MasterPage(.Mobile.master)
1-5 透過程式,動手存取 MasterPage 裡面的控制項
1-6 @ MasterType 指示詞,MasterPage 的公開屬性
1-7 MasterPage 與 .FindControl() 方法
1-8 MasterPage 搭配 FileUpload(檔案上傳)的技巧
1-9 透過程式,手動切換多個 MasterPage 檔案
1-10 巢狀(Nest)MasterPage
1-11 MasterPage 與 JavaScript、jQuery 的搭配
...
購物須知
關於二手書說明:
商品建檔資料為新書及二手書共用,因是二手商品,實際狀況可能已與建檔資料有差異,購買二手書時,請務必檢視商品書況、備註說明及書況影片,收到商品將以書況影片內呈現為準。若有差異時僅可提供退貨處理,無法換貨或再補寄。
商品版權法律說明:
TAAZE 單純提供網路二手書託售平台予消費者,並不涉入書本作者與原出版商間之任何糾紛;敬請各界鑒察。
退換貨說明:
二手書籍商品享有10天的商品猶豫期(含例假日)。若您欲辦理退貨,請於取得該商品10日內寄回。
二手影音商品(例如CD、DVD等),恕不提供10天猶豫期退貨。
二手商品無法提供換貨服務,僅能辦理退貨。如須退貨,請保持該商品及其附件的完整性(包含書籍封底之TAAZE物流條碼)。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱
退換貨原則、
二手CD、DVD退換貨說明。