詳解ASP.NET開發
開發完一個項目后,如果能夠很好的對這個項目做個總結,對我們以后的項目開發以及個人技術的積累都會有很大的幫助。最近在外派公司做完一個系統,在此進行一下深入的總結,也希望給讀者帶來一些個啟示。
一.系統介紹
本系統是某一跨國公司北京Site的班車預訂系統(班車超多,往返于北京和天津之間)。客戶(公司員工)能夠在本系統中已經發布的班車路線里預訂座位;如果沒有相應的班車(座位已滿),可以提交申請,讓Travel Clerk新建立班車路線;能夠對系統運行進行各種的統計生成報表,比如班車運行效率,司機出車情況等等。
二.應用的開發技術和工具
ASP.NET 2.0, ASP.NET Ajax, SqlServer 2000, C#, NHibernate, Crystal Report
使用的是常用的技術,我認為開發一個系統不一定要用***的技術,這要看項目開發的需求,以及參與開發人員掌握的情況。如果項目緊的話,就需要采用成熟(傳統ASP.NET技術)的技術進行有效的開發。系統的業務層和數據訪問層在此系統實際上歸為了一個層里,都由Nhibernate實現。Nhibernate是一個.Net實現的面向對象的框架,即ORM. 我覺得和Linq很類似。
三.項目開發中遇到的實際問題
令我印象最深刻的就是,在開發中系統需求一直在變化,因此一聽到要改東西,心里就窩火。
要知道需求頻繁的變更,對于開發來說打擊很大,殊不知不斷的改代碼,系統會變得脆弱些,當然這樣應當加大測試的力度。
在開發之前的設計中也有一個失誤,沒有把業務考慮全,造成在開發中要費很大的力量進行彌補(在此提一下設計的失誤之處,一般情況下班車是不跨天運營的,在開發中期,客戶竟然提出班車有可能跨天,比如晚上11點出發,后半夜12點半去機場接人),超郁悶。
在技術上基本上沒有什么障礙,在組員的互相交流中很快搞定。
四.開發中值得一提的幾個技術點
1. 模板頁的應用
當然了既然用ASP.NET開發,基本上會用到模板頁的,但是使用的深度不同。比如說Master Page和Content Page之間(雙向的)的相互訪問。一般情況下是Content Page訪問Master Page,然而反過來呢?在次提出一個建議,當Master Page訪問Content Page時應當是松散耦合的, 可以在Master Page中生成事件讓Content Page來訂閱。
還有一點值得一提,因為Master Page是一個Naming Container,所以在它之下的控件的ID之前是要墜上Master Page的ID的,此外Content Place Holder和GridViewRow等等都是Naming Container,因此在應用FindControl時要注意,此函數是不能穿透Naming Container來尋找指定Control的。
2. 跨頁提交
跨頁提交是ASP.NET 2.0的一個新特性,當提交頁面要向另外一個頁面傳遞大量數據時,可以考慮用跨頁提交技術。因為其他技術都不怎么合適,比如Session,QueryString(地址欄參數***限制為2K)等等。
3. 動態生成控件以及響應事件
在頁面中有時需要動態生成很多的控件,這些還要相應事件。在這種情況下要注意,如果不做好處理,當頁面進行回發時,動態控件會丟失。我們需要在每次在頁面的Init事件里生成這些動態控件。
4. Javascript和Css
開發這個系統沒有用到什么流行的技術,但是Javascript和Css要求很高。因此在這兩方面有所提高。在次提一下,做ASP.NET開發的人員有相當一部分人員是由桌面開發轉來的,因此大家的Javascript和Css功底一般不深,老是認為這些是美工他們的工作,心理存在某些個抵制,看不起Javascript。這是一個認識上的問題,做Web開發,不管.NET有多精深,ASP.NET最終要做的還是要把html標記推送到客戶的瀏覽器里。如果不懂html, javascript, css,我可以說ASP.NET開發是永遠做不到精益求精的。啟示做Web開發要求掌握很多的東西, http協議,IIS,web技術,服務器部署等等。還是那句話,學海無涯,技術無止境!
5. Nhibernate
開發這個系統對Nhibernate有了一定的認識,ORM框架用起來確實很方便,我們用對象去考慮問題,不必再寫那些個繁瑣的Sql語句,當然些hql還是要懂得sql才行。Linq的目的也在此。但是對于復雜的統計功能,我覺得Nhibernate就不合適了,因此這個系統在這方面還是用的Sql。
6. 高效率使用Google查詢
這個項目確實很緊,做Web開發離開互聯網,離開Google不可想象。也許也應了這句話,Web開發來源于互聯網,回報于互聯網。如果能高效的借助Google快速找到自己要解決問題的方案,會加快項目的開發。請在這里閱讀本人的Google搜索心得。以上介紹ASP.NET開發
【編輯推薦】