掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
IEでwebアプリケーションを公開するには (ID:144303)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
HTML ベースのアプリケーションと、Windows Form ベースのアプリケーションでは、 使用できるコントロールも、画面遷移の方法なども全く異なりますので、 もし、ASP.NET の Web アプリに完全移行するのであれば、基本的には完全に作り直しになります。 > 1.各クライアントに対しEXEの配布等を行わず、指定URLへの接続のみ行えばサービスが受けられること。 案2 に関しては、EXE の配布は発生しません。 また、案1 の場合は「アプリケーションはオンラインでのみ利用できる」のオプションを利用する事ができます。 案3 に関しては、案1と案2の中間です。Web サービス化しておいた exe を 案1 の方法で配布するなら、クライアントへのインストールは不要です。 > 2.サービス開始後はプログラムの修正を行うことはない。 それは、「バグや機能修正要望があっても修正できない」という意味でしょうか? それとも「バグや機能修正要望があっても修正しない」という意味でしょうか? > 案1に関して、SQLServerへの接続の際のパスワード等は接続文字列として設定しておりますし、 SQL Server 認証でしょうか。パスワードの埋め込みはセキュリティ的に脆弱になるので、 可能であれば Windows 認証を採用する事を検討された方が良いかと思います。 http://www.sqlpassj.org/bunkakai/security/series/kihon/01.aspx > 案2に関して、画面の作り直しの他、内部のコードには、Winアプリの記述を流用 そちらの「内部のコード」を知らないので判断に困りますが、たとえば Sytem.Data 名前空間の機能は、どちらも差異ありません。 しかし、System.Windows.Forms 関連の機能は一切使えなくなります。 (たとえば、MessageBox なども使えません) また、クライアント上のリソース(ファイル、レジストリ、プリンタ等)へのアクセスが 行えない(または強く制限される)という違いもあります。 > 案3に関して、設計を分離させるとは具体的にどのようなことでしょうか? どう説明すれば良いのか分かりませんが、いわゆる『3階層』のシステムのように設計する、ということです。 案3 の場合、Form アプリは SQL Server には一切アクセスできなくなります。 しかし Web サービスは、SQL Server と通信する事ができます(画面とDBの中継役です)。 画面側からデータを表示する場合には、Web サービスに「○○のデータを下さい」と指示し、 データを更新する場合には、その編集結果を Web サービスに伝え、DB に反映してもらいます。 たとえば、12月の売上を画面に表示し、それを編集するアプリを作るとします。 Web サービス側のイメージコードは、たとえばこんな感じ。 データ操作には TableAdapter を使っていると思ってください。 <WebMethod()> _ Public Function GetMonthly(ByVal year As Integer, ByVal month As Integer) As TestServer.SalesDataSet '指定した年月の売上情報を返す Dim ds As New TestServer.SalesDataSet() Using ta As New SalesDataSetTableAdapters.Table1TableAdapter ta.FillByMonth(ds.Table1, year, month) End Using Return ds End Function <WebMethod()> _ Public Sub Update(ByVal ds As TestServer.SalesDataSet) '編集結果の DataSet を受け取り、それを DB に反映させる Using ta As New SalesDataSetTableAdapters.Table1TableAdapter ta.Update(ds) End Using End Sub 画面側のイメージコードでいうと、たとえばこんな感じ。 Private ds As TestServer.SalesDataSet Private Sub Button1_Click(… '12月分の売上情報を取得し、一覧表として表示する。 Using web As New TestServer.SalesService() ds = web.GetMonthly(2007, 12) End Using DataGridView1.DataSource = ds.Table1 End Sub Private Sub Button2_Click(… 'ユーザが編集した結果を、サーバに返送する。 Using web As New TestServer.SalesService() web.Update(ds) End Using End Sub Web サービス実装の方法などは、下記を参照。 http://www.microsoft.com/japan/msdn/thisweek/300x10/ http://www.microsoft.com/japan/msdn/thisweek/wednesday/
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.