ホーム > .NET Framework 移行センター > 移行を始める前に
.NET Framework 移行センター

移行を始める前に

アプリケーションの移行を始める前に、様々な要素を検討する必要があります。ここではアプリケーションの移行を実施するに当たり検討すべき要素とプロセスを挙げ、それに対して最新の .NET Framework が提供する解決策を紹介します。

※注 : 本ページは移行に着目しています。アプリケーションの機能を一新して作り変える場合には適合しません。

移行を始める前に検討する要素と検討プロセス

アプリケーションの移行を検討する際には大きく分けて下記の 4 つのステップがあります。「前提条件の明確化」、「手段の検討」、「メトリクスの定義」、「結果のシミュレーション」これらのステップを踏んでいくことで、移行にあたっての判断をより的確に行うことができるようになります。

前提条件の明確化

移行の目的の明確化

アプリケーションの移行を検討するに当たり、なぜ移行の必要があるのかを明確にし、それを常に意識しておく必要があります。

アプリケーションの移行を検討するには何らかの理由があります。例えば、ユーザーの増加によるパフォーマンスの劣化、プラットフォームを含むサポート期間の終了、ビジネス要求の変化に伴う機能改善など、非常に多くの理由が考えられます。

移行の計画から実行まではこの目的を実現するための内容でなければなりません。

移行時の制約の明確化

アプリケーションの移行の際に、様々な制約が存在します。期間や予算はもちろんのこと、開発チームのスキルや技術的制約、また、アプリケーションを利用するユーザー視点でのビジネス的制約も考えられます。

これらの制約を事前に明確にしておくことで、移行の際に取りうる手段、選択可能な技術、移行プロジェクトの進め方をより的確に判断することが可能になります。

移行することのリスクの明確化

移行手段を検討する前に移行することのリスクを明確化します。

移行手段を検討する前に移行することのリスクを明確化する意味は、そのリスクが発生した場合のインパクトを事前に予測することで、検討対象の手段や技術に対してそれぞれのリスクに対してどの程度対処可能かといった判断基準を提供することができるようになるためです。

手段の検討

移行の範囲の検討

アプリケーションの移行の範囲と一言で言っても切り口としては複数あります。

例えば、全社レベルでの移行なのか、部門単位の移行なのかといった組織的範囲で移行の範囲を決める場合があります。また、システムレベルでシステム全体を移行するのか、一部の機能を移行するのかといった機能の範囲を決める場合、あるいは、アプリケーションだけなのか、OS や データベースも含めての移行なのかといったスタックの範囲を決める場合といったように様々な切り口で移行の範囲を検討する必要があります。

この際に、事前に検討した目的、制約、リスクを考慮することである程度検討すべき範囲を絞り込むことができます。

移行の方法の検討

アプリケーションの移行方法を検討します。移行の範囲は空間軸だったのに対して、移行の方法は時間軸での検討を行います。

新旧のアプリケーションを一括で入れ替えるのか、段階的に入れ替えていくのか、または並行で利用しながら入れ替えていくのかという選択が必要となります。また、段階的に移行を行う場合は先ほどの範囲を掛け合わせて考慮してどの範囲からどのように移行していくのかを考慮する必要があります。

ここでは主に移行の際の制約とリスクを考慮して検討する必要があります。

採用技術の検討

アプリケーション移行の範囲と方法の検討と合わせて、移行先のアプリケーションを実現する技術を選択しなければなりません。これは、どのプラットフォーム技術を選択するかという検討はもちろんのこと、クライアント アプリケーションにするのか、Web アプリケーションにするのかといったアプリケーション形態の選択もここで考慮する必要があります。

採用技術を検討する段階では、目的、制約、リスクのすべての観点から検討する必要があります。

メトリクスの定義

移行のゴール設定

移行の目的に対して、移行の手段 (範囲、方法、採用技術) が決定されると、数値的に移行後のアプリケーション (もしくはシステム自体) が実現すべきゴールを設定することができます。この数値は移行後のアプリケーション テストの目標値となり、品質要件の数値化に近いものとなります。

結果のシミュレーション

実現可能性の評価

移行の手段と目指すべきゴールが決定すると、実際にそれが実現可能であるかどうかを評価する必要があります。選択した手段とゴールが定められた制約の範囲内で実現できるかどうかを再度確認します。これは移行プロジェクトとしての妥当性、技術的な妥当性など多面的な評価が必要となります。

投資対効果の評価

移行の検討の最終段階として、実際に移行すべきかどうかを確認する必要があります。

この段階になると、移行にかかるコストの概要を把握することができます。実際にかかるコストを試算し、当初の目的を達成した場合の効果を比較して、実際に移行すべきかどうかの判断をします。この際、移行にかかるコストに移行した場合に発生するリスクをコスト化して含める必要があります。

移行しないことのリスクの明確化

実際に移行すべきかどうかを判断する場合、投資対効果の面では移行すべきでないという判断であったとしても、全体最適の観点からはその判断が正しくない場合があります。

そこで、投資対効果の面で移行しないと判断した場合は、移行しないことのリスクを明確化する必要があります。移行を取りやめることで抑えた投資コストを上回るリスクが発生する可能性を考慮して初めて移行すべきかどうかの判断が可能となります。

また、この段階でもやはり移行すべきでないという判断をした場合、再度 「手段の検討」 に戻って別の手段を検討することもできます。

最新の .NET Framework が提供する解決策

これらの検討の中で、.NET Framework で稼働しているアプリケーションを移行する場合は、やはり最新の .NET Framework を採用するのが適切な選択肢となりえる可能性が最も高いといえます。実際に 最新の.NET Framework を採用するかどうかの検討段階となる「手段の検討」における問題解決の例を紹介します。

手段の検討

移行の範囲の検討

最新の .NET Framework では高い接続性と相互運用性を実現し、様々な切り口での範囲の設定に対応することができます。

例えば、スマート クライアントのようにクライアント、サーバー間の連携に Web サービスを用いている場合などは、ユーザーの操作性を高めるため、Windows フォームで作成されたクライアント部分を WPF を使ったクライアントに移行し、サーバーサイドのアプリケーションを以前のバージョンの .NET Framework で稼働するアプリケーションのまま維持することも可能です。

また、システムの一部を移行する場合でも、従来のアプリケーションとの連携を容易に実現する手段を提供しています。システム連携を実現する WCF というテクノロジを活用することで標準的な通信手段やデータ フォーマットを使用して、以前のバージョンの .NET Framework 上で稼働するアプリケーションだけではなく、Java や 他のプラットフォームなどとの高い相互運用性を実現することが可能です。

移行の方法の検討

新旧のアプリケーションの段階移行や並行利用といった移行方法を選択する場合、新旧のアプリケーションの共存方法を考慮する必要があります。

.NET Framework ではサイド バイ サイドという仕組みをもち、複数のランタイムを同一環境で実行することができます。これにより、旧バージョンのアプリケーションを実行しながら、新しいバージョンのアプリケーションを実行することも可能です。

また、.NET Framework 以前で発生していた DLL HELL と呼ばれるライブラリーの競合問題を解決する仕組みを提供しています。旧バージョンのアプリケーションで使用している共有ライブラリーに影響を与えることなく、新しいバージョンの共有ライブラリーをインストールすることが可能です。

採用技術の検討

最新の .NET Framework では従来から提供しているシンプルなクライアント アプリケーションや Web アプリケーションに加えて、より表現力のあるリッチなクライアント アプリケーション や AJAX 対応の Web アプリケーション、Office アプリケーションといった様々なアプリケーション形態に対応しています。また、Silverlight や .NET Compact Framework など .NET Framework のサブセットとなるプラットフォームを提供し、.NET Framework のスキルを活用して、RIA やモバイル アプリケーションなどより広いアプリケーション形態に対応することも可能です。これらの多様なアプリケーション形態に対して、一貫したプログラミングモデルを提供することで、開発者は既存のスキルで広い選択肢を選択することが可能になります。

また、最新バージョンの .NET Framework は 旧バージョンの .NET Framework との高い下位互換性を持ち、旧バージョンのアプリケーションのコードを活用しつつ、最新バージョンの .NET Framework 上への移行を比較的容易に実現することができます。同様に、開発チームが持つ以前のバージョンの .NET Framework の知識やスキルを 最新バージョンの .NET Framework 上での開発でも活用することができ、開発チームの知識、スキル不足のリスクを最小限に抑えることが可能です。

このように、.NET Framework で稼働しているアプリケーションを移行する場合には、最新の .NET Framework を採用することが移行の成功への近道となります。ぜひ、最新の .NET Framework を活用して既存のアプリケーションの価値をさらに高めてください。

▲ Top of Page