2010-12-30 5 views
3

C#(.NET 2.0、Visual Studio 2005)を使用したWindowsベースのアプリケーションを作成しました。今、このアプリケーションのWebベースのやり直しは、時間とリソースを消費するプロセスであり、私にとって不可能なものです。私はC#Windows Formsアプリケーションを持っています。ユーザーがWeb経由でアクセスできるように、Webに展開できますか?

ユーザーはインターネットを介してアクセスできるように、これをホストする必要があります。

RDPユーザーはWindowsアプリケーションにアクセスできますが、より多くのユーザーが同時に操作することはできません。

ユーザーはブラウザからアクセスできるように、Webアプリケーションとしてホストすることはできますか?

答えて

4

いいえ、Webサイトと同じように直接Webから利用できるわけではありません.Windows Formsアプリケーションはクライアントマシン上で直接実行されます。

あなたができることは、MSIインストーラとしてパッケージ化することです。エンドユーザーは簡単にインストールしてから、インターネットなどのデータベースにアクセスすることができます(これらのリソースを公開する最も簡単な方法はウェブサービス)。このメカニズムを使用することを選択した場合は、既にアプリケーションの一部をリファクタリングする必要があります。アプリケーションがn-tierアプリケーションにうまく組み込まれていることを前提とします。

ユーザーはインターネット経由でこれらのリソースにアクセスする必要はありませんが、RDPを使用しているユーザーにはイントラネットに座っていることが示唆されます。つまり、サービスを "ホスト"できるすべてのクライアントがネットワークを介して参照(およびアクセス)できるマシン上のデータベースとして使用します。この場合、必要なのは、アプリケーションの構成ファイルにある接続文字列やパスを変更することだけです。

+0

1つのアプリケーションで正常に動作するのは、ILMERGEを使用して、リンクをクリックして「ウェブから」実行可能な単一の実行可能ファイルを作成することです。もちろん、ローカルでダウンロードしますが、インストールや管理者権限は必要ありません。 –

1

click-onceを使用してネットワーク経由でアプリケーションをデプロイすることは可能ですが、私はwinformアプリケーションをWebベースのアプリケーションに変換する方法がわかりません。 2つのプラフォーム間でアーキテクチャが変わります。

2

あなたは、少なくともClickOnce

を使用して経由ウェブをデプロイすることができClickOnce配置を簡素化インストール用Webサーバーまたはネットワークファイル共有にWindowsベースのアプリケーションを公開することができます。 Visual Studioは、ClickOnceテクノロジでデプロイされたアプリケーションの公開および更新を完全にサポートしています。

http://msdn.microsoft.com/en-us/library/t71a733d(v=VS.90).aspx

+0

私は@frouに同意します。それが行く方法です。または、私は、現在のwinformsアプリケーションが3層アプリケーションであり、正しく設計されていれば、すぐにWeb UIを配置できるはずだと思います。ここではプレゼンテーションレイヤーを構築するだけで、残りのレイヤーはすべて同じままです。 –

1

私はいくつかの時間を投資をお勧めしてSOAを採用するアーキテクチャを変更します。

コードを再構築し、メソッドをクライアントに公開するweb serviceを作成する必要があります。これらのメソッドは、クライアントからの入力を受け取り、操作を実行し、UIに表示するデータを戻します。既存のソリューションからコアビジネスロジッククラスを選択し、そのまま再利用することができます。プレゼンテーションロジックとビジネスロジックを分離するには多少の労力がかかるかもしれませんが、努力する価値はあります。

ウェブサービスをホストしたら、デスクトップアプリケーションまたはウェブアプリケーションのどちらでも使用できます。もちろん、Webアプリケーション用のUIをコーディングする必要がありますが、最初から書き込むよりもはるかに早いでしょう。

+0

これは間違いなく私が示唆していることです。アーキテクチャーを再構築する作業がいくつかあるかもしれませんが、これは時間/労力の点で最も侵入性の少ないアプローチのようであり、将来アプリケーションを維持する上でより大きな柔軟性を与えるでしょう。 –

0

Windowsでデータベースアプリケーションを使用している場合は、1つのことを行うことができます。サーバーにデータベースを展開することはできますが、ASP.NETでフロントエンドアプリケーションを設計して、アプリケーションをインストールしたマシンでWindowsアプリケーションを使用できるようにし、他のすべてのサーバーもそのアプリケーションにアクセスできますウェブを介して。

関連する問題