CliekOnceでASPのWebアプリケーション


ai  2007-12-06 20:13:31  No: 138306  IP: 192.*.*.*

CliekOnceでASPのWebアプリケーションのようなものは
できるのでしょうか。

ClickOnceはソフトの配布の管理をするサーバーたてる
ということはわかりましたがその機能を使ってASPの様な
真似ごとはできるのでしょうか。

WebサーバーにVB2005で作成したアプリをClickOnceで公開します。
ホームページにはClicOnceのリンクを作ります。
リンクをクリックするとVB2005のソフトが起動します。
Webサーバーにはついでにデータベースもインストールしておき
VB2005で起動したソフトがデータベースを参照して
SQLの結果をシステムに表示するということはできる
のでしょうか。

この文章を書いて思ったのですがClickOnceでインストール
されるのはクライアントマシンですので(?)クライアント
マシンからWebサーバのDBにアクセスするにはTCPか何か
をつかわないとできないですよねやはり。

編集 削除
魔界の仮面弁士  2007-12-07 09:25:34  No: 138307  IP: 192.*.*.*

> Webサーバーにはついでにデータベースもインストールしておき
> VB2005で起動したソフトがデータベースを参照して
> SQLの結果をシステムに表示するということはできる
> のでしょうか。

できますよ。幾つか実装方法はありますが、VB2005 を使用されているなら、
Web サーバ上で、(VB2005 にて)XML Web サービスを実装するのが楽でしょう。

具体的には、Web サーバ上にデータ取得用の「DataSet を返す WebMethod」と、
データ更新用の「DataSet を引数に受け取る WebMethod」を用意します。 

そして ClickOnce クライアントは、その Web サービスを「Web 参照」して、
それらのメソッドを呼び出すことで、
  クライアント(ClickOnceアプリ) <==> Web サービス <==> データベース
という 3 階層のシステムを構築できます。

この場合、クライアント側には、DB 接続のための仕組みは不要です。
(クライアント側は、DataSet の読み書きは行うが、SQL は実行しない)

編集 削除
ai  2007-12-07 11:23:56  No: 138308  IP: 192.*.*.*

魔界の仮面弁士 様

早速のご返信ありがとうございます。
XML Web サービスというものを勉強してみます。

Windows画面のWebシステムができると考えると
わくわくしてきます。

今後はこのようなシステムが流行していくのでしょうか。

これができればわざわざASPのWebのシステムを作る必要
なくなると思うのですがどうでしょうか。

もちろんASP WebシステムでIEの画面の中で処理したい
という場合は必要だと思います。

そもそもこういうやり方には何か欠点や問題点など
あるのでしょうか。特になければ絶対にこの方式は
流行すると思うのですがどうなんでしょうか。

編集 削除
魔界の仮面弁士  2007-12-07 14:15:08  No: 138309  IP: 192.*.*.*

> 流行すると思うのですがどうなんでしょうか。
う〜む。流行るも何も、インターネットやイントラネット等を介した N 階層システム自体は、
さほど珍しいものではなく、それこそ、Windows 98 の時代からあるものですよ。
("Windows DNA" や "スマートクライアント" など)

たとえば VB6 時代のデータアクセスなら、ADO 2.5 以降の「ADODB.Recordset」には、
Web 経由でやり取りするための機能が幾つか追加されていましたし、私自身、それを使って
ASP (≠ASP.NET) の Web サーバと通信する VB6 アプリを開発した事も幾度かあります。


で。今回の場合は、VB2005 ということで、XML Webサービスによる実装方法を
紹介しましたが、これについては、Microsoft のサイトにある
「300 秒でズバリ !!」 & 「10 行でズバリ !!」シリーズや
「ステップ 7」シリーズのハンズオンなどにも実装手順が
紹介されていますので、一度試してみると良いかと。

ちなみに、XML Web サービス自体は、Windows Forms から使うだけではなく、
ASP.NET からも利用できるため、たとえば同じシステムについて、
Web 版の画面と Windows 版の画面の両方を用意する…といったことも可能です。


> そもそもこういうやり方には何か欠点や問題点などあるのでしょうか。
最近だと、Siverlight、ASP.NET/AJAX、WPF/E などという選択肢もありますね。
実行可能なプラットフォームがそれぞれ異なるので、どれか一つのテクノロジだけを
追いかけるのでは無く、実装したい要件に応じて使い分けていくべきものかと。

たとえばASP.NET 製のアプリは、たとえば携帯電話などからの利用さえも
可能ですが、ClickOnce 製のアプリは、そうはいきませんよね。


注意点を挙げるなら、バージョン管理をしっかり行っていく必要がある、という点でしょうか。

[ユーザ画面]と[データ層]が分離される事によって、たとえば DB の構造を変更した場合、
Webサービスを更新するだけではなく、各クライアントに配布した ClickOnce アプリも、
合わせてバージョンアップさせておく必要が生じますから。

編集 削除