.NET の概要

        NT-Commitee2
         小野 修司
http://www.corebase.co.jp/shu/
最初から参考文献 (^^;

   Microsoft .NET 完全解説( ASCII )
   C# で学ぶ .NET プログラミング(技術評論社
    )
   C マガジン 2001 年 1 月号(ソフトバンク)
    – C# 言語仕様とプログラミング
   MSDN マガジン( ASCII )
   マイクロソフト社 Web サイト
      » http://www.microsoft.com/japan/developer/net/
      » http://www.microsoft.com/japan/developer/vstudio/nextgen/


これらをベースに自分なりに説明する。
従来技術との比較
               Orchestration
                                           ・ .NET の説明で利用される図
         M
                   そ                       ・従来技術を無理やり対比させて考
C# VB         JS   の                          えてみよう。。。
        C++        他

                                  .NET
                       Building          VB C++ JS,VBS
                                Enterprise
                        Block




                                                  MFC
                                            ATL
    .NET                         Servers
                                      ランタイム      ASP
 Framework
                                                                       Windows
                                                            COM         DNA
                                           Win32                       Servers
Windows (CE, ME, 2000, and .NET)            API



                                                    Windows (9x, NT)
Windows DNA サーバか
    ら .NET Enterprise Servers へ
   Windows DNA サーバ
    – COM のインタフェースを通して利用する、
      システム構築のインフラ
   .NET Enterprise Servers
    – COM 以外に XML 、 HTTP 等のインターネ
      ット標準をインタフェースとして利用でき
      る、システム構築のインフラ
    – 今後、 .NET の環境上に構築される
    – SOAP や C# をサポートするようになる
COM から Building Block へ
   COM
    – 機能の再利用のために自マシン、または
      ネットワーク上のマシンに用意される
    – COM のインターフェースを通して利用す
      る
   Building Block
    – 機能の再利用のためにインターネット上に
      用意される(認証機能、カレンダー機能
      等)
    – SOAP をインターフェースとして利用する
Win32API から .NET Framework
           へ
   Win32API 上での開発
    – 開発言語によりベースとなる開発環境が異なる
    – Visual Studio であっても VB 、 VC++ 、 Visual
      InterDev はまったく異なるツール
    – 作成した COM はレジストリに登録することによ
      り利用できる
   .NET Framework 上での開発(詳細は後述す
    る)
    – すべての言語で同一の開発環境が利用できる
    – 作成したクラスはファイルコピーにより利用でき
      る
Orchestration の登場
   従来、同じ COM とはいっても、作成の仕方
    により、例えば VBScript からは利用できない
    ものもあった
   .NET では、インタフェースを SOAP ベース
    とすることにより、インターネット上にある
    サービスも含めた、すべてのサービスを組み
    合わせて利用することが可能になる
   XML による記述で、サービスの利用順序や
    組み合わせ方を指定できるようになり、その
    組み替えも簡単になる
変化するキーワード
         - COM から SOAP へ
   COM ( Windows DNA -密結合 )
    –   COM インタフェースによる再利用
    –   DCOM による分散環境の構築

   SOAP ( .NET -疎結合)
    – SOAP をインタフェースとするサービスの再
      利用
    – SOAP によるインターネット上の分散環境の
      構築
SOAP とは?

   XML の表記法(タグやスキーマの利用)によ
    り、どの命令を実行するかが記述され、また
    その引数としてどのようなデータを与えるか
    も記述される
   要するに、テキストファイル( XML ファイ
    ル)を送りつけることにより命令が実行さ
    れ、その結果もテキストファイルで返される
    – テキストファイルによる RPC 実行とも言える
   このテキストファイルを送るためのプロトコ
    ルとして、 HTTP や SMTP 等が利用できる
SOAP の利点

   SOAP が利用できるのは Windows ばかりでは
    ない
    – IBM が SOAP を推進、ツール等を提供
       http://www.ibm.co.jp/developerworks/
    – XML が解釈できる環境を構築すれば、 SOAP を利
      用することは可能

これにより、 .NET は Windows にしばられな
 い
 インターネット上でのすべてのマシンとのデ
 ータ交換をするための基盤を持つということ
SOAP の広がり
   SOAP をベースとした標準が構築される
    – WSDL(Web Service Description Language)
      » SOAP の組み合わせにより、機能を実現する手
        順を指定するための標準
    – Disco
      » 特定のサーバ上で WSDL を発見するための標
        準
    – UDDI(Universal Description, Discovery, and
      Integration)
      » 企業が提供するサービスを WSDL を利用して
        登録しておくことができる企業ディレクトリ
.NET が与えるインパクト

 DOS から Windows への変化として、パ
  ソコン単体のシステムからネットワーク
  に対応したシステムへの変化があった
 .NET においては、クライアント/サー
  バ型であっても企業内に閉じていたシス
  テムが、インターネットに対して開いた
  システムへと変化する
    – 複数の企業間のサービスの連携によってシ
      ステムが構築されるようになる
.NET は COM を駆逐するの
             か?
   COM と .NET クラスは相互に利用する
    ことが可能である
    – ただし、ユーティリティを利用する必要が
      ある
 .NET 環境でも、トランザクションや
  メッセージングには COM+ を利用する
 COM+ が進化していく先に .NET との融
  合がある
.NET Framework

                                  そ
            Managed
C#    VB               JS         の
             C++                  他

       .NET Framework
Base クラスライブラリ
     Web              Window
     Data              XML
            System

                            JIT
             CLR
                       メモリ管理
各言語の特徴

   VC++
    – デフォルトでは Win32API を利用し、 COM
      を利用する従来の Windows プログラムを作
      成する
    – .NET 対応プログラムを作成するために
      は、 Managed C++ という形式でプログラミ
      ングを行う
   VB
    – クラスの継承が利用できるようになる
    – VBScript は VB に統合される
各言語の特徴
   C#
    – Microsoft が C++ / C をベースに新しく作成した
      言語
    – ECMA に標準化を提案している
   JS
    – VisualStudio.NET ベータ版では開発環境が提供さ
      れていない
   その他
    – Perl 、 SmallTalk 、 COBOL 等サードベンダーによ
      り.NET対応の言語が提供される
    – Java も Rational 社により提供予定?
Base クラスライブラリ

   Base クラスライブラリはすべての言語から
    利用される
    – 各言語で利用する基本的な機能は Base ライブ
      ラリで提供される
    – 文法が異なるだけで、 .NET に対応する言語に
      よる本質的な違いはないといえる
    – ライブラリを利用するためにはクラスを直接、
      または継承して利用する。
Base クラスライブラリ

   System
    – I/O 、セキュリティ等基本機能を提供する
   Data / XML(ADO.NET)
    – DataSet という形で一種のインメモリ DB が
      提供される
    – Data と XML を統一した形で利用できる
Base クラスライブラリ
   Web Forms
    – ASP.NET で利用される
    – サーバ上で動作し、接続してきたブラウザに合わ
      せた HTML を生成する
       ( HTML3.2 、 DHTML 、 WAP)
   Web サービス
    – SOAP を利用するインタフェース、およびテスト
      プログラムは自動で作成される
   Windows Forms
    – Windows プログラム作成で利用する
Common Language
             Runtime(CLR)
   IL ( Intermideate Language )
    – すべてのプログラムはコンパイルにより、 IL とい
      う中間言語の形に変換される
    – IL プログラムは dll または exe という拡張子を持
      つ
   JIT
    – CLR は、 IL プログラムを JIT コンパイラを利用し
      て機械語のコードに変換し、実行する
    – JIT によって変換された機械語コードはキャッシ
      ュされて利用される
   メモリ管理
    – ガベージコレクションにより、メモリの開放は自
      動的に行われる
Base クラスライブラリ共有の
      ためのしくみ
   CTS(Common Type System)
    – 各言語のすべてのタイプ(自ら作成するクラスを含
      む)を扱えるよう、 CLR に組み込まれたしくみ
    – クラス、メソッド、プロパティ等の扱いを規定する
   CLS(Common Language Specification)
    – 特定の言語が CTS すべてをサポートするのは難し
      いため、言語間の連携に最低限必要な取り決めだけ
      をとりだしたもの
    – 外部とのインタフェースとなる部分(パブリックク
      ラスのパブリックメソッド)は CLS にしたがって
      いる必要がある
C# による Web サービスサン
        プル
   asmx サンプル
    – 2 つの数字の和を返す Web サービス
    – 自動的にテストプログラムを作成
    – 自動的に SOAP に対応
   WebServiceUtil の利用
    – SOAP プロキシクラスの作成
   Web サービスを利用するコンソールア
    プリケーションサンプル
Visual Studio .NET
   VS.NET
    – .NET のための統合開発環境
    – VC++ 、 C# 、 VB すべてで同じ環境を利用
      する
    – ドラッグ & ドロップによるユーザインタ
      フェース構築
      ( Windows.Form 、 Web.Form )

   デモ: Web サービスを利用する
    Window アプリケーションの作成
オブジェクト指向開発のため
        の基礎知識
   オブジェクト指向の開発に対して知識を整理
    しておこう
    – オブジェクト指向再入門講座(ソフト・リサーチ・
      センター)
   UML
    –   オブジェクト指向で設計する際の表記法の標準
    –   UML モデリングのエッセンス 第2版(翔泳社)
    –   http://www.ogis-uml-university.com/
   パターン
    – システム構築において何度も利用されるクラス構
      造を収集、分類したもの
    – デザインパターン 改訂版(ソフトバンク)
    – アナリシスパターン(ピアソン・エデュケーション
オブジェクト指向開発方法論
   RUP ( Rational Unified Process )
    – 中・大規模向けのオブジェクト指向開発方法論
    – UML による統一ソフトウェア開発プロセス 翔泳
      社
   XP
    – ライトウェイトなプログラム開発方法論
    – エクストリーム プログラミング入門
                               (ピアソン・エデュケーショ
      ン)
    – http://www.esm.co.jp/eXtremeProgramming/
    – Nunit : .NET 用ユニットテスティングフレームワ
      ーク
      http://sourceforge.net/projects/nunit
.NET はプログラマを幸福にす
        るか
   ベータ版に触れて、自分の眼で確かめ
    てほしい (^^;

   個人的にはできるだけはやく .NET 環境
    が標準になってほしい

20010127

  • 1.
    .NET の概要 NT-Commitee2 小野 修司 http://www.corebase.co.jp/shu/
  • 2.
    最初から参考文献 (^^;  Microsoft .NET 完全解説( ASCII )  C# で学ぶ .NET プログラミング(技術評論社 )  C マガジン 2001 年 1 月号(ソフトバンク) – C# 言語仕様とプログラミング  MSDN マガジン( ASCII )  マイクロソフト社 Web サイト » http://www.microsoft.com/japan/developer/net/ » http://www.microsoft.com/japan/developer/vstudio/nextgen/ これらをベースに自分なりに説明する。
  • 3.
    従来技術との比較 Orchestration ・ .NET の説明で利用される図 M そ ・従来技術を無理やり対比させて考 C# VB JS の えてみよう。。。 C++ 他 .NET Building VB C++ JS,VBS Enterprise Block MFC ATL .NET Servers ランタイム ASP Framework Windows COM DNA Win32 Servers Windows (CE, ME, 2000, and .NET) API Windows (9x, NT)
  • 4.
    Windows DNA サーバか ら .NET Enterprise Servers へ  Windows DNA サーバ – COM のインタフェースを通して利用する、 システム構築のインフラ  .NET Enterprise Servers – COM 以外に XML 、 HTTP 等のインターネ ット標準をインタフェースとして利用でき る、システム構築のインフラ – 今後、 .NET の環境上に構築される – SOAP や C# をサポートするようになる
  • 5.
    COM から BuildingBlock へ  COM – 機能の再利用のために自マシン、または ネットワーク上のマシンに用意される – COM のインターフェースを通して利用す る  Building Block – 機能の再利用のためにインターネット上に 用意される(認証機能、カレンダー機能 等) – SOAP をインターフェースとして利用する
  • 6.
    Win32API から .NETFramework へ  Win32API 上での開発 – 開発言語によりベースとなる開発環境が異なる – Visual Studio であっても VB 、 VC++ 、 Visual InterDev はまったく異なるツール – 作成した COM はレジストリに登録することによ り利用できる  .NET Framework 上での開発(詳細は後述す る) – すべての言語で同一の開発環境が利用できる – 作成したクラスはファイルコピーにより利用でき る
  • 7.
    Orchestration の登場  従来、同じ COM とはいっても、作成の仕方 により、例えば VBScript からは利用できない ものもあった  .NET では、インタフェースを SOAP ベース とすることにより、インターネット上にある サービスも含めた、すべてのサービスを組み 合わせて利用することが可能になる  XML による記述で、サービスの利用順序や 組み合わせ方を指定できるようになり、その 組み替えも簡単になる
  • 8.
    変化するキーワード - COM から SOAP へ  COM ( Windows DNA -密結合 ) – COM インタフェースによる再利用 – DCOM による分散環境の構築  SOAP ( .NET -疎結合) – SOAP をインタフェースとするサービスの再 利用 – SOAP によるインターネット上の分散環境の 構築
  • 9.
    SOAP とは?  XML の表記法(タグやスキーマの利用)によ り、どの命令を実行するかが記述され、また その引数としてどのようなデータを与えるか も記述される  要するに、テキストファイル( XML ファイ ル)を送りつけることにより命令が実行さ れ、その結果もテキストファイルで返される – テキストファイルによる RPC 実行とも言える  このテキストファイルを送るためのプロトコ ルとして、 HTTP や SMTP 等が利用できる
  • 10.
    SOAP の利点  SOAP が利用できるのは Windows ばかりでは ない – IBM が SOAP を推進、ツール等を提供    http://www.ibm.co.jp/developerworks/ – XML が解釈できる環境を構築すれば、 SOAP を利 用することは可能 これにより、 .NET は Windows にしばられな い  インターネット上でのすべてのマシンとのデ ータ交換をするための基盤を持つということ
  • 11.
    SOAP の広がり  SOAP をベースとした標準が構築される – WSDL(Web Service Description Language) » SOAP の組み合わせにより、機能を実現する手 順を指定するための標準 – Disco » 特定のサーバ上で WSDL を発見するための標 準 – UDDI(Universal Description, Discovery, and Integration) » 企業が提供するサービスを WSDL を利用して 登録しておくことができる企業ディレクトリ
  • 12.
    .NET が与えるインパクト  DOSから Windows への変化として、パ ソコン単体のシステムからネットワーク に対応したシステムへの変化があった  .NET においては、クライアント/サー バ型であっても企業内に閉じていたシス テムが、インターネットに対して開いた システムへと変化する – 複数の企業間のサービスの連携によってシ ステムが構築されるようになる
  • 13.
    .NET は COMを駆逐するの か?  COM と .NET クラスは相互に利用する ことが可能である – ただし、ユーティリティを利用する必要が ある  .NET 環境でも、トランザクションや メッセージングには COM+ を利用する  COM+ が進化していく先に .NET との融 合がある
  • 14.
    .NET Framework そ Managed C# VB JS の C++ 他 .NET Framework Base クラスライブラリ Web Window Data XML System JIT CLR メモリ管理
  • 15.
    各言語の特徴  VC++ – デフォルトでは Win32API を利用し、 COM を利用する従来の Windows プログラムを作 成する – .NET 対応プログラムを作成するために は、 Managed C++ という形式でプログラミ ングを行う  VB – クラスの継承が利用できるようになる – VBScript は VB に統合される
  • 16.
    各言語の特徴  C# – Microsoft が C++ / C をベースに新しく作成した 言語 – ECMA に標準化を提案している  JS – VisualStudio.NET ベータ版では開発環境が提供さ れていない  その他 – Perl 、 SmallTalk 、 COBOL 等サードベンダーによ り.NET対応の言語が提供される – Java も Rational 社により提供予定?
  • 17.
    Base クラスライブラリ  Base クラスライブラリはすべての言語から 利用される – 各言語で利用する基本的な機能は Base ライブ ラリで提供される – 文法が異なるだけで、 .NET に対応する言語に よる本質的な違いはないといえる – ライブラリを利用するためにはクラスを直接、 または継承して利用する。
  • 18.
    Base クラスライブラリ  System – I/O 、セキュリティ等基本機能を提供する  Data / XML(ADO.NET) – DataSet という形で一種のインメモリ DB が 提供される – Data と XML を統一した形で利用できる
  • 19.
    Base クラスライブラリ  Web Forms – ASP.NET で利用される – サーバ上で動作し、接続してきたブラウザに合わ せた HTML を生成する ( HTML3.2 、 DHTML 、 WAP)  Web サービス – SOAP を利用するインタフェース、およびテスト プログラムは自動で作成される  Windows Forms – Windows プログラム作成で利用する
  • 20.
    Common Language Runtime(CLR)  IL ( Intermideate Language ) – すべてのプログラムはコンパイルにより、 IL とい う中間言語の形に変換される – IL プログラムは dll または exe という拡張子を持 つ  JIT – CLR は、 IL プログラムを JIT コンパイラを利用し て機械語のコードに変換し、実行する – JIT によって変換された機械語コードはキャッシ ュされて利用される  メモリ管理 – ガベージコレクションにより、メモリの開放は自 動的に行われる
  • 21.
    Base クラスライブラリ共有の ためのしくみ  CTS(Common Type System) – 各言語のすべてのタイプ(自ら作成するクラスを含 む)を扱えるよう、 CLR に組み込まれたしくみ – クラス、メソッド、プロパティ等の扱いを規定する  CLS(Common Language Specification) – 特定の言語が CTS すべてをサポートするのは難し いため、言語間の連携に最低限必要な取り決めだけ をとりだしたもの – 外部とのインタフェースとなる部分(パブリックク ラスのパブリックメソッド)は CLS にしたがって いる必要がある
  • 22.
    C# による Webサービスサン プル  asmx サンプル – 2 つの数字の和を返す Web サービス – 自動的にテストプログラムを作成 – 自動的に SOAP に対応  WebServiceUtil の利用 – SOAP プロキシクラスの作成  Web サービスを利用するコンソールア プリケーションサンプル
  • 23.
    Visual Studio .NET  VS.NET – .NET のための統合開発環境 – VC++ 、 C# 、 VB すべてで同じ環境を利用 する – ドラッグ & ドロップによるユーザインタ フェース構築 ( Windows.Form 、 Web.Form )  デモ: Web サービスを利用する Window アプリケーションの作成
  • 24.
    オブジェクト指向開発のため の基礎知識  オブジェクト指向の開発に対して知識を整理 しておこう – オブジェクト指向再入門講座(ソフト・リサーチ・ センター)  UML – オブジェクト指向で設計する際の表記法の標準 – UML モデリングのエッセンス 第2版(翔泳社) – http://www.ogis-uml-university.com/  パターン – システム構築において何度も利用されるクラス構 造を収集、分類したもの – デザインパターン 改訂版(ソフトバンク) – アナリシスパターン(ピアソン・エデュケーション
  • 25.
    オブジェクト指向開発方法論  RUP ( Rational Unified Process ) – 中・大規模向けのオブジェクト指向開発方法論 – UML による統一ソフトウェア開発プロセス 翔泳 社  XP – ライトウェイトなプログラム開発方法論 – エクストリーム プログラミング入門 (ピアソン・エデュケーショ ン) – http://www.esm.co.jp/eXtremeProgramming/ – Nunit : .NET 用ユニットテスティングフレームワ ーク http://sourceforge.net/projects/nunit
  • 26.
    .NET はプログラマを幸福にす るか  ベータ版に触れて、自分の眼で確かめ てほしい (^^;  個人的にはできるだけはやく .NET 環境 が標準になってほしい