Net与Flex入门

开源项目FluorineFx就是专门针对.NET平台与Flex通信提供的AMF(ActionScript Message Format)协议通信网关,我们可以通过FluorineFx很方便的完成与.NET的通信。 另外还可以轻松的实现及时文字沟通、视频语音通信等及时交互系统的开发。

     FluorineFx官方提供了安装包的下载和在线文档,可以帮助我们有效的利用FluorineFx来开发。 

     FluroineFx官方网站:http://www.fluorinefx.com/    

     FluroineFx下载地址:http://www.fluorinefx.com/download.html

     FluroineFx在线文档:http://www.fluorinefx.com/docs/fluorine/index.html

 

一、服务端的开发

    1、通过Microsoft Visual Studio 2008 创建创建解决方案,并添加FluroineFx服务器库

         路径:E:\FlexDemo\FlexDemoTest1\ServiceLibrary1

    2、添加FluorineFx 网站到解决方案,添加成功后网站会自动引用FluorineFx服务库的dll

         路径:E:\FlexDemo\FlexDemoTest1\WebSite1

    3、结构如下:  

 

 4、代码如下:

 

namespace ServiceLibrary1
{
    /// <summary>
    /// Fluorine sample service.
    /// </summary>
    [RemotingService("Fluorine sample service")]
    public class Sample
    {
        public Sample()
        {
        }

        public string Echo(string text)
        {
            return "Gateway echo: " + text;
        }
        public Contact GetContact()
        {
            Contact c = new Contact { Name = "Fred", Email = "fred@example.com", Phone = "555-1212" };
            return c;
        }
        public FluorineFx.AMF3.ArrayCollection GetContacts()
        {
            FluorineFx.AMF3.ArrayCollection result =
                new FluorineFx.AMF3.ArrayCollection{
                    new Contact { Name = "Fred", Email = "fred@example.com", Phone = "555-1212" },
                    new Contact { Name = "Jane", Email = "jane@example.com", Phone = "555-1213" },
                    new Contact { Name = "Bob", Email = "bob@example.com", Phone = "555-1214" }};

            return result;
        }
        /// <summary>

        /// 获取服务端的系统时间

        /// </summary>

        /// <returns></returns>

        public string GetServerTime()
        {

            return DateTime.Now.ToString();

        }

        public ArrayCollection GetBooks()
        {
            ArrayCollection array = new ArrayCollection();
            array.Add(new Book(1, "三国演义", "罗贯中", 100.00));
            array.Add(new Book(2, "西游记", "吴承恩", 200.00));
            array.Add(new Book(3, "水浒传", "施耐庵", 300.00));
            array.Add(new Book(4, "红楼梦", "曹雪芹", 400.00));
            return array;
        }
    }

    [FluorineFx.TransferObject]
    public class Book
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public string Author { get; set; }
        public double Price { get; set; }
        public Book()
        { }
        public Book(int id, string name, string author, double price)
        {
            this.ID = id;
            this.Name = name;
            this.Author = author;
            this.Price = price;
        }

    }


}

 

二、客户端开发

   1、首先创建Flex项目

       Project location  Floder设置为:E:\FlexDemo\FlexDemoTest1\WebSite1\flex4

       Application type设置为:Web application,Application

   2、    Flex项目创建完毕,下面在通过一些相应的配置就可以通过FluorineFx和.NET通信了。开发项目属性设置面板,设置

    Flex   Complier:   -locale en_US -services "..\..\WEB-INF\flex\services-config.xml"  -context-root "/WebSite1"

    Flex Build Path:

                 output folder url:http://localhost:7217/WebSite1/flex4/bin-debug(注意路径大小写)

   3、代码如下

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
 <mx:RemoteObject id="service" destination="fluorine"
     source="ServiceLibrary1.Sample">
         <mx:method name="Echo" result="onResult1(event)">
         </mx:method>
 </mx:RemoteObject>

     
      <mx:Script>
         <![CDATA[
            import mx.rpc.events.ResultEvent;
            import mx.collections.ArrayCollection;
            import mx.controls.List;
            import mx.rpc.events.FaultEvent;
            import mx.rpc.events.ResultEvent;
            private var nc:NetConnection;
            private var rs:Responder;
            private var rs1:Responder;
            private function init():void
            {
                nc = new NetConnection();
                rs = new Responder(onResult,onStatus);
                rs1=new Responder(onResult1,onStatus);
                nc.objectEncoding = ObjectEncoding.AMF3;
                nc.connect("http://localhost:7217/WebSite1/Gateway.aspx");
                nc.client = this;
            }
            private function onResult(result:String):void
            {
                this.lbServerTime.text = "服务端系统时间为:" + result;
            }
            private function onStatus(event:Object):void
            {
                trace("Error");
            }
            private function getServerTime(event:MouseEvent):void
            {
                //服务器端所提供的RemotingService的全限定名
                nc.call("ServiceLibrary1.Sample.GetServerTime",rs);
            }

         internal function onClick():void
         {
             service.Echo(txtInput.text);
          
         }
         
          internal function onResult1(evt:ResultEvent):void
         {
             txtResult.text = evt.result.toString();
         }

         ]]>
     </mx:Script>
    
     <mx:Panel x="53" y="52" width="473" height="361" layout="absolute" title="FluorineFx" fontSize="12">
         <mx:TextInput x="35" y="21" id="txtInput"/>
         <mx:Button x="35" y="63" label="确 定" fontWeight="normal" click="onClick()"/>
         <mx:Label x="35" y="95" text="结 果:"/>
         <mx:TextInput x="35" y="123" width="160" id="txtResult"/>
         <mx:Button x="35" y="176" label="获取服务器系统时间" click="getServerTime(event)"/>
         <mx:Label x="23" y="249" width="402" id="lbServerTime"/>
         <mx:Button x="237" y="125" label="Button"/>


     </mx:Panel>
    
</mx:Application>

 

 

转载于:https://www.cnblogs.com/yidianfeng/archive/2011/11/02/2233029.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303166.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MAUI来了

各位很久没有和大家说端的开发了&#xff0c;技术发展特别快&#xff0c;我不知道还有多少国内的开发人员还坚守用Xamarin&#xff0c;但是.NET的迭代变化还是让国内.NET社区热闹起来了。去年虽然疫情&#xff0c;但微软还是在Build上发布了MAUI。微软这次把MAUI完全整合到了.N…

编程到底难在哪里? 从一个美国实习生的故事说起

记得之前组里来了一个美国实习生小伙子&#xff0c;很极客的那种&#xff0c;干活快&#xff0c;一天能给你写2000行代码(我复查的速度跟不上他写的速度)&#xff0c;让做什么东西&#xff0c;上午告诉做个这个功能&#xff0c;下午就能在测试环境跑起来演示了。跟他单独开会的…

温故知新,DotNet Core SDK和.Net CLI十八般武艺

简介.NET命令行接口 (CLI) 工具是用于开发、生成、运行和发布.NET应用程序的跨平台工具链。https://docs.microsoft.com/zh-cn/dotnet/core/tools/SDK.NET SDK (Software Development Kit) v5.0.201.exe里程碑发布日期.NET Core 2.1.x (servicing)LTS (Long Term Support) rele…

谁说数学没用,一旦我们用在赚钱上,全世界都害怕

今天来说说“量化”投资这个门派的开山祖师、美国“赌神”——爱德华 索普。爱德华 索普是一位大教授&#xff0c;天才数学家&#xff0c;非常喜欢扑克牌博弈游戏。一般人玩扑克也就只盯着眼前输赢&#xff0c;爱德华 索普却花了两年时间利用早期的IBM计算机和概率论中的凯利…

2021年春招Elasticsearch面试题

1、Elasticsearch是如何实现master选举的&#xff1f;1、对所有可以成为master的节点根据nodeId排序&#xff0c;每次选举每个节点都把自己所知道节点排一次序&#xff0c;然后选出第一个&#xff08;第0位&#xff09;节点&#xff0c;暂且认为它是master节点。 2、如果对某个…

android qq红包,Android实现QQ抢红包插件

又想到快要过年了&#xff0c;到时候还不知道群里要发好多红包&#xff0c;所以我将之前在网上宕的一份微信抢红包的代码修改了一下&#xff0c;实现了QQ抢红包&#xff01;可以支持抢QQ拼手气红包&#xff0c;普通红包&#xff0c;口令红包&#xff0c;现在再也不怕20年单身手…

8个Python高效数据分析的技巧

不管是参加Kaggle比赛&#xff0c;还是开发一个深度学习应用&#xff0c;第一步总是数据分析。这篇文章介绍了8个使用Python进行数据分析的方法&#xff0c;不仅能够提升运行效率&#xff0c;还能够使代码更加“优美”。一行代码定义List定义某种列表时&#xff0c;写For 循环过…

NET问答: 如何在 ASP.NET Core Web API 的 Response 中添加自定义的 Header ?

咨询区 JDawg&#xff1a;我正在将 Web API 2 移植到 ASP.NET Core Web API 上&#xff0c;以前我都直接在 Response 属性上添加自定义的 Header&#xff0c;如下代码所示&#xff1a;HttpResponseMessage response new HttpResponseMessage(HttpStatusCode.OK); response.Hea…

一个免费兑换iPhone X的机会,就这样被你错过了

嗨~我是大家最爱的小树&#xff0c;第一次写文&#xff0c;有点小鸡冻&#xff01;&#xff01;&#xff01;小树此行是带着超模君的礼物来的哦&#xff01;上周准备会员周回馈粉丝的时候&#xff0c;超模君突然决定要送模友们&#xff1a;iPhone X &#xff01;&#xff01;&a…

正则表达式学习神器!

推荐一款优秀的正则表达式在线可视化工具我相信很多朋友第一次听到正则表达式时&#xff0c;都感觉这是一个高大上的名词。其实&#xff0c;简单来说&#xff0c;正则表达式就是用来匹配文本的。正则表达式里的 “正” 是指常客&#xff0c;即经常出现、通用的意思&#xff1b;…

数据可视化,带给你的惊艳并不止这一点!

在大数据时代的现今&#xff0c;数据庞大且繁杂&#xff0c;仅通过简单的数据整理得出清晰的结论&#xff0c;已经不太合理。实际上&#xff0c;若要简明扼要地展示出结论&#xff0c;不妨考虑一下数据可视化。那么&#xff0c;什么是数据可视化呢&#xff1f;数据可视化&#…

关于C3P0容错和自动重连特性的研究

为什么80%的码农都做不了架构师&#xff1f;>>> 最近常有数据库和网络设备升级和搬迁等事情&#xff0c;而各个应用都是基于数据库连接池做的&#xff0c;大部分都是基于C3P0&#xff0c;数据库或网络状况的变动都会导致客户端连接池中的connection失效&#xff0c…

android otg主从切换,一种自动切换OTG设备主从模式下的Vbus电压的方法与电路与流程...

本发明涉及otg设备的检测领域&#xff0c;更具体地说&#xff0c;涉及一种自动切换otg设备主从模式下的vbus电压的方法与电路。背景技术&#xff1a;现有技术中&#xff0c;具备otg功能的设备通过检测usb_id引脚的状态来判断工作为host(主模式/usb_id悬空)或者device(从模式/us…

又一起.NET程序挂死, 用 Windbg 抽丝剥茧式的真实案例分析

一&#xff1a;背景 1. 讲故事前天有位粉丝朋友在后台留言让我帮忙看看他的 Winform程序 UI无响应 410线程 到底是啥情况&#xff0c;如下图&#xff1a;说实话&#xff0c;能看到这些真实案例我是特别喜欢的???????????? &#xff0c;就像医生看病&#xff0c;光…

别乱说,算法才不是脑筋急转弯

老崔去某厂笔试时&#xff0c;遇到了经典的「狼、羊、白菜 过河问题」。由于经常看算法方面的内容&#xff0c;这道对于他来说&#xff0c;so easy。题目大概是这样&#xff1a;题号1&#xff1a;农夫需要把狼、羊、菜和自己运到河对岸去&#xff0c;只有农夫能够划船&#xff…

HTML坐标不随着屏幕大小改变,HTML热区map坐标,随窗口大小自适应办法(javascript)...

为图片添加MAP&#xff1a;/>/>/>/>图片大小随页面变化&#xff0c;需要MAP中每个area的坐标也随页面等比例变化。Javascript实现&#xff1a;adjust();var timeout null;//onresize触发次数过多&#xff0c;设置定时器window.onresize function () {clearTimeou…

NET问答: Find() 和 Where().FirstOrDefault() 该如何选择 ?

咨询区 KingOfHypocrites&#xff1a;我经常看到别人用 Where.FirstOrDefault() 获取某一个匹配集合的第一个元素&#xff0c;我在想为什么他们不使用 Find() 呢 ? 是不是前者更高级一点&#xff1f;有人能告诉我它们的差别吗&#xff1f;比如下面的代码&#xff1a;namespace…

python实战,教你用微信每天给女朋友说晚安

但凡一件事&#xff0c;稍微有些重复&#xff0c;我就考虑怎么样用程序来实现它。这里给各位程序员朋友分享如何每天给朋友定时微信发送”晚安“&#xff0c;故事&#xff0c;新闻等等。最好运行在服务器上&#xff0c;这样后台挂起来更方便。准备&#xff1a;**微信号** pip i…

学计算机与学英语作文,初二英语作文(关于计算机与学习)

鲁铁华回答&#xff1a;Thereisabiginfluenceoftechniqueonourdailylife.Electronicdevices,multimediaandcomputersarethingswehavetodealwitheveryday.EspeciallytheInternetisbecomingmoreandmoreimportantfornearlyeverybodyasitisoneofthenewestandmostforward-lookingmed…

10号发工资和20号发工资的公司,区别竟然这么大?

工资的话题一直占据着职场热度榜单这不最近又热起来了10号发工资和20号发工资&#xff0c;就能看出一个公司是否靠谱?对很多工薪族来说发工资这一天是脱贫致富的重要日子也是很多人的还款日子而这几年&#xff0c;一直有种说法发薪日是公司生态的一个缩影可以由此看出一个公司…