オピニオン:.NET&開発環境の考察 現実に最も使える.NETのバージョンはどれ? デジタルアドバンテージ 一色 政彦2009/10/06 2009/10/07 更新 |
|
.NET Framework(以降、.NET)ベースのアプリケーションを開発し、それを実際にユーザーや顧客に使ってもらう場合、「.NETおよびVisual Studioの、どのバージョンを使うべきか?」は重要な検討事項になる。本稿では、その検討の際に参考となる情報や筆者の考えを提示する。
■.NETバージョンを検討するための3つの観点
.NETのバージョンを決定するには、次の3つの観点から検討できると筆者は考えている。
・実行環境となるWindows OS
・.NETのサポート期間
・利用するVisual Studio
もちろん、これは絶対的な基準ではない。例えば利用するテクノロジが決まっている場合は、それに応じて.NETバージョンが決定される。.NET 4.0の新機能を利用するには、.NET 4.0を使うしかない。なお.NET 4.0は、次期Visual Studioである「Visual Studio 2010」とともに出荷される.NET Frameworkの最新版で、リリースは来年になると予想される。
本稿で考察するのは、そのような特定のテクノロジへの結び付きを考慮から外して、より多くの開発者から見て「どの.NETバージョンを使うべきか?」の一般論である。
[注意]本稿で提示する一部データの出典について |
本稿で表のタイトルに「*出典」という表記がある場合は、下記のアンケートから引用しています。なお、これらの表は、(本稿の内容と関連のない)一部のデータを省略しています。 出典:@IT『.NET開発者中心コーナー開設アンケート』(2009年9月) |
■実行環境となるWindows OSに関する検討
まずアプリケーションの実行環境となるWindows OSについて考察していこう。
●現在のWindows OSの利用状況
(本稿が掲載されている)@IT/.NET開発者中心コーナーでは、先日、「.NET開発者中心 開設アンケート」を実施し、その1項目で「いま現在、開発中のアプリケーションの実行環境として、どのような『(a)クライアント端末のOS』『(b)アプリケーション・サーバのOS』を対象としているか?」という質問をした(複数回答可)。
その結果を集計し、各Windows OSが選択された割合(以降、対応率)を計算してまとめたのが下の表である(※Windows OS以外の項目は除外した)。
Windows OS | 対応率 |
95/98/Me | 4.1% |
NT Workstation | 3.9% |
2000 Professional | 24.5% |
XP | 90.2% |
Vista | 37.5% |
(a)アプリケーション実行環境:クライアントOS *出典 | |
「.NET開発者中心 開設アンケート」の「上記アプリケーションの実行環境について、『a.クライアント端末のOS』『b.アプリケーション・サーバのOS』のそれぞれに該当するものを、いくつでもお選びください。」(原文のまま)という質問に対する返答結果。 ※アプリケーションによっては、クライアントOSをサポートせずに、サーバのみを対象とするソフトウェアやWindows OSを対象にしないもの(例えばモバイル端末を対象にするアプリケーションなど)もあることに注意してほしい。この表の数値は各OSを相対化して比較可能にしているだけで、アプリケーションの一般的な対応率を表しているとはいえない。あくまで各OSを比較するうえでの参考値としてご覧いただきたい。 |
Windows OS | 対応率 |
NT Server | 3.4% |
2000 Server | 18.1% |
Server 2003 | 64.6% |
Server 2008 | 20.7% |
(b)アプリケーション実行環境:サーバOS *出典 | |
「.NET開発者中心 開設アンケート」の結果の一部。 ※この表の数値はあくまで参考値としてご覧いただきたい。 ※サーバOSをサポートせずに、クライアントOSのみを対象とするソフトウェアも少なくないことに注意してほしい。そのため、クライアントOSに比べると、全体的に利用率は少なめになっているようだ。 |
上記の2つの表を見ると、Windows 95/98/Me、Windows NT Workstation /Serverの対応率は4%未満である。しかも、これらのOSはすでに延長サポートが切れており(後掲の表を参照)、今後、その利用率はますます下がっていくことが予想される。つまり一般的に見て、これらのOSに対応するのは、少なくなるユーザーに向けて開発コストを掛けなければならないという意味で、費用対効果の面で不利である。
上記の理由から、「Windows 95/98/Me、Windows NT Workstation /Serverはサポートしない」のが最も賢明な選択だと筆者は思う(※あくまで一般論として考えている。どうしてもこれらのOSをサポートしなければならないケースなども、もちろんあり得るので、実際にはケース・バイ・ケースで対処する必要がある)。
筆者の現時点における結論は、一般的に、(これらのOSより後のバージョンである)Windows 2000 Professional/Server以降のクライアント/サーバOSを対象とするのが、より多くのエンド・ユーザーをより効果的に対象にできるので、費用対効果の面で有利であるということだ。
なお、Windows 2000 Professional/Serverは「2010年7月13日」に延長サポートが終了する(下記の表を参照)。このため、数年後には、Windows 2000が対象OSから外してWindows XP以降を対象OSにすることが一般的に推奨されるようになると予想される(これは実際に1年後、2年後にWindows 2000の利用状況を見て判断する必要があるだろう)。
Windows OS | 製品発売日 | メインストリーム ・サポート終了日 |
延長サポート 終了日 |
95 | 1995年8月15日 | 2000年12月31日 | 2001年12月31日 |
NT Workstation 4.0 | 1996年7月29日 | 2002年6月30日 | 2004年6月30日 |
NT Server 4.0 | 1996年7月29日 | 2002年12月31日 | 2004年12月31日 |
98 | 1998年6月30日 | 2002年6月30日 | 2006年7月11日 |
Me | 2000年12月31日 | 2003年12月31日 | 2006年7月11日 |
2000 | 2000年3月31日 | 2005年6月30日 | 2010年7月13日 |
XP | 2001年12月31日 | 2009年4月14日 | 2014年4月8日 |
Server 2003 | 2003年5月28日 | 2010年7月13日 | 2015年7月14日 |
Vista | 2007年1月25日 | 2012年4月10日 | 2017年4月11日 |
Server 2008 | 2008年5月6日 | 2013年7月9日 | 2018年7月10日 |
Server 2008 R2 | 2009年10月22日 | 2013年7月9日 | 2018年7月10日 |
7 | 2009年10月22日 | 2015年1月13日 | 2020年1月14日 |
各Windows OSのサポート期間(延長サポート終了日順) | |||
※Windows 2000 Professional/Serverは、まとめて「Windows 2000」と表記。 ※延長サポート期間になると、デザインの変更や機能の要求などが行えなくなり。セキュリティ関連以外の修正プログラムのサポートが制限されるなど、サポート内容が限定的になる。 |
それでは、Windows 2000 Professional/Server以降のクライアント/サーバOSを対象とするために、どのような.NETバージョンを選択すればよいのかを考えていこう
●各.NETバージョンと対応OSの関係
ここでは、各.NETバージョンと対応OSの関係を表にまとめた。
Windows OS | .NETバージョン | |||||
.NET 1.0 | .NET 1.1 | .NET 2.0 | .NET 3.0 | .NET 3.5 | .NET 4.0 | |
95 | × |
× |
× |
× |
× |
× |
NT 4.0 | ○ |
○ |
× |
× |
× |
× |
98 | ○ |
○ |
○ |
× |
× |
× |
Me | ○ |
○ |
○ |
× |
× |
× |
2000 | ○ |
○ |
○ |
× |
× |
× |
XP | ○ |
○ |
○ |
○ |
○ |
○ |
Server 2003 | ○ |
○ |
○ |
○ |
○ |
○ |
Vista | × |
○ |
○ |
○ |
○ |
○ |
Server 2008 | × |
○ |
○ |
○ |
○ |
○ |
Server 2008 R2 | × |
× |
○ |
○ |
○ |
○ |
7 | × |
× |
○ |
○ |
○ |
○ |
各.NETバージョンと対応OSの関係(延長サポート終了日順) | ||||||
※Windows NT Workstation/Server 4.0は、まとめて「Windows NT 4.0」と表記。 ※Windows 2000 Professional/Serverは、まとめて「Windows 2000」と表記。 ※上記で「○」となっているものは、各OSのすべてのエディションに対応しているという意味ではなく、同OSの一部のエディションで非対応でも「○」としているので注意してほしい。例えば.NET 4.0は、Windows XP Media Center EditionやWindows XP Tablet PC Editionをサポートしていない(それ以外のWindows XPのエディションには対応している)。 ※一部、サービスパックの適用が必要なOSもあるが、この表では省略している。 ※.NET 4.0に関する対応OSの記述は、「.NET Framework 4 Beta 1のダウンロード・ページ」をベースに記載しているが、あくまでBeta 1におけるサポート対象のOSである。RTM版のサポート対象OSに関してはまだ決定されておらず、RTMの際に変更になる可能性があるので注意してほしい。 |
この表を見ると、まず.NET 1.0は最近のOSに対応しておらず、利用価値が低いことが分かる。さらに.NET 1.1は過去〜現在のOSに対しては非常に広範に対応しているものの、新しいWindows 7と次期Windows Server 2008 R2に対応しておらず、将来性がない。これらの理由から、.NET 1.0/1.1は選択肢から外してよいだろう。ちなみに、マイクロソフトは「.NET Framework 移行センター」というサイトを新設して、.NET 1.0/1.1からの移行を開発者に呼びかけている。
前述の推奨OSの結論から、今後1年はWindows 2000以降をサポートしている方が、より広範囲なユーザーをターゲットにできる。この理由から、.NET 3.0/3.5/4.0は選択肢から外れ、「現時点で最も効果的な.NETバージョンは.NET 2.0である」と筆者は考えている。
しかしながら、前述のとおり、「2010年7月13日」にWindows 2000の延長サポートが終了し、それを契機に(アンケート結果で「24.5%」と高い)Windows 2000のユーザー比率は次第に減っていくと思われる。従って、その数年後(例えば2012年ごろ)にはWindows 2000を対応OSから外していけるのではないかと筆者は予想している(Windows 2000はシンプルで安定したOSとして人気が高く、なかなかユーザー比率は減らないかもしれないが……)。
Windows 2000を対応OSから外した場合、.NET 3.0/3.5を飛び越えて.NET 4.0を採用することがベスト・チョイスになる可能性が高い。まだ.NET 4.0の開発生産性や使い勝手、安定性など、見えない部分が多すぎるので断言はできないが、対応OSは.NET 3.0/3.5とほとんど変わらず、しかもこれらの.NETバージョンよりも機能が豊富なためである。
話は脱線するが、ちなみに、VB6(Visual Basic 6)はWindows 7とWindows Server 2008 R2でもサポートされることがすでに発表されている。
■.NETのサポート期間に関する検討
続いて、.NETのサポート期間の観点から、「どの.NETバージョンを使うべきか」を考えていこう。
各.NETバージョンのサポート期間は、下の表のようになっている。
.NETバージョン | 製品発売日 | メインストリーム ・サポート終了日 |
延長サポート終了日 |
.NET 1.0 | 2002年4月15日 | 2007年07月10日 | 2009年07月14日 |
.NET 1.1 | 2003年7月10日 | 2008年10月14日 | 2013年10月8日 |
.NET 2.0 | 2006年2月17日 | 2011年04月12日 | 2016年04月12日 |
.NET 3.0 | 2007年1月23日 | 2012年04月10日 | 2017年04月11日 |
.NET 3.5 | 2007年11月20日 | 2013年04月9日 | 2018年04月10日 |
.NET 4.0 | 2010年前半 | 2015年前半 | 2020年前半 |
各.NETバージョンのサポート期間(製品発売日順) | |||
※.NET 3.5のサポート情報は「マイクロソフト プロダクト サポート ライフサイクル」のサイトから入手できなかったため、その対応開発環境であるVisual Studio 2008の内容を記載している(.NETランタイムのサポート期間が開発環境よりも先に切れることはないと想定)。 ※.NET 4.0のサポート情報はあくまで予想であり、何の確証もないことをお断りしておく。 |
この表を見ると、.NET 1.0のサポート期間はすでに切れており、絶対に使うべきではない。また、.NET 1.1のサポート期間は4年後に切れる予定なので、当分は使えそうである。
.NET 2.0/3.0/3.5/4.0は、約7/8/9/11年後にサポート期限切れとなり、いずれもかなり余裕がある。つまり、.NETのサポート期間の観点からも.NET 2.0以降を使う方がベターだといえる(最新版を使うのがベスト)。
前述した対応OSを見直すと、.NET 2.0と.NET 3.0/3.5には違いがあるが、.NET 3.0と.NET 3.5には違いがない。(.NET 3.0と比べて).NET 3.5は1年サポート期間が長いことを考えれば、よほど特別な理由がなければ、あえて.NET 3.0を選択する必要はないだろう。.NET 3.0はWindows Vistaに標準搭載されてはいるが、Vistaの利用者が少ないいまの状況では、大きなメリットがあるとはいえない。
■利用するVisual Studioに関する検討
最後に、「どのVisual Studioバージョンを使うべきか?」を考察していこう。
前述した「.NET開発者中心 開設アンケート」では、その1項目で「アプリケーション開発で現在どの開発ツールを使用しているか?」という質問もしている(複数回答可)。
その結果を集計し、各Visual Studioバージョンの選択率(以降、利用率)を計算してまとめたのが下の表である(※Visual Studio以外の項目は除外した)。この表の右端には、参考までに、それぞれのVisual Studioバージョンに対応する.NETバージョンも記述した。
Visual Studioバージョン | 利用率 | 対応.NETバージョン |
Visual Studio 6.0以前 | 17.8% | 非.NET |
Visual Studio .NET 2002 | 2.6% | .NET 1.0 |
Visual Studio .NET 2003 | 19.6% | .NET 1.1 |
Visual Studio 2005 | 37.2% | .NET 2.0 |
Visual Studio 2008 | 36.7% | .NET 2.0/3.0/3.5 |
Visual Studio 2010 | 未測定 | .NET 2.0/3.0/3.5/4.0 |
現在使用している開発ツール+対応.NETバージョン *出典 | ||
「.NET開発者中心 開設アンケート」の「上記アプリケーション開発で現在使用している開発ツールを、いくつでもお選びください。」(原文のまま)という質問に対する返答結果。 |
この表を見ると、Visual Studio 2005/2008の利用率がほぼ同じくらい高くなっている。このことから、多くの.NET開発者がすでに.NET 2.0以降を利用していることが分かる。
筆者は、Visual Studio 2005で.NET開発に必要十分な基本機能がそろったと考えているが、Silverlight開発など新技術開発が必要になると、やはり現最新版の開発環境であるVisual Studio 2008が必要になる。Visual Studio 2008であれば、.NETバージョンのマルチターゲット機能(=.NET 2.0/3.0/3.5を選択可能)があるので、Windows 2000をサポートするために.NET 2.0を採用することもできる。
これらを総合的に考えて、現時点ではVisual Studio 2008を利用するのがベストだと考えている。
しかしながら、この状況はすぐに変わるかもしれない。というのも、Visual Studio 2010が2010年前半には正式リリースされると見られ、Visual Studio 2010はマルチターゲット機能(=.NET 2.0/3.0/3.5/4.0を選択可能)を搭載しているため.NET 2.0開発が行えるからだ。
Visual Studio 2010はその使い勝手や開発生産性などが未知数だが、次々に開発環境を買い換えることができない状況であれば、いまは取りあえずVisual Studio 2010を待つ方がよいかもしれない。
■一般論として最も使える.NET/Visual Studioバージョンとは?
以上の内容をまとめると、.NETバージョンについては以下のような結論になる。
・.NET 1.0 → 絶対使わない方がいい
・.NET 1.1 → 使わない方がいい
・.NET 2.0 → 現時点ではベスト
・.NET 3.0 → 特別な理由があれば使ってもよい
・.NET 3.5 → 使ってもよい
・.NET 4.0 → 数年後にはベストになるかも
また、Visual Studioバージョンについては以下のような結論になる。
・Visual Studio .NET 2002 → 絶対使わない方がいい
・Visual Studio .NET 2003 → 使わない方がいい
・Visual Studio 2005 → 使ってもよい
・Visual Studio 2008 → 現時点ではベスト
・Visual Studio 2010 → 近い将来、ベストになるかも
現時点では、「Visual Studio 2008で.NET 2.0開発」が最も効果的な選択であろう。これが将来的(数年後?)には、「Visual Studio 2010で.NET 4.0開発」が最も効果的な選択になると予想される。
「オピニオン 一色 政彦」 |
更新履歴 | |
|
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|
- - PR -