[給初學者的話] Http是一個沒有狀態(Stateless)的協定.....就連大教授也不懂的事

摘要:[給初學者的話] Http是一個沒有狀態(Stateless)的協定.....就連大教授也不懂的事




 

 

 

這兩天我買了一本原文書(已翻譯成簡體中文)來看
是一位國外大學的教授,專寫 .NET程式與資料庫(主題是ADO.NET)
主要是 Windows Form的範例
 
因為這種書比較少見,我買了一本回來看
介紹 ADO.NET / EF / LINQ都很棒
 
當然,我看完一部份,就看 ASP.NET那一章
(書本最後擺了一兩章,用 ASP.NET連上資料庫來解釋。前面都是 Windows Form的範例)
 
 
 
教授這樣寫 ASP.NET網頁去連結DB的(使用 ADO.NET):
 
      1. 在畫面上,拉進一個按鈕(寫著--連結DB),在 Button1_Click事件內
      連結資料庫(Conn.Open())、執行SQL指令(撈出資料)、透過 GridView展示。
 
......經典的來了
 
      2. 在畫面上,設計 "另外一個按鈕"(寫著--關閉DB),在 Button2_Click事件內
      撰寫「關閉資料庫連結(Conn.Close())」的程式碼
 
 
如果您不覺得有任何問題的話,那麼您就.......Orz
 
 
 
 
不是在嘲笑這位教授
 
而是想跟大家分享:「網頁的程式、網頁的生命週期、網頁的安全性(限制多)」
 
真的跟 Windows程式不同。
 
 
就算您在 Windows程式混過很久,
 
只要有些「觀念」沒有調整好、不正確、輕視(忽視)了
 
就會做出很離譜的網頁程式。
 
 
 
============================================
ASP.NET網頁程式
可以說是 .NET程式中最好入門的。
============================================
 
因為ASP.NET (Web Form)的控制項比較,每個屬性、方法也都比較
 
初學者學了他,將來跨平台去寫 Windows程式
 
會覺得:路  越走越寬
Windows Form的控制項越來越多、屬性越來越多
 
俗話說:「由儉入奢
您會覺得越來越好作(因為可用的資源多了、限制少了)
 
 
 
而吃慣大魚大肉的 Windows程式設計師,他們進入網頁的世界
技術能力來說,是遠遠超越的!
 
但如果不能(把姿態放低)瞭解一下,體會 "網頁"的先天差異。
 
會被這樣的「差異」搞出一肚子火
 
俗話說:「由奢入儉難」
 
就有人抱怨過,
    「怎麼 ASP.NET連 ComboBox這種控制項也沒有?」
    「一個按鈕,按一次執行A程式、按兩次(Double Click)執行B,怎麼連這事件也沒有?」
    「網頁的全域變數在哪裡?怎麼到下一個網頁就不能使用了?不是都在同一個網站(專案)裡面嗎?」」
 
 
 
就算您是網頁程式的老手(熟悉 ASP / PHP / JSP)
面對變種的巨獸 -- ASP.NET
 
也是一樣需要重新瞭解他。
 
例如:ASP.NET網頁的生命週期、PostBack觀念(為什麼動態產生的控制項,一操作畫面又瞬間消失??)
 
 
 

上課第一天的簡介     每次都要劃黑板,所以乾脆把圖畫好,省時間。

詳細的說明,等上課時解說。  :-P

 

 

 

 
 
您看見的每一個 "完整呈現"的網頁,都是 "離線"狀態。
 
當 Web Server把資料都完全傳給你(你的瀏覽器)時,
你跟 Web Server之間就毫無瓜隔了
 
Web Server 理論上  也不會為你記錄任何狀況(所以稱為「無狀態」)
 
 
換個角度來想想
 
假設你執行一個 .exe檔(Windows程式),每按下一個按鈕,
就要關閉、然後重新啟動這支程式
 
你一定會抓狂吧!........但是   網頁程式,其實有點像這個樣子 
 
 
 
您看見的網頁畫面,並 "不是" 永恆地跟Web Server「保持連線中」的狀態
 
 
以前的瀏覽器,底下有一個狀態列(光棒、顯示資料傳輸狀態)
 
一旦這個光棒跑完、資料全都傳給你的瀏覽器
瀏覽器,就跟Web Server斷了連結......
 
甚至,預設的Web Server是 90秒裡面,
如果不能運作完畢,這個網頁程式將會出現「逾時」的錯誤訊息
 
對比來看,
您有看見 Windows程式,執行超過幾秒?就會自動關閉嗎?
 
 
 
 
相關文章:
 
 
 
 
ASP.NET(看起來)比較像是「Web化」的 Windows程式
 
一個網頁(.aspx檔案),裡面就有很多功能可以重複操作
 
就好像一個 Windows程式(.exe檔),您一啟用後,可以用(執行)很久
除非您關閉他為止
 
 
我甚至 "懷疑"      
 
ASP.NET 是專為 Windows程式設計師,升級到網頁世界而誕生的
而不是為了 ASP設計師升級的版本
(此種說法,未經證實)
 
不論如何 ......
 

..........................................................................................................................................................

老文重貼

茂伯的經典好文 -- 讀書與上課
http://www.dotblogs.com.tw/billchung/archive/2010/11/28/19767.aspx

      或許是網際網路太發達且資訊已經多到爆炸,
      也許有人覺得要對一門電腦技術
精通  只要上網查查資料、看看別人的部落格就有機會達成這樣的目標。

      我不否認應該有少數這樣具有特別天份的人,這類的人多半對於知識的組織與吸收是有獨到之處,
      不過這也意味著 
大部份的人 走這條路通常都會進到死胡同
      很快地將會遭遇許多技術瓶頸的挑戰。
....詳見全文
 

 

老文重貼

[給初學者的話]完全沒基礎的話.....請不要來問我 ADO.NET的問題,謝謝~

http://www.dotblogs.com.tw/mis2000lab/archive/2011/01/14/20808.aspx

 

 

 

 

我將思想傳授他人, 他人之所得,亦無損於我之所有;

猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson

線上課程,遠距教學 (Web Form 49hr)  https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015

線上課程,遠距教學 (ASP.NET MVC 75hr)  https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab

ASP.NET MVC線上課程 第一天 免費看 (5.5小時) 

寫信給我,不要私訊 --  mis2000lab (at) yahoo.com.台灣  或  school (at) mis2000lab.net


ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。 

................   facebook社團   https://www.facebook.com/mis2000lab   ......................

................  YouTube (ASP.NET) 線上教學影片  https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/

 

Blog文章 "附的範例" 無法下載,請看 這裡 ...... https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download

請看我們的「售後服務」範圍(嚴格認定)

......................................................................................................................................................

...................................................................................................................................................... 

[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講

事先錄製好的影片,並非上課時側錄!   觀看影片時,有如我「一對一」跟您面對面講課

 

ASP.NET MVC 5 線上教學

累積時數約 75小時...... 第一天(5.5小時)完整內容,"免費"讓您評估