ASP.NetまたはWPF(C#)?[閉まっている]


31

私たちのチームはこれに分かれており、第三者の意見を聞きたかったのです。

アプリケーションを構築しているため、WCFサーバーで.Net WPFデスクトップアプリケーションを使用するか、jQueryを使用するASP.Net Webアプリを使用するかを決定できません。私はここでいくつかの仕様で質問をし、どちらの側を使用することの長所/短所が何であるかを見てみると思った。私には自分のお気に入りがあり、偏見を感じています。

理想的には、できるだけ早くソフトウェアの初期リリースをビルドし、その後スローダウンし、後で必要な追加の機能/コンポーネントをビルドするのに時間がかかります。何よりも、ソフトウェアが高速であることを望んでいます。ユーザーは1日中レコードを調べ、レコードの読み込みや画面の更新が遅れると生産性が低下します。

アプリケーションの詳細:

  • 私は初期バージョンの約100の異なる画面を見積もっていますが、最初のリリース後に追加の多くの画面が追加される予定です。
  • リマインダーおよびイベントシステムに双方向通信を使用したいと考えています
  • 現在、最大100人のユーザーをサポートする必要がありますが、最大500人のユーザーを増やすことができると言われています。
  • 複数の場所があります

考慮事項(最初のケースではなく、将来のリリースの場合があります):

  • 初期リリース後に追加される追加コンポーネントのスペース(これらの多くは...おそらく最初のアプリケーションよりもここで動作します)
  • キーボードナビゲーション
  • パフォーマンスは必須です
  • 初期バージョンへの生産速度
  • 低いメンテナンスオーバーヘッド
  • 今後のサポート
  • ソフトフォン/スキャナーの統合

開発者:

  • 過去数か月間WPFを学んでいたプログラマーが1人いて、これにWPFを使用することを提案したプログラマーがいました。
  • ASP.Netに精通しており、将来プロジェクトを支援する可能性のある2人目のプログラマがいますが、現在のソフトウェアのメンテナンスに時間を費やしているため、最初のリリースまでは作業していません。
  • 両方で働いており、どちらかで快適な私がいます
  • プロジェクト管理を行っている外部企業があり、ASP.Net企業です。
  • 他に1-2人を採用する予定ですが、どの方向に進むのかを最初に知る必要があります

環境:

  • 一般ユーザーは、ターミナルサービスを備えたWindows 2003サーバーを使用しています。RDP接続を介してWYSEシンクライアントを使用して接続します。管理スタッフは、XP以上のPCを所有しています。IEをWebブラウザとして使用することに制限されていますが、ユーザーは独自の解像度を指定できます。
  • その他の場所は、MPLS接続を介してネットワークに接続します

それに基づいて、あなたは何を選択しますか、そしてなぜですか?


私はすべての票が大好きですが、これについてのいくつかの意見を本当に聞きたいです:)
レイチェル

3
最初は100画面を必要とする何をしていますか?
スティーブンA.ロウ

この見積もりには、多くの部分的な画面が含まれます。たとえば、メイン画面は、ユーザーのニーズに応じて追加/削除/移動/サイズ変更できる「ピース」の束に分割されます。それぞれには、独自のデータセット、独自の編集ビュー、および実行可能な独自のアクションセットがあります。それぞれが非常に異なるため、これらを単一の画面ではなく個別としてカウントしています。
レイチェル

.NET MVC 3、JQuery、およびHTML5を使用する
Oliver Picton

1
こんにちは@kmote、最終的にWPFを使用することになり、決定に非常に満足しました。ユーザーインターフェイスを構築する際の柔軟性が大幅に向上し、Webベースのソリューションに比べて構築が非常に高速であることがわかりました。悲しいことに、プロジェクトは他の優先事項のために1年後にキャンセルされましたが、再び同じ選択を提示された場合、同じ決定を下します。
レイチェル14

回答:


17

確かに、ユーザーとのやり取りが多く、潜在的にハードウェアとやり取りするWPFアプリのように聞こえます。アプリをClick-Once経由で配信できるため、展開はほとんど問題になりません。WPFアプリはWCFサービスにアクセスし、データをバイナリとして配信できるため、パフォーマンスが優れています。私はWPFを読み始め、できるだけ早くWPFに慣れるでしょう。


1はまた、すべてのそれらの画面で、おそらくあなたのアプリ(コードとGUIの両方)に可能な限り再利用などのビルドをお勧めします
ジョンOnstott

+1「ソフトフォンとスキャナーの統合」が必要だと思いますが、唯一の方法はWPFでしょう。Silverlightの使いそれともその可能
Jiew孟

15

ルナティックフリンジの答え:両方。サービスレイヤーを正しく取得すると、すべてを実行するシッククライアント(WPF)と、最も一般的なことを行うクイックWebクライアント(ASP.NET)を簡単に作成できます。将来的にはモバイルクライアントなどにドアを開けたままにします。


これが私たちがやろうとしていることです...ほとんどの用途のためのWPFクライアントアプリケーションは、レポートまたは制限付きアクセス用の軽量Webバージョンです。
レイチェル

2
これに+1して、快適な.NET言語でプレゼンテーション以外のガットを作成し、プレゼンテーションタスクごとに最適なツールを使用します(つまり、WebアプリケーションはこのアプリケーションへのASP.NETインターフェイスを使用し、デスクトップはWPF / Winforms /を使用します)等)。
ここで

最初は、特にアプリのより多くの部分をより早く取得することを意味する場合、ユーザーはASP.NETを「十分に良い」と感じるかもしれません。
ジェフ

8

WPFを学んでいるプログラマーが1人だけで、チームにWPFへのジャンプを考えている場合は、代わりにSilverlightを使用してみませんか?WPFの多くの利点を得ることができますが、プロジェクトをWebアプリとして残す機能は維持されます。大規模なモジュール化プロジェクトを検討しているため、PRIVMをWPFまたはSilverlightで使用してMVVMを単純化することは理にかなっています。

私のチームは最近、asp.netよりもSilverlightを使用することを選択しました。それは私たちにとって素晴らしい選択でした。当初、シルバーライトを知っている開発者は一人しかいませんでした。それから私たちは皆、ほとんど役に立たなかったが、少なくとも私たちの足を濡らした1週間のトレーニングクラスを取りました。最終的に、UIフレームワークの大部分の作成を支援するために、2人の請負業者を雇わなければなりませんでした。私たちのチームの大部分は、まだシルバーライトのスキルに自信がありません。私自身、silverlightの知識を持つ最初のチームメンバー、および2人の請負業者が、SL開発の大部分を担当しています。その後、2人の専用バックエンドメンバーがいます。Silverlightに移行するという決定を下してから、実際に具体的なものが何でも揃うようになったのは約2か月かかりました。しかしながら、これで、Webブラウザー内で実行され、ローカルのマシンにはインストールされないクライアント側アプリケーションに非常に近い素晴らしい製品ができました。開発は合計で1年未満であり、リリースの準備が整っているか、最初のリリース候補です。

考慮すべき事項:

  • WPFまたはsilverlightのどちらを選択した場合でも、開発者が学ぶ必要があるかなりの量があります。

  • 必要に応じて、Silverlightをブラウザーで実行できます。これを行うと、新しいバージョンをロールアウトした場合にインストール済みのブラウザー外SLプログラムが自動的に更新されるようにセットアップするのが非常に簡単です。

  • Silverlightには、WPFが持つすべてのコントロールが含まれているわけではありません。

私の最後の注意点は、可能な限り高速にコードを変更したい場合は、ASP.NETを使用する必要があることです。私のASPの主な欠点は、チームを規律しない限り、ASP.NETプロジェクトが散らかって乱雑になるのは簡単だということです。テクノロジーに慣れるための初期オーバーヘッドに対処できると思われる場合は、SilverlightまたはWPFを使用すると、多くの素晴らしい可能性が得られます。


私たちは非常によく似た状況にあり、あなたの話を聞くのは面白いと思いました、ありがとう。Silverlightを検討しますが、これまではWPFのみを使用していました。WPFを使用する場合、Silverlightのレポートセクションを実行する予定だったので、最終的にはそれを学習することを計画していました。
レイチェル

私は、SilverlightでASP.NETアプリケーションを変換(読み取り書き換え)している最中です-基本的には、ASP.NETが私たちが望むように拡張できないからです。
ChrisF

1
ちなみに、SilverlightはMSの主要製品にはならないことを忘れないでください。場合によっては、人々はそれが廃止される可能性があると言っています。この情報をあなたの可能性のある短所のリストに追加してください。
ペイジワトソン

1
この種のアプリでは、SilverlightよりもWPFを強く検討します。WPFは、XBAP(xamlブラウザーアプリケーション)として簡単に展開できます。通常は、構成ファイルのコードをいくつか変更するだけです。WPFには、Silverlightのすべての機能が搭載されており、さらにWPFのサポートも強化されています。1つの欠点は、Silverlightをより多くのOS(Moonlightプロジェクトを使用するLinuxでも)に展開できる可能性がある一方で、WPFはクライアントで.Netを必要とするため、厳密にWindowsであるということです。
モーガンハーロッカー

2
Silverlightが廃止されるかどうかはわかりませんが、関連するものはMashableの記事Microsoft Silverlights From Silverlight to HTML5です。その可能性を超えるデスクトップまたは独自のベースのプラグイン可能な場合ならば個人的に、私は真剣に純粋なWebアプリケーションを検討する
Jiew孟

7

この部分は非常に重要です:

一般ユーザーは、ターミナルサービスを備えたWindows 2003サーバーを使用しています。RDP接続を介してWYSEシンクライアントを使用して接続します。管理スタッフは、XP以上のPCを所有しています。IEをWebブラウザとして使用することに制限されていますが、ユーザーは独自の解像度を指定できます。

WPFは、リモートデスクトップ/シンクライアント接続では優れていません。アニメーションは滑らかではなく、複雑な画像(グラデーションでも)は、クロールに対するUIの応答を遅くします。典型的なレトロXPマシンの管理スタッフも、複雑なWPFアプリケーションでパフォーマンスの問題を抱えている可能性が高くなります(RAMの量が少なく、GPUが悪いため)。

リッチグラフィックスのためにWPFルートを利用する場合、ターゲットマシンが10年前のものであることがわかったら、最後のパフォーマンスハッキングに備えてください。WPFのパフォーマンスが3.5から劇的に向上したため、静的な画面にこだわり、.NET 4.0を使用します。


おかげで...これは実際に私にとって大きな懸念事項の1つですが、これまでのところ、ユーザーがRDP接続を使用しており、テストが正常に実行されている場合、グラフィックを縮小できるようです。
レイチェル

2

技術的には、WPF / WCFの組み合わせが優れたソリューションであると考えています。

ただし、既存のWPFプログラマーがこのプロジェクトの経験を本当に持っているとは確信していません。WPFは、思考プロセスのプログラミングにおけるWinformプログラミングからのかなりの転換です。したがって、このルートを実現するためにチームで十分なスキルを実際に持っているかどうかについて、長く考える必要があります。


1
+1「数か月間学習する」とは何でもいい-急な学習曲線に備えてください。
カークブロードハースト

1

面白い。これは、私たちの会社で始めたばかりのアプリ(携帯電話とスキャナーの統合、その他すべて)に驚くほど馴染みがあるように思えます。

必要に応じてWPFアプリを後で作成できるように、SOAに重点を置いたSilverlightを選択しました。

初期リリース後に追加される追加コンポーネントのスペース(これらの多くは...おそらく最初のアプリケーションよりもここで動作します)

サービスレイヤーでMEFを使用し、拡張ポイント(拡張性または他のシステムとの統合を計画する特定のポイントを記述するプラグインインターフェイス)を構築しています

キーボードナビゲーション

問題ない。

パフォーマンスは必須です

どんなパフォーマンス?知覚されたパフォーマンス(スナッピーネス)または数値処理のパフォーマンス?後者は、web / silverlightアプリの問題である可能性があります。前者については、私たちのアプリはあなたのような多くのレコードを調べますが、ユーザーが現在のレコードで作業している間にそれらを予測し、レコードをプリフェッチすることができます。アプリのそのセクションの「読み込み」時間はゼロです。

初期バージョンへの生産速度

スキルセットに依存します。しかし現実的には、誰もが常にできるだけ早く市場に参入したいので、それは議論の余地がありません。

低いメンテナンスオーバーヘッド

生産速度と同様に、これも議論の余地がなく、設計とコーディングの実践に帰着するでしょう。ハードウェアのメンテナンスに関して話す場合は、クラウドアプリを使用することをお勧めします。

今後のサポート

それが何を意味するのか分かりません。

ソフトフォン/スキャナーの統合

Silverlight 4では、ウェブカメラ/マイクへのアクセスが可能になりました(アプリケーション間のビデオ会議とSIP統合を希望しています)。電話サーバーを使用している場合は、自分で作成できます。既存のものは知りませんが、これは役立つかもしれません。

それ以外の場合は、いハッキングを行う必要があります(記事への参照はもうありません、申し訳ありません)か、ファイルシステムとやり取りできるWPFアプリが必要です。SL4はブラウザ外に移動できますが、ファイルシステムの特定の部分にしかアクセスできません。それらのどれも、あなたが一口電話とやり取りするために必要な部品になる可能性は低いでしょう。

つまり、ドキュメントスキャナーですか?そのことはよくわからない。ハンド/バーコードスキャナーを使用していますが、他の入力デバイスと同じように動作し、問題はありません。


1

人々が一日中使用するための高度にレスポンシブなアプリケーションが必要ですか?WPFを使用します。また、WPF over ASP / MVC(IMHO)でGUIコンポーネントを再利用するのも簡単です。

はい、jqueryなどは素晴らしいです、silverlightはクールですが、デスクトップアプリはさらに効率的です

バックエンドの場合、WCFは問題ありません


0

スケーラビリティとセキュリティのため、サービスレイヤーにWCFを使用することをお勧めします。プレゼンテーションレイヤーには、SilverlightまたはASP.NETのいずれかを使用できます。SilverlightはFlashに似ていますが、最初は理解するのが難しく、ほとんどの場合、データを操作するときに高い学習曲線を持ちます。ASP.NETは使いやすいですが、それを効率的に使用するには多くの調整とJavaScriptが必要です。


1
計画では、UIレイヤーの選択に関係なく、WCFサービスレイヤーを使用します。クライアントアプリケーションにWPF / Desktopを使用するかASP / Webを使用するかを決定しようとしています。デスクトップアプリを使用する場合でも、レポートなどのアイテムのサブセットにアクセスするためのWebポータルが存在する可能性が高くなります。
レイチェル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.