嘗試用JScript .NET編寫ASP.NET程式

來源:互聯網
上載者:User
文章目錄
  • 一、我為什麼會有這樣的想法
  • 二、什麼是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 下載

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.