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

QQ登录

只需一步,快速开始

查看: 17412|回复: 35

Baas服务的.net调用

  [复制链接]

4

主题

19

帖子

137

积分

初级会员

Rank: 2

积分
137
QQ
发表于 2016-3-3 10:48:21 | 显示全部楼层 |阅读模式
本帖最后由 chenyanhe 于 2016-4-13 09:47 编辑

一.        设计目的:
        由于很多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);
                                                }
                                        }
                                }
                        });
附件源码说明:基于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方法的示例,
开发者可以此为模型作功能扩展


BaasNet.rar

728.59 KB, 下载次数: 967

1

主题

2

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2016-3-10 20:49:58 | 显示全部楼层
请给个完整的实例,也就是从客户端、数据访问以及数据库存储的完整例子。
回复 支持 1 反对 0

使用道具 举报

4

主题

19

帖子

137

积分

初级会员

Rank: 2

积分
137
QQ
 楼主| 发表于 2016-3-3 10:51:58 | 显示全部楼层
基于Wex5V3.3版的

点评

是的! http://m.shubaol.com/info-1007/ 师傅的傻丫头  发表于 2017-3-18 19:12
回复 支持 1 反对 0

使用道具 举报

37

主题

195

帖子

309

积分

中级会员

Rank: 3Rank: 3

积分
309
QQ
发表于 2016-3-9 08:22:19 | 显示全部楼层
好 给楼主点赞
回复 支持 反对

使用道具 举报

2

主题

4

帖子

26

积分

新手上路

Rank: 1

积分
26
QQ
发表于 2016-3-16 13:27:32 | 显示全部楼层
好东西,顶一个!
回复 支持 反对

使用道具 举报

0

主题

2

帖子

12

积分

新手上路

Rank: 1

积分
12
QQ
发表于 2016-3-18 08:52:30 | 显示全部楼层
支持4楼说法,看得有点云里雾里的

请给个完整的实例,也就是从客户端、数据访问以及数据库存储的完整例子。
回复 支持 反对

使用道具 举报

0

主题

2

帖子

12

积分

新手上路

Rank: 1

积分
12
QQ
发表于 2016-3-18 08:54:57 | 显示全部楼层
比如你这三个包,分别放在哪个位置,能达到预期效果,我看了半天,没明白
一个是服务,另两个放哪儿呢?
回复 支持 反对

使用道具 举报

4

主题

19

帖子

137

积分

初级会员

Rank: 2

积分
137
QQ
 楼主| 发表于 2016-3-21 15:50:50 | 显示全部楼层
本帖最后由 chenyanhe 于 2016-3-21 15:53 编辑

回复 xyuan4230
直接用vs2008.net启动工程就可以了
在设计时,仍用回来的的Baas+mySql,调试及运行时才会用.net
回复 支持 反对

使用道具 举报

4

主题

29

帖子

99

积分

初级会员

Rank: 2

积分
99
QQ
发表于 2016-3-25 16:56:51 | 显示全部楼层
赞!可是没看懂,可以给案例吗
回复 支持 反对

使用道具 举报

2

主题

19

帖子

63

积分

初级会员

Rank: 2

积分
63
QQ
发表于 2016-4-3 10:32:50 | 显示全部楼层
想请问楼主,能否实现用wex5做UI,后台用.net的ashx处理数据?因为我们的软件采用.net开发的后台
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 17:18 , Processed in 0.083697 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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