2016年12月27日 星期二

上課第一天的觀念 -- 網頁程式設計(ASP.NET / Web Form)與大家常見的Windows程式有何不同?

上課第一天,我都會從這篇文章講起
 
我要補充幾個範例,先解釋「網頁程式」與大家常見的Windows程式有何不同?
  註解:Windows程式,例如:Word / Excel / Outlook / 小畫家....等等。
 
第一,傳統HTML網頁是離線的。
    當我 09:00連上新聞網站,看見今天頭條新聞。
    連線的時間,只有一陣子 --當Web Server把網頁的內容 傳給我(瀏覽器) 並且傳輸完畢以後
 
    「我的電腦(瀏覽器)」與「Web Server」就離線了(兩者之間 "並非"一直 持續地 資料傳輸,一直連線的狀態)。
 
    如果 09:05(五分鐘後)哪個地區出現大地震?或是有了突發事件?
    除非我重新載入(重整)瀏覽器畫面,不然的話,我永遠停留在 09:00下載的時空,只看到當時的新聞。
   
    以上是傳統HTML網頁的生命週期,最簡單、最傳統的流程。
後續有很多技術改進,所以您(菜鳥)可能以為網頁是「即時更新」的、隨時都會(自動)更新資訊
這些都是後續的技術改良
除非您懂、您會做,不然的話,先以傳統網頁的標準,來看待、來處理。
 
第二,網頁不能控制你的(User的)電腦(為了安全起見)
    很多人會問,為什麼我在Windows程式按下「列印」,印表機就會動作(以前DOS時代更是如此)。
 
    我在網頁程式按下「列印」,只會蹦現一個「列印視窗」讓我選印表機以後才能列印?
    (幸好,現在的Word / Excel流程也大致是如此了)
 
    想想看:如果網頁程式可以直接控制你的電腦
    那我寫一個搗蛋程式(網頁),你一連上我的網站,就直接列印一萬張「底色全黑」的文件,來整死你跟你的印表機,好嗎?
    那麼我一連上網頁,不就中鏢?
 
後續有很多技術改進,所以您(菜鳥)可能以為網頁也做得到?
這些都是後續的技術改良
除非您懂、您會做,不然的話,先以傳統網頁的標準,來看待、來處理。
 
第三,另外一個案例,也是相同的情境。
菜鳥:「我的網頁程式(後端 / Server端) 想要列印 User的(前端)瀏覽器畫面、電腦畫面,
                 就好像 PrintScreen按鍵一樣。
                 這樣網頁出錯,我就能看見 User的(前端)錯誤畫面」
 
如果您說的可行,
    那我寫一個網頁程式,也能偷看你的(User的)操作畫面囉?
    也能控制你電腦的(User的)Web Camera監視你囉?
後續有很多技術改進,所以您(菜鳥)可能以為網頁也做得到?
這些都是後續的技術改良
除非您懂、您會做,不然的話,先以傳統網頁的標準,來看待、來處理。
 
 
類似案例:
3-1 .  我用ASP.NET程式撈出 後端 (Server端)資料庫裡面的數據
         然後把這些數據寫入User電腦上」的 Excel檔案
         因為「User電腦上」的 Excel檔案已經設定好公式,只等我把數據添加進去
         做得到嗎?
 
3-2 .  我的網頁程式,想要抓取User電腦上」的 Outlook,要抓取裡面的通訊錄與聯絡人名單....
         做得到嗎?
 
3-3 .  我的 ASP.NET網頁程式,要讀取User電腦上」的 Access資料庫檔案,要把裡面的數據讀取出來,在(後端 / Server端)網頁上呈現圖表
         做得到嗎?
=============================================================
   
 
    傳統的網頁程式,多為「後端」的程式、在Web Server上面執行,
                     完成後,把結果(HTML碼)傳到你電腦上的瀏覽器。例如 ASP/ASP.NET、PHP、JSP...
 
    另外一種網頁程式,如 JavaScript。則是在你電腦上的瀏覽器(前端)執行。
 
===  如果這兩者也區分不清,很難繼續下去。  ============================
 
 
先瞭解「網頁」
      瞭解他跟其他程式不同的地方,有哪些限制?
      哪些做不到?哪些要拐一個彎才能作?哪些要其他技術輔助才行?
 
如果不能劃清界限,那就是白學了
(甚至.......沒有釐清以前,不應該開始學!
 
我相信:這些限制遲早有一天,「一定」會被打破
             因為技術的演進,是我們無法想像的
 
但是,在「現在」、在「當下」、在您剛剛入門、在「您第一次學習網頁程式」的時候
......不要想這麼遠,好嗎?
 
連坐都坐不好的時候,不要逞強站起來!
連站都站不好的時候,不要逞強學習走路!
不會走、就別跑!
 
一步一步來,既然要學新東西
    適當的「放空」自己,很重要!
 
    學習網頁程式時,適當地「放空」以前 Windows程式的操作與流程,很重要!
這樣的學習流程,很合理吧?
 
**************************************************************************************
2015/3補充,學員看完我的課程,(ASP.NET課程)第一天 上午 的教學影片後,給我的回應......

**************************************************************************************
 
很經典的一個問題,大家想想看這個問題適不適合透過網頁程式來做?
有一隻報表程式需要大量時間撈資料
之後產出PDF報表
由於時間超過10分鐘......

該功能的用途為
產生學生個人的相關報表一人一張

由於一校學生從 200~800(或以上)不等
由於單位希望能夠 "一次" 整個全校學生列印......


另產生報表的方式是使用上次所提問的方式
無法使用網頁HTML轉成PDF的列印有以下原因

1.瀏覽器不同,產生的樣式不同
2.同一支列印程式,有些人的電腦表格或換頁會異常,原因無法得知
3.同一支列印程式,A列印報表數值是正確,B列印則數值異常(A印60分,B印變成30分),原因無法得知

礙於無法一一查證以上問題
則採用PDF方式列印之後則無此問題
只是單位要求要進度回饋訊息

也是一個簡單問題,但沒寫過網頁程式的人,就是無法理解 

寫 Windows程式的人,永遠不會懂的一點(網頁 的 狀態管理):
我現在所擔心的是,上線後,在多人使用時,後面登入的人會蓋掉前面的人的值
之後資料就會亂掉

還有一個疑問 就是說假設,不同台電腦上網 今天 甲使用者登入了 session.add("id","user1")
之後 乙登入 session.add("id","user2")
這樣 甲電腦登入的id 會被乙蓋掉嗎?

原本是用C#寫可以用  但改成asp.net 就不能運作了
我要執行2個.exe檔  名叫learn.exe classify.exe

在C#時  我放在bin資料夾裡的debug資料夾中  所以執行完出來的txt檔也會出現在這
所以在ASP.NET要放在哪阿 沒看到bin的資料夾 請各位幫我解答下

 
 
==========================================================================
相關文章:
 



.......................以下是廣告........................................................................................
我的書、我的課程,絕對沒有太多招數
都是用最基本的技巧
組合成各種變化。
 
如同詠春拳,三個套路,
排列組合、變化萬千
 
與其到處  Copy範例、到處抄襲程式碼(找到了也改不動)
為什麼不一次學好、學清楚?
 
然後讓自己有生產力呢?
(你學了一百招,但上了戰場,一招都使不出來?)
(客戶的要求,沒有一個你能自己做到?還是上網逐一發問、抄抄改改?)
 
為什麼人家可以千變萬化?
我只能到處拼拼湊湊?卻還天天加班、做不完?最後還是迷迷糊糊?
 
 
   如何一以貫之
         如何啟動「輕輕鬆鬆的自我學習之道」?
 
讓我告訴你,
一個沒有大型補習班招牌、沒有關鍵字廣告的書籍與課程
在時局這麼亂、經濟與工作越來越蕭條的  Bumbler 無能年代
 
為何所有補習班的 ASP.NET課程都開不成、招不到學生
我的課程,班班額滿,欲罷不能.............縱貫這三四年 全台灣 的 ASP.NET入門教學

沒有留言: