一:问题:Flash Builder version 4 介绍新美妙的插件可以支持开发人员整合他们的flex/air项目使用Java,PHP的,的网络服务等。问题是没有插件为整合flex/air和.net。
二:解决方案:解决的办法是一个第三方插件可以在WebORB分布之间提供无缝集成Flex/AIR 和 .NET
三:详细说明
开始下载并安装WebORB第4版。net。安装WebORB包括安装程序为闪光建设者插件。插件安装程序是位于/集成/ flashbuilder文件夹位于安装目录的根源。
如果Flash Builder运行时,一定要把它关掉了运行插件之前安装程序。当安装程序完成安装的插件,开始Flash Builder。你应该能够确认安装的插件数据打开菜单。它应该有“连接到WebORB。net…”子菜单项,显示在图像如下:
项目设置
创建一个闪光建设者项目将server-type ASP . 网上介绍了Flex 4 和 .NET的集成(建立Flash Builder工程WebORB部分)文章。插件使用服务器地址从项目的配置。
确保项目中选择的是用前Flex包装。如果项目被选中,Flash Builder将显示下列错误信息“不弯曲项目是积极的。请选择一个项目在弯曲包装探险家。”。要激活插件,点击数据在主菜单,选择“连接到WebORB。net……”。Flash Builder将显示下列对话框:
插件获得URL的服务器橱窗从所选择之项目。URL识别和服务器双方在一个虚拟目录WebORB安装。继续选择“没有暗号的要求"复选框,点击“确认”按钮。(在稍后的这篇文章,你会发现如何配置安全,使WebORB用户认证在插件。)
插件为下一步连接WebORB服务器和负荷提供的一张表等目的地。一个目的地是一个抽象概念描述一个。net类逻辑的名字。Flex的客户联系服务器端的类到连接的目的地。必须声明在目的地WEB-INF/flex/remoting-config.xml.
插件将显示一个列表的目的地,如图图像下面:
你可以创造额外的目的地WEB-INF/flex/remoting-config.xml,但要保证重启ASP . 净过程或应用程序池WebORB地方正在运行。
本文使用一个例子,一个。net类,它负载数据库的数据并返还给Flex。你可以看到的课程代号如下:
01 using System;
02 using System.Collections;
03 using System.Text;
04 using System.Data;
05 using System.Data.OleDb;
06 using System.Web;
07 using System.Collections.Generic;
08
09 namespace Weborb.Examples
10 {
11 public class DataBinding
12 {
13 private static string connectionString = "connectin string goes here";
14 public DataTable getCustomers()
15 {
16 DataTable dataTable = new DataTable();
17 OleDbConnection connection = new OleDbConnection( connectionString );
18 OleDbDataAdapter adapter = new OleDbDataAdapter();
19 adapter.SelectCommand = new OleDbCommand( "SELECT * FROM Customers order by CUSTOMERID", connection );
20
21 try
22 {
23 adapter.Fill( dataTable );
24 }
25 finally
26 {
27 connection.Close();
28 }
29
30 return dataTable;
31 }
32
33 // This method is invoked when the user updates a record using the form
34 public void updateCustomer( Hashtable updatedCustomerRecord )
35 {
36 // removed for sample brevity
37 }
38
39 // This method is invoked when the user updates a record directly in the datagrid
40 public bool updateCustomerProperty( Hashtable originalCustomerRecord, String changedFieldName, String newValue )
41 {
42 // removed for sample brevity
43 }
44 }
45 }
现在,这一服务被添加到项目,你将需要配置返回类型和参数的方法。选择的功能()方法对象,并选择适当点击选择配置返回类型在图像显示,如下:
在“配置”窗口,保持返回类型(默认选择回归Auto-detect样本数据类型)。点击下一步继续。Flash Builder调用的功能()方法。服务端返回类型System.Data.DataTable的方法包含一个列表的记录的数据。默认情况下WebORB serializes DataTable使用以一个数组的形式返回对象作为对象。当FlashBuilder接收应答,它不能侦测到该类型的对象的作用是:将数组中并显示窗口中显示的图像下面。输入“客户”的课程名称”,点击“完成”如下图所示。
Flash Builder创造客户数据类型收到性质的操作。你可以确定类型存在通过扩大这个数据类型节点的数据/服务座谈:
现在双方的操作和数据类型被设置,可以非常容易的增加对代码上进行了电话服务加入这个项目。开一个MXML文件从这个项目。在数据服务小组右点击”在“功能():客户[]”的运作,选择“产生电话服务”。闪光建设者增加代码来选定的MXML应用。特别的,额外的代码由三个要素:
<services:DataQueryService id="dataQueryService"
fault="Alert.show(event.fault.faultString + ’\n’ + event.fault.faultDetail)"
showBusyCursor="true"/>
<s:CallResponder id="getCustomersResult"/>
protected function getCustomers():void
The next step is to add a data grid component to MXML and wire it to the service call. Add the following markup right before the closing <s:Applications> tag:
<mx:DataGrid dataProvider="{getCustomersResult.lastResult}" left="20" right="20" top="20"/>
保存和运行的应用。你应该看看名单从数据库中记录显示,在数据网格:
当你运行这个Flex应用程序,你可能经历了下面的错误:
“MessagingError信息的DataQueryService = ’目的地的既不存在或目的地没有通道的定义(并且该应用程序没有定义任何缺省)的]频道。
无法建立一个连接到的DataQueryService’”。
如果这个项目发生错误不参考WEB-INF/flex/services-config.xml在额外的编译器性能。看the instructions on how to reference services-config.xml in the compiler properties.。