Category Archives: .NET

Excel-DNA version 1.0 RCリリース

A release candidate for Excel-DNA version 1.0 is now available on NuGet and as a direct download from GitHub. The easiest way to test is to install the pre-release NuGet package (package version 1.…

情報源: Excel-DNA version 1.0 | Excel-DNA

.NETを使って、Excelのユーザー定義関数を作成する、Excel-DNAのVer. 1.0がリリースされました。

GitHubダウンロードページ

Nugetでのインストール

Install-Package -Pre ExcelDna.AddIn

記事では正式リリースが4月になるとの見込みを示しています。

参照: Excel-DNA | OPCDiary

Exploring Blazor with Visual Studio 2019

In this post, Senior App Dev Manager Keith Beller walks use through Blazor, a new experimental framework for WebAssembly. What is Blazor? After 22 years of dominance as “the” native language for client-side browser interaction, JavaScript is facing new competition from other popular languages such as C/C++,

情報源: Premier Developer | Exploring Blazor with Visual Studio 2019

Blazorの簡単なチュートリアル。

.NET Core 3 Preview 3リリース

情報源: .NET Blog | Announcing .NET Core 3 Preview 3

ダウンロード: https://dotnet.microsoft.com/download/dotnet-core/3.0

リリースノート: https://aka.ms/netcore3releasenotes

Visual Studio 2019, Visual Studio for Mac, Visual Studio Codeでサポートされる予定です。

  • スケジュール
    • 2019年後半にリリース予定。出荷予定日はBuild 2019カンファレンスで発表
       * 基本的にプレビューはリリースまで毎月公開される。
  • Dockerとcgroupでのメモリ制限
  • Dockerイメージの更新
  • IndexとTangeの対応
  • .NET Standard 2.1
    • .NET Standardsでは.NET Frameworkがサポートされなくなる。(予告通り)
  • F#アップデート
    • F# 4.6
    • dotnet fsi preview(F#のREPL)
  • AssemblyDependencyResolver
  • DLLMap and Native image resolver events
    • NativeLibraryクラスによる動的なネイティブライブラリ管理の簡素化
  • WPF, WinFormsのアップデート。ここまでで実装されていないWPFのコードベースの残りはPreview 4以降に公開
  • Windows Formsでの高DPI対応
  • Entity Frameworkのアップデート

詳細は情報源を参照ください。

ASP.NET Core updates in .NET Core 3.0 Preview 3

.NET Core 3.0 Preview 3 is now available and it includes a bunch of new updates to ASP.NET Core. Here’s the list of what’s new in this preview: Razor Components improvements: Single project template New .razor extension Endpoint routing integration Prerendering Razor Components in Razor Class Libraries Improved event handling Forms &

情報源: ASP.NET Blog | ASP.NET Core updates in .NET Core 3.0 Preview 3

Memo.

Razorの機能拡張、Angular 7対応、gRPCのテンプレートなんてものが有る。

.NET Core 3.0で実装される浮動小数点のパースおよびフォーマット方法の変更

情報源: .NET Blog | Floating-Point Parsing and Formatting improvements in .NET Core 3.0

一々翻訳することは止めますが、Windows / Linuxとの非互換性の削除、およびIEEE 754 – 2008準拠のため、.NET Core 3.0では浮動小数点のパース、およびフォーマットの実装があらためられます。

もともと浮動小数点は「実数」を扱うため、この変更が既存コードに大きな影響を与えるようなことにはならないと考えますが、代表的なところではMath.PI.ToString()の結果が既存の.NET Frameworkとは異なります。このようにフォーマット指定しないToString()の結果に依存していたり、文字列として設定ファイルやレジストリに保存された定数値、特に小数点以下桁数が多いものに依存するようなアプリケーションでは、.NET Core 3.0への移行時には、注意するとともに検証する必要があると考えられます。また、自身ではそのような実装をしていない場合でも、XMLやJSONのようなテキストデータからのデシリアライズ結果にも同様の影響があると思われるので、同様に注意・検証が必要でしょう。

ReSharper Ultimate 2018.3.4 and Rider 2018.3.4 are released! 

Today it is time to introduce you the new bug-fix update for 2018.3 releases of both ReSharper Ultimate and Rider. ReSharper Ultimate 2018.3.4 fixes some critical issues which prevented using ReSharper in the Visual Studio 2019 Release Candidate build: Both … Continue reading →

情報源: ReSharper Ultimate 2018.3.4 and Rider 2018.3.4 are released! – .NET Tools Blog.NET Tools Blog

Memo.

基本的にバグ修正。

Visual Studio 2019 Release Candidate リリース関連Blogまとめ #vsjp

VS2019がRCとなりました。関連するMS系のBlogへのリンクを、見つけた限りここにまとめていきます。

ダウンロード: https://visualstudio.microsoft.com/downloads/

※日本語のサイトではまだリンクがありませんが、そのうちに登場すると思われます。
※日本語版および日本のロケール設定になっているWindowsからVS2019 RCを入手したい場合には、現状MSDNサブスクライバダウンロードからのダウンロードが必要です(2019/02/28 10:52現在)。

全体

C#/.NET

C++

日本国内の反応

その他

dotnet-format

roslyn/src/Tools/dotnet-format at master · dotnet/roslyn

Momo.

Roslynプロジェクトから登場したコマンドラインベースのソースコードフォーマットツール。.editorconfigであれこれと設定できるようです。

これで、Gitコミット時のフックや、ビルド時に自動的にオレオレフォーマットなソースコードをチーム規約通りのスタイルに修正してしまうことができます。コードレビュー時に余計なことに時間を使わなくて済みますね!

.NET Core 3.0 Preview 2でのASP.NET Coreアップデート #dotnetjp

情報源: ASP.NET Core updates in .NET Core 3.0 Preview 2 | ASP.NET Blog

  • Razor Componentの追加
  • Signal R
  • HttpContext上のSystem.IO.Pipelines
  • Generic host in templates
  • Endpoint routing updates

詳しくは情報源へ。

.NET Core 3 Preview 2 が出ました。 #donetjp

情報源: Announcing .NET Core 3 Preview 2 | .NET Blog

  • C# 8.0対応
    • usingで{}も()も不要に(詳しくは情報源へ)
    • スイッチ式(詳しくは情報源へ)
    • 非同期ストリーム
  • IEEE 浮動小数点取扱の改善
    • IEEE 754-2008への準拠
    • パースの改善(マイナス0の取扱など)
    • Math APIの改善(詳しくは情報源へ)
  • .NETプラットフォーム依存組み込み関数
    • SIMDやビット操作などで、特定のCPUアーキに依存するAPIを追加(.NET FrameworkでCPUアーキでの違いを極力取り除く方向だったので、.NET Coreになってからの大きな方向転換)
  • 高速インボックスJSONライター&JSONドキュメントの紹介(System.Text.Json)
  • Raspberry PIでのGPIOのサポート
  • ローカルdotnetツールの改善
  • アセンブリのアンローダビリティ(詳しくは情報源へ)
  • Windowsネイティブでの相互運用性
    • CoCreate COM APIとActivate WinRT APIの機能追加(詳しくは情報源へ)
  • WPFとWindows Formsの追加(詳しくは情報源へ)
  • Visual Studioサポート。VS 2019 Preview2以降が必要です。
  • デスクトップアプリケーションのMSIXによるデプロイ(詳しくは情報源へ)
  • snapによるLinuxへのインストール(詳しくは情報源へ)
  • サポートプラットフォーム(OS)
    • Windows Client: 7, 8.1, 10 (1607+)
    • Windows Server: 20012 R2 SP1+
    • macOS: 10.12+
    • RHEL: 6+
    • Fedora: 26+
    • Ubuntu: 16.04+
    • Debian: 9+
    • SLES: 12+
    • openSUSE: 42.3+
    • Alpine: 3.8+
  • サポートプラットフォーム(CPUアーキ)
    • x64 on Windows, macOS, and Linux
    • x86 on Windows
    • ARM32 on Windows and Linux
    • ARM64 on Linux

Visual Studio 2019 Preview 2でのWindows Forms/WPF

Visual Studio 2019 Preview 2がインストールされた環境に、.NET Core 3.0 Preview 2をインストールするとプロジェクトウィザードに、Windows Fromes(.NET Core)とWPF(.NET Core)が追加されます。

残念ながらGUIのデザイナーは使えません。(WPFも同様)

COM Interop

以下のサンプルがちゃんと動きました。

samples/core/extensions/ExcelDemo at master · dotnet/samples

ただし、COMの参照はVSのGUIから出来ないのでcsprojファイルに手書きになります。(上のサンプル使う場合はそのままで良いです)

C# Async Stream

using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace AsyncStream
{
    class Program
    {
        static async Task Main(string[] args)
        {
            await foreach (var x in M(5, 1000))
            {
                Console.WriteLine(x);
            }
        }

        static async IAsyncEnumerable<int> M(int n, int t)
        {
            for (int i = 0; i < n; i++)
            {
                await Task.Delay(t);
                yield return i;
            }
        }
    }
}