サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
インタビュー
qiita.com/okazuki
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 更新履歴 2022/09/11 Power Platform を追加 2022/10/01 Custom Vision を追加 本文 今日は、こちらの記事の更新版を書いていこうと思います。 前の記事を書いてから2年近くたっていて本当に状況が変わっています。時がたつのは早いですね。 本記事の目的 ハッカソンはアイデアを短期間で実装することが肝なので、アイデアのコア部分の実装に集中して周辺の付帯的な部分はありものを組み合わせたり、バックエンドが必要なときはクラウドの PaaS や FaaS 系のサービスあたりを使ってさくっとデプロイしてしま
先に結論 Visual Studio 2019 使いましょう。 本文 今日開催している Visual Studio Code Conference Japan で VS Code で Windows アプリ開発に関する質問が出てたのでさらっと書いてみようと思います。 個人的にぱっと思いつくものは以下の3つくらいが思いつきました。 flutter React Native for Windows WPF flutter 前に少しだけ flutter は試したことがあるのですが拡張機能を入れて設定すると意外とサクッと動いて快適でした。 Flutter の開発環境を作ってみたメモ on Windows 10 Flutter の開発環境を作ってみたメモ on macOS ただ、前に試したのはモバイルアプリ開発だけでした。最近、この flutter がデスクトップもサポートしているみたいです。ただ、
単体テストライブラリーっていっぱいありますね… Most in-demand JavaScript testing tools in 2020 の翻訳 上の記事に上げられてるだけでも沢山あります。 Jest Mocha Storybook Cypress Enzyme Ava Jasmine Puppeteer とりあえず数の暴力に従って Jest をやってみて使い方をまとめてみました。 ひな型作成 以下のコマンドを叩いてプロジェクトのひな型を作ります。
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
GitHub を使って個人用のタスク管理を開始して数週間がたったので現時点で落ち着いたやり方についてメモっておこうと思います。 注意事項として、クラウドに置いたらダメって言われてる情報は乗せないように注意してね。プライベートリポジトリだと他人には基本見えないけど、そもそも会社のルール的にダメになってるところもあるので、そこらへんは個々人で気を付けてください。 元々は Azure DevOps の Boards 使って管理していたのですが、GitHub の Issues とか Projects とかちゃんと使ったことなかったなと思い、とりあえず失敗しても一番痛くない個人タスク管理を GitHub の方にうつしてみました。 下準備 GitHub のリポジトリを作ります。そして以下のような感じでプロジェクトとマイルストーンとラベルを作ります。 マイルストーン 以下のような感じで 1 月単位で作り
XAML 系(WPF、UWP、Xamarin.Forms)で Binding でハマらないようにするために気を付けていることWPFXamlXamarin.FormsUWPVisualStudio2019 XAML 系のプラットフォームで開発するときによくお世話になるデータバインディングですが、個人的に開発中にはまらないために気を付けていることを紹介しようと思います。 間違えないために ハマらないために気を付けることは、Visual Studio に書いてもらうことです。これが一番大事です。人がプログラムを書くから間違えるので、なるべくツールに書いてもらいましょう。 データバインディングのパスでも同じで Visual Studio が DataContext の型を認識できるようにするとインテリセンスが効きます。Visual Studio に書いてもらうことが出来ます。 例えば Window
以下のページのサマリ Application Insights for ASP.NET Core アプリケーション NuGet の追加 以下のパッケージを追加します Microsoft.ApplicationInsights.AspNetCore Startup.cs への AppInsights 有効化の処理の追加 以下のコードを追加 public void ConfigureServices(IServiceCollection services) { services.AddApplicationInsightsTelemetry(); services.AddRazorPages(); } この時点で実際の Azure には行かないけどローカルでデバッグ実行すると Visual Studio で確認できるようになります。 ILogger 用のログレベルの調整 デフォルトで警告以上が
前の記事:async/await は Promise を置き換えることは出来ると思う 前提 「Promise を使ったコード」の定義は hoge().then(x => { ... }).catch(x => { ... }).finally(...); のようにメソッドチェーンを使って書かれた非同期処理であって、Promise という文字列がコード内に登場したらダメという意味ではないです。おそらく、この記事を書く発端となった記事は Promise クラスが登場するコードになると思うので、この先に書いてあるコードのほとんどは Promise を使ったコードになると思います。言葉って難しい…。 というわけで頭の体操がてら async/await で書けないと言われた処理を async/await 使って書いてみようと思います。中には無理やり感あるのも出てくる可能性もありますが、頭の体操という
2020/12/16 追記 冒頭の元記事のプログラムを読み間違えていて、真面目に読むといきなり仕様とは異なるプログラムを書いてしまっていますorz その旨を指摘していただいたコメントがコメント欄にあるのですが、そちらの方がコードとしては面白いことになってるのでコメントまで合わせて読むのがおすすめです。 本文 この記事は、以下の記事を読んだ自分の感想です。割と反対意見が多めです。 async/await は Promise を置き換えない あと、元々 C# 畑の人間なので、この記事で TypeScript を使ってますが、もしかしたら冗長な書き方や、そもそも勘違いをしてしまっている可能性があります。その場合はコメントなどで教えてください。 そもそも、async/await は Promise を置き換えるものではなくて、どちらかというと then/catch/finally のメソッドチェー
この記事は C# Advent Calendar 2020 の 2 日目の記事です。1 日目は @RyotaMurohoshi さんの C# 9.0で加わったC# Source Generatorと、それで作ったValueObjectGeneratorの紹介 でした。 私の記事では、.NET Framework 1.0 の頃の C# 1.0 と今の .NET 5 時代の C# 9.0 で同じお題をもとにプログラムを書いてみて比べてみようと思います。これを書くにあたって事前に xin9le さんと 岩永さんに色々見てもらいました!感謝! ではやってみましょう! 記事を書く前の感覚では LINQ の有無と async/await の有無が大きいだろうな…と思ってます。 プロジェクトの設定 Windows 10 に .NET Framework 1.1 SDK を入れようと思えば入れることが出来
WPF でおしゃれっぽい画面を作るときに多くの人がお世話になる MahApps.Metro と Material Design In XAML Toolkit の導入方法をメモっておきます。 プロジェクト作成 普通に WPF アプリのプロジェクトを作ります。私は、.NET 5 で作ってますが .NET Core 3.1 でもほぼ同じ手順だと思います。 白いウィンドウだけだと何が変わったのかわかりづらいと思うので、MainWindow.xaml をちょっと書き換えてコントロールを置いておきます。 <Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/200
追記 2022/08/17 この記事の内容はかなり古くなっています。 この記事で記載しているリトライ機能については Event Hubs と Timer トリガーの関数でのみ正式リリースされました。その他のトリガーについては、それぞれの関数組み込みのリトライ機能か自前でリトライを実装する必要があります。 そのため、この記事でサンプルとして使っている Http トリガーについてはサポートされなくなりました。以下のドキュメントに、各トリガーごとのリトライの方法についてまとまっているので確認してください。 2020/11/11 Microsoft.NET.Sdk.Functions の 3.0.11 で確認したところ Microsoft.Azure.WebJobs が最新になっていたので、ここで書いている手動での NuGet パッケージの追加は不要になっていました。 本文 新機能出たら試したくな
さて、個人的に気に入ってるというか手間も少なくそれっぽいデモとして気に入ってる Azure Functions から Cosmos DB にデータを登録して、CosmosDB Trigger で登録されたデータを確認して条件を満たしたら SignalR で接続しているクライアントにメッセージを投げて画面を更新するみたいなことをよくやってます。 こんな感じのイメージです。 Azure Functions Azure のサーバーレスの代名詞。C# や JavaScript などで開発した関数を実行できる。 CosmosDB Azure で一番強い NoSQL データベース SignalR Service WebSocket で双方向にリアルタイムにメッセージをやり取りできる ここでは、そのデモの作り方の手順を紹介しようと思います!あと Azure Functions と CosmosDB は割
.NET 5 Preview 8 かららしいのですが、Windows 10 の API に .NET 5 からアクセスするのが凄く楽になってました。言及のある記事は以下になります。 Announcing .NET 5.0 Preview 8 Calling Windows APIs in .NET5 どれくらい簡単になったかというと、今回のこの記事がすぐ終ってしまうレベルで簡単です。すぐ終わると悲しいので、ちょっとだけ昔と比べてどれくらい簡単なのか?というのも書いておこうと思います。 昔 Windows 10 SDK の特定のフォルダにある DLL や winmd ファイルを手動で参照追加したうえで、配布時に含まれてほしくないファイルはコピーされないように手動で設定する。 そんなに数は多くないのですがめんどくさかったです。 今 Microsoft.Windows.SDK.Contracts
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 追記 2022 年版を書きました。 本文 2 年くらいまえにこんな記事を書きました。 ハッカソンで使い勝手の良さそうな Microsoft のサービス 2 年もたつと今のご時世色々変わりますよね。ということで 2020 年 9 月時点の自分の知ってる範囲でまとめてみようと思います。 QnA Maker トップバッターは QnA Maker ですね! 質問と回答のペアを登録してトレーニングすると質問に対して一番それっぽい答えを返してくれる API が出来ます。 特徴としては、QA サイトとかみたいに質問と回答が書いてあるホームページとかを
最近、コロナのせいで IT 系イベントは特にオンラインでの開催が主流になってきてます。 もしくは、オンラインでの開催が困難な場合は中止になっています。 そのため、登壇機会が減ってヤキモキしてる人が少しでもフラストレーションを発散できるようにパワーポイントでのセッション動画作成機能について紹介したいと思います。 完成動画 今回、この記事を書くために作った動画はこちらになります。パワポで作ってます。 資料を作る これは普通に PowerPoint でぽちぽちと作ります。 録画を行う 資料が出来たらついに録画パートです! 画面上部のタブの「スライドショー」にある「スライドショーの記録」の「先頭から記録…」を選択しましょう。 そうすると、以下のようにスライドショーの記録画面になります。 録画したりするうえで気を付けるのは左上と右下になります。左上の録画ボタンを押すと録画が始まります。カウントダウン
この記事は 2020 年の ReactiveProperty のオーバービューの全 3 編からなる記事の 3 つ目の記事です。 他の記事はこちらです。 MVVM をリアクティブプログラミングで快適に ReactiveProperty オーバービュー 2020 年版 前編 MVVM をリアクティブプログラミングで快適に ReactiveProperty オーバービュー 2020 年版 中編 MVVM をリアクティブプログラミングで快適に ReactiveProperty オーバービュー 2020 年版 後編 (この記事) イベントから ReactiveProperty や ReactiveCommand を呼ぶ WPF と UWP 限定の機能としてボタンのクリックなどのイベントが発生したら ReactiveProperty の値を更新したり、ReactiveCommand を呼び出すといった
前に書いた記事が 2015 年のものだったので 2020 年用に書き直していこうと思います。ReactiveProperty 7.1.0 を想定して書いています。また、WPF か UWP か Xamarin.Forms での MVVM 開発の基本的な知識と Reactive Extensions の基本的な知識があることを前提に記載しています。 5 年前に書いた記事 → MVVMをリアクティブプログラミングで快適にReactivePropertyオーバービュー 他の記事はこちらです。 MVVM をリアクティブプログラミングで快適に ReactiveProperty オーバービュー 2020 年版 前編 (この記事) MVVM をリアクティブプログラミングで快適に ReactiveProperty オーバービュー 2020 年版 中編 MVVM をリアクティブプログラミングで快適に Reac
Azure App Service が gRPC をデプロイ出来ない問題があるので悶々としてたのですが gRPC-Web プロトコルになりますが Azure App Service にデプロイできるみたいです!!ASP.NET Blog で gRPC-Web for .NET now available という記事でアナウンスされていました。ということでやってみましょう。 参考ドキュメントはこちら: ブラウザー アプリでの gRPC の使用 プロジェクトの作成 ASP.NET Core Web アプリケーションで空のプロジェクトから始めてみましょう。 まず、2 つのパッケージを追加します。 Grpc.AspNetCore Grpc.AspNetCore.Web どちらも執筆時点の最新の 2.30.0 を入れました。 とりあえずシンプルなハローワールド用の SayHello.proto をプ
筆休めのための、ちょっとした小ネタです。C# 9.0 が今年の秋くらいに出ると思われるのですが、今の最新の C# 8.0 すらキャッチアップできてないのに…という気持ちになりますね。 ということで、完全な機能の網羅は岩永さんのサイトにお任せするとして、ここでは C# 8.0 らしい書き方で書いた方が良さそうなもので、自分的に利用頻度高めかな?と思うものを書いていこうと思います。 因みにここで紹介するものは C# 6 や 7 あたりで追加されたものとかも入ると思います。最近の C# の書き方って感じです。 変数の型の判定方法 あまり引数の型を判定して何か処理するみたいなのが多くあると、ちょっとどうかな?という感じですが、変数の型判定する事はありますよね。 古き良き書き方だと大体以下のような感じですね。
やっとコードよりの話になれる!!過去の 2 記事は言語ごとの事情や、その人の経験などで色々ちょっとずつ異なることがあるので「〇〇の場合は違う」とか「こういう側面もある」とか色々コメントしやすい感じだったのですが、そのおかげで初めての Qiita のデイリーで No1 取れました。やったね! ということで、自分の主戦場の C# での DI コンテナ事情について書いてみたいと思います。 Microsoft.Extensions.DependencyInjection ASP.NET Core などで何も考えないと使うことになる、事実上の標準の DI コンテナです。 非常にシンプルで DI コンテナとして最低限これくらいは持ってるだろうと思われる機能だけ持ってます。 例えば、以下のようなクラスがあったとします。 interface IMyService { void Greet(); } cla
DI (依存性注入) って何のためにするのかわからない人向けに頑張って説明してみる を、単体テストにフォーカスしたら単体テストが本来の目的では無い的なコメントが散見されました。 確かに DI コンテナは元々は SOLID 原則の D に該当する依存性逆転の原則 (Dependency inversion principle) の「具体ではなく、抽象に依存しなければならない」に大きく関係するものになります。 Wikipedia から引用します。 ソフトウエアモジュールを疎結合に保つための特定の形式を指す用語。 この原則に従うとソフトウェアの振る舞いを定義する上位レベルのモジュールから 下位レベルモジュールへの従来の依存関係は逆転し、結果として下位レベルモジュールの 実装の詳細から上位レベルモジュールを独立に保つことができるようになる。 例えば以下のように上位レベルのモジュール(Present
追記 2022/11/12 追記 この記事読んで、DI 便利だなって思ったらこちらも併せて読んでみてください。クリーンアーキテクチャーの開設の中で依存性逆転の説明が出てきます。難しいかもしれませんが、一度理解すればつぶしが効く考え方なので腰を据えて読んでみてください。 本文 ここでは、最近のそこそこの規模のアプリだと大体使われてる(と私は思ってる)Dependency Injection(DI)について、何故使ってるのか?というのを私の理解で書いていきたいと思います。 今回の対象言語は C# ですが、DI 使ってる言語であれば大体同じ事情なのかなと思います。 単体テストしたいよね アプリケーションを作るとうまく動いているかテストをすると思います。 たとえ、そのアプリがハローワールドだとしても動かして目視で確認してると思います。 もうちょっとアプリの規模が大きくなってくるとクラス単位やクラス
LINQ っていいですよね。2007 年に登場してるので、13 年前の技術です。枯れに枯れてる技術です。 LINQ to XXXX という感じで色々なものに LINQ 出来たりしますが、今回は LINQ to Objects についてのみ書きます。配列やリストに対してやる LINQ のことです。 今回のコードは全て Try .NET にコピペして試せる感じのコードを書くつもりです。 ということで徒然なるままに書いて行きます! LINQ の前に LINQ に入る前に以下のコードを見てください。 var array = new[] { 1, 2, 3, 4, 5 }; foreach (var x in array) { if (x % 2 == 0) { Console.WriteLine(x); } } 説明するまでもないとは思いますが 1 〜 5 までの数字の入った配列から偶数だけ抜き出
日曜日に腹痛で病院にいったら、入院になり、翌日盲腸と診断されてそのまま手術して先日退院してきました。 まだ、おなかの傷が痛むので今週は養生しようと思うので手を動かすのではなくツールを使ってみた!って感じの記事を書いてみたいと思います。 Visual Studio 2019 にはコードメトリクスの分析機能があります。 コードメトリックスの値 こんな感じで分析メニューからいけます。 丁度、先日リリースされた Covid-19 Radar のプロジェクトが手元にあったので分析にかけてみました。 実行すると以下のような結果が表示されます。 このウィンドウ上部にあるエクセル風のアイコンをクリックするとみんな大好き Excel で結果が開かれます。あとは好きなようにソートしたりフィルターしたりできます。 このプロジェクトの全体のコードを見たわけではないですが、メソッドだけに絞ってサイクロマティック複雑
ちゃんとやったことなかった(存在は知ってた)ので覚書です。 ASP.NET Core で Controller を作ったけど、結合テストしないとなぁ…と思ってたけど、単体テストしてるしなぁめんどくさいなぁ…とも思ってたりしてたけど、便利な機能なのでやります!やりますよ。 テスト対象のプロジェクトの作成 ASP.NET Core の API のプロジェクトテンプレートを作成します。 認証は個別のユーザー アカウント(Azure AD B2C を使うやつ)を設定しました。 前はここにアプリ内でユーザー管理するやつがあった気がするけど…、変わったのかな? 今回はテスト用なので、ドメイン名やアプリケーション ID などは適当なものを入れました。 Entity Framework Core 系の以下のパッケージを追加して DB 操作のコードを追加します。 Microsoft.EntityFramew
次のページ
このページを最初にブックマークしてみませんか?
『@okazukiのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く