ASP.NET AJAX(Atlas)和Anthem.NET——管中窥豹般小小比较
2006-11-22 15:32
375 查看
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而已:
[/code]
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
服务器端的处理函数也很简单:
[/code]
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
大功告成!
Anthem.NET程序代码
将Anthem.dll拷贝到Web Site的bin文件夹下,然后在web.config的<configuration>\ <system.web>\ <pages>\ <controls>中添加如下一行,注册Anthem.NET控件:
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
Anthem.NET页面不用添加ScriptManager,而是提供了一套自己就带有Ajax功能的、继承于现有ASP.NET控件的服务器端控件。根据上面在web.config文件中的注册,这部分控件的前缀为anthem。
Anthem.NET程序的页面显得非常简单:
[/code]
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
服务器端的处理函数比ASP.NET AJAX的多出一行,明确指出需要更新Label中的内容(这一句其实与ASP.NET AJAX的UpdatePanel有着异曲同工之妙):
[/code]
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
似乎更加简单!
运行结果
两个示例程序运行结果完全一致:点击按钮将执行一次异步回送,然后Label中将显示出服务器端设定的文字。
ASP.NET AJAX和Anthem.NET实现方式的比较
一样的功能,但是却有比较:
结论
了解还不够深入,结论先不下了……上面的数据似乎可以说明一些问题,所谓滴水藏海啊!
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" />
[code]<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>
[/code]
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
服务器端的处理函数也很简单:
protected void btnSetText_Click(object sender, EventArgs e)
[code]{
lbText.Text = "This text is set on server side.";
}
[/code]
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
大功告成!
Anthem.NET程序代码
将Anthem.dll拷贝到Web Site的bin文件夹下,然后在web.config的<configuration>\ <system.web>\ <pages>\ <controls>中添加如下一行,注册Anthem.NET控件:
<add tagPrefix="anthem" namespace="Anthem" assembly="Anthem"/>
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
Anthem.NET页面不用添加ScriptManager,而是提供了一套自己就带有Ajax功能的、继承于现有ASP.NET控件的服务器端控件。根据上面在web.config文件中的注册,这部分控件的前缀为anthem。
Anthem.NET程序的页面显得非常简单:
<div>
[code] <anthem:Button ID="btnSetText" runat="server" Text="Set Text" OnClick="btnSetText_Click" />
<anthem:Label ID="lbText" runat="server" />
</div>
[/code]
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
服务器端的处理函数比ASP.NET AJAX的多出一行,明确指出需要更新Label中的内容(这一句其实与ASP.NET AJAX的UpdatePanel有着异曲同工之妙):
protected void btnSetText_Click(object sender, EventArgs e)
[code]{
lbText.Text = "This text is set on server side.";
lbText.UpdateAfterCallBack = true;
}
[/code]
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
似乎更加简单!
运行结果
两个示例程序运行结果完全一致:点击按钮将执行一次异步回送,然后Label中将显示出服务器端设定的文字。
ASP.NET AJAX和Anthem.NET实现方式的比较
一样的功能,但是却有比较:
结论
了解还不够深入,结论先不下了……上面的数据似乎可以说明一些问题,所谓滴水藏海啊!
相关文章推荐
- ASP.NET AJAX(Atlas)和Anthem.NET&mdash;&mdash;管中窥豹般小小比较
- ASP.NET AJAX(Atlas)和Anthem.NET——管中窥豹般小小比较
- ASP.NET AJAX(Atlas)和Anthem.NET——管中窥豹般小小比较
- ASP.NET AJAX(Atlas)和Anthem.NET——管中窥豹般小小比较
- ASP.NET AJAX(Atlas)和Anthem.NET——管中窥豹般小小比较
- 客户端调用服务器端方法——ASP.NET AJAX(Atlas)、Anthem.NET和Ajax.NET Professional实现之小小比较
- 客户端调用服务器端方法——ASP.NET AJAX(Atlas)、Anthem.NET和Ajax.NET Professional实现之小小比较
- 客户端调用服务器端方法——ASP.NET AJAX(Atlas)、Anthem.NET和Ajax.NET Professional实现之小小比较
- 客户端调用服务器端方法——ASP.NET AJAX(Atlas)、Anthem.NET和Ajax.NET Professional实现之小小比较
- 客户端调用服务器端方法——ASP.NET AJAX(Atlas)、Anthem.NET和Ajax.NET Professional实现之小小比较
- 客户端调用服务器端方法——ASP.NET AJAX(Atlas)、Anthem.NET和Ajax.NET Professional实现之小小比较
- 客户端调用服务器端方法——ASP.NET AJAX(Atlas)、Anthem.NET和Ajax.NET Professional实现之小小比较
- ASP.NET AJAX、AJAX Pro、Anthem、Prototype之AJAX实现比较
- Asp.net ajax、Anthem.net、Ajax pro三大ajax框架论坛网友比较
- Asp.net ajax、Anthem.net、Ajax pro三大ajax框架那一种使用比较方便?易于配置?
- Anthem.NET、Ajax.net和Atlas的比较
- Asp.net ajax、Anthem.net、Ajax pro三大ajax框架那一种使用比较方便?易于配置?
- Asp.net ajax、Anthem.net、Ajax pro三大ajax框架那一种使用比较方便?易于配置?
- asp.net jquery, ajax, extjs三种框架比较
- 《ASP.NET AJAX程序设计&mdash;&mdash;第I卷:服务器端ASP.NET 2.0 AJAX Extensions与ASP.NET AJAX Control Toolkit 》勘误、