VisualStudio2010(C#)の学習方法

このQ&Aのポイント
  • VisualStudio2010(C#)の学習方法について知りたいです。
  • GUIアプリケーションの開発にはC#そのものの知識だけではなくコンポーネントに関する知識も要求されます。
  • MSDNの学習資料は分かりにくく、英語力が不足しているため、手探りで学習しています。
回答を見る
  • ベストアンサー

VisualStudio2010(C#)の学習方法

開いていただきありがとうございます。 自分はこれまで趣味でプログラミングを学習してきた人間ですが、 特に必要に迫られたことがなかったのでGUIアプリケーションではなくCUIアプリケーションを中心に開発してきました。 ですがそろそろGUIアプリケーションにも手を出してみたいとの思いもありVisualStudioを導入したのですが、 率直に言うと躓いている状態であり、力をお貸しいただけないだろうかと質問させていただいた次第です。 現在アプリケーション開発にはC#を用いているのですが、 GUIアプリケーションの開発にはC#そのものの知識だけではなくコンポーネントに関する知識なども要求され、これが躓きの主原因となっています。 例えばラベルであったりボタンであったりは、使いこなすことができれば大変便利なものではありますが、 それらの学習資料であるMSDNが読んでいて分かりにくいというか……日本語なのにさっぱり日本語に見えないことが多々あります。 原文を読めば納得できる場合もあるのですが、生憎と英語力はそれほどではないため、多大な期待を寄せることはできません。 したがいまして手探りで理解できる程度の機能しか用いることができず、全体的に単純なものに落ち着きがちです。 最初は市販の「VisualC#によるアプリケーション開発」のような本を読めばいいかと楽観していましたが、 探し方が悪いのか、これらの本はほとんどがC#の平易な説明に終始しており、自分の欲しい情報は数点あればラッキーといった具合です。 WPFを学べば解決するかとも思いましたが、残念ながら和書は点数が少ないようで程度のあったものを探すことができませんでした。 そのたびそのたびに検索をすることで、なんとかそれらしい物を仕上げてはいますが、 いかんせん体系的に学習していないために知識が散漫としており、特殊例には対処できず、なんともいえない気持ち悪さが残ります。 やはり最終的にはMSDNに挑戦しなければいけないのだなあと思ってはおりますが、そう簡単にはいかないもので、 前段階としてある程度の内容をそれなりに突っ込んで学習することができればなあ……と思うかぎりです。 書籍でもサイトでも構いませんが、「C#の学習」ではなく「VisualStudioの学習」を中心としたもの、 将来的にMSDNに挑むにあたっての橋渡しとなるようなものをご存じでしたら、どうぞご教示いただければと存じます。 曖昧な質問で申し訳ありませんが、どうぞご助力いただければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

一応,「わかっているつもり」ではある身から。 > 特に必要に迫られたことがなかったのでGUIアプリケーションではなくCUIアプリケーションを中心に開発してきました。 > ですがそろそろGUIアプリケーションにも手を出してみたいとの思いもありVisualStudioを導入したのですが、 > 率直に言うと躓いている状態であり、力をお貸しいただけないだろうかと質問させていただいた次第です。 大抵のCUIプログラムはプログラムが能動的に動きますが, GUIプログラムは受け身になるので,そこでつまずいている,ということはないですか。 CUI中心でやってきたプログラマがGUIのプログラムを行う上で昔からある話なのですが……。 なお,この考え方の違いは.NETに限らず,他のプラットフォームでも発生する話です。 > 現在アプリケーション開発にはC#を用いているのですが、 > GUIアプリケーションの開発にはC#そのものの知識だけではなくコンポーネントに関する知識なども要求され、これが躓きの主原因となっています。 > 例えばラベルであったりボタンであったりは、使いこなすことができれば大変便利なものではありますが、 .NET Frameworkが提供するクラスライブラリは多機能です。 ただ,それを全部使うかというと,半分以上知らないのが普通です。 また,概念として難しい場合の代替手段がある場合も多いです。 コンポーネントは,「機能」を単位としてまとめたものです。 コントロールもコンポーネントなわけですが, ・Labelは文字を表示するための物 ・Buttonは押すとClickイベントが発生する物 ・TextBoxはユーザーが文字を入力するための物 程度にとらえて,それ以上を最初はやろうとしない方がよいと思います。 また,GUIを作る時にプログラムでお絵描き(線を引いたり円を描いたり)したくなるとは思いますが, 最初のうちはUIを「既存のコントロールのみでできることで構成する」ことにした方が,挫折することは少ないと思います。 # UI設計というのはそれ自体が難しい物です。 > 最初は市販の「VisualC#によるアプリケーション開発」のような本を読めばいいかと楽観していましたが、 > 探し方が悪いのか、これらの本はほとんどがC#の平易な説明に終始しており、自分の欲しい情報は数点あればラッキーといった具合です。 こればっかりは,大手の書店で立ち読みするのが一番です。 Visual Studio自体の操作やC#言語自体の機能といった面を除くと,.NET出た当初(2002年ころ)でも古本で安く手に入るのであれば買ってみてもよいと思います。 > WPFを学べば解決するかとも思いましたが、残念ながら和書は点数が少ないようで程度のあったものを探すことができませんでした。 WPFはWinForms以上に知識が要ります。 簡単に使うだけであればWinForms的な使い方でもなんとかなりますが, ちゃんとやると,ModelとViewの独立,という入門書ではまず載っていないことをやって, それを結びつけるための技術を使う,という手順を踏む必要があります。 # もちろん,それをするだけの理由もちゃんとあるのですが。 > そのたびそのたびに検索をすることで、なんとかそれらしい物を仕上げてはいますが、 > いかんせん体系的に学習していないために知識が散漫としており、特殊例には対処できず、なんともいえない気持ち悪さが残ります。 例えば,How-toを検索した場合,そこで使っているクラスやメソッドやプロパティなどをMSDNでも検索してみてください。 簡単な例だと,ボタンを押した後再入を防ぐのに private void button1_Click (object sender, EventArgs e) { button1.Enabled = false; backgroundWorker1.RunWorkAsync(); } private void backgroundWorker1_DoWork (object sender, DoWorkEventArgs e) { // 長時間処理 } private void backgroundWorker1_RunWorkCompleted (object sender, RunWorkerCompletedEventArgs e) { button1.Enabled = true; } などと書くのですが,最初のbutton1.Enabled = false;について, MSDN: Button プロパティ (System.Windows.Forms) http://msdn.microsoft.com/ja-jp/library/system.windows.forms.button_properties.aspx からEnabledを探してリンクを辿ると, MSDN: Control.Enabled プロパティ (System.Windows.Forms) http://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.enabled.aspx ButtonクラスではなくControlクラスのEnabledプロパティへ行き着きます。 つまり,Controlを継承したクラスはすべてEnabledプロパティを持っていて, Enabled = false; によって,どのコントロールでもユーザーからの入力を禁止できる,ということがわかります。 で,本当に特殊例であるものは,完全に知識量の問題になってきたりします。 .NET FrameworkではなくWin32 APIのレベルの知識を使ったり,COMの知識を使ったりと, 別の世界の知識を持ってきて対応することになりますので……。 > それらの学習資料であるMSDNが読んでいて分かりにくいというか……日本語なのにさっぱり日本語に見えないことが多々あります。 > やはり最終的にはMSDNに挑戦しなければいけないのだなあと思ってはおりますが、そう簡単にはいかないもので、 > 前段階としてある程度の内容をそれなりに突っ込んで学習することができればなあ……と思うかぎりです。 MSDN自体,bingなりgoogleなりからのつまみ食いでいいと思います。 大量に資料はあるものの,やはり初心者向けとは言い難いのも確かなので。

wisize
質問者

お礼

お礼遅くなってしまい申し訳ありません。 わざわざ例示までいただきまして、詳細な説明ありがとうございます。 > GUIプログラムは受け身になるので,そこでつまずいている,ということはないですか。 > CUI中心でやってきたプログラマがGUIのプログラムを行う上で昔からある話なのですが……。 これは質問の仕方が悪かったですね。このあたりに関しては最低限の理解はあります。 経験豊富とはとても言えませんが、他言語でそれなりにステップは踏んできているはずです。 > ただ,それを全部使うかというと,半分以上知らないのが普通です。 > また,概念として難しい場合の代替手段がある場合も多いです。 全部を理解しようとは思っていませんが、学ぶべきか判断がつかないことも多いです。 説明を読んで「これは明らかに自分には不要だ」と理解できる程度に高度なものなら無視もできますが。 > それ以上を最初はやろうとしない方がよいと思います。 特にコンポーネントの機能以上のものを求めようとはしていないと思います。 知識不足なので適切な例示ではないかもしれませんが、たとえば  エクスプローラもどきを作ろうとしたので、ツリーのコンポーネントが適切かと思ったが、  それをどのように活用すれば適切に機能してくれるのかがどうも理解できない。  ラベルなどを活用することで「ツリーもどき」を作る手段が別にあるかもしれないが、  明らかに適切と思われるコンポーネントがあるのに、それを避けて通る気になれない。 みたいな具合ですかね。実例ではありませんが、こんな感じの躓きが多いような感じです。 > 最初のうちはUIを「既存のコントロールのみでできることで構成する」ことにした方が, そういうのはゲームでも作りたくなるまでは無縁かもしれませんね。 知識として、何をどうすれば文字が書けたりBMPを張れたり……とかは存じていますが。 > こればっかりは,大手の書店で立ち読みするのが一番です。 > Visual Studio自体の操作やC#言語自体の機能といった面を除くと, > .NET出た当初(2002年ころ)でも古本で安く手に入るのであれば買ってみてもよいと思います。 田舎なので、大手の書店に行くコストで評判のいい本が何冊も手に入りますね……。 上京する機会があれば積極的に利用したりもしていますが、欲しい情報はそれだけではないですからね。 > WPFはWinForms以上に知識が要ります。 了解しました。単純に代替手段と考えるわけにはいかなそうですね。 > 例えば,How-toを検索した場合, > そこで使っているクラスやメソッドやプロパティなどをMSDNでも検索してみてください。 出来る限りそのようにはしているのですが、飛躍しすぎることも多いですしね。 簡単にでもいいので、まずは鳥瞰的に学習できれば深みにもはまりにくいと思うのですが、 その鳥瞰的に学習するために必要なものが手に入らないのでにっちもさっちも……。 > で,本当に特殊例であるものは,完全に知識量の問題になってきたりします。 このあたりは素直に諦めることにしています。 > MSDN自体,bingなりgoogleなりからのつまみ食いでいいと思います。 > 大量に資料はあるものの,やはり初心者向けとは言い難いのも確かなので。 よそではどうにも「MSDN読めば書いてない?」で質問が片付けられることが多くてきついです……。 読んでもどうせ分からない!と投げ出してしまうのは学習態度として避けたいとは思いますが、 本気で理解できないことも多く、自分の未熟さを思い知らされます……。

その他の回答 (1)

noname#147912
noname#147912
回答No.1

私もCOBOL専門で、最近というかこの五年くらいVB・C#をやっています。 そもそも最近のプログラム言語は非日常的なオブジェクト指向を元にしていますので、それを完璧に理解していないと、まさにMSDNすら読めないという状態になります。毎年新しいものが出てきて、あっというまに置いて行かれ、いち一般人に完全マスターすることは無理でしょう。 さらにそれが基礎の基礎ですから、特にJAVA・C#あたりは多機能すぎて、そこから派生した様々なものであふれ、まともにテストも行わず、バージョンアップ・アップデート・更新プログラム・パッチ当て、言葉は色々あります。C#でのGUIを含めた開発ははっきり言って無理です。 私もいままで携わってきた仕事で、猿でもできるCOBOLとVBでうまくできているところが多いのですが、CやC#は大概失敗しています。ま、ソースコードが半分になった、すごいでしょうと当事者たちは言いますが、そこまでの技術者を育てるのに、なんぼ金をつぎ込んでるだろうね。 個人的意見として、GUIの扱いはやはり、隠蔽と継承、難しいことは本体からいかに隔離するかですね。私は日付専用のテキストボックス、用途ごとのデータグリッドビュー、簡単なものは自作しますが、難しいものは専門家に任せています。20種類くらい揃えたところで、今のところ困ることもないですし、むしろ数をこなせば自分でも作れるようになってきました。 ようは作ってみることです。

wisize
質問者

お礼

なんでお礼じゃなくて補則してるんでしょう……。 すみません。風邪をひいているということで見逃してください。

wisize
質問者

補足

折角素早い回答しただきましたのに、お礼遅くなって申し訳ありません。 > そもそも最近のプログラム言語は非日常的なオブジェクト指向を元にしていますので、 > それを完璧に理解していないと、まさにMSDNすら読めないという状態になります。 ここらは理解できていると信じたいのですが……、 なんというかMSDNの日本語はそれ以前の問題のような気はしませんか? 自分程度の英語力で「原文を読んだ方が分かりやすい」というのは異常だと思うのです。 > 私もいままで携わってきた仕事で、猿でもできるCOBOLとVBでうまくできているところが多いのですが、 > CやC#は大概失敗しています。ま、ソースコードが半分になった、 > すごいでしょうと当事者たちは言いますが、そこまでの技術者を育てるのに、 > なんぼ金をつぎ込んでるだろうね。 特にVBを利用したことはありませんが、新しい言語を習得するコストなどはあまり気にしませんので、 業務であれば自分もそこらへんのルートを選択するんじゃないかなあと思います。 ただことが趣味なので「C#で書きたい」というのが大前提となってしまうのです……。 > 私は日付専用のテキストボックス、用途ごとのデータグリッドビュー、 > 簡単なものは自作しますが、難しいものは専門家に任せています。 これは「コンポーネントを自作する」という解釈で構いませんか? そこらへんも弄くってみてよく理解できなかった箇所なんですが、 もし分かりやすい資料などご存じでしたら教えていただけるとありがたいです。 > ようは作ってみることです。 頑張ります……。

関連するQ&A

  • C# WPF 初心者向け教本とかサンプルソース

    はじめまして。 VisualStudio2013のC#で業務アプリ開発の仕事をすることになったんですが、昔々、C言語をちょっとやったくらいで、C++も知らず、オブジェクト指向もまるでわかっていません。 買ってきた「ひと目でわかる Visual C# 2013/2012 アプリケーション開発入門」を読んでいるのですが、メニュー画面(トップメニューから業務ごとのメニューへの画面遷移とか)すら作れず、途方に暮れています(今更ながら、泣)。 WPFを前提に書かれた本って少ないですよね? 初心者向けの教本とか、サンプルソースとともに解説されているブログとかあれば教えてください。 よろしくお願いしますm(_;_)m

  • C言語の次のステップは?

    現在、C言語を学習していてコンソールアプリケーションや Web上のCGI等は作れるようになってきました。 次の学習ステップとしてWindowsのアプリケーション作成 か、C++の言語学習にするかを悩んでいます。 C言語でのWindowsアプリケーション開発であれば、SDK(Win32API)に よる開発になると認識しています。この場合であれば特にC++の知識は 不要でしょうか?それともSDKでの開発の場合でもC++の知識は必須に なるのでしょうか? MFCとかを使うのであれば、C++の知識は必須ですよね? あるいはこれからの開発ではオブジェクト指向の知識は必須である ということでC++の学習を経て、Windowsアプリの開発について学習した 方がよろしいでしょうか? 最終的な目標はC/C++にてWindows/Linuxアプリの開発ができるように なりたいと思っています。 当面Windowsアプリを開発するにあたって、C→SDKもしくは C→C++→SDK/MFCのどちらが効率的な学習ステップになるのでしょうか? 皆さんのアドバイスをいただければ幸いです。

  • VisualStudioでのプログラム勉強(初心者)

    数ヶ月前、プログラミングに興味を持ち、いろいろ調べてみてC++言語を習得したいと思いVisualStudio .NETを購入しました。 しかしいろいろといそがしく、特に何もできずに今に至ったのですが、夏休みということもあり、じっくりとプログラミング学習に打ち込めそうです。 書籍は「Cの絵本」「C++の絵本」というものをVisualStudio購入に合わせて買ったので、そこに載っていた本当に基本的なことは理解しているつもりです。 当面の目標はMFCを使ったGUIのプログラムを作ることができるようになることなのですが、どのようなことをしたらよいのか分かりません。 そのようなことが解説されているサイトをご存知の方、教えてください。 もしくは、アドバイスをお願いします。 プログラミングの経験はなく、HTMLくらいです。

  • ASP.NETを学習する方法は?

    WEBアプリケーションに興味を持ち、ASP.NETで開発ができるように学習しようと考えています。しかし、何から手をつけてよいのか迷っています。 そこで、開発環境が使えるように、visual web developer 2008 express edition 入門という本を買って一通りやってみたのですが、詳しい内容ではなかったためか、あまり身になりませんでした。 もしかして、先にVBプログラミングを学習すべきだったでしょうか?aspをやりながらVBを覚えるのは邪道でしょうか? accessVBAはある程度使えるのですが、VBは未経験です。 今のところ別のasp.netの本を買ってみようと思っていますが、何かお勧めはありますでしょうか?よろしくお願いします。

  • Visual C# の良い参考書を教えてください

    今度、C#でアプリケーションを開発することになったのですが、 開発環境にVisualStudioを使用しなければなりません。 試しに、VisualStudio 2008 Express Editionをインストールして少し触ってみたのですが、 使い方がよく分からず、参考書を買う必要がありそうだと感じました。 そこで、Visual C#のお勧めの参考書を紹介していただけたらと思います。 よろしくお願いします。

  • C#の学習(アプリ開発まで)で、お勧めの本は?

    当方、Visual Studio2008Proでアプリ開発の学習中、だが、なかなか「これだ」と言える書籍にめぐり合わない。どなたか楽しみながら学べるC#の学習にぴったりの本があったら、教えてください。

  • C#について

    C#で、データベースの勉強をしていますが、 市販の一般書籍では、サーバーエクスプローラ等、GUIを使用して簡単に、データベースアプリケーションが作成できるなどの記述が多くしてあります。 VBやC#のデータベースの記述に関するところは、ほとんどの書籍(9割以上)が、GUIで、DB接続、ドラッグ&ドロップで、データセット作成とか、説明されていますが、少なくとも、私の経験上、VB.NETの開発で、そんな現場に出会ったことがありません。DB接続も、データセット取得も、すべてコードで記述しました。 なんで、そんな一般書籍は、使いもしないことばかり触れているのだろうと毎日思うのですが、C#のデータベース(ADO.NET)で、すべてプログラムコードで、記述している一般書籍はありませんでしょうか? できれば、VisualStudio2005か、2008対応でお願いします。

  • Tivoliを学習したい!

    仕事でTivoliを使わなくてはならないんですが、なにがなんだかさっぱり分かりません。まあそれ以前に自分がITに対する知識が不足しているからでしょうが、 ネットワークのトラブル対応みたいな仕事です。自分はやっとUNIXの簡単な操作ができるくらいです。 以前ここで同じような質問をさせて頂いたのですが「まずはサーバから」の答えに対し、簡単なサーバの本を買って学習していました。 メールサーバやらアプリケーションサーバ、ラディウスがどうこうと、一向にチボリに近づいた感じがしないんですが、もし良い勉強法があれば教えて下さい。 amazonの本でTivoliって検索しても、和書では一冊もヒットしなかった時はちょっと絶望してしまいました。かといって自宅で気軽に練習できるモンでもないですし。全体像というか、なんとなくでいいんで理解したいです。

  • UNIX CプログラマがC++を学ぶには

    僕は今までUNIX上でC言語を使用し開発をしてきました。 しかし、次の仕事からマイクロソフトのVisualStudioのC++で開発するようになったのですが、 全くクラスの考えかたとか、C++の関数がわかりません。 自分のような今までUNIX Cを使用していた人間が、C++を学ぶに最適な 本があったらご紹介ください。

  • C#でGUI・CUIの判断する仕方を教えて下さい

    アプリケーションを開発しています 開発環境 Microsoft Visual Studio 2005 net framework 2.0 C# GUI(Windows アプリケーション)とCUI(コンソールアプリケーション)の アプリケーション開発しています 単体のアプリケーションは動作しています 2つのアプリケーションを1つの(EXE)で実行できるアプリケーションを 開発したいです 起動仕方は EXE にパラメータを付けたらCUIで起動して パラメータなしならばGUIで起動したいです プログラムで起動の仕方を判断できるのですか? できるなら参考資料(サンプルコート・ホームページなど)を教えて下さい 宜しくお願いします。

専門家に質問してみよう