shuhelohelo’s blog

Xamarin.Forms多めです.

C#

コンソールアプリでASP.NET CoreのDIの仕組み(ServiceProvider)を使う(2)

当然HttpClientもDIすることができる. 前回のMicrosoft.Extensions.DependencyInjectionに加えてMicrosoft.Extensions.Httpをインストールする. using ConsoleAspNetCoreDI.Services; using Microsoft.Extensions.DependencyInjection; using Microsoft.Exte…

コンソールアプリでASP.NET CoreのDIの仕組み(ServiceProvider)を使う(1)

tech-blog.cloud-config.jp tech.guitarrapc.com shuhelohelo.hatenablog.com andrewlock.net Consoleアプリで,シンプルにASP.NET CoreのDIの仕組みを使いたいのであれば,Microsoft.Extensions.DependencyInjectionをインストールすればすぐに使うことができ…

Xamarin.FormsでSystem.Text.JSONでJSONファイルからデシリアライズするときのメモ

https://codeburst.io/working-with-json-in-net-core-3-2fd1236126c1codeburst.io ここでは予めデシリアライズ先の型を用意して,Embedded resourceに指定したJSONファイルから読み込んだデータをデシリアライズする手順を示す. System.Text.Jsonをインスト…

C#である値以上またはある値以下に変数の値を維持する

ある変数があって,それは例えばスクロールの位置だったり,増減する数値を格納されるものとする. で,ある値以上または以下に値が行かないようにしたい,つまり下限や上限を決めたいとする. このとき,値が変化するたびに発生するイベントを利用し,イベントハン…

これは下書きにもタグを登録するためのページです。

Switch式を使ったのでメモ

C#

条件に応じて何かしら値が決まるときに便利.シンプルに書ける. 加えて,ある条件に対して複数の値がセットで決まるような場合にタプル(Tuple)を使うとさらにシンプル. 細かいところは置いておいて,変数hdが3パターン,変数vdも3パターンあって,それぞれの値に…

httpclientを使うときのベストプラクティス

docs.microsoft.com あと、あのドイツの大学の講義のポケモンapiでも使ってたので参考にする www.youtube.com 上の講義の個人的なメモ. shuhelohelo.hatenablog.com 大事なこと. - HttpClientを使うたびにnewでインスタンスを作成するな! - ASP.NET Coreでは…

Mobile Computing C# オンラインクラス 5 メモ

www.youtube.com デバッグとWebAPIの利用について デバッグTips 条件付きデバッグ 実行時の変数の値の編集 On the flyな変更ができる. ブレークポイントで止まった状態で,変数にマウスオーバーして,表示された変数の値をクリックすると編集できる. いちいち…

ConsoleアプリでXamarin.EssentialsのUnitConvertersを使う

Xamarin.Essentialsには単位変換の静的クラス,メソッドがあり,これはXamarin関係なく便利です. docs.microsoft.com 単位変換のUnitConvertersクラスですが,もちろんXamarin以外のアプリケーションでも使用することができます. Consoleアプリを作成 Xamarin.E…

DataBindingの注意点

プロパティの変更通知における基本をメモしておく. 例えば以下のプロパティがあったとする. private string _firstName; public string FirstName { get => _firstName; set { if(_firstName==value) { return; } _firstName = value; OnPropertyChanged(nam…

Xamlで名前空間を追加する方法

プロジェクト内の任意の名前空間をXamlで参照するには以下のようにする. xmlns:models="clr-namespace:XFDesignTimeData.Models" xmlns:{名前}="clr-namespace:{プロジェクト内の任意の名前空間}"

Windowsのタスクトレイ常駐型アプリを作る

ambilykk.com 環境 Windows10 1908 .NET Core 3.1 preview 3 ウィンドウを表示させない 常駐型アプリの体裁としてウィンドウを表示させないということは大事なことです. コンソールアプリの場合 ソリューションエクスプローラで右クリックしてコンテキストメ…

プログラムからキー入力を行う

こちらを参考にした. whoopsidaisies.hatenablog.com 事前準備 SendKeysを試すためにMicrosoft.VisualBasicアセンブリを使うので追加しておく.SendKeysを使うこと自体には関係ない. ソリューションエクスプローラで,プロジェクトの「References」を右クリック…

ASP.NET Core以外でUserSecretsを利用する

tech-blog.cloud-config.jp ↑こちらの記事がとてもわかり易いです. ソース管理サービスを利用した場合に,ワールドワイドに公開してしまう可能性があり,クラウドサービスの接続情報などをそのまま書いていると危険. なので,このような機密情報はソース管理,つ…

ASP.NET CoreにおけるEF Coreの準備

Modelを作成する public class Student { public int StudentId { get; set; } public string Name { get; set; } [Required] public int CourseId { get; set; } public Course Course { get; set; }//ナビゲーションプロパティ } public class Course { pu…

Entity Framework CoreでカラムにUnique制約をつける

stackoverflow.com 属性でつけることはできないけれど,FluentAPIでつけることができる. DbContextクラスのOnModelCreatingメソッド内で以下のようにする. protected override void OnModelCreating(ModelBuilder builder) { builder.Entity<Member>() .HasIndex(m =></member>…

マーカーインターフェースと拡張メソッド

C#

拡張メソッドを生やすときに,生やせるクラスに制限を設けるための「空のインターフェース」. 目印の役割を果たす. つまり,言い換えると拡張メソッドをはやしたいクラスに継承させておけば,よい. class Program { static void Main(string[] args) { Console.Wr…

NuGetパッケージを作成する。Visual Studioで。[引越記事]

はじめに 自分で作った便利なライブラリをみんなにも使ってほしい、と思ったらNuGetパッケージとしてギャラリーに公開できるのでやってみましょう。 作り方は簡単、Visual Studioからです。 Visual Studioが便利すぎて、Visual Studioがなくなったら何もでき…

XamlでCommand属性がない要素にCommanをバインドするには

EventToCommandBehaviordocs.microsoft.com イベントが発生したときにこのBehaviorを使用してコマンドを実行することの利点は,コマンドとやり取りするように設計されえていないコントロールにコマンドを関連付けできることです. このコマンドとやりとりする…

Xamarin.Formsでデザイン時の仮データを定義する方法

montemagno.com docs.microsoft.com techcommunity.microsoft.com Design Time Dataとはアプリを実行せずに,XAMLでのUIデザイン時に表示させる仮のデータのこと. これによってViewModelなどの表示させるデータが出来上がっていない段階でも,仮のデータを表示…

Xamarin.FormsでSignalR

これまでのWebページ,WPFからSignalRでサーバーと通信する方法に関しては以下の記事. shuhelohelo.hatenablog.com shuhelohelo.hatenablog.com ASP.NET Core SignalRはリアルタイム通信をアプリケーションに追加するプロセスを簡略化するアプリケーションモ…

Xamarin.Formsで各種センサーの値を取得するには[引越記事]

はじめに スマートフォンは各種センサーもりもり、通信インターフェース複数、RFIDリーダライタなど全部乗せのリッチなIoTデバイスです。 加速度センサー、磁気センサー、照度センサー、GPS(センサーか?)、Wifi、BlueTooth、カメラ、マイクetc etc... 実…

プロパティの変更通知でPropertyChangedEventArgsが大量に生成されるのが気になるときは

INortifyPropertyChangedを実装してプロパティの変更をView側に通知するには,変更された際にPropertyChangedEventArgsのインスタンスを生成してPropertyChangedEventHandlerの実行時にパラメータとして渡す必要がある. あるプロパティの更新が非常に頻繁だと…

SignalRの自動再接続をもう少しくわしく.

環境 Windows 10 pro 1906 Visual Studio 2019 16.4 preview1 dotnet core 3.0.100 自動再接続を有効にする SignalRの自動再接続を有効にするには,HubConnectionBuilderのインスタンス生成でwithAutomaticReconnect()を追加するだけ. Javascriptの例: www.je…

SignalRでプロパティを持つオブジェクトを渡す. WPF ⇔ Server

環境 Windows 10 pro 1906 Visual Studio 2019 16.4 preview1 dotnet core 3.0.100 前回までは単純なstring型をサーバーとクライアント間でやりとりしていました. shuhelohelo.hatenablog.com 当然そのような基本型だけでなく,以下のようなプロパティを持つ…

SignalRの自動再接続

環境 Windows 10 pro 1906 Visual Studio 2019 16.4 preview1 dotnet core 3.0.100 前回はサーバーとSignalRで通信を行うクライアントをWPFで作成しました. shuhelohelo.hatenablog.com リアルタイム通信ですが途中で接続が切れてしまった場合に自動的に再接…

WPFからSignalRでサーバーとリアルタイム通信

前回はサーバとブラウザ間でSignalRを用いた通信を試してみました. shuhelohelo.hatenablog.com 今回は,デスクトップアプリケーションからSignalRを使ってサーバーと通信してみます. チュートリアルは以下の公式サイトが参考になるでしょう. docs.microsoft.…

.NET Conf 2019のSignalRのデモを動かす

www.youtube.com こちらの動画を見ながら,1つ目のデモと同じリアルタイムチャットアプリを作る. ソースコードは公開されていないが,画面を凝視すればコードが読めるし,説明は丁寧でわかりやすい. 環境 Windows 10 pro 1906 Visual Studio 2019 16.4 preview1…

Visual StudioでのASP.NET Coreアプリ開発におけるクライアントサイドライブラリの導入はLibManが便利

ウェブアプリケーションのクライアントサイドの開発には様々なライブラリを使用します. jQuery Bootstrap Chart.js などなど,必要に応じてCDNから取得したりするわけですが,CDNを使わない場合だってあって,その場合はローカルにこれらのライブラリをダウンロ…

null合体(??)とnull合体代入(??=)とnull条件(?.または?[])

C#

ufcpp.net Null合体演算子 左辺がNullだったら右辺を返す. string? s = null; var s1 = s ?? "this is null1"; Console.WriteLine(s1); Null合体代入演算子 左辺がNullだったら右辺を左辺に代入する. string? s = null; s ??= "this is null2"; Console.Writ…