According to the ISC2, 90% of organizations face cybersecurity skills shortages. Plus, the gap between roles to fill and available talent widened.
MemoryPackという、C#に特化することで従来のシリアライザーとは比較にならないほどのパフォーマンスを発揮する新しいシリアライザーを新しく開発しました。 高速なバイナリシリアライザーである MessagePack for C# と比較しても、通常のオブジェクトでも数倍、データが最適な場合は50~100倍ほどのパフォーマンスにもなります。System.Text.Jsonとでは全く比較になりません。当初は .NET 7 限定としてリリースしましたが、現在は .NET Standard 2.1(.NET 5, 6)やUnity、そしてTypeScriptにも対応しています。 シリアライザーのパフォーマンスは「データフォーマットの仕様」と「各言語における実装」の両輪で成り立っています。例えば、一般的にはバイナリフォーマットのほうがテキストフォーマット(JSONとか)よりも有利ですが、バイナリ
マイクロソフトは日本時間の11月13日未明からオンラインイベント「.NET Conf 2024」を開催し、同社の包括的なアプリケーションフレームワークの最新版となる「.NET 9」正式版のリリースを発表しました。 .NETは、デスクトップからモバイル、クラウド、ゲーム、IoT、そしてWindows、Linux、macOSなど、あらゆるプラットフォームに対応したアプリケーションの開発を包括的にカバーするフレームワークです。 .NETの大きな枠組みの中に、プログラミング言語のC#やコンパイラ、ランタイム、そしてクロスプラットフォーム対応のUIフレームワーク.NET MAUIやWebアプリケーションフレームワークのBlazorなどが含まれています。 .NETは偶数バージョンがLTS(Long Term Support:長期サポート)版となり、現時点では昨年(2023年)11月にリリースされた.N
これまでの個人的な経験や、いま持ってるノウハウを注ぎ込んで、Generic Hostに対応したMVVM画面遷移フレームワーク「KAMISHIBAI」をリリースしました。 NuGet GitHub 利用マニュアル API Reference ViewModelのコンストラクターに引数を宣言することで、専用の画面遷移メソッドをコード生成します。 たとえば画面遷移時にstringをわたす場合、つぎのようにViewModelを定義します。 [Navigate] public class FirstViewModel { public FirstViewModel(string message) { Message = message; } public string Message { get; } }
はじめに .NET 8 が先日リリースされて .NET Conf 2023 のセッション動画も YouTube の dotnet チャンネルに投降されています。 .NET Conf 2023 のプレイリストで全て確認できるので興味があるやつだけでも見てみると楽しいのでお勧めです。 今回は、その動画の中の Full stack web UI with Blazor in .NET 8 | .NET Conf 2023 の内容を解説する形で記事を書いていこうと思います。後半の認証や CRUD のページを自動生成してくれる機能については別途余裕があれば書こうと思います。また、記事内の図の多くは、この動画内のものから引用しています。 細かい新機能は色々ありますが、大体の大枠はこのセッションに詰まっているのでとても勉強になります。 Blazor Blazor ですが、ASP.NET Core に完全
コマンドラインアプリケーションを作りたかったのでSystem.CommandLineを利用してみた。その備忘録としてこの記事を記載します。 System.CommandLine とは System.ConmmandLineは.NETでコンソールアプリケーション(CLI)を作るための.NET公式のライブラリです。 触った印象ではライブラリというよりかはフレームワークの立ち位置の印象です。 主にCLIのコマンドライン引数のパースしその結果をCLIアプリケーションの引数などにマッピングしたり、 CLIアプリのエントリーポイントの呼び出し、そしてヘルプなどCLIでよく実装される出力(System.CommandLineではレンダリングと呼んでいる)を自動で行ったりしてくれます。 サンプルアプリを実装してみる command-line-api/Your-first-app-with-System-C
どうもC#erの@MeilCliです。仕事ではAndroidエンジニアをしていますがC#erなのでアドベントカレンダーではC#について書きます 今回参加しているアドベントカレンダーはこちらです。3日目の記事になります adventar.org あと、同様なカレンダーがもう一つあります adventar.org 問: どれが早いか int? n = 0; if (n.HasValue) {}// ① if (n is int) {}// ② if (n is int and int) {}// ③ if (n is not null) {}// ④ ※ Roslyn master(25 Nov 2020)時点 正解はこの記事の中盤に書いています n.HasValueとはなんぞや C#erではない人向けに解説すると、C#のnull許容型は2種類(null許容参照型・null許容値型)が存在しま
MicroSoftが2020年にリリースするフレームワーク「.NET 5」がヤバイ 2020年3月25日 2020年3月24日 SE・PG SE, システムエンジニア, プログラミング, 2020年 この内容は、主にシステムエンジニア(SE)に対してクリティカルなことだと思います。 Microsoftの「.NET Framework」が「.NET 5」になって、複数のフレームワークと統合されます。 だからと言って「何が変わる?」って感じですが、少なくとも2021年以降は積極的に移行をかけていく必要があります。 この記事では。「”.NET 5”がどういったフレームワークなのか」ということから、将来性や考えられる問題点などを解説します。 「.NET 5」とは まずはじめに、「.NET 5」の概要から解説していきます。 公式発表されたのは、2019年5月に開催された「Microsoft Buil
このブログでもSource GeneratorやAnalyzerの開発手法に関しては定期的に触れてきていて、新しめだと 2020/12/15 - UnitGenerator - C# 9.0 SourceGeneratorによるValueObjectパターンの自動実装とSourceGenerator実装Tips 2021/05/07 - 2021年のC# Roslyn Analyzerの開発手法、或いはUnityでの利用法 という記事を出していますが、今回 MemoryPack の実装で比較的大規模にSource Generatorを使ってみたことで、より実践的なノウハウが手に入りました。また、開発環境も年々良くなっていることや、Unityのサポート状況も強化されているので、状況を一通りまとめてみようと思いました。Source Generatorは非常に強力で、今後必須の開発技法になるので
ValueObjectは好きですか?私は大嫌いです。いじょ。 ざっくり言えばプリミティブ型に専用の型を付ける教義です。例えばUserIdをintとして扱っているとTeamIdと取り違えるかもしれないし、Hpに突っ込んでしまうかもしれない。StrengthとIntelligenceとAgilityとSpeedは別物なのだから全部intじゃなくて区別して欲しい、そうじゃないと間違った演算しちゃうぞ、と。まぁそういう自体を避けるために、それぞれラップした個別型を作るのです。int strengthじゃなくてStrength strengthだぞ、と。 これは一見正しく実際正しいのですが、問題もあります。一つに面倒くさい。ラップしたctorを作るのだけでも定形でウザ、と思いますが、更に等値とか実装するのは面倒くさい。また、そのままだと計算できなくなるので、算術演算のために生の値を.Valueで取り
拙作の Unity用DIライブラリ、VContainer の v0.9.0 では、ILコードをコンパイル時に生成することによるメタプログラミングの高速化が足されました。 Unity用DIライブラリ VContainer の 0.9.0 を撒きました。 コンパイル時IL生成による高速化機能をマージしました。(オプション) IL生成でさらに 当社比 3-6倍くらいは速くなりました。これできっと Unity用 DIコンテナでは完全に最速になったんじゃないかな-と思います。https://t.co/YkHXXgP7nD pic.twitter.com/NFUxvLVzKd— ハダシA (@hadashiA) 2020年7月26日 この機能をつかうと、Zenjectのデフォルトとの比較でディタ上では50倍くらい、IL2CPPでは20倍〜くらい速い結果になっています。 また、グラフのとおり VCont
最初から最後まで、遊びっぱなし。 でも、「使えるコード」が書けるようになります。 【本書の特長】 <<遊び感覚でプログラミングとアルゴリズムをおぼえよう!>> ・イチからPythonのプログラミングとアルゴリズムがわかる ・ゲームをつくりながら基本を理解できる ・パズル問題で実践的なコードの書き方が身につく ・環境構築不要のGoogle Colaboratoryですぐ始められる ・パズル問題の解答はPythonに加え、JavaScriptとRubyのコードも提供 【内容紹介】 楽しくなきゃ、プログラミングじゃない! プログラミングを学ぶとき、 言語の文法などを勉強するのは退屈なものです。 何かつくりたいものがあり、 それを自分の手でつくることが 達成感となり、楽しさにつながります。 本書でも一般的なプログラミングで 必要な要素がひと通り登場しますが、 簡単なゲームをつくりながら基本をおぼえ
前に書いた記事が 2015 年のものだったので 2020 年用に書き直していこうと思います。ReactiveProperty 7.1.0 を想定して書いています。また、WPF か UWP か Xamarin.Forms での MVVM 開発の基本的な知識と Reactive Extensions の基本的な知識があることを前提に記載しています。 5 年前に書いた記事 → MVVMをリアクティブプログラミングで快適にReactivePropertyオーバービュー 他の記事はこちらです。 MVVM をリアクティブプログラミングで快適に ReactiveProperty オーバービュー 2020 年版 前編 (この記事) MVVM をリアクティブプログラミングで快適に ReactiveProperty オーバービュー 2020 年版 中編 MVVM をリアクティブプログラミングで快適に Reac
GitHub - inaz2/AnyPing ICMP Pingに加えて、並列でTCPやHTTP/HTTPSの疎通確認を行うWindowsアプリケーション。 各ホップ1回のみ送信を行うICMP Tracerouteも行うことができる。 ちょうどいいものがなかったので、Windows用GUIアプリケーション開発の練習として作った。 開発には、.NET Framework 4.8(C# 7.3)を使用した。 これは、クロスプラットフォーム対応を行わず、また、Windows 7 SP1/Windows 8.1/Windows Server 2016にも対応するためである。 .NET Core Windows に .NET をインストールする - .NET | Microsoft Learn .NET および .NET Core オフィシャル サポート ポリシー .NET Framework .N
はじめに 私が「UniRx入門」という記事を書き始めてから5年、最後に投稿してから4年が経過してしまいました。 記事を更新していなかったこの数年間で、UniRxを取り巻く環境が大きく変わってしまいました。 UniRxというライブラリ自体に特に大きな更新はないのですが、UnityのC#バージョンがアップデートされたり、UniRxよりも便利なライブラリが登場したりしました。 今回は2022年現在のUnityにおけるUniRxの立ち位置と、その使い方について解説します。 UniRxの立ち位置 現代のUniRxの状況 2017年頃の古いバージョンのUnityにおいては.NET 3.5相当のかなり貧弱なC#しか用いることができませんでした。 非同期処理にasync/awaitすら使えず、「コルーチン」で書くか「UniRx」で書くかという状況でした。 そのため、時間が関係した処理はコルーチンかUniR
と、いうものをリリースしました。Web UIとなるDFrame.Controllerと、負荷テストシナリオをC#で書くDFrame.Workerの組み合わせで成り立っていて、DFrame.Workerをウェブ上のクラスターに配置することで(Controllerと接続するただの常駐アプリなので、配置先はオンプレでもVMでもコンテナでもKuberenetesでもなんでもいい)、1から数千のワーカーが連動して、大量のリクエストを発生させます。また、テストシナリオをプレーンなC#で記述できるということは、HTTP/1だけではなく、あらゆる種類の通信をカバーできます。WebSocket、HTTP/2、gRPC、MagicOnion、あるいはPhotonや自作のTCPトランスポート、更にはRedisやデータベースなどが対象になります。 DFrame.Workerは通常の.NETの他に、Unityにも対
待ちきれずビルドして試してみた Goで //go:embed file ってコメントに書くと、ファイルの中身が変数に入るようになったので、とてもありがたい これで、フォントの埋め込みなどはサードパーティ製のライブラリでコードを生成しなくて済む https://t.co/TL43HAziiL pic.twitter.com/0F5edNSpOJ — 鬼滅のゴリラ@無限レビュー編 (@gorilla0513) October 29, 2020 巷でとある言語がバイナリにアセットを埋め込めるようになったと話題ですが、C#でも同じようなことができそうなので共有したいと思います。 リソースを埋め込み、読み込む まずリソースを埋め込むには、プロジェクトファイル(csproj)�の<ItemGroup>内に<EmbeddedResource>で、埋め込みたいリソースを定義します。 例えば、sample.
Build native, cross-platform desktop apps that are lighter than light. Photino is a lightweight open-source framework for building native, cross-platform desktop applications with Web UI technology. Native Applications Photino enables developers to use fast, natively compiled languages like C#, C++, Java and more. Use your favorite development frameworks like .NET. Cross-Platform UI Build desktop
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 本記事について 本記事では、具体的な機能にフォーカスして、Azure のファーストパーティのソリューションで、Windows Server に対してどのようなセキュリティを実装できるかをご紹介していきます。 また姉妹編のLinux 版はこちらになります。 アンチマルウェア - Microsoft Defender ウイルス対策、マイクロソフトアンチマルウェア、Defender for Endpoint Windows Server 2016 以降では、標準でアンチマルウェア機能である Microsoft Defender ウイルス対策
2月にブログに書きましたが、 Visual Studio 17.1 Preview 3の頃、C# 11 候補として「引数の null チェック」構文が入っていました。 m(null); // ArgumentNull 例外が出る。 void m(string x!!) { } 今現在(VS 17.2 Preview 5)でもこの構文は生きているんですが、次(たぶん、17.2正式リリースでも17.3 Preview 1でも)でいったん取りやめになるそうです。 取りやめの経緯 C# チームとしては、今、Preview リリースをしてみて反応を見てその後どうするかを決めたりしているわけですが。 LangVersion preview があるのはそのためです。 とはいえ、普通に考えて、Preview 機能まで追いかけている人がそんなに多いわけもなく、 正式リリースされるまでどんな機能が追加されてい
変数は再生モード中に変更した値は元に戻りますが、インライン(グラフ中のみで使用している値)の値は再生モードを解除しても値は変更されたままになります。 変数はドラッグ&ドロップしてグラフ上に配置出来ます。 ドラッグ&ドロップして配置した場合はGet Variableユニットになります。 ユニットユニットは処理の単位で、何らかの処理を実行する単位です。 グラフの何もない所で右クリックする事であいまい検索(ファジー検索)画面を開いて、ユニットを選択したり、検索窓に対象を絞った検索をしてユニットを選択することが出来ます。 その他ユニットのポートからドラッグして、接続できるユニットから選択することも出来ます。 ポートポートはユニットに付いている接続部分で、処理の流れを作るフローポートと値を渡すデータポートがあります。 上の例ではStartユニット(スタート時に1回実行される)からDebug Logユ
Win32 APIをアプリケーションから利用すると、Windowsを最大限に活用できる。CやC++の開発者であれば既存の仕組みを容易に利用できるものの、C#やRustのような言語からWin32 APIへアクセスするには、手動でAPIのラッパーやバインディングを作成する必要がある。この方法はエラーが起こりやすく、広範なAPIをカバーする拡張性にも欠けている。 近年では、さまざまな言語からWin32 APIを呼び出す必要性が高まっている。これを背景として、ラッパーやバインディングで強く型付けされた慣用的な表現を提供し、開発者の負担を軽減する幾つかのコミュニティープロジェクトも登場している。.NET向けの「P/Invoke」や、Rust向けの「winapi-rs」などが有名だ。 これらのプロジェクトは有望なものの、手動でメンテナンスされているため、広範なAPIを持続的にカバーするのは困難であり、
Turing株式会社のUXチームでインターンをしている東大4年の三輪です。 自動運転のUXを向上させるため、UXチームでは自動運転の「可視化」ソフトウェアの開発に取り組んでいます。 このソフトウェアはTuringが販売する車のディスプレイに搭載される予定です。AIが認識している世界をユーザにも見える形で示すことで、ユーザは自動運転AIの振る舞いをよりよく把握することができるようになります。 画面は開発中のものです 可視化ソフトウェアは、自動運転AIの出力を受け取り、解釈し、Unity上で描画します。この際、自動運転AIと可視化ソフトウェアの間の通信はgRPCで行うことになっています。しかし、Unity上でのgRPCはさまざまな事情でやや複雑な構成を取る必要があります。 この記事では、UnityでgRPCサーバを実装するステップを解説します。 gRPC gRPCはRPC(Remote Pro
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く