我是早期asp出身兼美工的(早期做網站出身的基本都是我這情況)沒正經學過,都是公司同事這個帶帶那個帶帶,知識很不系統。
我現在遇到的問題:
asp.net是五六年前公司一位號稱全堆疊大牛的同事帶我入門的,后來全靠自學;
他告訴我用 vs創建 web站點最簡單,最靈活,最容易入門;
所以我這些年所有的網站專案 都是web站點模式,非webform;
兩者在我眼里的區別如下:
web站點:aspx和cs兩個檔案
webform應用程式:aspx、cs、 designer 三個檔案
完全不知道更深成次兩者有什么區別,自從我第一天學習.net的的時候,他用了一天時間給我演示了各種控制元件,然后告訴我不許再用這些雞肋的控制元件,心里知道咋回事就行;
后來在實際作業中,我也就從來都沒用過服務器控制元件(全部html原生標簽),aspx頁面中基本沒有 runat="server" 之類的;
表單提交、業務邏輯(翻頁、驗證)全部ajax
事實上aspx頁面在我眼里都多余,我們是做網站的,網站給客戶呈現的html基本都是后臺程式生成的; 而后臺功能(各種增刪改查)能ajax基本都ajax;
我一般專案的大體目錄結構如下:
index.htm ------------ 首頁檔案 (動態生成)
【content】 ----------- 網站各種欄目頁、內容頁 (動態生成)
n......htm
【app_code】-------- 全域物體類別庫
【ajax】 -------------- 全域ajax庫
xxx.aspx
xxx.aspx
xxx.aspx
【master】 -------------- 后臺管理
add.aspx -------------- 對應ajax完成
list.aspx --------------- 對應ajax完成
當時我這位同事師傅給我說,別管網站花樣在變,html是互聯網的呈現基礎,它是不會變的,不管什么語言,就用上面的思路去做專案,邏輯清晰永遠不會被淘汰;
經過這些年用這個思想,我很快學會了php、jsp;
甚至幾種語言做的很多專案前端部分(html、css、js)都是通用的,我就把ajax程式用php或java重寫即可(自己常用的類別庫、方法,用各個語種早就重寫優化過多次,使的很順手了);
很快我狹隘的覺得,這些語言在我眼里就是語法略有差異,實際在我手里干活兒都是一樣的。一個新的網站專案來了,我甚至都開始抓鬮決定用什么語言去開發。(我是不是在暴殄天物?)
直到最近沒事兒,又想學點東西,開始看mvc方面的書,我發現之前的經驗不靈了。
1、覺得mvc并沒有我現在用的方案簡單,好像還更麻煩。
2、我也不知道我現在作業的方法到底是不是大家說的webform,實際上我看大家在論壇里討論的webform也很麻煩,不如我現在的方法簡單。
如果MVC的優點按照官方說法:業務分層、結構清晰、解耦;
我認為我這么多年做專案(根據我上面結構而言)也很清晰啊。
我想知道從正規科班出身的程式員角度看,我的師傅給我教的這些是正路還是歪路,我該如何修正或優化自己的學習方向?
麻煩各位科班出身的師兄弟給一些建議和看法... 拜謝中...
uj5u.com熱心網友回復:
尤其是我發現 MVC做出的網站沒有實際地址,教程上說這是MVC的路由地址我們的一般專案 每個前端頁面都有實際頁面地址,各大網站都是一樣的,例如:
http://www.xxx.ccom/content/20181212.htm
這樣的url看著多順眼,seo優化也好
MVC那種沒擴展名的 url看著咋就那么不順眼,而且各大網站似乎用的也少。
uj5u.com熱心網友回復:
你說的那個不叫作 MVC,那叫做 asp.net mvc。MVC 是世界上最簡單、最基本的一個 UI 模式。不論是 asp.net webform還是 asp.net mvc,都支持路由,并不是只有 asp.net mvc 才可以使用路由,同時路由是耗費了性能代價來獲得看上去短一點的 url 格式而已(把 url 引數放到路徑中固定位置、而不支持靈活的 url 引數格式),并沒有什么特別的功能。所以從前到后,其實都在偷換 asp.net 概念。
關于 seo 問題,其實 http://www.xxx.ccom/content/20181212.htm、http://www.xxx.ccom/content/chart.aspx?id=20181212、http://www.xxx.ccom/content/chart?id=20181212、http://www.xxx.ccom/content/chart/20181212 都一樣會被作為完整的網頁收錄。有人說什么搜索引擎“喜歡”把引數寫到 .html 前邊這是胡說的,搜索引擎如果不知道不同引數對應著不同頁面,那么它還算什么搜索引擎呢?所以說“seo優化也好”是無意義的,純粹是個人愛好。
uj5u.com熱心網友回復:
MVC是一種設計模式,MVC用來開發業務系統居多uj5u.com熱心網友回復:
關于 asp.net 網站和 asp.net 應用程式的區別,它是10幾年前 asp.net 的兩種形式,但是差別不是很大。asp.net 網站支持在一個網站應用中使用多種語言(例如同時使用3種語言),每一個頁面所標記的code behind檔案單獨編譯為獨立的DLL,所以網頁可以用不同語言,并且網站生成之后上傳到生產服務器部署時,往往是上千個自定義檔案中更改幾個代碼檔案,由于每一個檔案都很小(例如只有1、2K位元組),所以適合斷點續傳。并且支持修改個別源代碼就自動編譯的功能,無需編譯只需要上傳個別源代碼檔案即可。
而asp.net 應用程式則像傳統的桌面程式似地,將整個網站的自定義代碼編譯為一個巨大的 DLL 檔案(例如經常有7M位元組),修改一點代碼也要重新上傳整個檔案,在早期經常會造成反復上傳失敗、不斷地從頭開始重傳的毛病。但是好處是網站打包為一個DLL,在參考、加載、管理等方面會有一些方便。根本不支持個別源代碼檔案改變了之后自動編譯生成功能,必須手動編譯。
但是這基本也是個人愛好的區別,沒有太大區別。
但是這是早期的 asp.net,跟你后邊說的 asp.net mvc 其實沒有什么關系。
uj5u.com熱心網友回復:
大致從你后邊的描述看,你大致是參與過 CMS 系統開發,也就是宣傳用的網站生成器開發,然后用來“做網站”。如果是做 web 應用程式開發就肯定比你所了解的技術要深入10倍還多,應用程式需要各種狀態和動態互動操作,并不是什么簡單地輸入條件然后重繪查詢,應用程式講究的是類似游戲程式似地在視窗中有幾千、幾萬個獨立狀態的物件的長時間的變化。而你們的那種一遍遍重繪區域頁面的形式其實正是MVC編程模式,只不過你不用 asp.net mvc 而已。
uj5u.com熱心網友回復:
實際上,“做網頁的”適合用簡單的 MVC 概念,就好像你們雖然早幾年就使用前端概念來設計網站、根本不扯什么 asp.net 還是 php 之類的,但是你并沒有說明白你在前端技術上到底是什么程度。我不知道相對于我們的前端開發人員,你的技術是滿足40%呢,還是只滿足15%甚至 5%。我猜測取中間點,是 15%,也就是說你的前端技術和經驗大致相當于非專業前端開發水平,但是因為你從一開始就沒有學過深入的 asp.net webform 控制元件開發,你大部分時間和精力都在用前端最底層的 js 工具和一些插件,相當于說你是一個經驗豐富的富士康老廠工人、雖然沒有學過機械控制和自動化編程。單純地 MVC,特別是糾結什么 ajax,是不能真正說明前端框架的內涵的。我只是在說明 js 富客戶端前端編程跟 web 服務器端后臺編程的區別時,作為一個重要特種,才會從這個角度來說明。這就好像說汽車跟飛機的一個區別在于有沒有翅膀,但是并不是說凡是綁上翅膀的東西都能飛。前端應用程式就跟傳統的 c/s 桌面程式一樣,它是一個獨立在瀏覽器上跑的大程式,有著上萬、數十萬內部狀態,不是用一個 ajax 通訊陳述句就能來說明其內部架構的。
uj5u.com熱心網友回復:
從開發企業級應用程式的角度,我們非常重視那些開發過大型桌面企業應用程式、或者是深入開發過大型 webform 服務器端用戶控制元件的程式員。而只會做網頁的程式員,不論在技術深入研究的習慣上、還是業務領域知識上、處理復雜系統的軟體工程經驗上,都差幾年經驗。由于 asp.net 最近15年的技術非常混亂,出來了不下 8、9 種整體替換的新“技術”把 asp.net 自身搞得越來越亂、越來越簡單無用,所以在開發大型的企業級應用系統方面,其實 asp.net 最近 10 年都沒有任何專門的有針對性的東西存在。那么靠什么呢?除了過去的已經被淘汰的服務器端控制元件技術之外,那么就是跟 asp.net 其實無關的純粹前端組件開發技術了。而你雖然一直被扔在前端,但似乎并沒有前端框架技術的體系知識。
這是你比那些只被 asp.net mvc 忽悠但是還沒有學過前端的程式員優勢的地方,但是同時也是你比專業的前端開發人員弱勢的地方(因為你沒有正規學過前端框架),這是“未來的方向”問題。
uj5u.com熱心網友回復:
感謝師兄的回復,我逐字逐句認真讀了你的建議,除了感謝還是感謝;
我已理解你說的 web站點 webform mvc之間的關系;
我們公司人少,做網站的業務就我一個人負責,美工、前端、后端;
我非常想明確您說的專業前端的技術,我還是想把我的技能系統化一點;對于框架我的理解有兩種
1、類似jqurey這種(大家都把這叫js框架,我也跟著叫吧),這是我用的最多最熟練的,真心覺得他很方便,早幾年我就開始大規模使用了。雖然我原生js用的也很熟練,但我從心里膜拜jqurey
2、另一種是類似Bootstrap這種框架,我死活習慣不了;我自己用了五六年的css,命名、樣式、結構、影片庫我了然于胸;況且也一樣通過w3c的驗證(兼容性及無錯都沒問題),何必去用人間這個框架(硬著頭皮遵循人家的命名規則)。或許是我沒有看到它的厲害之處吧,反正就是接受不了,也記不住。
我們是一線的小公司,這些年在我手里過去的各行各業前后臺都有的獨立網站(非下載的模板站);也有千八百個了;我想說一般大家理解的前端效果該做的我也都能做;
我想問這位師兄:從你字里行間我認為你就是我要找的那位科班出身的正規軍的大神,鑒于我上面說的,我需要學些什么,修正自己哪些短板,才能到達你說的真正的前端人員水準。
師兄:這是我這些年一直在完善并使用的CMS,除了Jqurey這類的框架,每一行代碼都是自己寫的;目前有 net php java三個版本;目標客戶以企業官網為主,也有日發稿量5-10篇 庫存文章10W+ 的媒體網站、政府網站再用;性能還過得去;
http://cms.fvce.com/master/login.htm
admin admin456
希望能在你的建議下,我要找到一個方向,把自己的知識系統化;年齡慢慢大了,領導讓我帶隊,我都不知道給小弟們說點啥,審視自己才發現自己有多么弱...
uj5u.com熱心網友回復:
我感覺,你是來炫耀的么?哈哈其實,對于你當前的作業內容,現在的前端框架并不比你現在掌握的內容更合適。所以你如果想學習新的前端技術,用于你公司的框架,那你想多了。
因為你公司的產品,是基于網站定制的,一般的框架達不到這個深度,所以你會覺得用的都不如你自己的框架方便。
所以,你繼續用你的框架就行了,不用自慚形穢。
如果你想學習現在新的技術,.net mvc都已經過時了,包括它之前的所有.net框架,也一樣。你可以了解,但不需要用。
你還要了解新的框架,bootstrap都可以不用,而應該基于最新的前端框架,vuejs,angular,reactjs三大框架,可以學。
uj5u.com熱心網友回復:
您抬愛,兄弟絕對不是炫;只是為了把目前我的狀態說明白,發起這個帖子主要原因是:領導有意讓我帶隊,招幾個大學生把我們的產品在做細;來面試的人忽然問我一句,貴公司產品用的什么框架?
我直接語塞了,啥框架我也不知道,我自己寫的;
用的什么技術?我答曰 asp.net php java 對方感覺看我的眼神就好像看一個不懂技術的人一樣。
我非常尷尬,認真審視了一下自己這些年做的作業,我居然總結不出來我做的是啥....
uj5u.com熱心網友回復:
答不上來是因為沒有對自己的技術點做過總結,我也像你一樣。就像我做web,我會點前端的技術,我用用ExtJs,我后臺會寫Java,資料庫我用用Mybatis。web框架是什么呢,就算是spring mvc吧。
Jquery做瀏覽器兼容方便,影片,Ajax什么的都好用,我一樣拿來用用。
但有時候前端界面做做擴展,用H5,我一樣用MUI,后臺改用Asp.Net WebApi也行。
有時候我要采集硬體設備的資料,做報表,做展示,我就放棄B/S,用WPF、Winform,甚至VBA。
都說自己的技術堆疊怎樣怎樣,我看我就是一個沒人維護的技術堆。
uj5u.com熱心網友回復:
不管黑貓白貓能抓到老鼠就是好貓,以前的人喜歡自己寫框架覺得別人的不好用,后來某些人寫的比較好得到了推廣用的人多了而已,我是更佩服那些自己寫框架的,只會用別人寫的東西只能說是熟練工吧
uj5u.com熱心網友回復:
mvc的url說白了就是domain/index.php/ctrl/func
就這么簡單,mvc是為了讓專案更結構化,更有利于維護和復用
uj5u.com熱心網友回復:
我也差不多也是用你的模式開發的,用什么MVC?你完全可以了解一下MVC,沒必要非用不可。那玩意七加載,八加載,用戶量訪問并發量一大,不比webform好多少。我們無論哪個部門(.net)的,都不用mvc,我是自已用和你差不多的模式(也就對前端要求高一些,作業量大些),好在頁面通用啊,而且靜態頁面都可以放到DNS加速上。 別的部門用的改造版的webform,他們不用傳統的webform,各種控制元件全部自定義開發過,去除了viewstate一大堆影響速度,沒什么用的東西,保存狀態自已重新做。uj5u.com熱心網友回復:
我覺得這種模式挺好轉的。前端后續可以了解一下vue(入門相對簡單)腳手架等, 后端的話再了解一下API,差不多也是個全堆疊了~uj5u.com熱心網友回復:
膜拜一下
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/82416.html
標籤:ASP.NET
