Category Archives: .NET

F#の方向性の話

TL;DR We’ve moved the F# GitHub repository from microsoft/visualfsharp to dotnet/fsharp, as specified in the corresponding RFC. F# has a somewhat strange history in its name and brand. If we roll back the clocks to the year 2015, F# sort of had two identities.

情報源: The F# development home on GitHub is now dotnet/fsharp | .NET Blog

微妙な二系統の開発は止め、.NET Coreベースのオープンソースプロジェクトへの集約という事らしいです。

ReSharper Ultimate 2018.3.5とRider 2018.3.5リリース

Even after we roll out a new major version, older releases may still benefit from bugfix updates. This is why today we’re making available ReSharper Ultimate 2018.3.5 and Rider 2018.3.5. ReSharper Ultimate 2018.3.5 fixes a high memory usage issue on … Continue reading →

情報源: ReSharper Ultimate 2018.3.5 and Rider 2018.3.5 Are Released! – .NET Tools Blog.NET Tools Blog

バグ修正です。詳細は情報源へ。

Create Interactive .NET Documentation with Try .NET

Try .NET is an interactive documentation generator for .NET Core. Use the Try .NET global tool to create interactive markdown experiences.

情報源: Create Interactive .NET Documentation with Try .NET | .NET Blog

Memo.

C# 8のinterfaceのデフォルト実装

Default implementations in interfaces With last week’s posts Announcing .NET Core 3.0 Preview 5 and Visual Studio 2019 version 16.1 Preview 3, the last major feature of C# 8.0 is now available in preview. A big impediment to software evolution has been the fact that you couldn’t add new members to a public interface.

情報源: Default implementations in interfaces | .NET Blog

C# 8から導入されるinterfaceのデフォルト実装についての記事。

以下はテキトー訳

インタフェースに、そのメンバーの実装を記述できるようになります。実装したクラスもしくは構造体がそのメンバの実装を提供しなくてもエラーにはならず、interfaceで記述されたそのメンバのコードが実行されます。公開済みライブラリのインタフェースにメンバを追加する必要が出てきたときに、既存のそのインタフェースを実装した型に影響を与えることなく、追加することができます。

次のようなインタフェースがあるとします。

interface ILogger
{
    void Log(LogLevel level, string message);
}

既存のクラスは、恐らく所有者が異なる別のコードベースにあり、次のようにILoggerを実装しています。

class ConsoleLogger : ILogger
{
    public void Log(LogLevel level, string message) { ... }
}

次のようにILoggerインタフェースにLogメソッドのオーバーロードを追加したいと思います。デフォルトの実装、つまりメソッド本体を提供することで、既存の実装を壊すことなく実行できます。

interface ILogger
{
    void Log(LogLevel level, string message);
    void Log(Exception ex) => Log(LogLevel.Error, ex.ToString());
}

これは、ConsoleLoggerが必要とするインタフェース規約を満たしています。そのインスタンスが、インタフェースに変換されて、新しいLogのオーバーロードが呼ばれた場合には、インタフェースで記述したデフォルト実装が呼び出されます。

public static void LogException(ConsoleLogger logger, Exception ex)
{
    ILogger ilogger = logger; // Converting to interface
    ilogger.Log(ex);          // Calling new Log overload
}

もちろん、新しいメンバーについて知っている実装クラスは、デフォルト実装が存在するインタフェースメンバーに対しても、独自の方法でそれを実装する事ができます。

以下にチュートリアルが用意されています。

Safely update interfaces using default interface members in C# | Microsoft Docs

.NET Conf 2019の日程が決まった

Join the .NET Conf 2019 free virtual event September 23-25 to learn about the newest developments across the .NET platform, open source, and dev tools. Mark your calendar!

情報源: .NET Conf 2019

日本時間では9/24 1:00AMからとなっています。「.NET Core 3.0 launches at .NET Conf!」とあるので、そのまんまのタイミングだと思われます。

Build 2019 関連リンクまとめ

最終更新: 2019/05/09 7:47

全体的な話

Visual Studio

.NET関連

WSL・Console関連

参考

Hyper-V Light weight VMの話
MyIgnite – OS internals: Technical deep-dive into operating system innovations

その他

Rider 2019.1リリース

Today we are thrilled to introduce this year’s first major update for Rider – please welcome Rider 2019.1! With this release, Rider 2019.1 gets a new pack of features and improvements: WinForms designer. The long-awaited WinForms designer helps you create, … Continue reading →

情報源: Rider 2019.1 Has Arrived! – .NET Tools Blog.NET Tools Blog

  • WinFormsのデザイナーが搭載されました。プロジェクトテンプレートも用意されます。
  • エディット&コンティニュー
  • ユニットテストカバレッジ、継続的テストの機能向上と、Linux, MacOSでの.NET Coreサポート。
  • Razorを含むHTMLの編集がWeb Stormベースのエンジンに改められました。
  • IL Viewer Tool
  • Unityサポートの改善
    など。

詳細とダウンロードは情報源をご確認ください。

ReSharper Ultimate 2019.1リリース

This year’s first major release of ReSharper Ultimate is here. Download ReSharper Ultimate 2019.1 today! In addition to 400+ fixes and improvements, ReSharper 2019.1 comes with: Initial C# 8 support. ReSharper supports new language features, such as ranges and index … Continue reading →

情報源: Welcome ReSharper Ultimate 2019.1! – .NET Tools Blog.NET Tools Blog

  • C# 8のサポート
  • VS 2019 RTMへの対応
  • 全体的なパフォーマンスの向上
  • パラメータ名ヒント
  • タイピングアシストの改善
    など。

その他のツールでは、

  • dotcoverはMacOS、Linux上でのものを含む.NET Coreアプリケーションをサポートします
  • dotTraceはMacOS, Linux上でのMonoおよびUnityをサポートします。
  • dotMemoryは.NET Core 3.0をサポートします。
    など。

その他、ダウンロードについては情報源をご確認ください。

Blazor がオフィシャルプレビューになりました #dotnet #dotnetjp

With this newest Blazor release we’re pleased to announce that Blazor is now in official preview! Blazor is no longer experimental and we are committing to ship it as a supported web UI framework including support for running client-side in the browser on WebAssembly.

情報源: ASP.NET Blog | Blazor now in official preview!

C#とcshtmlでWEBアセンブリを作れるBlazorが正式プレビューとなりました。

サーバーサイドのBlazorは.NET Core 3.0に含まれ、WEBアセンブリとして動作するクライアントサイドのBlazorは.NET Core 3.0のリリースには含まれないものの、将来のリリースで出荷されること(もはや「実験」ではない)が合わせて発表されました。

詳細は情報源をご確認ください。