CEDEC 2023
マイクロソフト、.NET中間言語をWebAssemblyにコンパイルする「Jiterpreter」をBlazor WebAssemblyに搭載へ、.NET 8で マイクロソフトは今年(2023年)11月にリリースが予定されている.NET 8のBlazor WebAssemblyにおいて、.NET中間言語をWebAssemblyに動的にコンパイルすることで、Blazor WebAssemlbyの高速化を実現する機能を備えた「Jiterpreter」を搭載予定であることを明らかにしました。 BlazorはWebAssemblyで.NETランタイムを実装している そもそもBlazor WebAssemblyは、.NETとC#などを用いてWebブラウザ上で実行可能なWebアプリケーションを開発できるフレームワークおよびランタイムです。 一般にWebブラウザはJavaScriptで記述されたコードを
Blazorの生みの親が「Blazor United」発表。SPAとSSRを1つのBlazorに統合し、共通のソースコードで記述可能に C#などの.NETテクノロジーを用いてWebアプリケーションの開発を可能にするフレームワークとして登場したのがマイクロソフトの「Blazor」です。 最初はWebAssemblyを用いてWebブラウザ上に.NETランタイムを実装し、その上でRazorコンポーネントを利用可能にすることで、C#によるWebアプリケーションがWebブラウザ上で実行できる「Blazor WebAssembly」の開発がスタートしました(下図左)。 その後、サーバサイドでも同じ.NETとRazorコンポーネントを用いてWebアプリケーションを開発できる「Blazor Server」の開発も始まりました(下図右)。 この2つのフレームワークは2020年に正式版としてそれぞれリリースさ
Watch Azure Developers - .NET Aspire Day 2024 on-demand! Dive deep into building world-class cloud native applications with .NET and Azure using .NET Aspire! .NET Core 3.0 Preview 6 is now available and it includes a bunch of new updates to ASP.NET Core and Blazor. Here’s the list of what’s new in this preview: New Razor features: @attribute, @code, @key, @namespace, markup in @functions Blazor di
F#はMicrosoftのDon Syme氏が開発したプログラミング言語で、命令型、オブジェクト指向、関数型の要素を併せ持つマルチパラダイム言語と位置付けられています。実装はオープンソースのMITライセンスのもと、githubのリポジトリで公開されています。 実行環境は.NET Frameworkおよび.NET CoreやMonoといったマルチプラットフォームに対応していますが、サポート状況については各プラットフォームごとの情報を参照してください(「F# の概要」など)。 なお、ここで対象とするF#のバージョンは4.1(FSharp.Compiler.Tools 10.0.1)とします。 非同期な事情 非同期処理というのは、実行中の処理とは別に新しく実行される処理で、それぞれが(見かけ上)同時に動作するもののことです。.NETでは、このような処理を行う方法がいくつか存在しています。それぞれ
(なんかこのネタ、誰かがやってそうな気がしつつ) 一部ではバージョンがわかりづらいなどとも言われている .NET Core の起動の仕組みについて、適宜ソースコードを眺めつつ、整理したいと思います。私は中の人ではなく、コードを解析しながら書いているので、おかしな点がありましたら twitter 等で教えていただけると嬉しいです。 構造 ご存知のように、.NET Core は、コンパイル結果の実行可能アプリケーションまたは dotnet コマンドから実行します。 その時の動作の流れを図にすると、以下のようになっています。 この図において、長方形はファイル、角丸四角形はレイヤー、青の長方形は説明のためのグルーピングです。 この図の要素を簡単に説明すると、以下のようになります。 dotnet コマンド。別名 .NET CLI と言われているのはこれ(のはず)です。muxer と呼ばれることもあり
Watch Azure Developers - .NET Aspire Day 2024 on-demand! Dive deep into building world-class cloud native applications with .NET and Azure using .NET Aspire! The next major version of C# is C# 8.0. It’s been in the works for quite some time, even as we built and shipped the minor releases C# 7.1, 7.2 and 7.3, and I’m quite excited about the new capabilities it will bring. The current plan is that
Docker for WindowsでDockerの使い方がなんとなく分かってきたので、nginxとASP.NET Core 2.0を使ったWebサーバとアプリケーションサーバの環境を構築してみたいと思います。 動作確認レベルなので基本的には難しいことには手を出さずにdocker hubで提供されているテンプレートをベースにしてブラウザからDocker上に構築したサイトへアクセス可能かどうかだけを確認します。 目次使用するイメージとコンテナの数についてASP.NET CoreプロジェクトやDocker関連ファイルの構成ASP.NET CoreのWebアプリケーション作成から配置までDocker Composeファイルの作成(docker-compose.yml)Dockerfileファイルの作成(Dockerfile)nginx.confファイルの作成Dockerの実行動作確認最後に参考リ
F#でレイトレーサーを作っていてArray.Parallelモジュールを使って処理を並列化したら、CPU使用率が40~50%くらいまでしか上がらない現象が発生しました。原因を調べたら.NETランタイムのGCの設定を変更することで解消できたので記事にまとめます。 現象 以下が並列化している個所のコードで、640 x 480の解像度の画像を生成する場合、あるピクセルの色を計算するrenderPixel関数が640 x 480 = 307,200回呼び出されます。また、renderPixel関数では最大1万回シーンオブジェクト(球など)との衝突判定と色の計算が行われ、そのときにベクトルの計算(和や内積など)を大量に行います。 let render scene (width : int) (height : int) = let coords = seq { for y in 0..(height
WPFの個別の技術要素に関する解説は多くありますが、アプリケーション全体のアーキテクチャまで踏み込んだ記事は多くないように思います。本記事では、マイクロソフトが、架空の大規模多国籍製造企業を想定し、公開しているサンプルデータベース「AdventureWorks」を題材に、Prism for WPFや、グレープシティのコンポーネント「SPREAD for WPF」を活用して業務アプリケーション開発をする際の実践的なアーキテクチャ例を紹介します。 はじめに WPFにおけるXAMLの記述方法、各コントロールの使用方法、リレーショナルデータベースへの接続方法。そういった個別の技術要素に関する解説記事は多くあります。しかしそれら個別要素を組み合わせ、アプリケーション全体としてどう構築するかといった、全体のアーキテクチャに踏み込んだ具体例は少ないように思います。 その最大の要因は、アプリケーション全体
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Blazor との出会い 今年2018年2月7日に、自分のソーシャルネットワークのタイムラインに Microsoft のブログ記事が流れてきました。 A new experiment: Browser-based web apps with .NET and Blazor ブラウザベースの .NET による Web アプリフレームワーク、"Blazor" (ブレイザー) だそうです。 これを読んだ当時、自分はこんな感想を持ちました。 「 "ブラウザベースの .NET による Web アプリ" ってなんのこっちゃ? まだ実験段階的なこと書
概要 Ver. 7.2 Span<T>構造体(System名前空間)は、span (区間、範囲)という名前通り、連続してデータが並んでいるもの(配列など)の一定範囲を読み書きするために使う型です。 この型によって、ファイルの読み書きや通信などの際の、生データの読み書きがやりやすくなります。 生データの読み書きを直接行うことは少ないでしょうが、通信ライブラリなどを利用することで間接的にSpan<T>構造体のお世話になることはこれから多くなるでしょう。 Span<T>構造体は、 .NET Core 2.1 からは標準で入ります。それ以前のバージョンや、.NET Framework では、System.Memoryパッケージを参照することで利用できます。 C# 7.2の新機能のうちいくつかは、この型を効率的に・安全に使うために入ったものです。 そこで、言語機能に先立って、このSpan<T>構造体
こんにちは、@mayukiです。 以前、このブログにてダンプ解析入門 - Visual Studioでの可視化によるC#トラブルシューティングというスタックオーバーフローのような問題を調査する方法について触れましたが、今回はダンプを元にメモリ周りの状態を見ていく方法について調べたので少しまとめてみました。 長い時間実行するようなアプリケーション(アプリケーションサーバーなど)ではメモリの使用状況やメモリリークなどを調査したいというケースがたまにやってきます。そんなときにはプロセスのメモリダンプを取得して解析することで問題の原因がわかりそう…そんなシチュエーションで役立つかもしれません。 お品書き お品書き 前提 メモ: 64bit コンピューターで動作している32bit プロセスのダンプをとる ダンプのみどころ どのツールで解析すれば? Visual Studioを試してみる DebugD
Visual Studio 2017で、csproj 形式が新しくなりました。 背景としては、 一時期、脱msbuildをしようとしてた -脱msbuildのついでに、csprojを辞めて、project.json 形式にプロジェクト設定全部入れようとしてた時期があった 結局、msbuildに戻ったけども、既存のcsprojをもっとシンプルにしたいという要件だけが残った というものです。過渡期に関しては昔書いたブログ参照: .csproj + project.json 「project.json辞めます」の意味 最近、やっと新形式のcsprojの扱いに慣れてきたのでブログに書き残しておきます。 サンプル: https://github.com/ufcpp/UfcppSample/tree/master/Demo/2017/NewCsproj 新形式 これまで、Visual StudioでC
Utf8Jsonという新しいC#用のJSONシリアライザを作りました。.NET Standard 2.0で作っているのでふつーの.NETでもXamarinでも概ね動くはずです(.NET 4.5版もあります)。また、Unity用にもちゃんと用意しています。Unityの場合はJsonUtilityと比較してどうよ、ってことなんですが、いいと思いますよ(あとで少しだけ説明します) GitHub - neuecc/Utf8Json なんかバズって、一気に350 Star超えしました。GitHubのToday's Trending - C#で1位、全体で20位ぐらいになってたりました。 使い方を説明してもしょうがないので(ReadMe見てね)、ここではパフォーマンスに関する実装面での工夫について説明します。 赤枠で囲ったのがUtf8Jsonで、それより左側はバイナリシリアライザです。JSONでは最速
図の意味は、本文の箇条書き部分を参照してほしい。 ※ 「Windows Forms」は、開発環境のVisual Studio(日本語版)では「Windowsフォーム」と一部が日本語で表記されていることがある。 ※ 「Xamarin.Forms」は、PCL(Portable Class Library)としてロジックを記述できるのに加え、.NET Coreのドキュメントに対象として記述されているため、このように記述した。 .NET Framework: Windows上でのGUIアプリケーション(WPF、Windows Forms)や、IISに配置するWebアプリケーション/サービス(ASP.NET)、OfficeやVisual Studioの拡張(=アドインやエクステンション)といった、従来からのWindowsプラットフォーム環境向けアプリケーションの開発が対象となる。 Xamarin:
HTTP/2 をベースとした通信フレームワーク gRPC と、その高レベルラッパーである MagicOnion についての連載インデックス インデックス 概要 4 種類の通信方式 プロジェクト構造と実装の前準備 Unary 通信 Server Streaming 通信 Client Streaming 通信 Duplex Streaming 通信 独自型を送受信する 明示的にステータスコードを返す ヘッダーの利用 通信可能なデータ量を変更する ログを出力する 送受信されているデータを可視化する 接続ユーザーを特定する Unary 通信中にプッシュ配信 複数ユーザーへのプッシュ配信 切断検知と自動再接続
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く