問題タブ [clr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# と Java の主な違いは何ですか?
一つだけはっきりさせておきたい。これはどちらが優れているかという問題ではなく、その部分については他の人に議論を任せます。私はそれを気にしません。就職の面接でこの質問をされたので、もう少し学ぶと役に立つかもしれないと思いました.
これらは私が思いつくことができるものです:
- Java は「プラットフォーム非依存」です。最近ではMonoプロジェクトがあると言えますので、C# も考えられますが、それは少し誇張されていると思います。なんで?Java の新しいリリースが完了すると、それがサポートするすべてのプラットフォームで同時に利用できるようになりますが、Mono の実装にはまだ C# 3.0 の機能がいくつ欠けているのでしょうか? それとも、ここで比較するのは本当にCLRとJREのどちらなのでしょうか?
- Java はイベントとデリゲートをサポートしていません。私の知る限りでは。
- Java では、すべてのメソッドが仮想です
- 開発ツール: Visual Studio のようなツールはまだないと思います。特に、チーム エディションを使用したことがある場合は、私の言いたいことがわかるでしょう。
関連すると思われる他のものを追加してください。
更新: ふと思いついたのですが、Java にはクラスやメソッドなどのカスタム属性のようなものはありません。
c# - .NETプログラマーが優れたプログラマーであるために必要なCLRの最低限の知識は何ですか?
.NETの世界について話すとき、CLRは私たちが行うすべてのことに依存しています。.NETプログラマーが優れたプログラマーであるために必要なCLRの最低限の知識は何ですか?GC?、AppDomain?、Threads?、Processes?、Assembly / Fusion?
より多くの情報が見つかるトピックに関する記事、ブログ、本、またはその他へのリンクを投稿していただければ幸いです。
更新:いくつかのコメントから、私の質問が一部の人には明確ではないことに気づきました。私がCLRと言うとき、私は.NetFrameworkを意味するのではありません。.NETライブラリを記憶することではなく、実行環境(これらのライブラリが実行時に存在する)がどのように機能するかを理解することです。
私の質問は、「Microsoft®.NETのアプリケーションのデバッグ」の著者であるJohn Robbins(私がお勧めします)と、ここで引用したWintellectのJeffreyRichterに直接触発されました。導入の章の1つで、彼は「...すべての.NETプログラマーは、何がプローブされ、アセンブリがランタイムにどのようにロードされるかを知っている必要があります」と述べています。他にもそういうことがあると思いますか?
最終更新:「C#経由のCLR」の最初の5章を読んだ後、これを読んでいる人には誰にでも言わなければなりません。まだ読んでいない方は、この本を読んでください!
c# - C# と CLR 機能の混同、C# 機能として厳密に説明するに値する機能はどれですか?
C# について少し書く必要がありますが、一般的には簡単なことでしょうか。いいえ!
さまざまなインターネット リソースや書籍を検索しましたが、得られたのは頭痛の種です。たとえば、ガベージ コレクターの一部の情報源は、これは C# の機能であり、CLR がこの機能を取得し、C# は他のすべての .NET 言語と共にデフォルトで取得したと述べています。もちろん、私の CLR への投票ですが、明示的なコード変換を避けるなど、混乱を招くものが他にもたくさんあります。多分私は悪い本やリソースを持っている...だから、誰かがC#について明確に述べられている場所を提案するだろう
2 つ目は、C# 構文の起源です。ここでも選択肢が少なく、明確なものはありません。他の作成者による他の言語の組み合わせです。C、c++、Java は問題ありませんが、VB6 と Delphi には疑問があります。また、これらの言語に由来する機能は c# と混同されていますが、実際には C# 機能なのか CLR 機能なのかは明確ではありません
MTH
stored-procedures - 大量の XML を CLR ストアド プロシージャに転送する
XMLデータを文字列の形式で取得し、そのデータを使用して特定のコマンドなどを実行するCLRストアドプロシージャを作成しています.
私が直面している問題は、4000 文字を超える XML を送信しようとすると、多くの終了タグが欠落しているため XmlDocument オブジェクトが XML を読み込めないため、エラーが発生することです。 4000 文字を超えるとテキストが切り捨てられます。
この問題は、nvarchar(max) や ntext のようなものが必要だと考えているときに、文字列パラメーターを nvarchar(4000) にマッピングする CLR ストアド プロシージャに要約されると思います。
残念ながら、.NET 型から ntext へのマッピングを見つけることができず、文字列型は自動的に nvarchar(max) になります。
私の問題の解決策を知っている人はいますか?
助けてくれてありがとう
visual-studio-2008 - /clrコンパイラオプションを使用して構築されたMFC-CString/System::String変換
VS6.0からVS2008に移行したばかりのかなり大きなMFCアプリケーションがあります。これはかなり骨の折れるプロセスでしたが、今度は利用可能なマネージコードオプションを調べたいと思います。/ clrスイッチを使用してプロジェクトを正常にビルドできました。これにより、管理対象タイプにアクセスできるようになります。
System::StringとCStringの間の変換が自動かどうか知りたいのですが。私が見つけたMSDNのドキュメントは、この変換が自動ではないことを示唆していますが、これが当てはまるとは思いませんでした。以下の3つの例はすべて機能し、1と2の両方がMSDNによって文書化されています。私が興味を持っているのは例3です。これも機能しますが、理由はわかりません。CurrentDirectoryプロパティは、マネージヒープString ^にポインタを返しますが、なぜそれをCStringに割り当てることができるのですか?例3は正確に何をしていて、メモリ管理にどのような影響がありますか?
例1)
例2)
例3)
.net - CLR は、ガベージ コレクターをサーバー モードで実行する必要があるかどうかを自動的に検出しますか?
前の質問から、CLR にはガベージ コレクター用のワークステーション モードとサーバー モードがあることがわかりました。gcServer
これらは、要素を使用して構成から設定できることを知っています。
これを指定しない場合、CLR はマジックを使用して、ガベージ コレクターをサーバー モードで実行するかどうかを決定しますか? CPU 数、またはメモリ プロファイリングに基づくものでしょうか。
.net - Visual Studio/CLR が「悪い」実行可能ファイルを生成するのはなぜですか?
これは私が最近抱え始めた奇妙な問題です。私のチームは COTS アプリケーションを開発しており、数人がコードを担当しています。数週間前、デバッグ (およびコンパイル済みの EXE の実行) を試みたときに、次のエラー メッセージが表示されました。
「Windows は、指定されたデバイス、パス、またはファイルにアクセスできません。アイテムにアクセスするための適切な権限がない可能性があります。」
結局、このコード スニペットをリファクタリングする必要がありました。
これに:
これにより、VS は実際に機能する EXE を生成することができました。理由はよくわかりませんが、うまくいきました。どのアセンブリに問題があるかを特定するために、peverify ユーティリティを使用しました。
昨日約25個のファイルが更新された後、別のコードブランチで同じ問題が発生しました。これは追跡するのが楽しくないので、誰かがなぜこれが起こっているのかについての洞察を提供してくれることを望んでいました.
peverify は、すべてのアセンブリが正しいことを示していますが、System.Windows.Forms.dll に対して 90 以上のエラーを吐き出しています!
誰にもヒントはありますか?
c# - ファイルが .NET アセンブリかどうかの確認
バイナリ構造を調べて、PEFile が .NET アセンブリであるかどうかを確認する方法をいくつか見てきました。
それは複数のファイルをテストする最速の方法ですか? 各ファイルを (たとえばAssembly.ReflectionOnlyLoadを介して) ファイルをロードしようとすると、ファイルの種類の情報がロードされるため、かなり遅くなる可能性があると思います。
注: プログラムでファイルをチェックする方法を探しています。
memory - WinDbg から .NET ガベージ コレクションを実行できますか?
管理されたプロセスが大量のメモリを使用している理由を調べています。GC.Collect(3)
実際のメモリ割り当てに集中できるように、WinDbgから実行する方法はありますか?
memory - .NET アプリケーションの妥当なメモリ量はどれくらいですか?
マネージド アプリの 1 つが 20 ~ 25Mb の RAM を使用しているという苦情がいくつかありました。私は通常、メモリは安いと反論します。それを乗り越えてください。
これは、Windows フォーム アプリにとって合理的ですか?