SlideShare a Scribd company logo
1 of 26
.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 環境
    が標準になってほしい

More Related Content

Viewers also liked

ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発慎一 古賀
 
20150717 これからプログラミングを勉強する人へ
20150717 これからプログラミングを勉強する人へ20150717 これからプログラミングを勉強する人へ
20150717 これからプログラミングを勉強する人へSEED310
 
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~Akira Inoue
 
C# Database操作2 データの取得-
C# Database操作2  データの取得-C# Database操作2  データの取得-
C# Database操作2 データの取得-Hiroki Takahashi
 
20150127 jawsug京王線 ec2_config
20150127 jawsug京王線 ec2_config20150127 jawsug京王線 ec2_config
20150127 jawsug京王線 ec2_configTakayoshi Tanaka
 
[2001/01/23] VSLive! / Visual C++.NET 新機能概要
[2001/01/23] VSLive! / Visual C++.NET 新機能概要[2001/01/23] VSLive! / Visual C++.NET 新機能概要
[2001/01/23] VSLive! / Visual C++.NET 新機能概要Tatsuhiko Tanaka
 
富山合同勉強会2015 ジェネリクス談義 C#編
富山合同勉強会2015 ジェネリクス談義 C#編富山合同勉強会2015 ジェネリクス談義 C#編
富山合同勉強会2015 ジェネリクス談義 C#編Kentaro Inomata
 
C sharp6
C sharp6C sharp6
C sharp6yone64
 
[2001/05/30] .NET Developers Conference 2001 May / C#の生産性とパフォーマンス
[2001/05/30] .NET Developers Conference 2001 May / C#の生産性とパフォーマンス[2001/05/30] .NET Developers Conference 2001 May / C#の生産性とパフォーマンス
[2001/05/30] .NET Developers Conference 2001 May / C#の生産性とパフォーマンスTatsuhiko Tanaka
 
Asp.net dynamic data調査
Asp.net dynamic data調査Asp.net dynamic data調査
Asp.net dynamic data調査Naoyuki Sano
 
[2000/10] .NET Technical Briefing 2000 / Visual Studio .NET Part II
[2000/10] .NET Technical Briefing 2000 / Visual Studio .NET Part II[2000/10] .NET Technical Briefing 2000 / Visual Studio .NET Part II
[2000/10] .NET Technical Briefing 2000 / Visual Studio .NET Part IITatsuhiko Tanaka
 
Second Life. Net ~シニア向け情報サイト~
Second  Life. Net ~シニア向け情報サイト~Second  Life. Net ~シニア向け情報サイト~
Second Life. Net ~シニア向け情報サイト~CREATIVEHOPE / C-LAB
 
RubyistのためのSilverlight2
RubyistのためのSilverlight2RubyistのためのSilverlight2
RubyistのためのSilverlight2Akihiro Ikezoe
 
20140830 2014年版 C #でできること
20140830 2014年版 C #でできること20140830 2014年版 C #でできること
20140830 2014年版 C #でできることTakayoshi Tanaka
 
C# 継承フォームの作成
C# 継承フォームの作成C# 継承フォームの作成
C# 継承フォームの作成Hiroki Takahashi
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejsTakayoshi Tanaka
 

Viewers also liked (20)

ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
 
20150717 これからプログラミングを勉強する人へ
20150717 これからプログラミングを勉強する人へ20150717 これからプログラミングを勉強する人へ
20150717 これからプログラミングを勉強する人へ
 
20121215
2012121520121215
20121215
 
20120609
2012060920120609
20120609
 
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~
Empower Every App, Every Developer ~ 統合開発プラットフォーム Visual Studio の進化 ~
 
C# Database操作2 データの取得-
C# Database操作2  データの取得-C# Database操作2  データの取得-
C# Database操作2 データの取得-
 
20150127 jawsug京王線 ec2_config
20150127 jawsug京王線 ec2_config20150127 jawsug京王線 ec2_config
20150127 jawsug京王線 ec2_config
 
[2001/01/23] VSLive! / Visual C++.NET 新機能概要
[2001/01/23] VSLive! / Visual C++.NET 新機能概要[2001/01/23] VSLive! / Visual C++.NET 新機能概要
[2001/01/23] VSLive! / Visual C++.NET 新機能概要
 
富山合同勉強会2015 ジェネリクス談義 C#編
富山合同勉強会2015 ジェネリクス談義 C#編富山合同勉強会2015 ジェネリクス談義 C#編
富山合同勉強会2015 ジェネリクス談義 C#編
 
C sharp6
C sharp6C sharp6
C sharp6
 
[2001/05/30] .NET Developers Conference 2001 May / C#の生産性とパフォーマンス
[2001/05/30] .NET Developers Conference 2001 May / C#の生産性とパフォーマンス[2001/05/30] .NET Developers Conference 2001 May / C#の生産性とパフォーマンス
[2001/05/30] .NET Developers Conference 2001 May / C#の生産性とパフォーマンス
 
About .Net vNext
About .Net vNextAbout .Net vNext
About .Net vNext
 
Move semantics
Move semanticsMove semantics
Move semantics
 
Asp.net dynamic data調査
Asp.net dynamic data調査Asp.net dynamic data調査
Asp.net dynamic data調査
 
[2000/10] .NET Technical Briefing 2000 / Visual Studio .NET Part II
[2000/10] .NET Technical Briefing 2000 / Visual Studio .NET Part II[2000/10] .NET Technical Briefing 2000 / Visual Studio .NET Part II
[2000/10] .NET Technical Briefing 2000 / Visual Studio .NET Part II
 
Second Life. Net ~シニア向け情報サイト~
Second  Life. Net ~シニア向け情報サイト~Second  Life. Net ~シニア向け情報サイト~
Second Life. Net ~シニア向け情報サイト~
 
RubyistのためのSilverlight2
RubyistのためのSilverlight2RubyistのためのSilverlight2
RubyistのためのSilverlight2
 
20140830 2014年版 C #でできること
20140830 2014年版 C #でできること20140830 2014年版 C #でできること
20140830 2014年版 C #でできること
 
C# 継承フォームの作成
C# 継承フォームの作成C# 継承フォームの作成
C# 継承フォームの作成
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 

Similar to 20010127

Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!Akira Inoue
 
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Akira Inoue
 
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NETAkira Inoue
 
デブサミ2008 .NETの仕組み
デブサミ2008 .NETの仕組みデブサミ2008 .NETの仕組み
デブサミ2008 .NETの仕組みTakeshi Shinmura
 
Hello ".NET" World
Hello ".NET" WorldHello ".NET" World
Hello ".NET" World将 高野
 
Windows 8時代のアプリ開発
Windows 8時代のアプリ開発Windows 8時代のアプリ開発
Windows 8時代のアプリ開発信之 岩永
 
.NETクロスプラットフォーム
.NETクロスプラットフォーム.NETクロスプラットフォーム
.NETクロスプラットフォームYasushi Kato
 
Linux & Mac OS でも動く! ~ クロスプラットフォーム対応に見る ASP.NET Core 5 の可能性 ~
Linux & Mac OS でも動く! ~ クロスプラットフォーム対応に見る ASP.NET Core 5 の可能性 ~Linux & Mac OS でも動く! ~ クロスプラットフォーム対応に見る ASP.NET Core 5 の可能性 ~
Linux & Mac OS でも動く! ~ クロスプラットフォーム対応に見る ASP.NET Core 5 の可能性 ~Akira Inoue
 
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線Akira Inoue
 
SilverlightとSharePoint2010の紹介
SilverlightとSharePoint2010の紹介SilverlightとSharePoint2010の紹介
SilverlightとSharePoint2010の紹介Tadahiro Higuchi
 
PowerShell の基本操作とリモーティング&v3のご紹介 junichia
PowerShell の基本操作とリモーティング&v3のご紹介 junichiaPowerShell の基本操作とリモーティング&v3のご紹介 junichia
PowerShell の基本操作とリモーティング&v3のご紹介 junichiajunichi anno
 
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~Shin-ya Koga
 
ASP.NET vNextの全貌
ASP.NET vNextの全貌ASP.NET vNextの全貌
ASP.NET vNextの全貌A AOKI
 
120512 metro styleapp_javascript
120512 metro styleapp_javascript120512 metro styleapp_javascript
120512 metro styleapp_javascriptTakayoshi Tanaka
 
090916 X D E V今だから理解する[
090916 X D E V今だから理解する[090916 X D E V今だから理解する[
090916 X D E V今だから理解する[Masami Suzuki
 
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指してAkira Inoue
 
Monomeeting 20081022
Monomeeting 20081022Monomeeting 20081022
Monomeeting 20081022Atsushi Eno
 

Similar to 20010127 (20)

Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
 
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
 
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
 
デブサミ2008 .NETの仕組み
デブサミ2008 .NETの仕組みデブサミ2008 .NETの仕組み
デブサミ2008 .NETの仕組み
 
Hello ".NET" World
Hello ".NET" WorldHello ".NET" World
Hello ".NET" World
 
Windows 8時代のアプリ開発
Windows 8時代のアプリ開発Windows 8時代のアプリ開発
Windows 8時代のアプリ開発
 
.NETクロスプラットフォーム
.NETクロスプラットフォーム.NETクロスプラットフォーム
.NETクロスプラットフォーム
 
20060419
2006041920060419
20060419
 
20050623 1
20050623 120050623 1
20050623 1
 
Linux & Mac OS でも動く! ~ クロスプラットフォーム対応に見る ASP.NET Core 5 の可能性 ~
Linux & Mac OS でも動く! ~ クロスプラットフォーム対応に見る ASP.NET Core 5 の可能性 ~Linux & Mac OS でも動く! ~ クロスプラットフォーム対応に見る ASP.NET Core 5 の可能性 ~
Linux & Mac OS でも動く! ~ クロスプラットフォーム対応に見る ASP.NET Core 5 の可能性 ~
 
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
 
SilverlightとSharePoint2010の紹介
SilverlightとSharePoint2010の紹介SilverlightとSharePoint2010の紹介
SilverlightとSharePoint2010の紹介
 
PowerShell の基本操作とリモーティング&v3のご紹介 junichia
PowerShell の基本操作とリモーティング&v3のご紹介 junichiaPowerShell の基本操作とリモーティング&v3のご紹介 junichia
PowerShell の基本操作とリモーティング&v3のご紹介 junichia
 
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~
 
ASP.NET vNextの全貌
ASP.NET vNextの全貌ASP.NET vNextの全貌
ASP.NET vNextの全貌
 
120512 metro styleapp_javascript
120512 metro styleapp_javascript120512 metro styleapp_javascript
120512 metro styleapp_javascript
 
090916 X D E V今だから理解する[
090916 X D E V今だから理解する[090916 X D E V今だから理解する[
090916 X D E V今だから理解する[
 
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
 
Monomeeting 20081022
Monomeeting 20081022Monomeeting 20081022
Monomeeting 20081022
 
Mvc conf session_1_osada
Mvc conf session_1_osadaMvc conf session_1_osada
Mvc conf session_1_osada
 

More from 小野 修司 (20)

20140322
2014032220140322
20140322
 
20120616
2012061620120616
20120616
 
20120425
2012042520120425
20120425
 
20120128
2012012820120128
20120128
 
20111203
2011120320111203
20111203
 
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
 

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 から Building Block へ  COM – 機能の再利用のために自マシン、または ネットワーク上のマシンに用意される – COM のインターフェースを通して利用す る  Building Block – 機能の再利用のためにインターネット上に 用意される(認証機能、カレンダー機能 等) – SOAP をインターフェースとして利用する
  • 6. Win32API から .NET Framework へ  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 環境 が標準になってほしい