Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

C#のことを自分なりにまとめてみた

コンパイル言語
パラダイム:オブジェクト指向
型付け:強い静的型付け

アプリケーションが実行される仕組み

Javaの実行環境とよく似ている

  1. C#のソースコードをC#コンパイラが共通中間言語(Javaでいうバイトコード)へとコンパイルする
  2. コンパイルされたアプリケーションは共通言語ランタイム上で動作する仮想マシン(JavaでいうJVM)で実行される
  3. 仮想マシンでは共通中間言語をネイティブコードに翻訳し、OSを通してCPUで実行される

特徴

Windowsアプリにつよい

  • Microsoft謹製
  • 豊富なWindowsAPI
  • nugetというパッケージ管理システムでライブラリもたくさんある
  • 同じくWIndowsアプリに強いVB.netよりもサンプルが多い
  • Windows向けデスクトップアプリ作るならほぼ一択

Linqという強力な配列処理機能がある

  • メソッド記法によって可読性の高い配列処理ができる

Web開発

  • ASP.netを使用することでWeb開発、MVC開発が可能

MVVM開発

  • WPFによる強力なBinding機構でMVVM開発が可能

クロスプラットフォーム開発

  • Unity
    • ゲーム開発もできる!
  • Xamarin
    • iOSも作れる!(ただしビルドにはOSX環境が必要)
  • Mono
    • Linux環境の開発もできる!

高機能なIDEによる補助で開発スピードが速い

  • VisualStudioの高度な入力補完機能によって、基本的な.Netの名前空間のフレーズだけ入力すればある程度の開発ができる
  • プロジェクト全体に対する変数名、クラス名一括変更等ができる
    • 変更漏れによる手戻りが起こりにくい

共通言語基盤上の仮想環境で実行される

  • 同じ仕組みで実行されるVB.Netで書かれたライブラリも参照できる
  • プラットフォーム非依存で実行できる環境が構築されつつある
    • Monoとか

まとめてみた感想

  • Runtimeの対義語がCompiletimeということを知れた。
    Runtimeで一つの単語だと勘違いしていて意味がよくわからないな~とか思ってたけどただ「実行時」と直訳すればよかったのですね。

  • 2年ほど.netの環境に触れていたけどいざまとめてみるとなかなか難しい。他言語を実務で使えれば比較できてわかりやすいのかも

  • 技術選定をするためにはもっと深くまで掘り下げないといけないのだろうという感覚

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
1
Help us understand the problem. What are the problem?