黙々とC#

"In a mad world of VBA, only the mad are sane" 『VBAという名の狂った世界で狂っているというのなら私の気は確かだ』

C#の言語仕様と.NET Frameworkの後方互換生

f:id:d_ymkw:20170303112002j:plain

C#の言語仕様と、.NET Frameworkの後方互換性について。

C#の言語仕様と.NET Framework非依存の話

ufcpp.net

C#6あたり?から言語仕様の拡張は、コンパイラ(Rosyln)によってC#コードからMSILに変換する際に実現されるようになったおかげで、MSILの実行エンジンである.NET Frameworkのバージョンにほとんど依存しなくなっている。VS2017からIDE上でサポートされるC#7もしかり。

このおかげで、最近では古い.NET Frameworkを対象としたプロジェクトでも、最新のC#の言語仕様でコード書けるようになってるのだけど。

C#6以降から急に始めた人には、どうなっているのか分かりにくいだろうなぁと。

(このRoslynの力技感は半端なくて、後方互換性を保ちながら、ハイスピードで進化し続けているので、スマート&凄い天才的な実装方法なのだけど…、それゆえに分かりづらさも有るかなぁと)

まぁ、そんなことを思ってる。

.NET Frameworkの後方互換性の話

これと似ているといっていいのかわからないけど、.NET Frameworkの後方互換性も一般の人にはわかりにくくなっていて、

MSの技術に明るくない人だとかなり混乱しているのが見て取れる。

実際には、上記記事でも触れられているのだけど*1MSDNの注釈

既定では、アプリケーションは、開発された共通言語ランタイムのバージョンで動作するため、アプリケーションを .NET Framework 4.5 で実行するには構成ファイルを提供する必要がある場合があります。

にあるように、アプリケーション側に何の細工もされていない場合、.NET 3.5のアプリを動かすには.NET Framework3.5がインストールされている必要がある。

のだけど、これには例外があって、.NET 3.5のアプリケーションの構成ファイル(manifestファイル)に『v4.5での動作を許可する』旨を記載すると、.NET 4.5のフレームワークを用いて動かすことが可能になる。*2

※ ちなみに、上の説明では.NET 3.5を例に上げたけど、2.0/3.5/4.xの断絶しているフレームワーク間で有効な一般的な話。

C#/Windowsプログラマなら公知の事実だけど、正直これを一般の人に分かれというのはかなり厳しいものがある。

*1:上記記事では内容を理解できなくてスルーしていると思われる。

*2:ただし、ごくわずかな可能性では有るのだけど、.NET 3.5のフレームワークに依存するトリッキーなコードが混ざっていると実行時例外が発生して落ちる。このため、デフォルトではv4.xのフレームワークでは、.NET3.5のアプリは起動しない。

C#読書会 『C# ショートコードプログラミング 第2版』に関する感想など 第5章

大阪で定期的に開催されているC# 読書会での『C# ショートコードプログラミング 第2版』に関する感想などをまとめました。

C#ショートコードプログラミング 第2版 (MSDNプログラミングシリーズ)

C#ショートコードプログラミング 第2版 (MSDNプログラミングシリーズ)

続きを読む

C#読書会 『C# ショートコードプログラミング 第2版』に関する感想など 第4章

大阪で定期的に開催されているC# 読書会での『C# ショートコードプログラミング 第2版』に関する感想などをまとめました。

C#ショートコードプログラミング 第2版 (MSDNプログラミングシリーズ)

C#ショートコードプログラミング 第2版 (MSDNプログラミングシリーズ)

続きを読む

C#読書会 『C# ショートコードプログラミング 第2版』に関する感想など 第3章

大阪で定期的に開催されているC# 読書会での『C# ショートコードプログラミング 第2版』に関する感想などをまとめました。

C#ショートコードプログラミング 第2版 (MSDNプログラミングシリーズ)

C#ショートコードプログラミング 第2版 (MSDNプログラミングシリーズ)

続きを読む

C#読書会 『C# ショートコードプログラミング 第2版』に関する感想など 第2章

大阪で定期的に開催されているC# 読書会での『C# ショートコードプログラミング 第2版』に関する感想などをまとめました。

C#ショートコードプログラミング 第2版 (MSDNプログラミングシリーズ)

C#ショートコードプログラミング 第2版 (MSDNプログラミングシリーズ)

続きを読む

C#読書会 『C# ショートコードプログラミング 第2版』に関する感想など 第1章

大阪で定期的に開催されているC# 読書会での『C# ショートコードプログラミング 第2版』に関する感想などをまとめました。

C#ショートコードプログラミング 第2版 (MSDNプログラミングシリーズ)

C#ショートコードプログラミング 第2版 (MSDNプログラミングシリーズ)

続きを読む

Excel C# Script入門講座へようこそ!

『全てのVBAコードを生まれる前に消し去りたい。
 すべての宇宙、過去と未来の全てのVBAを、この手で』

f:id:d_ymkw:20160713164718p:plain

このページはExcel VBAを実務で利用されている方で、VBAに心の底から辟易しており、現代的なプログラミング言語(C#6.0)を使って、Excelファイルから分離されたコードで、お手軽にExcel操作を行いたいという方を対象としています。

このページでは、Excelの操作には、VBAに代えてC# Scriptを使います。C# Scriptを実行するにあたっては、C# スクリプト実行エンジンとしてRoslyn for Scripting C#を組み込んだExcel VSTOアドイン "ExcelCSX" を用いています。

このページを通じて、忌まわしきExcel VBAと決別し、より便利で快適なC#スクリプトの魅力を体験して頂ければ幸いです。

  • Excel C# Script入門講座
    • Excel C# Script をはじめる前に
    • セルの操作
    • ワークシートの操作
    • ワークブックの操作
    • プログラムの基礎
    • プログラム制御文
    • Excel C# Script でよく使うメソッド
    • C# Script ポケットリファレンス
続きを読む