Atlas初步了解 [转]

一、什么是Atlas


   微软声称
Atlas的目标在于服务器上将客户程序脚本集成到ASP.NET,以提供一个全面的开发平台。
Atlas平台包含两部分:客户端部分和服务器部分。对客户端,它具有的特点是:


·      
面向对象相容的Java语言API。具有.NET开发经验的开发人员非常熟悉其面向对象设计。


·      
自动浏览器兼容。理论上可运行多个浏览器时不需要专门的代码。


·      
客户端程序API和组件提供丰富的用户界面特点,例如拖拽动作。用户可以将这些特征添加到HTML控制器而只需要很少甚至不需要任何代码。


·      
客户端程序开发的函数声明模块与ASP.NET服务控制器的函数声明语法相似。


二、
Atlas入门基础


   首先,我们要了解
Atlas中最主要的一个控件:ScriptManager,它用来处理页面上的所有Atlas组件以及局部页面的更新,生成相关的客户端脚本。(具体的语法参看:
ScriptManager Class)

<atlas:ScriptManager

    EnablePartialRendering="true|false"

    EnableScriptComponents="true|false"

    ID="string"

    OnPageError=""

    runat="server"

>

 

    <ErrorTemplate>

        <!--  HTML -->

        <span id="errorMessageLabel" runat="server"></span>

        <input id="okButton" type="button" value="OK" runat="server" />

    </ErrorTemplate>

    <Scripts>

        <atlas:ScriptReference

            Browser="Atlas"

            Path=""

            ScriptName="AtlasCuttom"

        />

    </Scripts>

    <Services>

        <atlas:ServiceReference

            GenerateProxy="true|false"

            Path=""

            Type=""

        />
    </Services>

</atlas:ScriptManager>

通过ScriptManger可以定义页面错误事件、错误显示模板,定义脚本集合和服务集合。通过属性EnablePartialRendering 属性决定是否启用局部重绘的模式,EnableScriptComponents 属性决定是否启用 XML 脚本模式。


其次,
Atlas框架包含了丰富的组件来简单化客户端脚本。


    在
Atlas中自己定义了中间的Xml脚本,然后通过这些脚本转换成相应的Javascript脚本以及在后端进行相应的事件处理等。通过Xml脚本的<components>节设置控件数据源以及把Html控件或Asp.NET服务器控件提升为Atlas组件。

<input type="text" id="searchText" />

<input type="button" id="searchButton" />

 

<script type="text/xml-script">

  <page xmlns="http://schemas.microsoft.com/xml-script/2005">

    <references>

      <add src="ScriptLibrary/Atlas/AtlasUI.js" />

      <add src="ScriptLibrary/Atlas/AtlasControls.js" />

    </references>

    <components>

        <textbox id="searchText" />

        <button id="searchButton">

          <bindings>
          <!-- dataContext
dataPath

               searchTextBoolean

               searchButtonEnable

           -->

            <binding property="enabled"

              dataContext="searchText" dataPath="text.length"

              transform="NumberToBoolean" />

          </bindings>

          <click>

            <!-- searchMethod -->

            <invokeMethod target="searchMethod" method="invoke" />

          </click>

        </button>

        <serviceMethod id="searchMethod">

          <bindings>

            <!--  searchText-->

            <binding property="parameters" propertyKey="query"

              dataContext="searchText" dataPath="text" />

          </bindings>

        </serviceMethod>

    </components>

  </page>

</script>

 

       第三,javascript客户端脚本的集成


   如果您对于
javascript脚本熟悉的话,你也可以不用Xml脚本来处理,而直接使用javascript脚本来进行回调处理。


三、
Atlas入门演练


      
下面是一个简单的例子,主要是说明ASP.NET如何通过Atlas框架来实现Ajax。例子通过一个简单的按钮事件把文本框的内容保存到<span>中直接显示出来。


      
首先,建立一个WebService服务,WebService.asmx

using System;

using System.Web;

using System.Collections;

using System.Web.Services;

using System.Web.Services.Protocols;

 

namespace AtlasDemo

{

    /// <summary>

    /// WebService 

    /// </summary>

    [WebService(Namespace = "http://tempuri.org/")]

    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

    public class WebService : System.Web.Services.WebService

    {

 

        public WebService()

        {

 

            // 

            //InitializeComponent(); 

        }

 

        [WebMethod]

        public string HelloWorld(String query)

        {

            string inputString = Server.HtmlEncode(query);

            if (!String.IsNullOrEmpty(inputString))

            {

                return String.Format("Hello,{1}", inputString);

            }

            else

            {

                return "The query string was null or empty";

            }

        }

 

    }

}


   其次,建立一个
WebForm页面,Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="AtlasDemo._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title>AtlasDemo</title>

</head>

<body>

    <form id="form1" runat="server">

       <atlas:ScriptManager ID="ScriptManager1" runat="server" >

                <Services>

               //WebService

                  <atlas:ServiceReference Path="~/WebService.asmx" />

                   </Services>

        </atlas:ScriptManager>

        <div>

            Search for

            <input id="SearchKey" type="text" />

            <input id="SearchButton" type="button" value="Search" />

        </div>

        <hr />

        <div>

             <span id="Results"></span>

        </div>

</form>

//Xml

<script type="text/xml-script">

        <page xmlns:script="http://schemas.microsoft.com/xml-script/2005">

            <references>

             </references>

            <components>

                <textBox id="SearchKey" />

             //WebServicequery

             //id=SearchKeyText

                 <serviceMethod id="helloService"

                      url="WebService.asmx" methodName="HelloWorld">

                   <bindings>

                     <binding dataContext="SearchKey"

                          dataPath="text"

                          property="parameters"

                          propertyKey="query" />

                   </bindings>

                   <completed>

                     <invokeMethod target="resultsBinding"

                               method="evaluateIn" />

                   </completed>

                 </serviceMethod>

               //ClickhelloServiceWebService

               //WebMethod

                 <button id="SearchButton">

                   <click>

                     <invokeMethod target="helloService"  method="invoke" />

                   </click>

                 </button>

              //HelloWordid=resultsText

                 <label id="results">

                   <bindings>

                     <binding id="resultsBinding"

                          dataContext="helloService"

                          dataPath="result"

                          property="text"

                          automatic="false" />

                   </bindings>

                 </label>

            </components>

        </page>

    </script>

</body>

</html>


   第三,
javascript脚本实现方式。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="AtlasDemo._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title>AtlasDemo</title>

</head>

<body>

<form id="form1" runat="server">

        <atlas:ScriptManager ID="ScriptManager1" runat="server" >

        <Services>

               <atlas:ServiceReference Path="~/WebService.asmx" />

           </Services>

        </atlas:ScriptManager>

        <div>

               Search for

               <input id="SearchKey" type="text" />

               <input id="SearchButton" type="button" value="Search"

                       οnclick="DoSearch()" />

        </div>

        <hr />

        <div>

                <span id="Results"></span>

        </div>

</form>

<script type="text/javascript">

function DoSearch()

{

        var SrchElem = document.getElementById("SearchKey");

        //WebServiceHelloWorld

        AtlasDemo.WebService.HelloWorld(SrchElem.value, OnRequestComplete);

}

//

function OnRequestComplete(result)

{

        var RsltElem = document.getElementById("Results"); 

        RsltElem.innerHTML = result;

} 

</script>
</body>

</html>

四、总结

       本文目的主要是想让初学者对Atlas有个初步的了解,至于深入的一些研究,网络上也有很多的例子了,在

http://Atlas.asp.net
上的例子里面也讲得比较详细了。另外,使用过程中要特别注意:


l        
务必设定ScriptManager EnablePartialRendering 属性为true,否则将和以前一样引发整页的PostBack而达不到Ajax的局部更新的效果


l        
使用AtlasUpdatePanel容器时,在其内部的控件,可以达到局部更新效果,但是它往返服务器和客户端所产生的数据流量还是和普通的整页引发PostBack一样,只是采用UpdatePanel作为容器可以达到局部刷新,而不会一起页面的闪烁而已。


五、
Atlas相关资料


      
下载地址:

http://atlas.asp.net/default.aspx?tabid=47&subtabid=471


相关资料及
Blog

http://forums.asp.net/default.aspx?GroupID=34

ASP.NET Atlas学习


Dflying Chen

Atlas快速上手体验

转载于:https://www.cnblogs.com/danni505/archive/2006/07/08/445871.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值