2013-03-29 5 views
5

私は下に好奇心旺盛コメントに気づいたときにthis questionを読んでいた。VB.NetとC#を同じソリューションで混在させるのはなぜお勧めしませんか?

問題が何であるかわからない。(私はそうすることをお勧めしませんが)あなたは1つの溶液中でVB.NETとC#プロジェクトを使用することができます。

従来のVB.Netコードがあり、新しいコードがC#で書かれているので、私はこれをかなり行います。これは本当に推奨されていませんか?何故なの?

+3

Mitch Wheatになぜ彼がそれをお勧めしないのか聞いてください。 –

+0

VB.NETは一般的に推奨されていません。 let p = vb。= F Q::= T のp && Q:ネットをq = C#が推奨され Pましょう お勧めします= F – Moho

+5

@Mohoを私はC#の男だ - しかし、本当にVBをお勧めしない理由はありません。一般的なネット。それは素晴らしい言語であり、C#よりも良いことをいくつか行います。 –

答えて

10

これを回避する本当の理由はありません.1つの「解決策」で2つの言語を持つことから複雑さを増すこと以外にはありません。

シナリオ(従来の製品を使用していますが、新しい機能を追加する)は、両方の言語を単一のソリューションで使用する正当な理由です。

0

人の選択肢の問題です。両方の言語に慣れていれば、必ず同じソリューションでそれらを使用できます。

ソリューション内で単一の言語を使用すると、簡単に保守可能なように見えます。従って好ましい。

0

ソリューション内のコードを混在させると、本当に面倒な本物の情報がすぐに得られます。どこから呼び出すのかは決して明確ではありません。別のソリューションで開発すると、プロジェクトの追跡が容易になり、プロジェクト内の言語を混乱させないようにします。

7

唯一の理由は一貫性です。ほとんどの開発者は、アプリケーションの作業中に単一の言語を扱うことを好みます。単一の言語を持つことは、開発者がVB.NETとC#の両方を知っているのではなく、1つの言語だけを知る必要があることを意味します。

レガシーVB.NETとC#を混在させる必要がある場合は、そうしなければならない理由はありません。

+0

私はGUIがvbnetで書かれた2つのプロジェクトとC#のサーバ側で作業しています。それはコンテキストを切り替えるのに役立ちます - 「gui/vbでビジネスロジックを書いてはいけません」や「私はサーバ上にあり、このマシンを他の人と共有しています」など。 Webで作業するときは、サーバー上のC#およびクライアント上のJavascriptと、「レイアウト」用のHTMLと同じことを言います。 – LosManos

3

「構築しているものに最適なツールを使用する」ことの問題です。 C#とVB の中に混ぜることは、プロジェクトを推奨しません(明らかに "それはコンパイルできません"という理由で)。しかし、開発チームがより速く動作できると感じる場合は、VBで古いコードを書き続ける必要はありません。 C#を使用してよりメンテナンス可能なファッション。

これまでの数ヶ月間私のオフィスでこれを行ってきましたが(同じようなレガシーコードの状況で)、まだ大きな問題に遭遇していません。私たち全員がより快適に感じる言語を扱うことから、信じられないほどの恩恵を受けました。

タスク切り替えに関する詳細here。私は本当に、C#で私たちの快適さのレベルから毎日見ているメリットが、時にはレガシープールに戻らなければならない場合のコストを上回ると感じています。

+2

私は、2つの言語間のコンテキスト切り替えに時間がかかることに同意しますが、言及されたようなレガシーシステムの場合、一般的にすべての時間をかけてレガシーを得るのは意味がありませんシステムをC#に変換します。レガシーVB.Netは、新しいC#と並んで、実際にはこのような場合にはより良いソリューションのように聞こえます。 –

0

なぜあなたはそれをしたいですか?既存のコードを使用する場合は、そのコードを独自のコンポーネントに保存します。新しいコードと混用しないでください。 「クリーンコード」を宣伝しないため、推奨しません。それは、あなたが読むことと維持することが困難な解決策を持つように導くことができます。