尝试用JScript .NET编写ASP.NET程序

一、我为什么会有这样的想法

本人一直从事WEB前端开发工作,所以对CSS和JavaScript是比较熟悉的,同时工作之余也会玩玩后台编程,自然对C#也是了解的,也知道C#是微软.NET平台的主推语言,本人也在提高中。同时我也想过能否用自己最熟悉的JavaScript作为后台编程语言,我这里指的不是传统的ASP,而是ASP.NET,抱着这个想法,最终被我发现了JScript .NET可以实现我的需求,首次使用再此做个笔记。当然我只是拿它来玩玩的,因为把JScript .NET作为实际项目的开发语言显然是很不明聟的,因为用的人太少,文档也少,也不便于团队合作开发大项目,最糟糕的是它没有一个好的开发与调试IDE,连微软自己的VS都不能很好支持(这里指对操作.NET方面的方法属性等提供自动完成及调器功能,而不是基本JS编写,如果是基本编程可以选择Apatana和VS2008)。

二、什么是JScript .NET

相信大家对JavaScript绝对不会陌生,因为你对AJAX并不陌生,其实JScript就是微软版本的JavaScript,它几乎与JavaScript是一样的,而且还扩展了部分实用方法。在早期ASP流行的时候,它也与VBscript一样可以作为服务器端运行的脚本语言。而JScript .NET可以说是JScript的最新版本,即JScript 8.0,它在功能上有质的突破,它的设计目的是为JScript开发人员提供访问.NET公共类库的方法,即它可以开发基于.NET平台的应用程序,甚至是.NET WinForm程序。通过对JScript 8.0文档了解,发现我们可以通过.NET SDK或VS IDE把JS文件编译成exe或dll文件,而这些文件又因为是基于.NET通用中间语言编译的,所以又可以被其它语言访问,这一定让你大开眼界。

三、JScript .NET较之传统的JavaScript及JScript有什么优势

通过对JScript .NET的了解以及将其与同类语言对比,我们很容易发现它的优势:

(1)功能更丰富。提供了众多额外实用方法和特性。

(2)更面向对象。直接提供类与继承等关键字,可以显式声明变量类型,还有包的概念和定义方法,方便代码组织和管理。

(3)执行可以更快。与.NET平台支持其它语言一样,支持编译执行,执行效率与其它语言几乎是同等的。

四、JScript .NET访问数据库的例子

代码相当简单,就不加注释了,你可以看到常见的.NET方法。本人测试通过,数据库连接与SQL语句改成你自己实际查询数据,要求.NET 2.0以上环境。本例非原创,网上抄的。

<% @ page language = " JScript "   %>
<% @ import namespace = " System.Data.SqlClient "   %>
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html  xmlns ="http://www.w3.org/1999/xhtml"   >
< head  runat ="server" >
< title > 用Jscript .NET编写ASP.NET程序实例 </ title >
</ head >
< body >
< form  id ="form1"  runat ="server" >
< script  runat ="server" >
function  Page_Load(sender,e:EventArgs)
{
    
if  ( ! IsPostBack)
    {
        
var  db:String  =   " server=.;uid=sa;pwd=sa;database=News " ;  
        
var  sql:String  =   " select top 10 * from News " ;  
        
var  rs  =  SqlDataReader;
        
var  conn:SqlConnection  =   new  SqlConnection(db);  
        
var  cmd:SqlCommand  =   new  SqlCommand(sql,conn);    
        
try  
        {
            conn.Open();
            rs 
=  cmd.ExecuteReader();
            
if  (rs.HasRows)
            {
                
while  (rs.Read()) 
                {
                    Response.Write(rs[
" Title " ].ToString() + " <br/> " );
                }
            }
            
else
            {
                Response.Write(
" Not Found " );  
            }
            rs.Close();
            conn.Close();  
        } 
        
catch (e)
        {
            Response.Write(
" Error! " );
        }
        
finally  
        {
            cmd.Dispose();
            conn.Dispose();
        }
    }
}
</ script >
</ form >
</ body >
</ html >

五、注意事项

(1)通常情况下我们在ASP.NET WEB控件页(ASPX文件)页头用Page指令指定了页面使用默认编程语言后,在HTML正文我们可以使用像<% %>的方式来包含执行代码块。但是我发现使用Page_Load方法或操作一些ASP.NET服务器控件的时候,必须使用带runat=”server”属性的<script>块,否则什么内容都不输出,不知道是不是我的系统问题,还望有朋友指点。

(2)JScript官方文档说对于变量类型的声明,可以指定也可以不指定,比如像var sql:String可以简单写成var sql,但是我发现有些变量的类型是一定要声明的,不然也会有问题,比如function Page_Load(sender,e:EventArgs)中的e就要显式声明为EventArgs类型,否则你也将得不到预期效果。

六、相关资源

· JScript.NET通俗教程

· MSDN 含有JScript.NET演示实例

· JScript 8.0 语言参考手册chm 下载

你可能感兴趣的:(asp.net)