SlideShare une entreprise Scribd logo
1  sur  17
C# 入門
NT-Commitee2
小野修司
http://www.corebase.co.jp/shu/
C# とは
   Microsoft が 2000 年 6 月に発表した開発言語
   C/C++ をベースに開発されている
       構文や制御構造はほぼ同じ
   ECMA(Europian Computer Marufactures Association) に
    より標準化の作業中
       http://www.ecma.ch/
       現時点の Working Documents
        • http://msdn.microsoft.com/net/ecma
C# の特徴
 オブジェクト指向開発言語
 実行環境がメモリ管理を行う
       ガベージ・コレクション
   ポインタを扱える
       Unsafe キーワード
   ネットワーク、 XML への対応を標準に含
    む
オブジェクト指向開発言語
   構造化プログラミングの進化した形
       進化のキーワードは開発効率、再利用性、メンテナン
        ス性(わかりやすさ)
       機能とデータをまとめてオブジェクトとすることで、
        オブジェクト同士の関係を疎にすることが再利用性、
        メンテナンス性をたかめる
   わかりやすさをもとめた進化はつづいている
       UML (記法の統一)
       パターン(類似する構造に対する命名)
       エクストリーム・プログラミング(チームコミュニケ
        ーションの促進)
C# を構成するもの
   Class Library
       システム I/O 、文字列操作、ネットワーク、 XML
   C# コンパイラ
       CIL ( Common Intermediate Language) に変換
       タイプチェック
   Virtual Execution System
       実行時にクラスをロード(レイトバインディング)
       機械語に変換して実行( JIT コンパイラ)
       メモリ管理
Microsoft 社以外の C# の実装
   FreeBSD への対応
       Microsoft とコーレルが提供
   Mono プロジェクト( http://www.go-
    mono.net)
       オープンソースプロジェクト
       ECMA の定義にもとづいて C #を実装
       Windows ( +Cygwin) 、 Linux 、 Unix に対応
       クラスライブラリを充実 (.NET Framework に準じ
        る)し、ウィンドウプログラミングやデータベース
        接続に対応予定
Microsoft 社の C# の実装
   .NET Framework として提供される
     Base Class Library
     MSIL

     CLR ( Common Language Runtime )

     開発言語として、 C# だけでな
      く、 VB.NET 、 Managed C+
      + 、 Jscript.net に対応
     COM との連携が容易
.NET Framework
                                       そ
                 Managed
    C#      VB              JS         の
                  C++                  他

            .NET Framework
    Base クラスライブラリ
         ASP.NET           Window
     ADO.NET ( Data/XML )
                 System
                                 JIT
                   CLR
                            メモリ管理
Microsoft 社が提供する
BaseClass Library
   ASP.NET
       WebForm
        • 従来の Web アプリケーション
        • インタフェースとコードの物理的(ファイル)な分離が可
          能に
       Web サービス
        • XML をベースに、インターネット上に分散システムを構築
        • Hailstorm が Web サービスの実例として、また分散シス
          テムの開発のプラットフォームとして提供されることにな
          る
       ASP.NET ではファイルのコンパイル作業は不要
        • 適切なフォルダに配置し、 URL によりアクセスされた時点
          で自動的にコンパイルが行われる
BaseClassLibrary - 2
   Windows.Forms
       デスクトップ ( ウィンドウ ) アプリケーション
        • 一つのソースファイルでウィンドウアプリケーションの構
          築が可能に
        • Web サービスのクライアントとしてのウィンドウアプリケ
          ーションの構築も簡単
   ADO.NET
       DB 連携(インメモリデータベース)
       XML 対応
   SYSTEM
       システム I/O
テスト環境の構築
   .NET Framework SDK Beta2 をインストール
       http://www.microsoft.com/
        japan/developer/net/dotnetsdkdown.asp
       W2k 、 NT4.0 、 98 、 Me 、 XP に対応
       メモリはできるだけ多いほうがよい
       ASP.NET は W2k 以降のみサポートとなる
       再配布用モジュールのインストールにより実行環境
        だけを構築することも可
   ASP.NET をサポートする Web サイトでテスト
    する
       http://www.brinkster.com/  等
Tutorial からはじめよう
 Framework SDK のインストール後、
  MSDE と Tutorial のインストールを行う
 Tutorial は全文英語であるが、サンプル
  のソースとコンパイル済みの実行可能フ
  ァイルが提供されているので、動作を確
  認しながら C# に対する理解を深めるこ
  とができる
開発ツール
   VisualStudio.NET
     ドラッグ&ドロップ、プロパティウィンドウ
      を利用した効率的なユーザインタフェース開
      発
     分散環境に対応したデバッグ

   SharpDevelop
       フリーウェアの開発ツール
        • http://www.icsharpcode.net/OpenSource/SD/
       Unit テストツールを取り込んでいる
コマンドラインコンパイラ
   csc.exe
       /t:exe       コンソールアプリケーションを作成
       /t:winexe    ウィンドウアプリケーションを作成
       /t:library      dll を作成
       /r:***.dll   指定した dll の内容を参照
   作成した実行ファイルはコピーにより実行可
       レジストリへの登録等の作業は必要ない
       各ファイルが自分自身についての情報をもつ
       バージョン管理も容易になる( dll ヘルの終焉)
#include <stdio.h>

                                                                             void main(void)
                                                                             {




  Java と C#
                                                                               char buffer[1024];
                                                                               int line;
                                                                               line = 0;
                                                                               while(fgets(buffer, 1024, stdin) != NULL){
                                                                                  line++;
                                                                                  printf("%3d; %s", line, buffer);
                                                                               }
                                                                             }



import java.io.*;                   // パッケージ            using System;                                    //namespace

public class jTest {                                    public class csTest {
  public static void main(String[] args) {                public static void Main(string[] args) {
      BufferedReader reader =
  new BufferedReader(new
    InputStreamReader(System.in), 1);                            try {
      try {                                                         string buffer;
         String buffer;                                             int line = 0;
         int line = 0;                                              while ((buffer = Console.ReadLine()) !=
         while ((buffer = reader.readLine()) != null)           null) {
    {                                                                   line++;
            line++;                                                     Console.WriteLine("{0,3} {1}", line,
            System.out.println(line + " " + buffer);            buffer);
         }                                                          }
      } catch (Exception e) {                                    } catch (Exception e) {
         System.out.println(e);                                     Console.WriteLine(e);
      }                                                          }
  }                                                         }
}                                                       }
Demo
C# を学習するために
   MSDN magazine
   書籍
       C# プログラミングリファレンス(リックテレコム
        )
       C# 標準リファレンス(日経 BP )
       プログラミング C# (日経 BP )
       Microsoft .NET テクノロジガイド(日経 BP )
       C# 入門( SOFTBANK )
   Web サイト
       MSDN(http://www.atmarkit.co.jp)
       @ IT(http://www.atmarkit.co.jp)

Contenu connexe

Tendances

Javaセキュアコーディングセミナー東京第3回講義
Javaセキュアコーディングセミナー東京第3回講義Javaセキュアコーディングセミナー東京第3回講義
Javaセキュアコーディングセミナー東京第3回講義JPCERT Coordination Center
 
RuntimeUnitTestToolkit for Unity
RuntimeUnitTestToolkit for UnityRuntimeUnitTestToolkit for Unity
RuntimeUnitTestToolkit for UnityYoshifumi Kawai
 
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由kikairoya
 
TensorFlow XLA 「XLAとは、から、最近の利用事例について」
TensorFlow XLA 「XLAとは、から、最近の利用事例について」TensorFlow XLA 「XLAとは、から、最近の利用事例について」
TensorFlow XLA 「XLAとは、から、最近の利用事例について」Mr. Vengineer
 
.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#信之 岩永
 
Visual C++コード分析を支えるSAL
Visual C++コード分析を支えるSALVisual C++コード分析を支えるSAL
Visual C++コード分析を支えるSALegtra
 
C#勉強会 ~ C#9の新機能 ~
C#勉強会 ~ C#9の新機能 ~C#勉強会 ~ C#9の新機能 ~
C#勉強会 ~ C#9の新機能 ~Fujio Kojima
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1信之 岩永
 
Python で munin plugin を書いてみる
Python で munin plugin を書いてみるPython で munin plugin を書いてみる
Python で munin plugin を書いてみるftnk
 
Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発Ryo Suzuki
 
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~Akira Inoue
 
Effective Modern C++ 読書会 Item 35
Effective Modern C++ 読書会 Item 35Effective Modern C++ 読書会 Item 35
Effective Modern C++ 読書会 Item 35Keisuke Fukuda
 
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~Akira Inoue
 
C++でHello worldを書いてみた
C++でHello worldを書いてみたC++でHello worldを書いてみた
C++でHello worldを書いてみたfirewood
 
Python 3.6 リリースパーティー 発表資料
Python 3.6 リリースパーティー 発表資料Python 3.6 リリースパーティー 発表資料
Python 3.6 リリースパーティー 発表資料Atsuo Ishimoto
 
イマドキC++erのモテカワリソース管理術
イマドキC++erのモテカワリソース管理術イマドキC++erのモテカワリソース管理術
イマドキC++erのモテカワリソース管理術Kohsuke Yuasa
 
181106 02
181106 02181106 02
181106 02openrtm
 
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Boost.勉強会#19東京 Effective Modern C++とC++ Core GuidelinesBoost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Boost.勉強会#19東京 Effective Modern C++とC++ Core GuidelinesShintarou Okada
 

Tendances (20)

Javaセキュアコーディングセミナー東京第3回講義
Javaセキュアコーディングセミナー東京第3回講義Javaセキュアコーディングセミナー東京第3回講義
Javaセキュアコーディングセミナー東京第3回講義
 
RuntimeUnitTestToolkit for Unity
RuntimeUnitTestToolkit for UnityRuntimeUnitTestToolkit for Unity
RuntimeUnitTestToolkit for Unity
 
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
 
TensorFlow XLA 「XLAとは、から、最近の利用事例について」
TensorFlow XLA 「XLAとは、から、最近の利用事例について」TensorFlow XLA 「XLAとは、から、最近の利用事例について」
TensorFlow XLA 「XLAとは、から、最近の利用事例について」
 
.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#
 
Visual C++コード分析を支えるSAL
Visual C++コード分析を支えるSALVisual C++コード分析を支えるSAL
Visual C++コード分析を支えるSAL
 
C#勉強会 ~ C#9の新機能 ~
C#勉強会 ~ C#9の新機能 ~C#勉強会 ~ C#9の新機能 ~
C#勉強会 ~ C#9の新機能 ~
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
 
Python で munin plugin を書いてみる
Python で munin plugin を書いてみるPython で munin plugin を書いてみる
Python で munin plugin を書いてみる
 
Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発
 
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
 
Effective Modern C++ 読書会 Item 35
Effective Modern C++ 読書会 Item 35Effective Modern C++ 読書会 Item 35
Effective Modern C++ 読書会 Item 35
 
Subprocess no susume
Subprocess no susumeSubprocess no susume
Subprocess no susume
 
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
 
C++でHello worldを書いてみた
C++でHello worldを書いてみたC++でHello worldを書いてみた
C++でHello worldを書いてみた
 
Python 3.6 リリースパーティー 発表資料
Python 3.6 リリースパーティー 発表資料Python 3.6 リリースパーティー 発表資料
Python 3.6 リリースパーティー 発表資料
 
Sharing Deep Dive
Sharing Deep DiveSharing Deep Dive
Sharing Deep Dive
 
イマドキC++erのモテカワリソース管理術
イマドキC++erのモテカワリソース管理術イマドキC++erのモテカワリソース管理術
イマドキC++erのモテカワリソース管理術
 
181106 02
181106 02181106 02
181106 02
 
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Boost.勉強会#19東京 Effective Modern C++とC++ Core GuidelinesBoost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
 

En vedette

En vedette (9)

20111203
2011120320111203
20111203
 
20120128
2012012820120128
20120128
 
20120425
2012042520120425
20120425
 
20121215
2012121520121215
20121215
 
20120609
2012060920120609
20120609
 
20120616
2012061620120616
20120616
 
20140322
2014032220140322
20140322
 
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみたADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
 
MySQL 5.7の罠があなたを狙っている
MySQL 5.7の罠があなたを狙っているMySQL 5.7の罠があなたを狙っている
MySQL 5.7の罠があなたを狙っている
 

Similaire à 20010901

Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Akira Inoue
 
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersApache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersSeiya Mizuno
 
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリームC# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム信之 岩永
 
cocos2d-xとネイティブ間の連携
cocos2d-xとネイティブ間の連携cocos2d-xとネイティブ間の連携
cocos2d-xとネイティブ間の連携Tomoaki Shimizu
 
研究生のためのC++ no.2
研究生のためのC++ no.2研究生のためのC++ no.2
研究生のためのC++ no.2Tomohiro Namba
 
Hello ".NET" World
Hello ".NET" WorldHello ".NET" World
Hello ".NET" World将 高野
 
TypeScript と Visual Studio Code
TypeScript と Visual Studio CodeTypeScript と Visual Studio Code
TypeScript と Visual Studio CodeAkira Inoue
 
Windows 8時代のアプリ開発
Windows 8時代のアプリ開発Windows 8時代のアプリ開発
Windows 8時代のアプリ開発信之 岩永
 
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会Yoshihisa Ozaki
 
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。Masayuki Ozawa
 
Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010stomita
 
Dalvikバイトコードリファレンスの読み方 改訂版
Dalvikバイトコードリファレンスの読み方 改訂版Dalvikバイトコードリファレンスの読み方 改訂版
Dalvikバイトコードリファレンスの読み方 改訂版Takuya Matsunaga
 
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE).NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)Tusyoshi Matsuzaki
 
PEZY-SC programming overview
PEZY-SC programming overviewPEZY-SC programming overview
PEZY-SC programming overviewRyo Sakamoto
 

Similaire à 20010901 (20)

Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
 
20050903
2005090320050903
20050903
 
20010127
2001012720010127
20010127
 
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersApache Avro vs Protocol Buffers
Apache Avro vs Protocol Buffers
 
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリームC# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
 
Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7
 
cocos2d-xとネイティブ間の連携
cocos2d-xとネイティブ間の連携cocos2d-xとネイティブ間の連携
cocos2d-xとネイティブ間の連携
 
研究生のためのC++ no.2
研究生のためのC++ no.2研究生のためのC++ no.2
研究生のためのC++ no.2
 
Hello ".NET" World
Hello ".NET" WorldHello ".NET" World
Hello ".NET" World
 
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
 
C#勉強会
C#勉強会C#勉強会
C#勉強会
 
TypeScript と Visual Studio Code
TypeScript と Visual Studio CodeTypeScript と Visual Studio Code
TypeScript と Visual Studio Code
 
Windows 8時代のアプリ開発
Windows 8時代のアプリ開発Windows 8時代のアプリ開発
Windows 8時代のアプリ開発
 
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
 
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
 
Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010
 
Dalvikバイトコードリファレンスの読み方 改訂版
Dalvikバイトコードリファレンスの読み方 改訂版Dalvikバイトコードリファレンスの読み方 改訂版
Dalvikバイトコードリファレンスの読み方 改訂版
 
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE).NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)
 
PEZY-SC programming overview
PEZY-SC programming overviewPEZY-SC programming overview
PEZY-SC programming overview
 
.NET Core 1.0
.NET Core 1.0.NET Core 1.0
.NET Core 1.0
 

Plus de 小野 修司 (20)

20110607
2011060720110607
20110607
 
20100313
2010031320100313
20100313
 
20100224
2010022420100224
20100224
 
20100218 lt
20100218 lt20100218 lt
20100218 lt
 
20100218
2010021820100218
20100218
 
20091207
2009120720091207
20091207
 
20090711
2009071120090711
20090711
 
20090606
2009060620090606
20090606
 
20090418
2009041820090418
20090418
 
20090328
2009032820090328
20090328
 
20090212
2009021220090212
20090212
 
20081003
2008100320081003
20081003
 
20080630
2008063020080630
20080630
 
20080627 2
20080627 220080627 2
20080627 2
 
20080627 1
20080627 120080627 1
20080627 1
 
20080524
2008052420080524
20080524
 
20080213
2008021320080213
20080213
 
20080201
2008020120080201
20080201
 
20071204
2007120420071204
20071204
 
20071030
2007103020071030
20071030
 

20010901

  • 2. C# とは  Microsoft が 2000 年 6 月に発表した開発言語  C/C++ をベースに開発されている  構文や制御構造はほぼ同じ  ECMA(Europian Computer Marufactures Association) に より標準化の作業中  http://www.ecma.ch/  現時点の Working Documents • http://msdn.microsoft.com/net/ecma
  • 3. C# の特徴  オブジェクト指向開発言語  実行環境がメモリ管理を行う  ガベージ・コレクション  ポインタを扱える  Unsafe キーワード  ネットワーク、 XML への対応を標準に含 む
  • 4. オブジェクト指向開発言語  構造化プログラミングの進化した形  進化のキーワードは開発効率、再利用性、メンテナン ス性(わかりやすさ)  機能とデータをまとめてオブジェクトとすることで、 オブジェクト同士の関係を疎にすることが再利用性、 メンテナンス性をたかめる  わかりやすさをもとめた進化はつづいている  UML (記法の統一)  パターン(類似する構造に対する命名)  エクストリーム・プログラミング(チームコミュニケ ーションの促進)
  • 5. C# を構成するもの  Class Library  システム I/O 、文字列操作、ネットワーク、 XML  C# コンパイラ  CIL ( Common Intermediate Language) に変換  タイプチェック  Virtual Execution System  実行時にクラスをロード(レイトバインディング)  機械語に変換して実行( JIT コンパイラ)  メモリ管理
  • 6. Microsoft 社以外の C# の実装  FreeBSD への対応  Microsoft とコーレルが提供  Mono プロジェクト( http://www.go- mono.net)  オープンソースプロジェクト  ECMA の定義にもとづいて C #を実装  Windows ( +Cygwin) 、 Linux 、 Unix に対応  クラスライブラリを充実 (.NET Framework に準じ る)し、ウィンドウプログラミングやデータベース 接続に対応予定
  • 7. Microsoft 社の C# の実装  .NET Framework として提供される  Base Class Library  MSIL  CLR ( Common Language Runtime )  開発言語として、 C# だけでな く、 VB.NET 、 Managed C+ + 、 Jscript.net に対応  COM との連携が容易
  • 8. .NET Framework そ Managed C# VB JS の C++ 他 .NET Framework Base クラスライブラリ ASP.NET Window ADO.NET ( Data/XML ) System JIT CLR メモリ管理
  • 9. Microsoft 社が提供する BaseClass Library  ASP.NET  WebForm • 従来の Web アプリケーション • インタフェースとコードの物理的(ファイル)な分離が可 能に  Web サービス • XML をベースに、インターネット上に分散システムを構築 • Hailstorm が Web サービスの実例として、また分散シス テムの開発のプラットフォームとして提供されることにな る  ASP.NET ではファイルのコンパイル作業は不要 • 適切なフォルダに配置し、 URL によりアクセスされた時点 で自動的にコンパイルが行われる
  • 10. BaseClassLibrary - 2  Windows.Forms  デスクトップ ( ウィンドウ ) アプリケーション • 一つのソースファイルでウィンドウアプリケーションの構 築が可能に • Web サービスのクライアントとしてのウィンドウアプリケ ーションの構築も簡単  ADO.NET  DB 連携(インメモリデータベース)  XML 対応  SYSTEM  システム I/O
  • 11. テスト環境の構築  .NET Framework SDK Beta2 をインストール  http://www.microsoft.com/ japan/developer/net/dotnetsdkdown.asp  W2k 、 NT4.0 、 98 、 Me 、 XP に対応  メモリはできるだけ多いほうがよい  ASP.NET は W2k 以降のみサポートとなる  再配布用モジュールのインストールにより実行環境 だけを構築することも可  ASP.NET をサポートする Web サイトでテスト する  http://www.brinkster.com/  等
  • 12. Tutorial からはじめよう  Framework SDK のインストール後、 MSDE と Tutorial のインストールを行う  Tutorial は全文英語であるが、サンプル のソースとコンパイル済みの実行可能フ ァイルが提供されているので、動作を確 認しながら C# に対する理解を深めるこ とができる
  • 13. 開発ツール  VisualStudio.NET  ドラッグ&ドロップ、プロパティウィンドウ を利用した効率的なユーザインタフェース開 発  分散環境に対応したデバッグ  SharpDevelop  フリーウェアの開発ツール • http://www.icsharpcode.net/OpenSource/SD/  Unit テストツールを取り込んでいる
  • 14. コマンドラインコンパイラ  csc.exe  /t:exe コンソールアプリケーションを作成  /t:winexe ウィンドウアプリケーションを作成  /t:library dll を作成  /r:***.dll 指定した dll の内容を参照  作成した実行ファイルはコピーにより実行可  レジストリへの登録等の作業は必要ない  各ファイルが自分自身についての情報をもつ  バージョン管理も容易になる( dll ヘルの終焉)
  • 15. #include <stdio.h> void main(void) { Java と C# char buffer[1024]; int line; line = 0; while(fgets(buffer, 1024, stdin) != NULL){ line++; printf("%3d; %s", line, buffer); } } import java.io.*; // パッケージ using System; //namespace public class jTest { public class csTest { public static void main(String[] args) { public static void Main(string[] args) { BufferedReader reader =   new BufferedReader(new InputStreamReader(System.in), 1); try { try { string buffer; String buffer; int line = 0; int line = 0; while ((buffer = Console.ReadLine()) != while ((buffer = reader.readLine()) != null) null) { { line++; line++; Console.WriteLine("{0,3} {1}", line, System.out.println(line + " " + buffer); buffer); } } } catch (Exception e) { } catch (Exception e) { System.out.println(e); Console.WriteLine(e); } } } } } }
  • 16. Demo
  • 17. C# を学習するために  MSDN magazine  書籍  C# プログラミングリファレンス(リックテレコム )  C# 標準リファレンス(日経 BP )  プログラミング C# (日経 BP )  Microsoft .NET テクノロジガイド(日経 BP )  C# 入門( SOFTBANK )  Web サイト  MSDN(http://www.atmarkit.co.jp)  @ IT(http://www.atmarkit.co.jp)