[seasar-dotnet:1524] Re: [DBFlute][S2Remoting] リモートオブジェクトを取得したい

西山 はじめ [E-MAIL ADDRESS DELETED]
2009年 11月 20日 (金) 10:15:32 JST


小谷さん。

西山(hajimeni)です。

返信ありがとうございます。

> 個人的にはQuillを使うにせよS2Containerを使うにせよ
> Seasar.NETを利用するのはサーバ側のみとし、
> リモートオブジェクトの取得・利用は
> .NET標準のやり方(公式ガイドなどに載っているような)で
> 行うことをオススメしたいです。
> (WCFだけかもしれませんが、
> VisualStudioで必要なクラスをある程度
> 自動生成できるはずなので)

構成等はまだ、全然決まっておりません。
確かに通信部分は.NET標準の方が問題が少なくなりそうですね。
検討してみたいと思います。

> ServiceからFacadeの処理を呼び出す、という形が
> 作りやすいのではないでしょうか。
>
> (以前、私が関わったことがある
> Silverlight(+WCF)+Seasar.NET+DBFluteな
> プロジェクトでは上記のような形で作成していました)

イメージでは、次のような感じでよろしいでしょうか?

|Client|          |Server|
[画面]  ⇒ <WCF> ⇒ [Service] ⇒(*) [Facade] ⇒ [Bhv]

・(*)の呼び出し部分をトランザクション境界にする。
・画面からは、WCFを通してServiceを呼び出す。

画面:Service = 1:1 のような構成の場合、
Facade:Service も 1:1 という考え方でよろしいでしょうか?

>> 4.ロジック変更時に、サーバー側のDLLは入れ替え無しとしたい。
>> というのも、他で開発されたプロジェクトで、
>> 「SQL文を配列にして投げればトランザクションになる」というラ
>> イブラリがあり、「これを使うか、同じ仕組みにしてくれ」
>> という要望があります。
>
> こちらについては
> 恥ずかしながら、私も良さそうな考えが浮かびません。。。
> このライブラリ(もしくは同等のインターフェース)を
> 使わざるをえないのであれば
> Seasar.NETを利用するにしてもコンポーネントの管理と
> (トランザクションを除く)インターセプターの利用程度に
> 留めておいた方が無難かと思います。
> (SQL文そのものではなくSQLファイルのパスを渡すのであれば
> 工夫すれば外出しSQLと組み合わせることができるかもしれません)

これは、どうにか利用しない方向で進める予定です。

周りでは、今だに「SQL文を自力で組み立てて(バインド変数も利
用しない)コーディングする手法が根強いため、なかなか手ごわそ
うでありますが。


大変参考になりました。ありがとうございます。

また、何かご相談させていただくことがある際には、よろしくお願
いいたします。


以上よろしくお願いいたします。


[2009/11/19 23:26] koyak さんは書きました。:
> 西山(hajimeni)さん
> 
> 小谷です。
> 
> 個人的にはQuillを使うにせよS2Containerを使うにせよ
> Seasar.NETを利用するのはサーバ側のみとし、
> リモートオブジェクトの取得・利用は
> .NET標準のやり方(公式ガイドなどに載っているような)で
> 行うことをオススメしたいです。
> (WCFだけかもしれませんが、
> VisualStudioで必要なクラスをある程度
> 自動生成できるはずなので)
> 
> リモートオブジェクトの取得でSeasar.NETを利用する
> =クライアント側でもSeasar.NETを利用する
> 
> ということになると思いますが、
> 仮にそのようにした場合、Seasar.dllなども一緒に
> クライアントに配布しなければならなくなります。
> そうなるとSeasar.NETをバージョンアップさせる必要が
> 出てきたときなどにコストがかかることになり
> (クライアントにもよりますが)、
> .NET Remoting(もしくはWCF)を使う意味が半減してしまうのでは
> ないかと思います。
> 
>> 1.C/Sシステムで、.NETを利用。
>> 2.DBとの接続は、サーバーが行う。
>> 3.トランザクション処理を行いたい。
>> [Form] ⇒A⇒ [Service] ⇒B⇒ [Bhv]
> 
> という構成であれば、西山さんがおっしゃる通り
> Aの部分から右をDLLとしてサーバーに配置
>> DBFlute.NETを利用したDBアクセス処理を実装
>> Facadeのようなものを用意してそれをトランザクション境界に
>> ServiceからFacadeの処理を呼び出す、という形が
> 作りやすいのではないでしょうか。
> 
> (以前、私が関わったことがある
> Silverlight(+WCF)+Seasar.NET+DBFluteな
> プロジェクトでは上記のような形で作成していました)
> 
>> 4.ロジック変更時に、サーバー側のDLLは入れ替え無しとしたい。
>> というのも、他で開発されたプロジェクトで、
>> 「SQL文を配列にして投げればトランザクションになる」というラ
>> イブラリがあり、「これを使うか、同じ仕組みにしてくれ」
>> という要望があります。
> 
> こちらについては
> 恥ずかしながら、私も良さそうな考えが浮かびません。。。
> 
> このライブラリ(もしくは同等のインターフェース)を
> 使わざるをえないのであれば
> Seasar.NETを利用するにしてもコンポーネントの管理と
> (トランザクションを除く)インターセプターの利用程度に
> 留めておいた方が無難かと思います。
> (SQL文そのものではなくSQLファイルのパスを渡すのであれば
> 工夫すれば外出しSQLと組み合わせることができるかもしれません)
> 
> 
> ご相談になられていることと論点がずれてしまって
> いましたらご容赦下さい。
> 
> 
> 2009年11月19日20:32 西山 はじめ <[E-MAIL ADDRESS DELETED]>:
>> お世話になっております。
>> 西山(hajimeni)です。
>>
>> .NET Remoting や WCFを通したリモートのオブジェクトを取得した
>> い場合、 Seasar.NET の機能を利用してどのように取得すればよろ
>> しいでしょうか?
>>
>> 想定している利用環境は次のとおりです。
>>  DBFlute.NET 0.8.9.5
>>  Seasar.NET 1.3.17
>>
>> S2Remoting.NET のページはあるようなのですが、使い方等がいま
>> いちわかりません。
>>
>> 具体的に実行したいことは次のようなことです。
>>
>> 1.C/Sシステムで、.NETを利用。
>> 2.DBとの接続は、サーバーが行う。
>> 3.トランザクション処理を行いたい。
>>
>> [Form] ⇒A⇒ [Service] ⇒B⇒ [Bhv]
>>
>> という構成の場合、Aの部分から右をDLLとしてサーバーに配置し
>> て、Form側からリモートオブジェクトを取得すればよいのかなと
>> 思っております。
>>
>> しかし、
>> 4.ロジック変更時に、サーバー側のDLLは入れ替え無しとしたい。
>>
>> といった場合は、どのように実現させれば良いのかは見当が付きま
>> せん。
>>
>> というのも、他で開発されたプロジェクトで、
>> 「SQL文を配列にして投げればトランザクションになる」というラ
>> イブラリがあり、「これを使うか、同じ仕組みにしてくれ」
>> という要望があります。
>>
>> 以前のプロジェクトで、 Seasar.NET + DBFlute.NET を利用した
>> 時に、非常に生産性がよかったので、出来れば同じように開発した
>> いと思っております。
>>
>> しかし、4はほぼ無理だと思っております。
>>
>> よって、Aの部分でオブジェクトをリモートから取得したいと思っ
>> ております。
>>
>>
>> .NET について詳しく理解しているわけではありませんので見当違
>> いのことを言っているかもしれませんが、お知恵をお借りしたいと
>> 思っております。
>>
>> 以上よろしくお願いいたします。
>>
>> --
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> 西山 はじめ
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>
>> _______________________________________________
>> seasar-dotnet mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
> 
> 


-- 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 西山 創



seasar-dotnet メーリングリストの案内