[開発ログ]NetOAでFlex 2を使用し、WebサービスとバックグラウンドのASPを利用することを試みる.NETインタラクション


今回は本当に大変でした・・・私たちは未知の領域に足を踏み入れました.今回のプロジェクトでは新技術の採用が少しコントロールされていないような気がしますが...
私たちのグループの人はもともと先生から支持を得ようとした回数が他のグループより少ないので、今ではページで先生の技術サポートを得るのは難しいようです.
先週の金曜日、私たちはページの原型の設計と制作段階に入りました.最初はチームメイトたちがDreamWeaver 8をインストールしてHTMLを書く準備をしていたページの原型です.しかし、HTMLに対する熟知度はあまり高くなく、DW 8では手に入らないと感じています.DW 8のようにlayoutがあるWYSIWYG(ご覧の通り)エディタでHTMLを書いてもうまくいかないと思ったら、諦めたほうがいいと言わなければなりません.
他のグループの人もHTMLに詳しいとは限らないけど、DWでかじっているので焦っています.VS 2005でASPX+MasterPageを直接書く方式のページプロトタイプのグループ(重い・・)もありますが、VS 2005のWebフォームデザイナを借りてHTMLの負担を軽減したいだけです.さすがに悪巧みだ.私たちのグループはどうしますか?
私たちにFlex 2があることをふと思い出しました.土曜日にFlex Builder 2をメンバーに伝え、Flexを模索して感じさせ、それを使ってページプロトタイプの迅速な構築を実現しました.EclipseベースのFlex Builder 2が提供するWYSIWYGデザイナはDWより確かに強い.仕方がないですね.バックグラウンドのサポートは違いますか.FB 2のバックグラウンドのFlex 2には内蔵のLayout managerがあります.それはHTMLでtableやframeでレイアウト問題を解決する必要がある状況より確かにいいです.メンバーたちはすぐに上手になったようで、Flex 2が好きになりました.DW 8の利用体験と比べるとギャップが大きいのかもしれません.
YLYが作ったメール管理システムの中でメールを書くインターフェースのスクリーンショット:
彼らがあんなにやる気を持っているのを見て、私もDojoを使い続けず、Flexに移動して私のこの部分のページを作りました.今日のお昼までに、私たちのページには原型がありました.
しかし、質問があります.私たちのページの原型は悪くないように見えます(少なくとも、他のグループに比べて?)また、データ検証のようなFlex組み込み機能も数多く存在しており、問題はPXとYLYが後期にFlexを引き続き使用してシステムの表現層を構築することを提案していることだ.
グループの中でHTMLに詳しいのは私だけなら、その時になったらページを作るのがつらいと思っていました.彼らがFlexを使いたいと自発的に提案した以上、いっそ使いましょう.ただ、もともと予想していたのはDojo+ASP.NETまたは直接ASP.NET AJAXの方式はページを制作して、Aspx+C#の開発は少なくともJSP+Javaととても似ていて、私の心の中は多少まだ数があります;今Flexを使うことを決めたら、私がもともとやったことがないことが多く、リスクを見積もることができません.
そして歯を食いしばって、飛び出しました.Flexでいいです.これで私たちは比較的よく知っているAjax開発からRIA開発に転換しました.ううう.
では、問題はFlexのフロントエンドとASPをどのようにするかに変わります.NETのバックエンドを統合します.私が知っている方法は4つあります.
1、HTTPService
2、WebService
3、Remote Object
4、FDS (Flex Data Service)
このうち後者はFlexの比較native方式ですが、今回はあまり使いたくないのでASPから離れていると思います.NETはもっと遠くなった.いや、実は全然触れたことがないので、使えないし、冒険したくないからです.HTTPServiceでは、自分でXMLデータを組み立てたり解析したりして、伝達する対象をシーケンス化/逆シーケンス化しなければならないので、面倒です.そこでWebService方式でFlexとASPを実現することにした.NETの統合.
決定したら、急いで着工して技術検証をします.この検証では、次のような効果が得られます.
WebServiceを起動します.私の机の上のVS 2005はdebugモードでこのWebサービスプロジェクトをスタートさせましたhttp://localhost:34270/Service1.asmx.
次に、Flex側の「ページ」を起動します.
ボタンを押すと、WebServiceが提供する「Hello World」の文字列が取得され、Flex側に表示されます.
このプロジェクトには、HelloWorldFlexの3つのファイルが含まれています.mxml、これはFlex側の「ページ」です.Service1.asmx.cs、これはASPです.NET側が提供するWebサービス最後はWeb.コンフィグは、WebServiceに不可欠なプロファイルを設定します.ファイルの内容は次のとおりです.
HelloWorldFlex.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
    <mx:WebService id="hwService" 
        wsdl="http://localhost:34270/Service1.asmx?WSDL"
        useProxy="false">
        <mx:operation name="HelloWorld">
            <mx:request>
            </mx:request>
        </mx:operation>
    </mx:WebService>
    <mx:Script>
        <![CDATA[       
            private function clicked():void {
                hwService.HelloWorld.send();
            }
        ]]>
    </mx:Script>
    <mx:Panel x="10" y="10" width="313" height="200" layout="absolute"
        fontFamily="Times New Roman" fontSize="12" title="Hello world!">
        <mx:Label x="10" y="24" text="{hwService.HelloWorld.lastResult}" />
        <mx:Button x="10" y="53" label="get" click="clicked();"/>
    </mx:Panel> 
</mx:Application>

Service1.asmx.cs:
using System.Web.Services;
using System.Web.Services.Protocols;

namespace WebService1
{
    /// <summary>
    /// A hello world web service.
    /// </summary>
    //    namespace VS2005          ,           URI 
    [WebService( Namespace = "http://tempuri.org/" )]
    [WebServiceBinding( ConformsTo = WsiProfiles.BasicProfile1_1 )]
    public class Service1 : System.Web.Services.WebService
    {
        [WebMethod]
        public string HelloWorld( )
        {
            return "Hello World";
        }
    }
}

Web.Config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <appSettings/>
    <connectionStrings/>
    <system.web>
        <compilation debug="true" />
        <authentication mode="Windows" />
    </system.web>
</configuration>

========================================================================
その上で、明日はFlexを先端にした小型の原型を置いて、前回置いたSampleWebSiteを改造します.