程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.net控件開發系列之一 開篇

ASP.net控件開發系列之一 開篇

編輯:關於ASP.NET

早段時間,同事之間很流行打CS,所以那段時間的問候變成了“今天你殺XX了嗎?”

控件開發也許是程序員最能發掘自己創造力的一件事情吧?控件開發不僅要求你對當前的開發有一個較全面和略深的了解,而且也能促使你去了解開發環境的底層的東西。比方說我在開發控件的過程中就對reflect和MSIL產生了較深的興趣,也許,在以後的一段時間裡,我會嘗試去做一個reflector,哈哈,很多事情都很難說地~

“今天你寫控件了嗎?”,也許在將來會成為中國.net程序員的一個日常用語,哈哈,很多事情都很難說地~不好意思,重復了一下,畢竟,在.net的框架下一些簡單的控件的開發相對來說,是·很·容易的。.net框架已經為你做了大部分的事(當然,我這種說法是有誤的,創新永遠是第一位的。),我所做,只是想憑自己三寸爛舌和一股熱情,告訴大家,那個真的很容易。

現在,你有信心了嗎?

在這開篇,我還想和大家探討幾個問題?

1.ASP.net是ASP+嗎?

記得有這麼一句話,微軟喜歡給一些換湯不換藥的東西換一個全新的名字,讓人認為是一種全新的技術,而有些完全不同的東西卻整一個很相像的名字,ASP.net和ASP就是這樣,ADO.net和ADO.net更是這樣。在這裡,我想說的是,ASP.net和ASP是很不相同的。ASP是建立在WINDOW DNA上的(這句也許有誤,我對舊的技術沒什麼底蘊),以解釋為執行方式的,而ASP.net是建立在.net framework這一全新的東東上的,是先編譯後運行的,所以ASP.net的效率更高,而且有.net framework的支持,可以做很多很多的功能,而且很方便,你不必在COM的世界為了一個功能大海撈針,在一個統一的.net環境中寫寫代碼就OK了,同時,Web serviceS做為它的同胞,和asp.net有很大的相通性,你可以很方便的同時為Internet提供基於浏覽器和各種客戶端GUI程序的服務,還有remoting.....爽歪了啊!

2.ASP.net都做了什麼?

ASP.net是怎麼生成一個個活蹦亂跳的鮮活網頁的呢?IIS做為一個HOST,為一個個ASP.net程序創建AppDomain而不是一個個Process,每個ASP.net程序在第一次運行時被編譯為機器碼,為客戶的Request生成Response。我們在制作網頁的時候,.aspx文件和.aspx.cs文件好像各占半壁江山,而其實的頁的生成過成中,.aspx文件中的東西只是Render方法的一串Write調用。

3.ASP.net開發,我們的重點該放在哪呢?

是啊,我們的重點該放在哪喲?我重點培養自己哪方面的技能呢?在上一點中,我說.aspx文件只不是後台程序的一個方法(Render)中的部分而已,那麼意思是不是前台的東西就只是一個狗屁呢?對這個觀點,我是堅絕反對的,理由有:第一、ASP.net最終還是用HTML、Script、CSS來實現界面,完成功能。一個Render而已,可這個Render可了不得啊,ASP.net中大部分的東西最終不就是為了這個Render嗎?第二、.net框架已經為我們做了太多太多的東西,我們可以很舒服的完成我們需要的功能,用System.Drawing畫出有水印的圖,用System.Data玩把戲般的操作數據,正則?XML?......一切都有一堆積木在那等著你堆了。所以,我們前進的道路很清晰的兩路,就是,用那些老掉牙的DHMTL/JS/CSS技術完成你的創意,另一方法,努力學習軟件開發的方法論,什麼模式、什麼UML、什麼框架、什麼用例、什麼MDA、什麼AOP......不好意思,接不下去了,吹概念不是我的長處。而且在控件開發中,你沒有DHTML這些東西的基礎,而以為對現有控件的深度發展就能做出一個很成功的控件和創意出來?基本上......這個(讀的時候這裡頓一下)很難!

4.Attribute?

Attribute?這個是.net中很重要的概念,在控件開發在尤其重要。很多書都說Attribute和Property不好分別,我的理解很簡單,Property是內在的屬性,Attribute是相對“外在”的東西,舉個例子,你的肚腩很大這是Property,然後你穿一件很寬松的衣,這是Attribute,當然這個解釋是絕對不正確的,也許“你肚腩很大”這句描述性的話是Attribute那來得正確,不過,這個有助於你理解兩者的區別是如此的大,那麼這兩者到底是什麼呢?其實大家都知道了,我這裡再八婆一下。編譯器在把你的代碼整成一個Assemble時,把Method、Property這些東西整成IL指令,同時,它會弄出一份描述你的類,方法,屬性,字段等等的各種信息的MetaData,所以,在IDE中,我寫一個XX.在打下這個點後,後面一堆讓我愛得不得了的智能完成東東就出來了,這些就是MetaData和Reflect的功勞,此外還有VS.net的對象浏覽器,某些兄弟偷看我發布的控件的內部代碼的工具,都得益於這個東東,而且IDE也利用反射讀取MetaData來決定怎樣在設計器如何讓用戶和控件交互。而!Attribute就是我們操作MetaData的工具。

......還有呢?暫時沒想到,呵呵。

所以,想嘗試做控件的兄弟,你不僅要有信心,你還要准備一點HTML/JS/CSS之類的基礎和對Attribute等.net的特性的一些了解。你准備好了嗎?

也許是年齡的原因,所以我這個人現在做事一般不是很沉穩,所以你在以上一段吹水中找出幾個錯誤我一點也不會吃驚,同時,我很感激你。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved