ASP.NET AJAX(Atlas)和Anthem.NET——管中窺豹般小小比較

來源:互聯網
上載者:User

Anthem.NET近日有朋友和我提到Anthem.NET這個同樣基於ASP.NET的Ajax架構,今天有機會親自嘗試了一下。初步的感覺似乎和ASP.NET AJAX不相上下,甚至某些地方要強於ASP.NET AJAX。當然,半個小時的嘗試不能算作什麼,這篇文章的很多比較結論可能只是因為我的“無知”造成的,取名“管中窺豹”,其意正在如此。

Anthem.NET的首頁在這裡,提供了下載檔案以及大量的樣本程式。同時,部落格園的木野狐兄弟也寫了一些很好的關於Anthem.NET的文章,值得我們學習(希望木野狐兄弟再接再厲啊!)。

本文將分別用ASP.NET AJAX和Anthem.NET實現一個最最最最簡單的Ajax應用,即:頁面中一個Button一個Label,點擊Button將在伺服器端設定Label中的Text,當然,這一切都是以Ajax非同步回送的方式進行的。並比較這兩種實現方式的編寫代碼、產生用戶端指令碼大小、執行效率等。

 

ASP.NET AJAX程式碼

我想,對於ASP.NET AJAX這部分內容,大家已經非常熟悉了:ScriptManager和UpdatePanel而已:

<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>
    <asp:Button ID="btnSetText" runat="server" Text="Set Text" OnClick="btnSetText_Click" />
    <asp:UpdatePanel ID="up1" runat="server">
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="btnSetText" EventName="Click" />
        </Triggers>
        <ContentTemplate>
            <asp:Label ID="lbText" runat="server" />
        </ContentTemplate>
    </asp:UpdatePanel>
</div>

伺服器端的處理函數也很簡單:

protected void btnSetText_Click(object sender, EventArgs e)
{
    lbText.Text = "This text is set on server side.";
}

大功告成!

 

Anthem.NET程式碼

將Anthem.dll拷貝到Web Site的bin檔案夾下,然後在web.config的<configuration>\ <system.web>\ <pages>\ <controls>中添加如下一行,註冊Anthem.NET控制項:

<add tagPrefix="anthem" namespace="Anthem" assembly="Anthem"/>

Anthem.NET頁面不用添加ScriptManager,而是提供了一套自己就帶有Ajax功能的、繼承於現有ASP.NET控制項的伺服器端控制項。根據上面在web.config檔案中的註冊,這部分控制項的首碼為anthem。

Anthem.NET程式的頁面顯得非常簡單:

<div>
    <anthem:Button ID="btnSetText" runat="server" Text="Set Text" OnClick="btnSetText_Click" />
    <anthem:Label ID="lbText" runat="server" />
</div>

伺服器端的處理函數比ASP.NET AJAX的多出一行,明確指出需要更新Label中的內容(這一句其實與ASP.NET AJAX的UpdatePanel有著異曲同工之妙):

protected void btnSetText_Click(object sender, EventArgs e)
{
    lbText.Text = "This text is set on server side.";
    lbText.UpdateAfterCallBack = true;
}

似乎更加簡單!

 

運行結果

兩個樣本程式運行結果完全一致:點擊按鈕將執行一次非同步回送,然後Label中將顯示出伺服器端設定的文字。

 

ASP.NET AJAX和Anthem.NET實現方式的比較

一樣的功能,但是卻有比較:

 

結論

瞭解還不夠深入,結論先不下了……上面的資料似乎可以說明一些問題,所謂滴水藏海啊! 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.