起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7903|回复: 2

[分享] Baas服务的.net调用

[复制链接]

4

主题

19

帖子

137

积分

初级会员

Rank: 2

积分
137
QQ
发表于 2016-3-3 10:31:48 | 显示全部楼层 |阅读模式
一.        设计目的:
        由于很多c#.net开发人员已积累了大量的组件或基于主业务开发了大量的应用,
现需要移动终端接入扩展原有的业务,因此需要UI层html5开发,中间层使用.net处理,
目前Wex5很好地解决了UI层的开发,同时使用Baas服务与UI通信,但现有Wex5的Baas服务
很难与开发者已有的.net组件集成,本文的开发目的就是接管Baas服务,同时允许开发者
自由编写中间层代码。

二  实现功能:
    首先开发者在Wex5设计时需使用原有Baas.java+mySql,在调试或运行环境下时
调用.net的Baas服务,实际是接管了runtime下的baasserver,设计时不受影响;这样
就好像在设计UI时将mySql当作数据模型设计器,实际调试或运行时与它无关.真正的
数据是由本程序通过反射返回,只需返回的字段与数据模型相同。

三  实现方法:
    需修改 model\UI2\system\lib\base\baas.js中的
BASE_URL : "/baas" 改为
BASE_URL : "http://localhost:2080/baas"
注意:修改完后需执行一次tools\dist\dist.bat重新封包(下同)
C#源码在附件中

四. 扩充错误返回
    作用:当中间层Baas服务错误时,将C#的错误信息正常返回到UI
需修改 model\UI2\system\lib\base\baas.js中的
    sendRequest : function(options) {
                        var self = this;
                        $.support.cors = true;
                        return $.ajax({
                                "type" : "post",
                                "async" : options.async ? options.async : false,
                                "dataType" : "json",
                                "contentType" : "application/json",
                                "url" : this.BASE_URL + options.url+"/"+options.action,
                                "data" : JSON.stringify(options.params),
                                "complete" : function(xhr) {
                                        if (xhr.readyState == 4 && xhr.status == 200) {
                                                if (xhr.responseJSON.errorno){
                                                        self.showError(xhr.responseJSON.errormsg);
                                                }
                                                else {
                                                   if (options.success) {
                                                        options.success.call(this, xhr.responseJSON, xhr);
                                                }}
                                        } else {
                                                var msg = self.getErrorMsg(xhr);
                                                if (options.error) {
                                                        options.error.call(this, msg, xhr);
                                                } else {
                                                        self.showError(msg);
                                                }
                                        }
                                }
                        });

BaasNet.rar

726.03 KB, 下载次数: 678

4

主题

19

帖子

137

积分

初级会员

Rank: 2

积分
137
QQ
 楼主| 发表于 2016-3-3 10:37:14 | 显示全部楼层
附件源码说明:基于vs2008 c#.net
解决方案BaasService包括3个项目
1.BaasSevivce
   是.net的web服务,
   主文件是ActionHandler.cs,注意修改Web.Config文件
   test.cs及test.html是Ajax测试调用的用的
   
2.FireCloud.Baas
   是baas服务的关键转换模块
   Engine.cs 是根据传入的参数反射调用指定的.net模块
当在Wex5中创建的Baas服务是justep/demo时,Wex5传入的Baas参数为
baas/justep/demo/queryOrder,这时将反射调用baas.justep.dll下的
baas.justep.demo类的queryOrder方法,其它类同
        
3.baas.justep
   是baas/justep/demo的queryOrder方法和saveOrder方法的示例,
开发者可以此为模型作功能扩展
回复 支持 反对

使用道具 举报

4

主题

19

帖子

137

积分

初级会员

Rank: 2

积分
137
QQ
 楼主| 发表于 2016-3-21 15:56:19 | 显示全部楼层
本页回复请转到资源页统一回复,不要在此提问
http://bbs.wex5.com/forum.php?mo ... id=87224&extra=
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-4 10:37 , Processed in 0.111635 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表