web-dev-qa-db-ja.com

初心者のためのC#GUIプログラミング:どこから始めればよいですか?

私はC++/Java開発者で、.NetやGUIについて何も知りません。 2000/XP/Vista/7用のWindowsアプリを開発する必要があります。

私は、C#が最善で最速の方法であるという結論に達したと思います(間違っている場合は修正してください)。何がお勧めですか?どのGUIアプローチを学ぶべきですか? (フォーム?他のもの?)

.Net 2.0モードでコンパイルするのに最適な方法ですか?それは一般向けにダウンロードするアプリケーションになるでしょう。

21
user63898

私の個人的な開発経験では、Windowsフォームは、WindowsにGUIアプリケーションを迅速に展開することと同じくらい簡単です。 WPFはもちろん別のオプションですが、WPFを使用すると、XAMLに慣れるのに時間がかかる可能性があります。 Windowsフォームは、Javaで使用できるGUIオプションの多くのように見えますが、私の意見では、ほとんどのオプションよりもはるかに優れています。

.NETで最速のGUI開発時間を必要とする場合は、Windowsフォームが最適です。

10
Nathan Taylor

デスクトップアプリケーションの場合、基本的に2つのオプションがあります。 WinForms および Windows Presentation Foundation (WPF)。

WinFormsはより伝統的に構築されているため、習得が容易です。したがって、WinFormsの方が簡単なスタートかもしれませんが、.NETのGUI開発で得た知識を実際に使用する予定であれば、最初からWPFに飛び込む方がいいと思います。これははるかに豊富なフレームワークであり、マイクロソフトがデスクトップアプリケーションに力を注いでいるところです。これはSilverlightにも似ています。つまり、WPFを知っていれば、Silverlightにも簡単にアクセスできます。

幸運を!

18
stiank81

はい。 .NET開発に関しては、C#が最適な言語です。 Javaでプログラミングしているので、言語は非常に見慣れているように見えます(ただし、見た目は少しすっきりしており、デリゲートなどの非常に素晴らしい機能がいくつかあり、必要に応じてポインターを使用することもできますが、ほとんどの状況で必要です)。

これは、SWF(システムWindowsフォーム)またはMWF(マネージWindowsフォーム-System.Drawingを使用してマネージコードで記述されたSWFの軽量バージョンです。従来のSWFの基礎となるWinAPIから解放されます)。

C-SharpのGTK +バインディングであるGTK-Sharpもありますが、Windows向けに開発しているため、アプリケーションにサードパーティのGUIフレームワークをインストールするのはおかしいでしょう。

WPFの使用はお勧めしません。基盤となるグラフィックハードウェアを直接呼び出します。つまり、非常に高速ですが、移植性はまったくありません。これは、DirectX準拠のハードウェアレンダリングユニット(グラフィックカード)を備えたx86システム(SPARCなどではない)でのみ動作し、ハードウェアアブストラクション(BSD、Linux、SolarisなどのほとんどのUnicesなど)を備えたシステムでは動作しません。

Novellはまた、ハードウェアへの依存度が強いため、近い将来にWPFを実装する予定はないと述べています(Novellは、Monoが多くのプロセッサプラットフォーム間で移植可能であることを望んでいます)。 WPFを使用しないでください。ソフトウェアはもはや使い捨て製品ではなく、オペレーティングシステムに関して言えば、私たちはスピンの時代にいます。今日実行しているプラ​​ットフォームは、必ずしも明日実行するプラットフォームではありません。 WPFは、MicrosoftとIntelによって開発された独占的で特許による制約のある技術です。これを使用すると、Win32-on-x86の非常に優れたベンダーロックインに身を置くことができます。これは、遅かれ早かれ、アプリケーションを完全に書き直すことができることを意味します。今日の移植性が不要な場合でも、最初からポータブルソフトウェアを作成するだけです。経験から言っていますが、明日は携帯性が必要になります。絶対に!

8
no.human.being

Winformsを最初に学習してから、WPFを移動することをお勧めします。 Winformsの方が簡単に習得でき、すばやく機能します。しかし将来はWPFなので、私はそれを暗闇の中に置いておきません。 GUI開発作業のための良い本とリンクをいくつか投稿しました。

  • 日常のモノのデザイン インターフェースのデザインについての本当に良い本。これはソフトウェア固有ではありませんが、GUI設計者には必読です。
  • コーディングホラー 。彼は book list で多くの開発書を推奨していますが、これらは特にインターフェースに関連しています:

私に考えさせないでください
Face 3.0について
受刑者は亡命を実行しています
GUI Bloopers

Webリンク

3
SwDevMan81

すべてのWinForms支持者に同意しません。それは簡単ではありません。 GUIプログラミングの伝統的な経験がある人にとっては簡単かもしれませんが、このポスターにはそれがありません

WPFのデザインストーリーは優れており、データバインディングはWinFormsよりはるかに優れています。少なくともWinFormsと同じ速さでWPFを起動して実行でき、WinFormsの制限にぶつかることなく、さらに先へ進むことができます。これとVS 2010のデザイン時のデータバインディングを組み合わせると、GUI開発を始める人はWinformsを完全にバイパスする必要があると私は言います。

3
codekaizen

Windows FormsまたはWindows Presentation Foundationを使用してGUIを開発できます。ただし、Windowsフォームの方が使い慣れていると感じるかもしれません。 GoogleでWindowsフォームチュートリアルを検索すると、使い始めるための多くのオプションが表示されます。

.NET 2.0を使用する必要がある場合は、Winフォームに制限されます。 WPFには.NET 3.5が必要です。

Microsoftの無料の Visual Studio Express Edition をダウンロードして、開発に使用することをお勧めします。優れたドラッグアンドドロップGUI設計ツールが含まれています。

3
Adam Crossland

確かにC#。基幹業務アプリ/クラシックGUIにはWinformsを使用します。

petzoldの「c#によるプログラミングウィンドウ」を読む

または、ビジュアルスタジオに飛び込んでください。 VSでGUIを作成するのは本当に簡単です-あなたはそれを好きになるでしょう

あなたはJavaからc#への言語遷移がかなり単純です(GUIビットではありません)

1
pm100

C#WinFormsは、実用的なGUIを迅速に動作させるという点で最速になります。アニメーションや3Dなどで複雑なGUIを作成することを考えている場合は、WPFの方が適しています。

CodePlex を使用して、WinFormsとWPFの両方について、ベストプラクティスの観点から学ぶための優れた作業プロジェクトを見つけることができます。

また、WPFとWinFormsの両方に関する優れた書籍については、 こちら を参照してください。

1
Amirshk