shuhelohelo’s blog

Xamarin.Forms多めです.

C#

DebuggerDisplay属性でデバッグを便利に

C#

devblogs.microsoft.com DebbugerDisplay属性を使ってデバッグ時の情報をちょっとわかりやすく。 以下のようなコードがあったとして。 using System; using System.Diagnostics; using System.Linq; namespace ConsoleApp1 { class Program { static void Ma…

Blazorでテキストボックス間の同期

片方のテキストボックスに入力した内容を、もう片方のテキストボックスに同期的に表示したい。 というのはまったくニーズが無い話とは思います。 環境 Windows 10 Pro 1809 Visual Studio 2019 16.0.3 .NET Core 3.0.1 preview5 準備 さて、まずはClient Sid…

Blazorでコードビハインド的な書き方

コードビハインド的な書き方 ロジック部分を別ファイル、別クラスに記述しておく。 そのクラスはComponentBaseクラスを継承しておく。 Razorファイルから利用するプロパティやメソッドはpublicにしておく。 using System; using System.Collections.Generic;…

ASP.NET Core 2.2→3.0への移行 メモ

(2019.10.08)5月にメモとして書いたときと比べ,現時点では.NET Coreが3.0がリリースされており,下のリンクの公式サイトの解説も充実していると思うのでご注意ください. docs.microsoft.com ASP.NET Core 3.0では2.2と比べていろいろと書き方が変わっている。…

WPFでアクションセンターに通知を表示

Windows10にはアクションセンターがあります。 メールやSlackなどのメッセージ受信をぴろーんと通知してくるあれです。 これをWPFアプリから使いたいと思いました。 何年か前にもWPFアプリで通知機能を使いたいなと思ったのですが、そのときはなにやらいろい…

Client-side Blazorでデバッグする方法

Server-side BlazorなどServer側で動作する部分についてはVisual Studio上でデバッグできます。 では、Client-side Blazorのデバッグはどうするかというと、もちろんブラウザのデバッグツールを使います。 ChromeならばCtrl+Shit+Iで出てくる開発ツールです…

ElixirのEnumとLinqの共通点

@zacky1972さんのTweetをみて、EnumってLinqに似ているなと思ったのでElixirの勉強がてらLinqとElixirの両方で書いてみたりしました。 Elixir の Enum.reduce が何をしているか,わからない人向けの連続ツイート,書くぜ! #fukuokaex— Susumu Yamazaki (@za…

Blazorでプロジェクト内のファイルを指定する絶対URIを生成するには?

これもBlazorというかASP.NET Coreの話ですが、現在実行中のアプリケーションのベースURIを取得する方法です。 多分いろいろあると思いますが、そのうちの一つということで。 ASP.NETではDIコンテナの機能が組み込まれていますが、ここに明示的に登録する以…

BlazorでのDIコンテナの使い方

BlazorというかASP.NETにはDIコンテナの機能が提供されています。 DIコンテナの機能を使うことで、Razorページの中、または他のクラスの中で使用するインスタンスの生成を任せることができます。 Razorページ内では Startup.cs内のConfigureServicesメソッド…

Blazorメモ

Blazorを勉強しながらメモ。 Blazorの特徴 .NETでインタラクティブなクライアントWeb UIを作る。 JavaScriptの代わりにC#でリッチなUIを作る。 ↑これがメイン。 サーバーサイドもクライアントサイドも.NETで。 razor構文を使えるよ。 一つのファイル内でマー…

DIについて学ぶ

DI C#

DI(Dependency Injection)って何? この言葉を聞いてもイメージが湧きにくいとおもいますが、日本語では依存性の注入と訳され、なおさら???となります。 依存というのは、例えば、あるクラスAの中で他のクラスBのインスタンスを使うように書かれている…

.NET Core 3.0 WPF with Prismなプロジェクトで画面デザイナを使いたい(1)

やっと準備が整いました。 画面デザイナを使う手順については以下のサイトの内容に沿っていきます。 rksoftware.hatenablog.com .NET FrameworkなWPFプロジェクトを作る こちらは当然、画面デザイナが使えます。 .NET Framework側のXAMLを削除する .NET Core…

.NET Core 3.0 WPF with Prismなプロジェクトで画面デザイナを使いたい(準備編)

追記(20190604) 今更の追記ですが、現在は.NET Core 3.0 WPFで画面デザイナが使えるようになっています。 Visual Studio 2019をインストールしてください。 はじめに .NET Coreで動作するWPFアプリをプレビューですが作成できるようになっています。 しかし…

C#マークダウンパーサmarkdigを使ってみる

Markdigをインストール Nugetからインストールします。 使い方 使い方は簡単です。もちろんもっといろいろできるでしょうが、マークダウンテキストをHTMLに変換するには以下のようにします。 using System; using Markdig; namespace MarkdigTest { class Pr…

BenchmarkDotNetを使って処理速度を測る

ある処理を実装する場合、複数の実装方法がありますが、果たしてそれらの候補のうちどれが一番速いのか、を確認したいときがあります。 いままではなんとなくStopWatchクラスを使って以下のように計測していました。 var sw = new Stopwatch(); sw.Start(); …

既存の.NET Frameworkクラスライブラリを.NET Standardクラスライブラリにするには(動くとは言ってない

.NET Coreによって様々なプラットフォームでC#のプログラムが動くようになりました。 これまで.NET Framework用として作ってきた、もしくは世の中の有志たちが公開してきたライブラリなどの資産を活用しない手はありません。 そこで、既存の.NET Frameworkク…

Visual Studio 2019 v16.1.0 preview2 でBlazorアプリを作成したら、実行時にエラーがでたときの対処

VS2019 v16.1.0 preview2をインストールして、テンプレートからBlazorアプリを作成し、実行したらこんなエラーが出た。 ターゲットプロセスは、CoreCLR開始イベントを発生させずに終了しました。 csprojファイルをテキストエディタで開いてみると、参照して…

他のプロセスで開かれているExcelファイルをClosedXMLで開く

ClosedXMLではExcelファイルを開くときに「ファイルのパスを指定して、かつ、読み取り専用で開く」オーバーロードがありません。 どうするかというと、FileStreamで読み取り専用で開き、そのストリームを使ってClosedXMLからExcelを開くことで実現できます。…