11/25 10' ![]()
這當然是我個人看法,歡迎討論。
因為某些需求,陸續接觸了 .NET 和 PHP,昨天網友在 M 群上說市面上 php6 的書已經一堆了,而 php6 的規格未定等等,加上長久以來,我經常在思考一個問題:.NET 似乎永遠取代不了所有的 asp,.NET 和 php 又為什麼會不斷的提升版本?
為什麼我會去想這種很無聊的問題,起因在於 Ajax 的應用愈來愈熟悉,怎麼說咧,先來想想,為什麼要用 asp 或 php ?顯然是要進行一些傳統 HTML 無法達成的功能,也就是動態顯示內容功能,所以無論透過什麼語法來處理,原始檔看起來可能像:
<%
讀取資料庫中會員資料
設定 Cookies 或 Session
%>
繪製表格或使用<DIV>區塊顯示上述讀取內容
或者,例如 WordPress 的原始檔看起來可能像:
這種寫法,過去最為人垢病的是 HTML 語法和程式碼混雜在一起。不過大多數用來製作網頁 AP 的語法都是如此,.NET 試圖改正,把程式碼和網頁分開,或許是一種革新,至於成不成功,就不評判。
如果把一個互動(動態)網頁,分成顯示部份和程式部份,程式部份通常在作那些事?稍稍歸納一下,例如:
常用的有這些,還有什麼?如果你想到了,歡迎告訴我。而事實上,上述四條,第四條只不過是前三條加起來比較具體的表現。所以,簡單歸納程式功能只有一條:
當然,這不包含了在主機上自行增加的各式元件所提供的功能。
寫個會員功能好了,註冊頁面可以完全使用純 HTML 來寫,我想這沒有人反對,當使用者按出送出鈕後,把資料傳送到主機端,主機端程式就把這些資料驗證過後,一般就寫入資料庫,例如。
| 姓名:<input name="userName"> |
同理,登入面頁也可以使用純 HTML 來寫,只要把帳密碼送到主機端,再由程式判別是否正確,完成登入動作。
接著,會員要修改資料,這時就有點不同了,要把資料由主機端讀回來,例如
| 姓名:<input name="userName" value="<%=objMember("userName")%>"> |
這時,純 HTML 就無法達成了。
(如果你看到這裡,心生疑惑,或持反對意見,我想你已經明白我想表達的了。)
是的,用 Ajax 可以達成,把上述混搭的語法,變成一份純粹的 HTML 各一份純粹的程式,例如程式執行的結果是產生:
| {userName:'卜維丰',userAddress:'台北都十八銅人巷京都念慈痷'} |
然後在前端 HTML 頁面中,使用:
| <script type="text/javascript"> form.userName.value=json.userName; form.userAddress.value=json.userAddress; </script> |
如此一來,照樣可以還原會員資料表單,這是很基本的 Ajax 應用,不過重點在於:
這時再來討論 asp、.NET、 php、cgi 等程式語言,這些語言語法不同,架構不同,但對於存取主機端上的資料,卻是大家都具備。
如果再加上各式 Javascript 套件,像 jQuery、prototype、extJS、mooTools 等,連漂亮的介面和 UI 都有人作了,那接下來呢?
假定,存取主機資料的程式只有三種,cgi 、 php 、.NET,Windows 主機三者都可以執行,Apache 主機可以執行前兩者,三者都可以存取 mySQL、MS-SQL、Oracle 的話,那我會選擇使用 cgi ,反正我只要存取資料庫或寫入和讀取檔案或生成我所需要的資格式(XML, json)。
然而重點不在 cgi 而在於這是一個可行的模式,也就是可以作到整網站看到都是 HTML 文件,把 cgi (接下來 cgi 泛指各式主機端程式),透過 xmlhttp 的呼叫模式,把存取主機的工作交給 cgi 執行,再由前端來組合呈現方式。
最近,寫了一個類似問卷的東西,因為是其他大系統中一小塊,我就完全不動用到資料庫,純粹把資料寫成 xml 存檔,那如何掛入對方系統中呢?由對方在使用者登入時,傳送一份 xml 出來,我來接收這份 xml 對使用者權限加以判別即可。也就是我前面所提的,具體上實現了。
一份使用了 Ajax 語法的 HTML 文件,可以很輕易透過查看原始檔的方式,知道呼叫的是主機端什麼程式,如果直接執行該程式,是不是相當於暴露了資料庫的資料呢?
很多情況下是,所以使用這種方式,要對保全工作加多點心思,例如可以執行指定程式的權限要加以區分或限制。
以前,網頁設計師要具備美工能力,圖多=漂亮網頁,現在網頁設計師要具備 CSS 能力,CSS 用得好,圖片就可以少,例如以 CSS3 製作出來多啦A夢(看不到的人,該換瀏覽器了)。接來的網頁設計師就要再精通 Javascript 了,不會後台,沒關係,請個會後台語法的人,丟些你要的資料給你就好。
會不會走到這步呢?密切注意一下網頁設計公司徵人的需求就知道了。
同意轉載,不過麻煩看一下轉載需知
Tina 2012/2/26 下午 03:23:00
真的愈來愈多 元化囉
chi 2011/5/5 上午 01:04:00
有個想法.net設計ajax有如asp一般簡易嗎?
一般.net都會程式碼和網頁分開,ajax會如何設計?
GIGI 2011/4/13 下午 09:50:00
網頁功能真的越來越強大了
villa 2011/3/29 上午 12:02:00
很不錯的論點...
Kei 2011/2/19 上午 01:13:00
外包啊,不用自己養 XD
還好吧! 2011/2/10 下午 05:41:00
版主的概念早就行之有年了。
基本上你說的都沒錯,MVC 也是這些概念啊!
所有的問題最終會回歸到錢!
中小企業哪個有能力請出分工的團隊來寫網頁?
Kei 2010/11/27 下午 10:43:00
已經開始有了