nuits.jp blog

C#, Xamarin, WPFを中心に書いています。Microsoft MVP for Development Technologies。

自転車の運転が危険に見えるのは道交法を知らない人が運転しているからか?

なんか自転車が危ないのは、道路交通法をを知らない人が運転しているからだ。免許制にすれば改善される。 という論がTwitterで散見されて、確かに一定の説得力がありそうだ。でも事実だろうか?と、ちょっと興がのったので少しだけ分析してみました。 結論、…

ITエンジニア向けワークデスクの選び方

コロナ禍において、自宅でリモートワークをする人が増え、自宅の作業環境を良くしたいと思う人が増えているのではないかと思います。かくいう私も悩みまくった結果、最近やっと作業環境が落ち着いてすごく快適になりました。 作業環境を更新するにあたって、…

.NET MAUIって何?

先日のBuildで、Microsoftから突如「.NET Multi-platform App UI (MAUI)」がリリースされました。 ここではMAUIとは何か?Xamarin.Formsはどうなるの?ということを簡潔にまとめたいと思います。

全角・半角判定ライブラリ EastAsianWidthDotNet をリリースしました

Unicode文字列の全角・半角を判定し、文字列の幅を取得するライブラリ「EastAsianWidthDotNet 」をNuGetに公開しました。 github.com こんな感じで呼び出すと… using EastAsianWidthDotNet; ... var width = "全角.".GetWidth(); Console.WriteLine($"Width …

自分用メモ:VSTOでWindows Installerを使って証明書なしに配布する

自分用の超雑なメモ ここの通りやったらできた。 docs.microsoft.com

オンラインライブ配信 Teams Live Eventのすゝめ

先日、C# Tokyoというコミュニティイベントとして、オンラインライブ配信イベントを行いました。 csharp-tokyo.connpass.com 実際にどんな感じなのかは、録画をYoutubeにアップしていますので、良かったらご覧ください。 C# Tokyo オンライン「世界一わかり…

世界一わかりやすいClean Architecture - Visual Studio Users Community Japan Edition

本稿は「Visual Studio Users Community Japan #1」で登壇させていただいた内容の解説記事になります。 最新の記事はこちらになりますので、あわせてご覧ください。 www.nuits.jp 本稿のスライドはこちら。 世界一わかりやすいClean Architecture from Atsus…

Visual Studio 2019のインストーラーのダウンロードURLを教えてもらった

Undocumentedながら https://t.co/rSyxF6FBuf 下にあるらしく、 https://t.co/ksVp6FrhKP とかになるとかならないとか…。— はぇ~☆ (@haxe) 2020年3月15日 それぞれ以下からダウンロードできます。 http://aka.ms/vs/16/release/vs_community.exe http://aka…

SQL Server Management Studioの最新版をPowerShellでダウンロードする

2020年3月15日現在、以下で取得できる模様。 $Headers = @{ "Accept-Language" = "ja-jp" } Invoke-WebRequest -UseBasicParsing -Headers $Headers -Uri https://aka.ms/ssmsfullsetup -OutFile SSMS-Setup-JPN.exe Accept-Languageを指定しないと英語版が…

PowerShellのダウンロード速度を改善する

2022.11.12訂正 最近はここにある方法ではなく、もっぱらStart-BitsTransferを利用しています。 Start-BitsTransfer -Source https://aka.ms/ssmsfullsetup -Destination SSMS-Setup-JPN.exe みたいな感じですね。高速かつ進捗表示があるので気に入っていま…

Azure DevOpsのArtifactsでリリース物を管理する

Azure DevOpsにはNuGetやnpm、Mavenなどのパッケージマネージャーのプライベート用のマネージドサービスとしてArtifactsが提供されています。 Arfifactsでは上記の一般的なパッケージマネージャー以外にも、任意のファイルセット(Universal packages)を管…

Azure DevOpsのCLIを使う

Azure DevOpsをコマンドラインから利用する方法を簡単に記載します。

Windows TerminalをExplorerのアドレスバーからカレントディレクトリで開く

Explorerのアドレスバーに「wt」と入力するとWindows Terminalを起動できますが、起動時のカレントパスがアドレスバーのパスになってくれない問題の解決方法です。 ただどうも過渡期の問題で、2020年1月7日時点はこの対処方法で対応できますが、将来的にはス…

WPFオブジェクトのライフサイクル

WPF

アプリケーションの開始から終了までのイベントの発生順を整理しました。 クラス イベント 補足 Application コンストラクタ Application Startup Application Navigating MainWindow コンストラクタ MainWindowViewModel コンストラクタ MainWindow DataCon…

Visual Studio 2019 Preview 16.4.0 Preview 2.0で.NET Core 3.0が削除される問題の対処方法

まだ未確認ですが、Visual Studio 2019 Previewの16.4.0 Preview 2.0を入れると、.NET Core 3.0が削除されるようです。 RuntimeだけなのかSDKもなのか、詳細は不明です。 これは明らかな不具合で解消する予定だそうです。 今は手動で改めて再インストールす…

Visual StudioでNuGetパッケージマネージャーコンソールが開けなくなった場合の対処方法

何もしてないのにVisual Studioのパッケージマネージャーコンソールが壊れました。(ちかって怪しい操作した記憶はありません) 次のようなエラーがでます。 拡張型データ ファイル 、C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2019\PROFESSIONAL\COM…

SQL ServerのサンプルDB「AdventureWorks」のDockerイメージを公開しました

SQL Serverのサンプルデータベース「AdventureWorks」をDocker上のSQLサーバーで利用するためのコンテナイメージを公開しました。 cloud.docker.com これを利用することでローカルにSQL Serverをインストールすることなく、AdventureWorksを利用することがで…

開発ツールの自動構成スクリプトを公開して、変更案を募集してみる

以下に主にChocolateryを利用した開発環境の自動インストールスクリプトを公開してみました。 全部じゃないですけどね?恥ずかしいし・・・。 github.com Chocolateyの概要と簡単な使い方はこちら。 www.nuits.jp でせっかくなら、これ便利だよあれ入れなよ…

Azure上のWindows Server 2008 R2を日本語化する

安心してください。延長サポート契約はしています... 2019年9月現在、言語パックのexeからインストールしてもどうしても日本語化できなかったので別の手段を。

世界一わかりやすいClean Architecture

本項は「C# Tokyo オンライン「世界一わかりやすいClean Architecture」他」による発表の登壇原稿となります。過去に発表した.NET版の記事はこちらにアーカイブしています。 本稿のサンプルコード・PPTはこちらで公開しています。 「CC BY-SA 4.0」で公開し…

はじめてのChocolatey

LinuxやmacOSではそれぞれapt-getやhomebrewのようなパッケージマネージャーが提供されており、開発ツールのインストールなどはコマンドラインから行うのが一般的です。 対してWindowsではGUIから行われることが多いのですが、GUIからの操作は環境構築の再現…

Azure FunctionsでAzure BLOB Storageを扱う際のポイントメモ

基本自分用メモ。

【移転しました】【ハンズオン】.NET FrameworkのWPFを.NET Core 3.0にマイグレーションしてみよう!

こちらを参照ください。 github.com

.NET Core 3.0の次のバージョンは.NET 5になりOne .NETへ。Core 3.0を含むロードマップも公開

ソースはこちら。 Introducing .NET 5 | .NET Blog .NET Core 3.0の、その次のバージョンは.NET 5になり、ひとつの.NETとして統一されるそうです。 これはMonoが無くなるという意味ではなく、棲み分けるという意味のようです。 Mono ⇒ 高速起動、低フットプ…

Visual Studio 2019で始める「WPF on .NET Core 3.0」開発 というタイトルで登壇してきました

「Visual Studio 2019 Launch Event in Tokyo.」で、Visual Studio 2019で始める「WPF on .NET Core 3.0」開発 というタイトルで登壇してきました。 資料はこちら Visual Studio 2019で始める「WPF on .NET Core 3.0」開発 from Atsushi Nakamura www.slides…

GitHubのReleaseのダウンロード数をカウントする

私の自慢のCopy to Markdown Add-Inは3,331ダウンロードされているようです。ヘヘヘ。 GitHub APIを利用して、GitHubのリポジトリのreleaseで公開しているモジュールのダウンロード数をカウントします。 gist.github.com GithHub APIの使い方についてはこちらを…

GitHubの自分のリポジトリへの特定期間のコミット数をカウントする

GitHub APIとJSON.NETを使ってこんな感じに書けば行けます。 gist.github.com GithHub APIの使い方についてはこちらを参照ください。 www.nuits.jp

GitHub APIを利用する

GitHubでは様々なAPIがRESTで公開されています。 developer.github.com ドキュメントも充実しているのですが、とっかかりが自分は理解しにくかったので簡単にメモしておきます。

Visual Studio CodeのTerminalからdotnetコマンドが見つからない場合

.NET Core SDKをインストールしてもVS Codeのターミナルからdonetコマンドが見つからず、実行できないことがあります。 そんなときはPCを再起動すると直るかもしれません。私は直りました。 github.com

WPFでHoge.Focus()を読んでもフォーカスが当たらない場合

Dispatcher.BeginInvokeを介して呼び出すと期待通り動作することがあります。 ↓のような感じで。 Dispatcher.BeginInvoke(new Action(() => { MyTextBox.Focus(); MyTextBox.SelectAll(); }));