文章目錄
- 一、我為什麼會有這樣的想法
- 二、什麼是JScript .NET
- 三、JScript .NET較之傳統的JavaScript及JScript有什麼優勢
- 四、JScript .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 下載