プログラミングをはじめる前に学ぶ講座

【Windowsプログラミング入門のための入門 .NET C# / VB】
テキストに従って 「プログラミング作業を真似て学ぶ」新しい学習スタイル講座 です。
短期間でプログラミング作業を学ぶことで、プログラミング学習を効率よく行えるようになります。
プログラミング言語は、C#とVBの同時習得もOK! メールサポート有り
http://www.knowledge.ne.jp/lec1755.html

あなたの知識でネットに講座が開けます!

あなたの知識でネットに講座が開けます!
あなたのサイト情報を整理するだけで簡単に開設できます

2010年7月1日木曜日

十人十色-プログラムの作り方、考え方とその環境

端から見ると、プログラムは誰が作っても同じだと思われていますが、実際、ソースコードや内部の構造はバラバラですよね。「十人十色」がそのまま当てはまっている世界です。


実は、企業の場合でもそれが当てはまっていて、もしトラブル(問題)が発生すると”できる人”が”できない人”をカバーするのです。

でも、カバーするのはプログラムの方であって、個人にはなかなか目がいかないのです。

運良く教えてもらえる場合もあります。でもトラブルのまっただ中の場合、”できる人”もイライラしていて丁寧には教えてはくれません。

なぜなら、この世界では、「実践で覚える、身に付けていく」が鉄則と思っている人が多いのです。

だから、「十人十色」になるのは自然なんですね。

  • 「教えてくれないのが悪い」
  • 「教え方が悪い」って

批判したくなることはありませんか?

「もの作り」という認識を持たないソフトウェア企業にとっては、個人の資質に依存する傾向があります。


  • 「自分で努力して欲しい」
  • 「周囲に迷惑をかけないレベルに達して欲しい」
  • 「(かってに)できるエンジニアになって欲しい」
  • 「そのために必要な本は買ってあげるよ」


と思っていて、期待通りにならない人の評価は

「プログラマーとしての資質がないね」です。

プログラム作りのための教育もなければノウハウの伝承もない状態で、「資質(≒性格)」としてひとくくりにしてしまうのが大きな特徴です。

逆に言えば


  • 「自由にさせてくれる」
  • 「任せてくれる」


といいう環境は、自分次第で「どうにでもなる」ということです。



個人の場合はどうでしょう。


ほとんどの人は独学でしょうから、自分の中でプログラミングを楽しむといった方が多いようです。

その中でも、プログラムを作って商品化を狙っている方、作品として公開したい方もいます。

プログラムが書けるようになると、アプリケーションを作ってみたくなりますよね。また、アプリケーションが作りたくて、プログラミングを学習する方ももちろんおられます。

残念ながら個人の場合自分だけの世界になってしまい、どうしても経験をはじめとした、知識、思考、ノウハウが不足してしまいがちです。

企業の場合、ノウハウ継承がないとはいっても、同僚や先輩の指導あるいはOJTや勉強会などもあるでしょうし、個人では味わえない体験をすることができます。

でも安心(?)してください。

「独力でアプリケーションを作る」という観点から言えば、個人も企業もそうたいした違いはありません。


プログラミング向上ポイント

「プログラムを書く」から「プログラムを作る」へ

プログラムを作るためには何を学べばいいのか!?
を考えて学習するようにすれば効率も効果もUPします。



あなたのプログラミングライフを応援しています。直接の支援もしています。

2010年1月9日土曜日

アセンブリ(assembly)とは

アセンブリ
.NET Framework アプリケーションの主要なビルド ブロックです。
アセンブリは機能の集合体であり、1 つ以上のファイルで構成される単一の実装ユニットとしてビルド、バージョン管理、および配置されます。各アセンブリにはアセンブリ マニフェストが含まれます。

★Visual Studioのプロジェクト単位に生成される実行モジュール(EXEファイル)やライブラリ(DLLファイル)のことをアセンブリと呼びます。

タイプ ライブラリとアセンブリ マニフェスト
タイプ ライブラリは、メンバの名前やデータ型など、COM オブジェクトの特性を記述します。
アセンブリ マニフェストは、.NET Framework アプリケーションについて同様の機能を果たします。

アセンブリ マニフェストには次の情報が含まれます。
アセンブリの ID、バージョン、カルチャ、およびデジタル署名

マーシャリング(marshaling)とは

.NET Frameworkとネイティブ環境間で、実行コード呼び出しやデータ交換ができるように調停する処理のこと。

.NET Framework用に開発されたコードを「マネージ コード」と呼び、
.NET Frameworkアプリケーションによって使用されるデータを「マネージ データ」と呼ぶ。

C/C++などのネイティブ コードを「アンマネージドコード(unmanaged code)」と呼ぶ。

DomainUpDownコントロールに列挙体(enum)項目をセット

■Itemの追加

 this.domainUpDown1.Items.Add(ImageSizes.最大サイズ);

■選択状態の判定

SelectedItem と列挙体の項目を数値にキャスト
 if ((int)domainUpDown1.SelectedItem == (int)ImageSizes.最大サイズ)
  <該当処理>

プログラムの見通しがよくなると思う

列挙体(enum)の日本語化

列挙体(enum)に日本語名が使える!

C#
 private enum ImageSizes
 {
  標準サイズ,
  中間サイズ,
  最大サイズ,
 };

VB
 Private Enum ImageSizes
  標準サイズ,
  中間サイズ,
  最大サイズ,
 End Enum

プロパティやメソッドに日本語を使うことに抵抗を感じる人でも、これは使えると思う。

2010年1月7日木曜日

CA1012: 抽象型にはコンストラクタを含めないでください

http://msdn.microsoft.com/ja-jp/library/ms182126.aspx

public abstract class Class1
{
    public Class1() {}
}

これをVS2008でコンパイルしてもエラーにはならない。

「抽象クラスの目的は、複数の派生クラスで共有できる基本クラスの共通の定義を提供すること」と書かれている。

.NET Frameworkクラスライブラリでは、抽象クラスのコンストラクタは、protectedで宣言されている。

したがって、次のようなコードでルールかした方がいい。

public abstract class Class1

{
    protected Class1() {}
}

もちろん、コンストラクタの内部は空にすること。

2010年1月6日水曜日

アクセサビリティ(アクセス修飾子)

クラスは、publicかInternalのみです。つまり、「このクラスは、アセンブリ内のみか全面的公開か」という範囲宣言であり、他のアクセサで宣言するとコンパイルエラーになります。なお、入れ子のクラスはすべて宣言が可能です。

他のアクセサは、クラス内のメンバー(フィールド、プロパティ、メソッド)に適用できます。

[C#]

publicとprivateは、全面的公開か全面的非公開
protectedは、自クラスと派生クラスに対してのみ公開
internalは、アセンブリ内のみ公開(他のアセンブリは非公開)
protected internalは、アセンブリ内の公開とアセンブリ外の派生クラスに公開




 
 
 

 
 
 
 
 
[VB]

PublicとPrivateは、全面的公開か全面的非公開
Protectedは、自クラスと派生クラスに対してのみ公開
Friendは、アセンブリ内のみ公開(他のアセンブリは非公開)
Protected Friend は、アセンブリ内の公開とアセンブリ外の派生クラスに公開

 

 
 









 

Visual Studio(IDE)を使いこなす



C#やVBでWindowsプログラミングを行う場合、統合開発環境であるVisual Studioを利用するのが一般的です。

  • プロジェクトの作成
  • 画面デザインとプロパティ設定
  • イベントハンドラの生成
  • クラスの生成
  • ヘルプとのリンク(親和性)
  • コンパイルとエラー対応
  • デバッグ
と、プログラムの設計以外の作業の多くをVisual Studioが行っています。

特に、始めての人がいきなりWindowsアプリケーションをベースにしてプログラミングの学習をするのは、非常に危険です。

私が提唱している方法は
  • Visual Studioを使いこなすためのトレーニング
  • そのための、Windowsアプリケーション教材
  • 設計以外の全工程を作業として体験する
これを何度か繰り返すことにより、プログラミング作業に馴染むことができるため、以降の文法やプログラミング学習(習得)がやりやすくなります。

一番の問題は、焦って自分のプログラムを書こうとすることです。

手続き型言語(C言語など)の場合はそれでもいいのですが、オブジェクト指向言語の場合、プログラムを書くというスタンスだと失敗します。直ぐに訳が分からなくなり、混乱することになります。

これを避けるためには、

●この講座は有料ですが、サポートが付いていますので是非試してください。1章は無料!

●このメルマガは無料です

を参考にしてください。


2010年1月5日火曜日

オートコンプリート 【auto-complete】を利用する

オートコンプリート 【auto-complete】機能が、TextBoxコントロールとComboBoxコントロールに備わっています。

●TextBoxコントロール

textBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
textBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.FileSystem;





●ComboBoxコントロール
comboBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend
comboBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.HistoryList






「オートコンプリートとは、キーボードからの入力を補助する機能の一つで、過去の入力履歴を参照して次の入力内容を予想し、あらかじめ表示すること。表計算ソフトなどでよく採用されており、最近ではWebブラウザのアドレス入力や、ソフトウェア開発環境のエディタなどにも搭載されている。」

手入力をできるだけ省力化すると同時に、ナビゲーション機能としても役に立ちます。


TabControl タブの高さを変更する

ItemSize(Size型)プロパティで、高さを指定します。
IDEのプロパティウィンドウに、タブサイズのプロパティが表示されないため、直接Codeで指定する必要があります。