FLEX的.NET開源庫FluorineFX

FluorineFX開源庫
rurl4_b=df883ffcef85a62127662da6453b0a5778fe54f1ceb98ca6c2f526c1061404e710b673b13d111e0ba26bd13d7e6dc3356f6e1c4df52c9b4a641c866cf80c0a1c260cbe02c6089e5fb4f09fe290b9359bb63b50e1下載
關於FluorineFX
FluorineFX是一個開源庫,提供了一種在.NET framework下對Flex/Flash的遠程過程調用,Flex數據服務和實時數據的使用技術。

能被.NET frameworks支持的FluorineFx有:

  • Microsoft .NET Framework 1.1 (1.1.4322)
  • Microsoft .NET Framework 2.0 (2.0.50727)
  • Microsoft .NET Framework 3.5 (3.5.21022.8)
  • Mono 1.2.4
  • .NET frameworks 支持向下兼容,所以新版本的框架將運行的二進制集會被定位到先前版本的框架
  特性
  • Flex, Flash Remoting (RPC)
  • Flex Messaging (partial)
  • Flex Data Services (partial)
  • Supports AMF0, AMF3 and RTMP protocols
  • Service Browser
  • Template based code generator (ASP.NET like syntax)
  • Easily integrate rich Internet applications with .NET backend
  • Easily integrate with Adobe Integrated Runtime (Adobe AIR?)

FluorineFx的配置

使用“FluorineFx ASP.net Web site”嚮導生成的項目結構如下:

rurl4_b=df883ffcef85a62127662da6453b0a57f874ffb8d552c0c76e761533ff7e23d7bc7463eac8d4a1940b83c9550dccbb22a40ddfc6a944a8e09d4aadcafd5e7d4b1f80e6015c385bc480d58f93c91febc77fa5513f
除了根目錄下的web.config文件(asp.net網站的標準配置文件外),WEB-INF/flex目錄下還有四個配置文件(.xml)。
由於FluorineFx是Flex Data Service的.net替代品(如果你用Java寫服務器端程序,則可以直接用Flex Data Service),FluorineFx提供了和Flex Data Service相同的功能—即在services-config.xml配置文件的<services>部分配置Remoting Service, Message Service ,Data Management Service。
此外,除了把所有配置都放在services-config.xml一個文件中,還可以把Service配置信息分散到多個配置文件裏,然後包含進來以達到簡化的效果。如下:
rurl4_b=df883ffcef85a62127662da6453b0a577b78fa6a2d1f60c77d2b1f9b0a274de8390944ddf67ac00502edebef0ae8d430e2207588544f4676c128a05c1ca6c76966f355523d3e2fe04c98a98ef7261e9d4c953173


下表是這四個配置文件的作用:
rurl4_b=df883ffcef85a62127662da6453b0a57ca259bdcf0e26e51f28fdeda0d879d203f220f4e1be312b2665beb407b16aa9d7a95a2797df00e205de4e17275553614a9657c2e9e4277299b0a884003b06ccbc3f7b428

看上去這些配置文件和Flex Data Service保持一致。沒錯,FluorineFx 配置文件與Flex/Flash保持了統一。
在這些配置部分,有些針對於所有的全部的Service(在services-config.xml設置),有些則專用於特定的Service(在remoting-config.xml/ messaging-config.xml/ data-management-config.xml中設置)。
先看看services-config.xml中的全局設置部分:
1.配置message channelFluorineFx 使用Flex messaging system 中的message channel傳輸消息。一個channel可以讓多個Service通信。FluorineFx目前不支持AMF polling channels 。在services-config.xml配置文件中可以設置AMF Channel 或者RTMP Channel。如下:
rurl4_b=df883ffcef85a62127662da6453b0a57304830003ab505ea2dc374b58c55c278655ba6ca208a1b6d7dbf41407ae9c6752000efd41c16c55a5ce18a8451909bc454301535391ad5aa212f7ce9ee4f06e74cefb29e
這裏用<channel-definition>定義的channel,每個都有唯一的id。<endpoint>的uri設置的是一個接受用戶請求的網關(Gateway.aspx)程序。打開這個網關程序,你可以發現程序中沒有任何代碼。
Flex調用遠程對象的流程大概如下:
<!--[if !supportLists]-->l         <!--[endif]-->Flex發出調用遠程對象的請求,這個請求會被Flash Player編碼成AMF;
<!--[if !supportLists]-->l         <!--[endif]-->Flex代碼中定義了 Service組件,通過該組件的id,找到對應配置文件中定義的destination。
<!--[if !supportLists]-->l         <!--[endif]-->destination通過它的channel 的 id找到對應的channel定義。
<!--[if !supportLists]-->l         <!--[endif]-->根據channel的定義,將請求發送給指定的gateway;
<!--[if !supportLists]-->l         <!--[endif]-->gateway將請求發送給gateway的後臺類,將消息轉換成.net格式,調用服務器上正確的類;
接下來,針對Remoting Service, Message Service ,Data Management Service的配置分別進行詳細說明。
一、配置RPC(remoting-config.xml)
定義Remoting Service destination就是定義需要訪問的remote object。Remoting service destination就是一個對象,Flex使用<mx:RemoteObject>或 ActionScript代碼連接這個遠程對象。
例如:
rurl4_b=df883ffcef85a62127662da6453b0a57bb598a5e588ead2b91c18d960cd410f7237639a570a3229d1e30ce8aae20b27d7fbdf881f6935d854ca7157f6bfa696afbac26c932514390060baef5a91dcdc43338d34f
rurl4_b=df883ffcef85a62127662da6453b0a57b4c6732daf192416746bcfccc8b2ba08c491800858f6d60ba65a87d32f4fc432f6e6333edefd33efae72ee46bd27f2f595052ca5b204aead4babae02245757852ef60cbb

rurl4_b=df883ffcef85a62127662da6453b0a574ecaaf7fba7673172a42370e19d697a0a407f27c519a62af58240d1157988fe934f84c69e82e2bee8baf9308246635d8b3ef2848e55b4c92cba0d312405b1f1a960484c3

對上面配置的說明:1.<security>的安全設置 定義了遠程對象,可以使用security constraint來限制用戶訪問訪問這個destination (只支持custom authentication)。
Security constraints 可以在destination中定義,也可以在destination外面 定義,然後在destination中通過Security constraints的 id引用。
2.Destination adapterAdapters是服務器上的一個組件,利用Adapter,客戶端才能訪問遠程服務器上的 service object。 Adapter 定義不是必需的, gateway 將自動配置它。默認的Remoting Adapter是flex.messaging.services.RemotingService。
3.Remote object 的<properties>
rurl4_b=df883ffcef85a62127662da6453b0a57f33ca14a53ff856a73a59a9f376e829cd80292cc07e8fd4a81bf23ed3fedc14a653cde57435e32cd2c884ea79245151f0bb7fc792f472b2813558288308bde8f0bb4bdfc

4.Web service properties(還不支持)5.默認設置
如果沒有service配置文件,則gateway會使用下面的默認配置:

rurl4_b=df883ffcef85a62127662da6453b0a57b5c00fe4d5430bb0f48b0daa60b9c9895794d8313198dc541d60af0f460a22df222619d71858bd0661e1f3ed94d35722f17c62e5f244682f82316162b923e1764fe54379

rurl4_b=df883ffcef85a62127662da6453b0a574e43e1535b62a06c4a37dd2099517a305fc8059437c07dc6385891e62938b4d099ce3526f72b0869f910c32cf2c049dc59f4555c38bf23dd14ee90826f4c949986e2420c


二、配置 Message ServiceMessage Service destination 是就是消息傳輸的終端(endpoint)。在這臺終端機上封裝有服務器端代碼,處理傳輸過來的消息 。使用 Producer 和Consumer 組件或ActionScript API可以連接到message service destination。
例如:
rurl4_b=df883ffcef85a62127662da6453b0a57dad59d9ec32e22c8f79b97d3a245390e26abf0d06bf944557d454f6d50a216b1feb9f877f08410f70334bffefaf9aae8380ec474b8c9ee4a1960fb2f08a69d66f09ffea4
rurl4_b=df883ffcef85a62127662da6453b0a57eccc6001f393bb57f81483e907d07f6340368ef3c68f76a9c1804ec2f3f7a16973c1ea2b6a30c53702dffb4d7048d097257761ef727b0433113a141480d2917a4300b2ec
rurl4_b=df883ffcef85a62127662da6453b0a575c6a08143c1742f25fa2c2ee39d6ddc3d1736357e208d8f215c263401f80b14226205890f9242a2853ae6d33712fa665f64e26ef0b3c3eac5c8913abb006ce5089d0f43c
對上面配置的說明:1.Message channels當前版本的FluorineFx 只支持通過Realtime Message Protocol (RTMP) channel傳輸消息。
2.Message Service adapter在FluorineFx中,默認的 Message Service adapter就是FluorineFx.Messaging.Services.Messaging.MessagingAdapter 類。所以配置文件如下設置:
rurl4_b=df883ffcef85a62127662da6453b0a57936aa5a6167a840f33e2acf90ac1165966be9404cd2ef9b0faa49e1ce38dac4134e5dc8720b5b9980133153e85de9f3210b51b3374528f226468a60bf98f47984c521189

如果編寫MessagingAdapter類的子類,你就可以自己定義Adapter 。
3.Network propertiesrurl4_b=df883ffcef85a62127662da6453b0a57c8f42fbe8a9be0987ad688c9709ae323e6b2681f5474672dfeeab3f019046a5d14e9015cac2c735bd7afcf0dd3b5a5f43cd6747925dca9291476bf29e7c8d53d0fa1103a

4.Server properties
rurl4_b=df883ffcef85a62127662da6453b0a570e35f068585bde35558c6a5ed29fa433eef61df515015d8f528cf69e1583f82fb59638c7af8fb0e93bf7d59402c75c43bb210106f0381651405c03c01879ff48d43b6bea

三、配置 Data Management ServiceData Management Service destination 是一個終端。這個終端可以接收數據,或者發送數據到客戶機。它提供了將數據分佈到多個Data Management Service destination和 在這些destination之間進行同步(synchronization)的能力。 在Flex中使用DataService 組件或ActionScript API可以連接到Data Management Service destination。
例子:
rurl4_b=df883ffcef85a62127662da6453b0a57194f177192f299d8307d53f5dcd15b36f9b6598618788c8d9311b3fe5c13871cd69d66c8c4a5a83a335ddb1e3703966f9ecc9917b8e650d2d1a193478211f79c12949b0c
rurl4_b=df883ffcef85a62127662da6453b0a5747a55ead060cd70dea2820164e110197806de666f6befcdcbd8b2f36324534997c26867b53d7641a42ea66275b4fba8c275a60bd246e1023bc3b5d6eeedb8da8cce0cb81

對上面配置的說明:1.Message channel的選擇:當前的FluorineFx 只支持使用Realtime Message Protocol (RTMP) channel 傳輸Data Management Services。
2.Data adapter的設置:FluorineFx中的 Data adapter是由 FluorineFx.DotNetAdapter 類實現的:
rurl4_b=df883ffcef85a62127662da6453b0a57d113166e7a80b77f00b452800fe496f590dee980771a8f92c2c94acad7c167bb8dd1e8d4a42d530895454965293046f56a1fdb2f1bed44c86de25294ad406519aea74706

rurl4_b=df883ffcef85a62127662da6453b0a5767f37b422e7801a408fbef38ab2364e59820c56c099f2f2925d9c7150c13c8bd24612214ec1b52ed5f424cc6ebda1f92ccb5bae66d6acf4a6f880978cae94c6c50ac0223 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章