有关在我写ASP.NET程序中发现的问题.
我在学校的时候一直是写PHP 程序的.针对与像PHP 这种语言来说 必须熟悉其相关的描述性语言和相关辅助工具 .如你必须熟悉HTML CSS JAVASCRIPT PHP 数据库基本操作 还要熟悉PHP里众多的函数(其实只要一个帮助手册足够了) 同时你需要知道在各种环境下配置、搭建环境 . 如还要熟悉LINUX操作系统。熟悉APACHE 和IIS 的运行原理 . 其实要想学好它真的很不容易 .后来接触到ASP 和 JSP这些脚本语言。它的运行机制和编写代码的方式和PHP其实都是一样的。没有什么变化。
针对脚本语言来说 我认为它有以下的缺点.
一、页面的执行状态是无连接的.也就是执行一次连接,页面执行完毕后马上就结束连接,所有的变量全部释放掉了 .这样造成在页面之间传递数据很麻烦.一般我用SESSION (最常用的但有时间限制)传递。持久的数据就只好以数据库的形式来存储传递 。最常用的是用url来传递或者FORM。但这样传递数据要考虑很多问题。
二、脚本语言另一个好处是程序界面出来很好看,其表现形式多样化 。但是问题也就在这里 。对于我们对美工色彩不敏感的程序员来说 。这是个很大的打击。很多东西就是因为做出来的界面太难看了。所以打击了继续下去的信心。
三、大量的HTML 和JAVASCRIPT混合起来。造成了代码阅读和管理上的不方便。同时写程序的时候也很恼火。更麻烦的是调试很艰难。我一般调试的时候就是在可能出现在错误的地方用 exit() 或者 response.end。在之前把变量打印出来看变化。对于逻辑很复杂或者钳套层次很多的情况调试更是一场噩梦
所以后来我又陆续接触了VC delphi pb vb 等都是以窗体为载体(这样说不准确,只是针对于表现形式)的编程语言。其中在学vc的时候对我帮助很大。让我理解了window的运行原理。尤其是窗口消息的机制。对于学习其他的语言很有帮助。
那么在基于窗体的编程语言上述的问题都得到了解决。 窗体和窗体之间的变量传递通过全局变量或者类和类之间的调用都可以解决。并且变量的生命周期一般自己也可以掌握。调试更是不用说。智能的IDE调试环境做到了你想要的任意形式的变量运行状态。 同时更多的其他工具可以供你使用如源代码管理,版本控制。说白了就是编程环境比脚本编程方便好几百倍。同时意味着效率的提高。
asp.net 的出现让我觉得很受鼓舞。在集成的VS.NET 2003 环境中调试可以做做到和其他语言一样的便利。代码和界面的分离使我不用去考虑美工的问题。同时C# 优美的语句和智能的开发环境给人很舒服的感觉。特别是ASP。NET中的回传机制让我不用考虑去维护页面中操作的状态。可以想用窗口一样的方式去编程。去写事件代码。还有很多控件(没有深入下去)
在写ASP.NET的时候我尽量不去在 ASPX文件中写代码。只在cs文件中处理逻辑然后把逻辑处理的结果返回给一个标签或者控件的表现形式上。(问题一:这样对么。合理么。主要是效率高么?)
但是有的时候你必须需要在aspx页面中动态的给各变量负值,而在CS文件中没有办法做到。同时根据业务需要在aspx文件中写大量的javascript 脚本。另外我看到很多教材和例题中都把事件和代码写在aspx中(问题二这种方式效率高么,和写在cs文件中有什么区别 ),这个让我觉得很不爽。为什么呢。为什么要写在一个文件呢。是不是大家都有一种惯性。
还有在在页面之间传递数据的问题在目前处理的方式和传统的脚本语言一样 。一样要使用URL方式。当然面向无状态连接的HTTP方式目前是没有办法改变这种状态。那么诸位在处理这些问题的时候有什么好的办法呢????
道行不深,请多指教!!
作者分享了写ASP.NET程序的经历,对比了PHP、ASP、JSP等脚本语言与VC、delphi等基于窗体的编程语言。指出脚本语言存在页面数据传递麻烦、界面设计难、代码管理调试不便等缺点,而基于窗体的语言可解决这些问题。还提出ASP.NET编程中的一些效率和数据传递问题。

5503

被折叠的 条评论
为什么被折叠?



