﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-极致软件-随笔分类-软件开发</title><link>http://www.cnitblog.com/szjeez/category/7496.html</link><description>极致iERP管理软件、财务软件、物业管理软件</description><language>zh-cn</language><lastBuildDate>Tue, 04 Oct 2011 06:21:19 GMT</lastBuildDate><pubDate>Tue, 04 Oct 2011 06:21:19 GMT</pubDate><ttl>60</ttl><item><title>Ajax.NET 调用WebService方法</title><link>http://www.cnitblog.com/szjeez/archive/2008/08/05/47632.html</link><dc:creator>极致软件</dc:creator><author>极致软件</author><pubDate>Tue, 05 Aug 2008 03:32:00 GMT</pubDate><guid>http://www.cnitblog.com/szjeez/archive/2008/08/05/47632.html</guid><wfw:comment>http://www.cnitblog.com/szjeez/comments/47632.html</wfw:comment><comments>http://www.cnitblog.com/szjeez/archive/2008/08/05/47632.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szjeez/comments/commentRss/47632.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szjeez/services/trackbacks/47632.html</trackback:ping><description><![CDATA[&nbsp;Ajax.NET作为成熟的Ajax平台之一,由于和.NET平台一起都是微软开发的,所以用Ajax.NET的客户端脚本来调用.NET开发的WebService将是一个很简单的事情,这是令人很兴奋的事情之一.
<p>&nbsp;&nbsp;&nbsp;&nbsp;下面将一步一步介绍调用的过程.首先我们先用VS2008新增一个WebService,其代码如下:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<div class=highlighter>
<ol class=highlighter-c>
    <li><span class=keyword><strong><font color=#0000ff>using</font></strong></span><span>&nbsp;System;</span>
    <li class=alt><span></span><span class=keyword><strong><font color=#0000ff>using</font></strong></span><span>&nbsp;System.Collections;</span>
    <li><span></span><span class=keyword><strong><font color=#0000ff>using</font></strong></span><span>&nbsp;System.ComponentModel;</span>
    <li class=alt><span></span><span class=keyword><strong><font color=#0000ff>using</font></strong></span><span>&nbsp;System.Data;</span>
    <li><span></span><span class=keyword><strong><font color=#0000ff>using</font></strong></span><span>&nbsp;System.Linq;</span>
    <li class=alt><span></span><span class=keyword><strong><font color=#0000ff>using</font></strong></span><span>&nbsp;System.Web;</span>
    <li><span></span><span class=keyword><strong><font color=#0000ff>using</font></strong></span><span>&nbsp;System.Web.Services;</span>
    <li class=alt><span></span><span class=keyword><strong><font color=#0000ff>using</font></strong></span><span>&nbsp;System.Web.Services.Protocols;</span>
    <li><span></span><span class=keyword><strong><font color=#0000ff>using</font></strong></span><span>&nbsp;System.Xml.Linq;</span>
    <li class=alt><span></span>
    <li><span></span><span class=keyword><strong><font color=#0000ff>namespace</font></strong></span><span>&nbsp;WebService1</span>
    <li class=alt><span>{</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><font color=#008200><span class=comment>///&nbsp;&lt;summary&gt; </span><span></span></font>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><font color=#008200><span class=comment>///&nbsp;Service1&nbsp;的摘要说明 </span><span></span></font>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><font color=#008200><span class=comment>///&nbsp;&lt;/summary&gt; </span><span></span></font>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;[WebService(Namespace&nbsp;=&nbsp;</span><span class=string><font color=#a31515>"http://tempuri.org/"</font></span><span>)]</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;[WebServiceBinding(ConformsTo&nbsp;=&nbsp;WsiProfiles.BasicProfile1_1)]</span>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;[ToolboxItem(</span><span class=keyword><strong><font color=#0000ff>false</font></strong></span><span>)]</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><font color=#008200><span class=comment>//&nbsp;若要允许使用&nbsp;ASP.NET&nbsp;AJAX&nbsp;从脚本中调用此&nbsp;Web&nbsp;服务，请取消对下行的注释。 </span><span></span></font>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;[System.Web.Script.Services.ScriptService]</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword><strong><font color=#0000ff>public</font></strong></span><span>&nbsp;</span><span class=keyword><strong><font color=#0000ff>class</font></strong></span><span>&nbsp;Service1&nbsp;:&nbsp;System.Web.Services.WebService</span>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;{</span>
    <li><span></span>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[WebMethod]</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword><strong><font color=#0000ff>public</font></strong></span><span>&nbsp;</span><span class=keyword><strong><font color=#0000ff>string</font></strong></span><span>&nbsp;HelloWorld()</span>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword><strong><font color=#0000ff>return</font></strong></span><span>&nbsp;</span><span class=string><font color=#a31515>"Hello&nbsp;World"</font></span><span>;</span>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span>
    <li class=alt><span>}</span> </li>
</ol>
</div>
<p><span>&nbsp;&nbsp;&nbsp;&nbsp;注意,为WebService类加上属性[System.Web.Script.Services.ScriptService],它使得ASP.NET AJAX 可以从脚本中调用此 Web 服务.</span></p>
<p><span>&nbsp;&nbsp;&nbsp;&nbsp;然后新增一Ajax Web页面,加页面中加入对WebService的引用,就可以编写脚本代码来调用这个WebService,代码如下:</span></p>
<span>
<div class=highlighter>
<ol class=highlighter-xml>
    <li><span class=tag><strong><font color=#0000ff>&lt;</font></strong></span><span>%@&nbsp;Page&nbsp;</span><span class=attribute><font color=#ff0000>Language</font></span><span>=</span><span class=attribute-value><font color=#0000ff>"C#"</font></span><span>&nbsp;</span><span class=attribute><font color=#ff0000>AutoEventWireup</font></span><span>=</span><span class=attribute-value><font color=#0000ff>"true"</font></span><span>&nbsp;</span><span class=attribute><font color=#ff0000>CodeBehind</font></span><span>=</span><span class=attribute-value><font color=#0000ff>"WebForm1.aspx.cs"</font></span><span>&nbsp;</span><span class=attribute><font color=#ff0000>Inherits</font></span><span>=</span><span class=attribute-value><font color=#0000ff>"WebService1.WebForm1"</font></span><span>&nbsp;%</span><strong><font color=#0000ff><span class=tag>&gt;</span><span></span></font></strong>
    <li class=alt><span></span>
    <li><span></span><strong><font color=#0000ff><span class=tag>&lt;!DOCTYPE&nbsp;html&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Transitional//EN"&nbsp;"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;</span><span></span></font></strong>
    <li class=alt><span></span>
    <li><span></span><strong><span class=tag><font color=#0000ff>&lt;</font></span><span class=tag-name><font color=#a31515>html</font></span></strong><span>&nbsp;</span><span class=attribute><font color=#ff0000>xmlns</font></span><span>=</span><span class=attribute-value><font color=#0000ff>"http://www.w3.org/1999/xhtml"</font></span><span>&nbsp;</span><strong><font color=#0000ff><span class=tag>&gt;</span><span></span></font></strong>
    <li class=alt><span></span><strong><span class=tag><font color=#0000ff>&lt;</font></span><span class=tag-name><font color=#a31515>head</font></span></strong><span>&nbsp;</span><span class=attribute><font color=#ff0000>runat</font></span><span>=</span><font color=#0000ff><span class=attribute-value>"server"</span><strong><span class=tag>&gt;</span><span></span></strong></font>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><span class=tag><font color=#0000ff>&lt;</font></span><span class=tag-name><font color=#a31515>title</font></span><span class=tag><font color=#0000ff>&gt;</font></span></strong><span>无标题页</span><strong><span class=tag><font color=#0000ff>&lt;/</font></span><span class=tag-name><font color=#a31515>title</font></span><font color=#0000ff><span class=tag>&gt;</span><span></span></font></strong>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><span class=tag><font color=#0000ff>&lt;</font></span><span class=tag-name><font color=#a31515>script</font></span></strong><span>&nbsp;</span><span class=attribute><font color=#ff0000>type</font></span><span>=</span><font color=#0000ff><span class=attribute-value>"text/javascript"</span><strong><span class=tag>&gt;</span><span></span></strong></font>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;CallMethod()</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;{</span>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>WebService1.Service1.HelloWorld(SucceededCallback);</strong></span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;SucceededCallback(res)</span>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;{</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(res);</span>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><span class=tag><font color=#0000ff>&lt;/</font></span><span class=tag-name><font color=#a31515>script</font></span><font color=#0000ff><span class=tag>&gt;</span><span></span></font></strong>
    <li><span></span><strong><span class=tag><font color=#0000ff>&lt;/</font></span><span class=tag-name><font color=#a31515>head</font></span><font color=#0000ff><span class=tag>&gt;</span><span></span></font></strong>
    <li class=alt><span></span><strong><span class=tag><font color=#0000ff>&lt;</font></span><span class=tag-name><font color=#a31515>body</font></span><font color=#0000ff><span class=tag>&gt;</span><span></span></font></strong>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><span class=tag><font color=#0000ff>&lt;</font></span><span class=tag-name><font color=#a31515>form</font></span></strong><span>&nbsp;</span><span class=attribute><font color=#ff0000>id</font></span><span>=</span><span class=attribute-value><font color=#0000ff>"form1"</font></span><span>&nbsp;</span><span class=attribute><font color=#ff0000>runat</font></span><span>=</span><font color=#0000ff><span class=attribute-value>"server"</span><strong><span class=tag>&gt;</span><span></span></strong></font>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><span class=tag><font color=#0000ff>&lt;</font></span><span class=tag-name><font color=#a31515>div</font></span><font color=#0000ff><span class=tag>&gt;</span><span></span></font></strong>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><span class=tag><font color=#0000ff>&lt;</font></span><span class=tag-name><font color=#a31515>asp:ScriptManager</font></span></strong><span>&nbsp;</span><span class=attribute><font color=#ff0000>ID</font></span><span>=</span><span class=attribute-value><font color=#0000ff>"ScriptManager1"</font></span><span>&nbsp;</span><span class=attribute><font color=#ff0000>runat</font></span><span>=</span><font color=#0000ff><span class=attribute-value>"server"</span><strong><span class=tag>&gt;</span><span></span></strong></font>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><span class=tag><font color=#0000ff>&lt;</font></span><span class=tag-name><font color=#a31515>Services</font></span><font color=#0000ff><span class=tag>&gt;</span><span></span></font></strong>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><span class=tag><font color=#0000ff>&lt;</font></span><span class=tag-name><font color=#a31515>asp:ServiceReference</font></span></strong><span>&nbsp;</span><span class=attribute><font color=#ff0000>Path</font></span><span>=</span><span class=attribute-value><font color=#0000ff>"~/Service1.asmx"</font></span><span>&nbsp;</span><strong><font color=#0000ff><span class=tag>/&gt;</span><span></span></font></strong>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><span class=tag><font color=#0000ff>&lt;/</font></span><span class=tag-name><font color=#a31515>Services</font></span><font color=#0000ff><span class=tag>&gt;</span><span></span></font></strong>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><span class=tag><font color=#0000ff>&lt;/</font></span><span class=tag-name><font color=#a31515>asp:ScriptManager</font></span><font color=#0000ff><span class=tag>&gt;</span><span></span></font></strong>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><span class=tag><font color=#0000ff>&lt;/</font></span><span class=tag-name><font color=#a31515>div</font></span><font color=#0000ff><span class=tag>&gt;</span><span></span></font></strong>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><span class=tag><font color=#0000ff>&lt;</font></span><span class=tag-name><font color=#a31515>input</font></span></strong><span>&nbsp;</span><span class=attribute><font color=#ff0000>id</font></span><span>=</span><span class=attribute-value><font color=#0000ff>"Button2"</font></span><span>&nbsp;</span><span class=attribute><font color=#ff0000>type</font></span><span>=</span><span class=attribute-value><font color=#0000ff>"button"</font></span><span>&nbsp;</span><span class=attribute><font color=#ff0000>value</font></span><span>=</span><span class=attribute-value><font color=#0000ff>"调用WebService方法"</font></span><span>&nbsp;</span><span class=attribute><font color=#ff0000>onclick</font></span><span>=</span><span class=attribute-value><font color=#0000ff>"CallMethod()"</font></span><span>&nbsp;</span><strong><font color=#0000ff><span class=tag>/&gt;</span><span></span></font></strong>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><span class=tag><font color=#0000ff>&lt;/</font></span><span class=tag-name><font color=#a31515>form</font></span><font color=#0000ff><span class=tag>&gt;</span><span></span></font></strong>
    <li><span></span><strong><span class=tag><font color=#0000ff>&lt;/</font></span><span class=tag-name><font color=#a31515>body</font></span><font color=#0000ff><span class=tag>&gt;</span><span></span></font></strong>
    <li class=alt><span></span><strong><span class=tag><font color=#0000ff>&lt;/</font></span><span class=tag-name><font color=#a31515>html</font></span><span class=tag><font color=#0000ff>&gt;</font></span></strong> </li>
</ol>
</div>
<p class=alt><span class=tag><font color=#000000>&nbsp;&nbsp;&nbsp;&nbsp;调用方法几乎和C#的函数调用是一样的,能过命名空间+类型名+方法名+参数的形式调用.另外我们只需要加入一个回调方法来处理调用的返回结果,对于基本类型的参数,可以直接传递,复杂的参数我使用现在流行的JSON技术来做为数据传输的载体,关于JSON技术的可以参考下面这篇文章:</font></span></p>
<p class=alt><span class=tag>&nbsp;&nbsp;&nbsp;&nbsp;<strong><font color=#0000bb><a href="http://www.jeez.com.cn/docc/news/view_knowledge.asp?id=377"><u><font color=#336699>JSON技术及其在 JBF for ASP.NET 的应用</font></u></a> </font></strong></span></p>
<p class=alt><span class=tag>&nbsp;&nbsp;&nbsp;&nbsp;<font color=#000000>另外,极致业务基础平台的BS部分就是就是使用这总JS+WEBSERVER的技术,现实友好的用户界面,可以从以下地址下载到平台的免费试用版.</font></span></p>
<p class=alt><span class=tag>&nbsp;&nbsp;&nbsp;&nbsp;<a style="FONT-SIZE: 12pt" href="http://www.jeez.com.cn/jbf/"><u><font color=#336699>http://www.jeez.com.cn/jbf/</font></u></a></span></p>
</span>
<img src ="http://www.cnitblog.com/szjeez/aggbug/47632.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szjeez/" target="_blank">极致软件</a> 2008-08-05 11:32 <a href="http://www.cnitblog.com/szjeez/archive/2008/08/05/47632.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax.NET 调用WebService方法</title><link>http://www.cnitblog.com/szjeez/archive/2008/08/05/47631.html</link><dc:creator>极致软件</dc:creator><author>极致软件</author><pubDate>Tue, 05 Aug 2008 03:27:00 GMT</pubDate><guid>http://www.cnitblog.com/szjeez/archive/2008/08/05/47631.html</guid><wfw:comment>http://www.cnitblog.com/szjeez/comments/47631.html</wfw:comment><comments>http://www.cnitblog.com/szjeez/archive/2008/08/05/47631.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szjeez/comments/commentRss/47631.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szjeez/services/trackbacks/47631.html</trackback:ping><description><![CDATA[　　对象关系映射（<span>Object Relational Mapping</span><span>，简称</span><span>ORM</span><span>）是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说，</span><span>ORM</span><span>是通过使用描述对象和数据库之间映射的元数据，将程序中的对象自动持久化到关系数据库中。</span><span>本质上就是将数据从一种形式转换到另外一种形式。 这也同时暗示者额外的执行开销；然而，如果<span>ORM</span>作为一种中间件实现，则会有很多机会做优化，而这些在手写的持久层并不存在。 </span><span>更重要的是用于控制转换的元数据需要提供和管理；但是同样，这些花费要比维护手写的方案要少</span><span>.</span>
<p>&nbsp;</p>
<p><span><span>&nbsp;&nbsp;</span><span>&nbsp;&nbsp;</span></span><span>对象</span><span>-</span><span>关系映射（</span><span>Object/Relation Mapping</span><span>，简称</span><span>ORM</span><span>），是随着面向对象的软件开发方法发展而产生的</span><span>,</span><span>面向对象的开发方法是当今企业级应用开发环境中的主流开发方法，关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。</span><span>对象和关系数据是业务实体的两种表现形式，业务实体在内存中表现为对象，在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系，而在数据库中，关系数据无法直接表达多对多关联和继承关系。因此，对象<span>-</span>关系映射<span>(ORM)</span>系统一般以中间件的形式存在，主要实现程序对象到关系数据库数据的映射。</span></p>
<p>&nbsp;</p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span>面向对象是从软件工程基本原则<span>(</span>如耦合、聚合、封装<span>)</span>的基础上发展起来的，而关系数据库则是从数学理论发展而来的，两套理论存在显著的区别。为了解决这个不匹配的现象<span>,</span>对象关系映射技术应运而生。<span> </span></span></p>
<p>&nbsp;</p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span>让我们从<span>O/R</span>开始。字母<span>O</span>起源于<span>"</span>对象<span>"(Object),</span>而<span>R</span>则来自于<span>"</span>关系<span>"(Relational)</span>。几乎所有的程序里面，都存在对象和关系数据库。在业务逻辑层和用户界面层中，我们是面向对象的。当对象信息发生变化的时候，我们需要把对象的信息保存在关系数据库中。<span> </span></span></p>
<p>&nbsp;</p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span>当你开发一个应用程序的时候<span>(</span>不使用<span>O/R Mapping),</span>你可能会写不少数据访问层的代码，用来从数据库保存，删除，读取对象信息，等等。你在<span>DAL</span>中写了很多的方法来读取对象数据，改变状态对象等等任务。而这些代码写起来总是重复的。</span></p>
<p><span>&nbsp;</span></p>
<p><span>　　如果打开你最近的程序，看看<span>DAL</span>代码，你肯定会看到很多近似的通用的模式。我们以保存对象的方法为例，你传入一个对象，为<span>SqlCommand</span>对象添加<span>SqlParameter</span>，把所有属性和对象对应，设置<span>SqlCommand</span>的<span>CommandText</span>属性为存储过程，然后运行<span>SqlCommand</span>。对于每个对象都要重复的写这些代码。<span> </span></span></p>
<p>&nbsp;</p>
<p><span>　　除此之外，还有更好的办法吗？有，引入一个<span>O/R Mapping</span>。实质上，一个<span>O/R Mapping</span>会为你生成<span>DAL</span>。与其自己写<span>DAL</span>代码，不如用<span>O/R Mapping</span>。你用<span>O/R Mapping</span>保存，删除，读取对象，<span>O/R Mapping</span>负责生成<span>SQL</span>，你只需要关心对象就好。</span></p>
<p>&nbsp;</p>
<p><span>一般的<span>ORM</span>包括以下四部分：<span> </span></span></p>
<p><span><span>u<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>一个对持久类对象进行</span><span>CRUD</span><span>操作的</span><span>API</span><span>；</span><span> </span></p>
<p><span><span>u<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>一个语言或</span><span>API</span><span>用来规定与类和类属性相关的查询；</span><span> </span></p>
<p><span><span>u<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>一个规定</span><span>mapping metadata</span><span>的工具；</span><span> </span></p>
<p><span><span>u<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>一种技术可以让</span><span>ORM</span><span>的实现同事务对象一起进行</span><span>dirty checking, lazy association fetching</span><span>以及其他的优化操作。</span></p>
<p>&nbsp;</p>
<p><span>事例</span></p>
<p><span>极致业务基础平台采用</span><span>ORM</span><span>技术实现数据的持久化</span><span>,</span><span>并提供了完整的实体定义工具</span><span>,</span><span>元数据管理机制</span><span>,</span><span>自动生成关系数据库表结构</span><span>.</span></p>
<p><span>平台下载地址</span><span>:</span></p>
<p>&nbsp;</p>
<p><span><font size=3><font color=#000000><a href="http://www.jeez.com.cn/jbf"><font face=宋体><a href="http://www.jeez.com.cn/jbf"><u>http://www.jeez.com.cn/</u></font><u>jbf</u></a></a></font></font></span></p>
<img src ="http://www.cnitblog.com/szjeez/aggbug/47631.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szjeez/" target="_blank">极致软件</a> 2008-08-05 11:27 <a href="http://www.cnitblog.com/szjeez/archive/2008/08/05/47631.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>