2009-09-04 12 views
3

唯一のエンタープライズアプリケーションスイートは、C#2.0 on .Net 3.0を使用して過去3年間に開発されました。私たちはwinformsとWCFを大きく使います。開発ツールはVS 2005 Pro/TFS 2005/Resharper 3.1です。C#2.0からC#​​3.0および.Net 3.5(おそらく.net 4.0)の既存コードの移植

テクニカルリードとして、私は明らかにC#3.0および.Net 3.5への移行のメリットを理解しています。しかし、私はC#3.0、.Net 3.5、VS 2008、TFS 2008への移行を経営陣に説得したいと思います。彼らは明らかに生産性、コスト、品質などに興味があります。場合。

これは、来年半ばまでは起こり得ないことを考えれば、VS 2010と.Net 4.0が出るまで保留する方が良い。

答えて

12

「我々は新しい技術にアップグレードしていない場合、良い開発者を雇うことがより困難になります、そして我々はすでに持っている人は、おそらく私を含め...すぐに逃げることになる...」

8

されていますそこには.NET 4.0には多くの利点があります。 C#4自体には多くのという新機能はありませんが、C#3の機能を十分に活用できるとは思いますが.NET 4.0にはいくつかの非常にクールなもの(特にCode ContractsとParallel Extensions)がありますが、が使用するものを実際に見てください。

管理者がフレームワークのバージョンを変更することについて緊張している場合は、VS2008にアップグレードしてC#3を使用することもできますが、.NET 2.0を対象とします。 (ほとんどのC#3機能は.NET 2.0をターゲットにしても機能します)LINQBridgeを使用すると、LINQ to Objectsを使用することもできます。これは非常に有益なIMOです。もちろん

あなたはは、.NET 3.5にをアップグレードすることができれば、あなたはなど、LINQの良さのためのより多くの機会を明確に得るでしょう

+0

+1。 – strager

0

あなたは、LINQを取得するために、C#2.0からアップグレードする必要があります。この技術は、データベースのクエリだけでなく、一般的な開発のためにも非常に強力です。

アップグレードは少なくとも(理論的には)簡単に行う必要があります。再コンパイルし、廃止された呼び出しに関する警告に注意を払います。

1
  1. テクノロジに関するMicrosoftの有効期限をまとめ、現在のソリューションセットがサポートされる期間を把握します。
  2. Linq-to-Entitiesのようなものを見てください。現在ORMをお持ちでない場合は、これは非常に時間を節約します。
  3. 複数バージョンを移動するよりも、バージョンごとにアップグレードする方が常に簡単です。私はこれを時間をかけて学んだ。ステップバイステップのアップグレードはほとんどいつも苦痛だった。複数のバージョンにアップグレードしたアップグレードでは、余分なコードとテストが大幅に増えました。
  4. 「あなたのリストを持っている」の上位5つの機能を特定します。それらのうちどれだけが新しいバージョンによってのみ提供されるか、より良い方法で提供されますか?
  5. 出血しないように押し込まないでください。新興テクノロジーの最先端にはコストがかかります。そのコストは、しばしばビジネスの立場から考えると非常に困難です。
  6. とにかく変更コードがあります。次のX機能の変更のコストを計算します。それをリリースにロールしてみてください。 「NNの余分な時間だけでXYZのリリースの一部としてこれを行うことができ、今後6ヶ月間でMM時間を節約できます」
  7. ウェブ上でコードのロールオーバーに関する統計情報を探します。ほとんどのカスタムシステムは、ビジネスプロセスが変化するにつれて徐々に「書き直される」。しかし、経営陣は、ソフトウェアを「一度書いて、永遠に使う」努力と見なす傾向があります。彼らは、これはマイナーな変更の数十の後に出てくるだけで何でもとは対照的に、計画的な方法で彼らのツールの未来を導くそれらアップグレードプロセスの制御を取って、およびそれらであることを理解していることを確認します。

編集:これはすべて実際にコストの正当性があることを前提としています。

0

私が今までエンタープライズアプリケーションと説得力のある経営をアップグレードしようとしたときに実行した最大の問題はあるため導入コストでした。 .NET 3.5にアップグレードすると、すべてのクライアントが3.5フレームワークを取得する必要があります。エンドユーザーの視聴者に応じて、これは大きな問題になる可能性があります。これは、私たちがそれを投げようとするたびに経営陣を支える要素でした。言語機能、フレームワーク機能、その他の利点/コストは、実際にはそれほど重要ではありませんでした。展開コストは耳に響き続けました。あなたは導入コストを最小限にすることができた場合(つまりインストール次または何かに3.5フレームワークをロールかもしれません)、あなたはおそらく生産性の利点ことを示すことができるでしょう遠くコストをoutweight。そうでなければ、私自身が見つけた状況にいるかもしれません。

1

C#2.0からC#​​3.0に移行することによって得られた生産性は、特定のプロジェクトに対して簡単に正当化できるとは思いません。新しいバージョンの言語への移行を正当化しようとするのではなく、なぜあなたがそうしないのか考えてみてください。

  1. グループはいつまでもVS2005に滞在したいのですか、いつの日かVS2008に移行する予定ですか?彼らがVS2005に滞在したいのであれば、そのコンパイラが拡張サポートされていることを考えてください。まもなくサポートされず、VC6に似たセキュリティアップデートを取得することさえできません。さらに、MicrosoftのSDL(5.0)の新バージョンでは、VS2008以降の使用が必要です。

  2. グループが最終的にVS2008に移行する予定がある場合は、混在モード環境で作業できるかどうかを判断します。これは、コードベースが大きい場合に効果的に機能するので、新しいコンポーネントは新しいツールで構築されます。

  3. チーム/プロジェクトがVS2008に移行したら、C#2.0のサブセットに固執するのではなく、C#3.0の機能を使用しても問題にはなりません。

  4. VSTSの場合は、新しいプロジェクトでVSTSを使用することをお勧めします。 LINQBridgeため

関連する問題