[.NET] ASP.NET 網頁生命週期 Page Life-Cycle

使用者透過瀏覽器發送一個請求(Request)到伺服器端,伺服器端會依照請求內容讀取所需要的資料,並建立ASP.NET Page物件,當執行 ASP.NET 網頁時,網頁在生命週期內會執行一系列處理步驟。其中包括初始化、產生控制項、還原和維護狀態、執行事件處理常式程式碼和呈現(參考MSDN網站)。伺服器端將結果組成網頁程式碼(HTML)供瀏覽器讀取及呈現,回傳結果分為兩個部分,第一部分為網頁的呈現資料(HTML Tag)、第二部份為(hidden input:存放viewstate,ASP.NET用來紀錄網頁資料的方式)。
關係請參考下圖

...繼續閱讀 »

[.NET] EPPlus - 匯出/入 Excel好幫手

[.NET] EPPlus - 匯出Excel好幫手
在開發系統時,常會遇到需求者希望將查詢出來的資料轉成Excel,之前小弟在實做此功能時都會用下列兩種方式 :
1. GridView : 將要匯出的資料塞到GridView,在修改輸出網頁的ContentType為Excel,範例請點這裡阿阿
2. NPOI : Open source的第三方套件,提供快速讀/寫 excel, word, ppt…等檔案,NPOI官網
但是,某天同事K告訴我轉Excel有更好用的方法
EPPlus 看完官網說明後覺得易上手且功能強大,立馬開始抄襲同事source code實作
決定發文紀錄這好用匯出Excel library.

...繼續閱讀 »

[.NET] QueryString 的那些事

前言
Querystring是ASP.NET狀態管理(ASP.NET State Management)機制中常用到的傳遞資料方式之一
相信每個ASP.NET開發人員對此都很熟悉,此篇文章是自己對於Querystring資訊,整理給日後的自己看(有些事過30歲後就不一樣了XD)

概述
Querystring(查詢字串)是附加在網頁URL結尾的資訊。主要是在Url上傳遞資料,可能是一個搜尋字串、頁碼、某項特定的指標…或類似的東西
在網址結尾加上一個問號(?)開始,每一組參數都是用「&」區隔開來,是一種KEY / Value的組合。
舉例來說(參考上圖),在Yahoo首頁搜尋引擎輸入「Hello world」後,在按下搜尋按鈕,會導頁到查詢結果頁面,並將符合搜尋字串相關資料呈現出來。
運作原理是透過Querystring作為資料傳遞,當你按下搜尋按鈕時,會將你在首頁(A網頁)輸入的搜尋字串「Hello world」傳遞到查詢結果呈現頁面(B網頁)

...繼續閱讀 »

[.NET] 字串加密 MD5、SHA1

常在開發中遇到需要將特定資料加密的動作,在儲存到資料庫中(比如說網站用戶的密碼加密後存到資料庫中,用戶在登入時,在把用戶輸入的密碼進行加密,再與資料庫密碼欄位比較是否一致)在.NET Framework中,可以透過 System.Security.Cryptography 命名空間來產生加密演算法的金鑰(註一),在用雜湊值(Hash Value)的加密方式達到目的,雜湊演算法將任意長度的二進位值對應到固定長度較小的二進位值,稱為雜湊值 (Hash Value)from MSDN,.NET Framework 提供多種雜湊演算法類別,其中比較常用的有MD5與SHA1,簡單介紹一下&使用方式

...繼續閱讀 »

[.NET] ASP.NET 狀態管理(State Management):Session

[.NET] ASP.NET Session 概論

Session 狀態支援數種不同的資料儲存選項,簡單描述 Session 可用的狀態模式

InProc:存在Web伺服器的記憶體中;ASP.NET中預設的Session狀態設定,是最常用也是最方便的 Session 狀態模式,缺點是如果重新啟動伺服器,所有的Session資料將會遺失。
StateServer:儲存在 ASP.NET 狀態服務的處理序中;可以確保 Session 在 Web 應用程式重新啟動時保留下來,並且讓 Web 伺服陣列中的多個 Web 伺服器都能夠使用工作階段狀態。
SQLServer :儲存在SQL Server資料庫中;這樣可以確保工作階段狀態在 Web 應用程式重新啟動時保留下來,並且讓 Web 伺服陣列中的多個 Web 伺服器都能夠使用工作階段狀態。
Customer:自訂 Session State Provider,存放 Session 的資料;必須使用 sessionState 組態

...繼續閱讀 »

[.NET] ASP.NET 特殊資料夾 [Special Folders]

在Visual Studio 2008 建立新的Web網站時,會同時新增一個特別的資料夾叫做「App_Data」,此資料夾是預留給資料庫使用,如Sql Server 2005 Express版,副檔名為「.mdf」的檔案。ASP.NET中有一些特殊的資料夾名稱,可以在專案點右鍵 > 加入 > 加入ASP.NET資料夾;將特殊資料夾加到專案中

...繼續閱讀 »

[.NET] ASP.NET 狀態管理(State Management):ViewState

Web應用程式是沒有狀態(Stateless)的,從前面介紹的文章(Application、Page Life-Cycle)可以了解到,每次用戶端發送請求(Request)到伺服器端時,都會建立Web網頁類別的新執行個體。由於每個請求都是新的個體,這也代表每次來回存取時,網頁及控制項的資訊將會遺失。例如,根據預設,當使用者在網頁textbox控制項輸入「Hello world」,按下按鈕送出後,這項資訊就會傳送到伺服器。但伺服器在回傳(Response)時,卻不會將此資訊「Hello world」回傳到瀏覽器。接下來要分享的有關ViewState使用方式

...繼續閱讀 »

[.NET] ASP.NET Application 概述

ASP.NET 處理請求的兩個步驟
當用戶發送一個請求到IIS(這裡指IIS 5.0 & IIS 6.0),ASP.NET 處理請求的步驟有兩種
1. 建立一個可以處理用戶端傳來請求Request的環境(ASP.NET Environment),包括建立application object(應用程式)、Ruquest、Response、Context Object等物件來處理此Ruquest請求。
2. 環境被建立後,應用程式會透過modules、handlers、page objects等事件模組來處理此Ruquest請求。

...繼續閱讀 »