编写自定义服务器控件的认识前提就是必须清楚认识到:服务器控件只能应用在Studio的编程平台(也可以手工编译)。
这个前提看似很明白,但我刚接触ASP.NET时,总是很糊涂。
其实,每一个.ASPX页面都可以用一个Handler来代替,而且,.ASPX页面本来就是一个Handler。之所以用.ASPX页面的编程方式,主要是为了提高编程的生产效率,降低编程的生产难度。
我们在Studio编程平台上创建.ASPX页面时,会出现2个窗口,一个是源代码窗口,另一个是设计窗口。在源代码窗口看到的是硬编码,在设计窗口中看到的是所建即所得的接近于实际呈现的图形结果。这就引伸出一个问题,Studio编程平台是怎么根据源代码窗口中看到的是硬编码创建出设计窗口中看到的接近于实际呈现的图形结果?
这也是理解服务器控件控件的关键。
我们可以想象为如下:
设计窗口接近于IE浏览器,但数据来源由Studio的编程平台自己提供。
源代码窗口类似于比较人性化的文本编辑器,也由Studio的编程平台监视。
Studio的编程平台负责将源代码窗口中看到的是硬编码创建为设计窗口中看到的接近于实际呈现的图形,同时,还提供各种服务,如:属性窗口、控件编辑窗口、设计窗口内的编辑功能、、、、、、ETC。而这些功能,都需要服务器控件的代码的配合。
至于如何配合,请看《庖丁解牛》。