json json-rpc 如何在项目中便宜引入Ajax框架 (Joyrock开源项目)-阿里云开发者社区

开发者社区> ikingsmart> 正文

json json-rpc 如何在项目中便宜引入Ajax框架 (Joyrock开源项目)

简介:
+关注继续查看

 Joyrock简介: 

    Joyrock是一个基于LGPL协议的开源项目,实现了JSON和JSON-RPC,支持微软ASP.NET框架。它方便我们读取从浏览器流向服务器的JSON对象,也方便在响应流中写入JSON对象。
    Jayrock 远程方法要求写在一个ashx中,页面请求这个ashx的时候,在ProcessRequest 中根据Request对象中的参数信息,确定请求的服务器端方法名称和参数,然后进行调用,并返回结果。
    博客urlhttp://www.cnblogs.com/shanyou/archive/2007/07/01/802213.html
    官方简介urlhttp://jayrock.berlios.de/

    前面几篇博客中有几篇关于EXT的例子,其中有提到过,关于JSON对象在前后台的传递,以及项目业务逻辑类在JS中注册的方式。这些将以这篇文章作为契子,引出一系列相关的博客,它们是我最近学习的东西。

    当我有将产品的前台全部使用EXT的想法时,如何最大程度地利用到现有框架,便成了最迫切需要解决的问题:

    1. 现在框架集成了异常处理、日志、事务、工具类等模块,相对稳定。

    2. 如果使用AJAX,还需要重新写一套数据访问层,那是没人愿意做的事情。

    3. 客户端与服务端之间对象序列化与传递是个问题。

    第1、2个问题,就涉及到服务端业务逻辑类的远程调用,如JSON-RPC;而第3个问题,使用JSON封装吧。关于XML格式与JSON的比较,网上有很多文章,在此不獒叙。

    Joyrock示例:配置一个的例子非常简单,首先你需要下载到它的包,官方网站:http://developer.berlios.de/project/showfiles.php?group_id=4638,这是一个台湾的站点,速度可能有点慢。我把其中必须的Jayrock.dll、Jayrock.Json.dll与json.js放到csdn资源站点上,url为http://download.csdn.net/source/405504

    在项目中,将Jayrock.dll与Jayrock.Json.dll引用进来,在页面中,将json.js文件包含进来(<script type="text/javascript" src="filepath/json.js"></script>)。

    Jayrock的远程方法,需要写在一个“一般资源文件”(.ashx)内:

<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;
using Jayrock.Json;
using Jayrock.JsonRpc;
using Jayrock.JsonRpc.Web;

public class Handler : JsonRpcHandler
{
    [JsonRpcMethod(
"greetings")]
    
public string Greetings()
    {
        
return "Welcome to Jayrock!";
    }
}

    你可以在这层访问你的业务逻辑。如此,页面上引入json.js与.ashx文件:

<script type="text/javascript" src="../Common/Js/json.js"></script>
<script type="text/javascript" src="Handler.ashx?proxy"></script>

    便可以在js中直接new Handler对象,并访问greetings方法了。

var s = new Handler(); 
        alert(
"sync:" + s.greetings()); 
        s.greetings(
function(response) { 
               alert(
"async:" + response.result) 
        }
);

 

    补充一:我朋友的公司开发一个开源产品,关键技术基于一个开源项目,在产品发布前才了解到,这个开源项目基于GPL协议,那么他们的产品也必须开源,必须继承GPL协议,如此,没有任何商机可言。

    如果你在开发项目或者产品时,对开源协议需要一定的了解。

    LGPL开源协议——LGPL 是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。

    GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品。 

    常见的开源协议:BSD、GPL、LGPL、MIT(前面4种通过ISO批准)、Apach Licene 2.0

    来源:Javaeye上一篇关于开源协议的帖子《开源协议详解》,地址没有了,去javaeye搜索吧。

    补充二:常用的.net下ajax框架(动态连接库Ajax.dll),同样实现了远程调用,但B、S端之间的数据传递没有使用Json格式,而传递DataTable(在js端序列化成为了数组对象)。关于它的配置,将在后续博客中,放出来。

    与Jayrock的比较:个人觉得Jayrock需要一段时间熟悉它的API,而且相对来说网上的资料较少。Ajax.dll在序列化List(包含数据模型Model)时,处理比较麻烦,至少我现在还没能实现。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【项目积累】对JSON数据的处理
<p><span style="font-family:楷体; font-family:楷体; font-size:19px; line-height:27px; widows:auto">   <strong>【项目简述】</strong></span><strong><span style="font-family:楷体; font-family:楷体; font-size:19px;
2836 0
maven项目中没有resource文件夹的问题
之前使用eclipse创建maven项目,文件夹都是建好的,这几次创建,都没有resource文件夹,需要手动创建resource. 现象描述 在eclipse中,创建maven项目有两种方式: 一种是勾选Create a simple project(skip archetype selection) 然后直接输入Group Id ,Artifact Id 如下图.
2450 0
【项目经验】DataTable与JSON之间的转换
<p><span style="font-family:楷体; font-size:19px; line-height:27px; widows:auto"><strong>【项目需求】</strong></span></p> <div style="font-family:楷体; font-size:19px; line-height:27px; widows:auto"><span
1305 0
python模块介绍- SocketServer 网络服务框架
来源:https://my.oschina.net/u/1433482/blog/190612 摘要: SocketServer简化了网络服务器的编写。它有4个类:TCPServer,UDPServer,UnixStreamServer,UnixDatagramServer。
891 0
Android开发18——获取网络资源之json数据
一、项目背景在Android开发中有一项非常广泛的应用:Android项目获取另一个web项目的资源或者返回的数据。 本文获取web项目返回的JSON数据。Android应用解析JSON比XML性能要好,但有许多项目仍然采用的是XML。     二、实例代码 Web项目 /** * 新闻业务类 * * @author 徐越 * */ public cl
1066 0
蚂蚁金服通信框架SOFABolt解析 | 连接管理剖析
Scalable Open Financial Architecture是蚂蚁金服自主研发的金融级分布式中间件,包含了构建金融级云原生架构所需的各个组件,是在金融场景里锤炼出来的最佳实践。
981 0
蚂蚁金服通信框架SOFABolt解析 | 编解码机制
Scalable Open Financial Architecture是蚂蚁金服自主研发的金融级分布式中间件,包含了构建金融级云原生架构所需的各个组件,是在金融场景里锤炼出来的最佳实践。
592 0
+关注
99
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载