タグ

ブックマーク / ufcpp.net (3)

  • .NET Global Tools

    .NET Core 2.1 の Preview 1 が公開されたそうで。 以前から、daily build の不安定な奴で良ければ試せていたんですが、オフィシャルにアナウンスがあったということは、作業が一区切りしたということでしょう。 実際、今回の主題の Global Tools は、以前、daily build で試したときには全然動いていませんでした。 ということで、今日、やっと動いたので試してみたという話。 .NET Core 2.1 の、dotnet コマンドの新機能の1つです。 NPM global toolsにインスパイアされて作ったよ、というもの。 要するに、dotnetコマンドを使って、NuGet 越しにインストール可能なコマンドラインツールを提供するための仕組み。 試しに作ってみたものがこちら: DotNetGlobalTools ツールの作り方 csproj の Pro

    .NET Global Tools
  • ピックアップRoslyn 2/23: Shapes and Extensions

    久しぶりに面白そうな話が。 Exploration: Shapes and Extensions #164 2つほど原案があって、組み合わせて結構よさげな機能案ができたので詳細を詰めていきたいという感じの話。 元になっているのは以下の2つ。 Extension everything メソッドだけじゃなくて、プロパティとかインデクサーとかあらゆるものを「拡張」定義したい 静的メソッドも(インスタンスじゃなくて型に対して)「拡張」したい インターフェイスの後刺しとかもしたい Type Classes Haskellの型クラス的なもの、 .NET ランタイムに手を入れなくてもちょっとした「値型ジェネリック」を使ったトリックで実現できそうという話 MS Researchの人と、インターンで来た人の成果っぽい 型クラスってのはどういうのかというと: 静的メソッドやコンストラクターを含めて、その型が持

    ピックアップRoslyn 2/23: Shapes and Extensions
  • [雑記] 動的コード生成のパフォーマンス(C# によるプログラミング入門)

    概要 .NET Framework のバージョンが上がるたびに色々と追加され、 今や、動的コード生成にもさまざまなやり方が。 ということで、並べて比較してみたいと思います。 「動的 = リフレクション = むちゃくちゃ遅い」というイメージをもたれる方も多いと思いますが、 実際のところ、1度生成したコードをキャッシュしておくなどの工夫をすれば、意外と許容範囲なパフォーマンスが得られます。 (GUI の描画部分やネットワーク通信部分の遅延と比べれば、演算部分の数倍程度の差は取るに足らない場合が多く、 過剰に気にする必要はありません(もちろん、状況次第)。) 比較コード含めたソースコード一式: DynamicPerformance.zip ポイント 毎回リフレクションを呼び出すのはやっぱりかなり(2~3桁)遅い。 キャッシュ機構を使えば、静的なコードの数倍程度までは速くできる。 C# 4.0 の

    [雑記] 動的コード生成のパフォーマンス(C# によるプログラミング入門)
  • 1