用VS2005创建一个基本的Atlas Web应用(1)



本文通过介绍Atlas的最新技术的使用,使你能够理解什么是Atlas技术,对学习Atlas有很大帮助。在这里你将要跟着我做一个基本的Atlas程序,下面的程序是使用Atlas控件通过客户端脚本远程调用Webservice,然后把结果显示到Web页面上,但不需要通过把页面提交到服务器端就可以完成。
  在作这个例子之前,你首先要安装NET Framework version 2.0和Visual Studio 2005开发工具,另外还要安装Atlas的程序包,你可以到微软的网站下载Atlas的安装程序。Atlas安装完后,会在你的开发工具的新建网站对话框模版列表中显示一个”Atlas”Web Site的Atlas模版项。你先选择这个模版项建一个Atlas的Web网站。开发工具会自动产生一个配置好的Web.config文件。具体操作步骤如下:
1.选择“文件”----“新建“----“网站”菜单项
2.在新建网站对话框中,选择'Atlas' Web Site模版项
3.在“位置”选项中选择“文件系统”,选择一个路径和所用语言。然后确定。如下图
图11


4.打开解决方案资源管理器,选择当前解决方案,点击鼠标右键选择快捷菜单项“添加新项”,选择Web服务,并命名为HelloWorldService.asmx,选择语言,点击添加。
图22


  在Web服务代码里添加一个HelloWorld方法,用于返回服务器日期和时间,这个方法的参数为string类型,返回值为按一定格式要求显示的string类型。完整的Web服务代码如下:

  C#代码如下:

<%@ WebService Language="C#" Class="Samples.AspNet.HelloWorldService" %>

using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
namespace Samples.AspNet {

[WebService(Namespace = " http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class HelloWorldService : System.Web.Services.WebService {

  [WebMethod]
  public string HelloWorld(String query)
  {
  string inputString = Server.HtmlEncode(query);
  if(!String.IsNullOrEmpty(inputString))
  {
    return String.Format("Hello, you queried for {0}. The "
      + "current time is {1}", inputString, DateTime.Now);
  }
  else
  {
    return "The query string was null or empty";
  }
  }
}
}
  VB代码如下:
<%@ WebService Language="VB" Class="Samples.AspNet.HelloWorldService" %>

Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols

Namespace Samples.AspNet

<WebService(Namespace:=" http://tempuri.org/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
Public Class HelloWorldService
  Inherits System.Web.Services.WebService

  <WebMethod()> _
  Public Function HelloWorld(ByVal query As String) As String
  Dim inputString As String = Server.HtmlEncode(query)
  If Not String.IsNullOrEmpty(inputString) Then
    Return String.Format("Hello, you queried for {0}. The " _
      & "current time is {1}", inputString, DateTime.Now)
  Else
    Return "The query string was null or empty"
  End If
  End Function

End Class
End Namespace
5.添加一个Web窗体,命名为AtlasScript.aspx,在添加Web窗体时不要选择“把代码放在单独的文件中”选择项。
6.切换到页代码浏览,复制下面代码粘贴到你的@Page标记下面。

1.     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2.       " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3.    
4.     <html xmlns=" http://www.w3.org/1999/xhtml">
5.      
6.       <head id="Head1" runat="server">
7.       <atlas:ScriptManager runat="server" ID="scriptManager">
8.         <services>
9.         <atlas:servicereference path="~/HelloWorldService.asmx" />
10.         </services>
11.       </atlas:ScriptManager>
12.       <style type="text/css">
13.         body { font: 11pt Trebuchet MS;
14.           font-color: #000000;
15.           padding-top: 72px;
16.           text-align: center }
17.      
18.         .text { font: 8pt Trebuchet MS }
19.       </style>
20.      
21.       </head>
22.       <body>
23.       <form runat="server">
24.       <div>
25.         Search for
26.         <input id="SearchKey" type="text" />
27.         <input id="SearchButton" type="button" value="Search"
28.         οnclick="DoSearch()" />
29.       </div>
30.       </form>
31.       <hr style="width: 300px" />
32.       <div>
33.       <span id="Results"></span>
34.       </div> </body>
35.     </html>

  在上面的代码中有一个很重要的Atlas控件ScriptManager,, 它用来处理页面上的所有Atlas组件以及局部页面的更新,并生成相关的客户端脚本,在ScriptManager控件中声明了要调用的Web服务的URL,没有这个声明,在脚本中将不能调用这个Web服务。关于ScriptManager,将在以后的文章中作详细介绍。
7.现在要添加调用Web服务的脚本代码。复制下面的脚本粘贴到AtlasScript.aspx中。这个脚本的主要作用是调用Web服务,然后把返回的结果显示到页面上。
1.     <script type="text/javascript">
2.    
3.     function DoSearch()
4.     {
5.       var SrchElem = document.getElementById("SearchKey");
6.       Samples.AspNet.HelloWorldService.HelloWorld(SrchElem.value, OnRequestComplete);
7.     }
8.    
9.     function OnRequestComplete(result)
10.     {
11.       var RsltElem = document.getElementById("Results");
12.       RsltElem.innerHTML = result;
13.     }
14.    
15.     </script>
    DoSearch脚本函数用于调用Web服务,把用户在TexBox中的输入值和OnRequestComplete回调函数传入Web服务HelloWorld方法,回调函数必须要有,因为是异步调用,必须要有一种机制通知客户端调用完成后的返回值。当异步调用Web方法完成后OnRequestComplete将会被调用。这个回调函数通过参数result获得返回值,这个返回值就是调用Web服务的方法.HelloWorld的返回值。
在@ Page下面完整的代码如下:
1.     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2.       " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3.      
4.     <html xmlns=" http://www.w3.org/1999/xhtml">
5.      
6.     <head id="Head1" runat="server">
7.       <atlas:ScriptManager runat="server" ID="scriptManager">
8.         <services>
9.         <atlas:servicereference path="~/HelloWorldService.asmx" />
10.         </services>
11.       </atlas:ScriptManager>
12.       <style type="text/css">
13.         body { font: 11pt Trebuchet MS;
14.           font-color: #000000;
15.           padding-top: 72px;
16.           text-align: center }
17.      
18.         .text { font: 8pt Trebuchet MS }
19.       </style>
20.      
21.     </head>
22.     <body>
23.       <form runat="server">
24.       <div>
25.         Search for
26.         <input id="SearchKey" type="text" />
27.         <input id="SearchButton" type="button"
28.         value="Search"
29.         οnclick="DoSearch()" />
30.       </div>
31.       </form>
32.       <hr style="width: 300px" />
33.       <div>
34.       <span id="Results"></span>
35.       </div>
36.       <script type="text/javascript">
37.      
38.       function DoSearch()
39.       {
40.         var SrchElem = document.getElementById("SearchKey");
41.         Samples.AspNet.HelloWorldService.HelloWorld(SrchElem.value,
42.         OnRequestComplete);
43.       }
44.      
45.       function OnRequestComplete(result)
46.       {
47.         var RsltElem = document.getElementById("Results");
48.         RsltElem.innerHTML = result;
49.       }
50.      
51.       </script>
52.     </body>
53.     </html>
  现在你可以运行AtlasScript.aspx进行测试了。运行后在Search for后的文本框中输入一些内容再点击Search按钮,可以看到调用Web服务方法HelloWorld的返回内容显示到了页面上,但整个页面并没有刷新,他和以往的Web程序相比,主要是在性能上有了很大的提升,这就是Ajax技术目前比较流行的一个主要原因。

  我的下一篇文章: 用VS2005创建一个Atlas Web应用程序(2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值