C ++で.netアプリをプログラミングすることをお勧めしますか


9

私が理解できることから、C#は.NETアプリをコーディングする際の事実上の言語です。C ++で.NETアプリ(ASP.NET、WinPhone 7、GUIなど)をプログラミングすることをお勧めしますか?この道を進むことを選択した場合の落とし穴と欠点は何ですか?

共有いただきありがとうございます。


3
C ++ / CLIは、混合モードアセンブリを生成するため、他の.NET言語とは異なります(これにより、可能な用途が大幅に制限されます)。アンマネージC ++コードベースとの複雑な相互運用性が本当に必要でない限り、CLI準拠の言語のみを使用することをお勧めします。
SKロジック

回答:


16

C#/。Netに移行するまでC ++を使用していた長いプログラマーとして、.Net開発にC ++を使用しないことをお勧めします。実際には、実際のC ++を使用して.Netでプログラミングすることはできませんが、C ++ / CLIと呼ばれるMicrosoftの嫌悪感は、ISO C ++にはない醜さを伴います。読みやすさの観点からだけ言えば、C ++ / CLIはまったく考慮すべきではありません。_gc、gcnewなどを使用しますか。
また、実用的な目的では、C ++ / CLIを使用したコードサンプル、チュートリアル、ブログなどは多くありません。また、プログラマーがC ++ / CLIで作業することを知っているか、または進んで作業することもありません。.Net開発の自然言語ではありません。C#/ VB.Net / F#は、C ++ / CLIと比較して、新機能によりはるかに急速に変化し続けます。


マネージクラスを使用したC ++は悲惨でしたが、C ++ / CLIの方がはるかに優れています。C ++プログラマがC ++ / CLIを学ぶのはそれほど難しいことではないので、「自然言語」ビットは購入しません。少なくともそれは私には無理でした。コーディングをコードサンプルに大きく依存している場合を除きます。マイクロソフトは、C ++ / CLI標準が新しいC ++ 0x標準と競合することを決して意図していません。それらは2つの異なるもののためのものです。C ++ / CLIが3〜4年前から存在し、新しいISO標準がリリースされる準備ができていることを考えると、MSにとってそれは合理的なことだったと思います。
DPD

2
C ++ / CLIはその目的を十分に果たします。管理された世界と管理されていない世界の間の小さな相互運用レイヤー用に設計されています。それ以外の目的で使用するのは賢明ではありません。
SKロジック

さて、私は現在、それを新しいプロジェクトに使用しています。相互運用性ではなく、ネイティブライブラリを最初からラップしないでください。私が持っていた唯一の問題は、C ++ / CLI構文とDot Netフレームワークに慣れるために必要な最初の時間でした。さて、誰もが自分自身の経験を持っているので、それぞれ自分自身の経験を持っています:-)
DPD

2
@DPD-Visual Studio 2010でASP.NET(MVC)、LINQ、EF、ODATAなどのC ++ / CLIプロジェクトタイプが表示されません。そのため、上記のことを行うことができたとしても、ツールなしでは難しいでしょう。サポート、ドキュメンテーションの欠如などなので、私はC ++ / CLIは.Netの世界では一流の市民ではないと私は固く信じています。
softveda '19

12

.Netの本質は、新しい言語を何度も学習することなく、使い慣れた言語を使用してDotNetプラットフォームを使用できることです。これを見る1つの方法は、Javaピラミッドの反転としてです。Javaは、「単一言語、単一実行可能ファイル(IL)-多くのOS」として説明できます。ドットネットは、「多くの言語、1つの実行可能ファイル、1つのOS」です(もちろん、Monoがあるので、1つのOSのビットは正しくありませんが、Microsoftが考えていたものではないと思います:-P)。

はい、C#はDotNetの言語であることを意図していましたが、「唯一」ではありませんでした。マイクロソフトはおそらく、すぐにではなくても、長期的にC ++プログラマーがC#に移行することを望んでいたでしょう。しかし、それは起こっていないようです。C ++は依然として3番目に人気のある言語です。言語に関する親しみやすさと、アプリケーションをC ++からC#に移植するために必要な努力により、ほとんどの開発者は気が進まなくなりました。結局、壊れていないものを修正するのはなぜですか?マイクロソフトがC ++ / CLIを思いついたのはそのためです。これは、新しい言語を学ぶ必要なしにDotNetワゴンでC ++プログラマーを獲得する素晴らしい方法です。C ++ / CLIに慣れるのにほとんど時間がかかりませんでした。私が見た唯一の欠点は、マネージクラスの新しいポインター表記が、C ++のポインターについて理解が不十分なユーザーを混乱させる可能性があることでした。でも私には影響しなかった。


2
C ++ / CLIの主な欠点は、標準のC ++とはかなり異なることです。これは、一部のC ++構成体がCLIにまったく転送されないためです。SK-logicは、.NETとシームレスに動作しないとも主張しているため、回避することをお勧めします。
David Thornley、2011

9

メリットが何なのかわかりません。C ++の主な利点は、パフォーマンスが重要な低レベルの自己完結型/ネイティブコードです。管理された環境とそれがもたらすすべての手荷物を一度使用すると、管理された環境用に設計された、より現代的な言語が望ましくない理由がわかりません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.