尝试用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以上环境。本例非原创,网上抄的。
<%@ 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类型,否则你也将得不到预期效果。
六、相关资源
出处:http://webflash.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。