連載:C# 4入門最終回 C# 4の使いどころはどこか株式会社ピーデー 川俣 晶2011/03/10 |
|
実は、いまになって失敗したと思っている。この連載は、2010年の5〜6月ごろに構想されて始まったものなのだが、その時点の目次案で予定した最終回は「C# 4の使いどころはどこか」となっていた。その趣旨は簡単で、C#のほかのバージョンと比較することで、使うべき場面を紹介することであった。なぜそのような判断に意味があるのかといえば、実はC# 4の前提となる.NET Framework 4には、それまでにない特徴があったからだ。
.NET Frameworkは、1.0、1.1、2.0、4、についてはバージョン番号と実体が一致している。ところが、2.0から3.5までが必ずしもバージョン番号と実体が一致しないのだ。
- .NET Framework 3.0 = .NET Framework 2.0 + α
- .NET Framework 3.5 = .NET Framework 3.0 + α
そのため、2.0から3.5までは比較的スムーズに移行ができた。例えば、3.5の新機能を使わない場合、たとえ3.5として開発していても、実体は3.0と同じだったのである。
しかし、.NET Framework 4になるとまったく別のフレームワークが要求されてしまうのである。本連載でも見たとおり、in/outキーワードなどのサポートにより、同じ機能でも定義が微妙に異なるケースが存在し、100%安全なアップグレードはできない。それ故に、どこで移行する踏ん切りを付けるのかは重要なポイントになる。
以上が連載開始当初の状況認識であった。
では、いまはどうか。
実は、ソース管理にTFS(Team Foundation Server)を導入した時点で、メンテナンスの継続が必要な主要なソース・コードは、すべてVisual Studio 2010対応にアップグレードしてしまった。Visual Studio 2008とうまく統合できなかったからだ。この問題は、単なる筆者の手順のミスであり、後からVisual Studio 2008とも統合して動くようになったが、せっかく手間暇かけて問題を解決してVisual Studio 2008でも扱えるようになったのに、めったに利用することがなかった。つまり、ほとんどVisual Studio 2010でしか使っていない。そして、その場合の対象となるフレームワークは黙って.NET Framework 4である。なぜかといえば、ソース・コードを書き換える際に、古いバージョンのフレームワークの制限された機能に合わせるのが面倒だったからである。
このような経緯から、Visual SourceSafeからTFS 2010に切り替えたのを機会にして、筆者の環境は、TFS 2010+Visual Studio 2010+.NET Framework 4にほぼすべて統一されてしまった。その後半年以上が経過し、.NET Framework 4による動作実績もできて、特に大きな問題にも遭遇していない。その実績は重要な意味がある。つまり、以下のように状況が変わってしまったのだ。
- “4”を使うメリットを明確にしないと“4”に移行できない
- “4”を使うデメリットを明確にしないと旧版を使用できない
つまり、「C# 4の使いどころはどこか」という問い掛けは、(筆者にとって)もはや意味がないのである。C# 4はどのような開発であっても使うのが基本であり、むしろ「使わない」ことが例外的なのである。
C# 4をなぜわたしは使うのか
しかし、気を取り直して、あえて語ってみよう。
そもそも、なぜC# 4を使うのか、である。なぜなら、今回はアップグレードしないで済むならしない方がよいと思っている読者に向けた内容であるからだ。
しかし、これはよくよく考えてみると、極めて屈折した構造を持っていることに気付いた。この問題は、Visual Studio 2010にアップグレードするかという問題を通り越して、実はVisual SouceSafeによるソース・コード管理の問題にまで行ってしまうからだ。つまり、単なるプログラミング言語の問題に止まらない。
つまり、以下のような問題である。
- ソース・コードの管理システムを抜本的に見直すことは避けられない
- 仮にTFS 2010を導入した場合、完全に機能を統合して使用するためには、Visual Studio 2010も導入しなければならない
- Visual Studio 2010を導入してしまうと、C# 4の利用は標準形態になってしまう
少しだけこの問題を説明しよう。
INDEX | ||
C# 4入門 | ||
最終回 C# 4の使いどころはどこか | ||
1.C# 4をなぜわたしは使うのか | ||
2.TFS 2010、VS 2010、C# 4のメリット/3.0、2.0でもよい場合/C# 1.Xはもうやめよう | ||
3.分水嶺はどこにあるのか/パラダイムはひっくり返った/もう1回ひっくり返る | ||
「C# 4入門」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|