Visual StudioでのASP.NET Core開発時のスマホ検証用にlocalhost外のアクセスができるようにする
Visual StudioでASP.NET Coreの開発をする際、開発マシンでの検証だけでなく、iPhoneやAndroidでの表示を確認したい時があります。
標準だと localhost
で指定されており、そのままでは外部からアクセスはできないため、設定する必要があるのでメモ。
前提
ファイアーウォールで該当ポートが解放されていること。
launchSettings.jsonでの指定
launchSettings.json
のapplicationUrlは初期設定ではlocalhostになっているので、ここを開発マシンのプライベートIPアドレスに変更。
この方法、なぜかlaunchBrowser
をtrueにしてるのに起動しない謎。
appsettings.jsonでの指定
こちらのほうがおすすめ。
appsettings.json
またはappsettings.Development.json
に urls
で http://*:5000;https://*:5001
を指定。
こちらだとホスト名がlocalhostだろうが開発マシンのIPアドレスだろうが行けるので便利。
そのほか
CreateHostBuilder
で UseUrls
に指定する方法があるんですが、ソースコードに書くのはちょっと・・・。
Azure Functions v3でCosmosDBの基本処理を実行するためのサンプルプロジェクト
せっかくAzureでCosmosDBの無料枠ができたので、使わない手はないなと思って基本的な挙動確認用のプロジェクトを作成してみました。
CosmosDBのデータベース、コンテナ作成から登録更新検索削除の一通りの基本処理をAzure Functionsのv3環境で実装しています。
学習がてらDI実装。Azure CosmosDB Emulator をインストールすればローカル実行可能です(というよりはまだAzure上で確認してない)。
あくまでサンプルなので異常系の対応とかは特に入ってません。
余談
当初せっかくv3環境なのでNewtonsoft.Jsonを用いず、System.Text.Jsonを利用しようと考えていたのですが、うまくいかず断念しました。
プロパティ名は頭を大文字にするため、Newtonsoft.Jsonだと JsonProperty
を用いて別名を指定するわけですが、同じ挙動をするはずのSystem.Text.Jsonの JsonPropertyName
だと
The input content is invalid because the required properties - 'id; ' - are missing
というエラーが出てしまい実行に失敗してしまいます。
どうもCosmosDBのv3SDKはまだNewtonSoft.Jsonにがっつり依存しているため、System.Text.Jsonを使いたいならv4までまて、ということのようです。
余談の追記
Version 3.1.2からSerializerOptions
でcamelCase指定ができるようになってたようです。
これを設定しておけばそもそもJsonPropertyの指定も不要ですね。
参考サイト
ParcelでバンドルしたJavaScriptの関数を直接呼び出すときの方法
HTMLのフォームにonSubmitでJavaScriptを呼ぶように実装してたんですが、HTMLファイルに直接JavaScriptを記載していたり、生のJavaScriptファイルを読ませていた時はうまく動くのに、Parcelを通したJavaScriptファイルだと Uncaught ReferenceError
となってしまい、実行されない問題が発生。
ググったところそれっぽい情報を発見。
生のJavaScriptファイルがこんな感じの内容だったとして、
Parcelを通すとこんなファイルが生成されます。
モジュール化されることでメソッドがグローバルに定義されなくなるので、onSubmit="hogehogeMethod()"
と呼んでも失敗すると。
であればグローバル下に引きずり出してやればいいと。
というわけで、
こんな感じで、
window.メソッド名 = メソッド名;
というようにグローバルに定義してやればonClickやonSubmitといったイベントハンドラから呼び出すことが可能。