Twitterにだらだら書きそうだったのでちょっとまとめて。故あってMac環境なので、IDEにはRider-EAPを使ってます。やっててよかったJetBrains Toolbox!
2日目学習リスト
依存関係(NuGetとかRestoreとか)が少し見えてくる回か。
REST クライアント
https://docs.microsoft.com/ja-jp/dotnet/articles/csharp/tutorials/console-webapiclient
Mac Homebrewの影響を確認する
2017/05/01現在最新のMac版 .Net core1.0.3は、openssl 1.0.2/1.0.3前提なので、Homebrewでバージョンを上げておくこと。今回はこちらを参考にした。
https://medium.com/@katopz/how-to-upgrade-openssl-8d005554401
Rider 特有の事情
csprojファイルは、プロジェクトの二階層目をコンテキストメニューのJump to Sourceで開く。
しかしcsprojファイルにエラーが有るとコンテキストメニューからは開けなくなるので、ダブルクリックが安定のようだった。
○○型であればusingは自動補完してくれるが、Staticメソッドを使うタイプではそれは望めない。using staticで読み込まなければいけないものは注意
この一連のチュートリアルは、プロジェクトを作る段階では指定がないので、Reder利用の場合、gitに上がっているサンプル通り作りたい場合、開始する前にnamespaceの確認を行ったほうがいい。
DataContractJsonSerializer は強力
.Net Coreの機能。
ActionScriptでもJavaScriptでも型変換きれいにするためにそれなりの工数が必要だったものだけど。
更に[DataMember]で取得するJASON上のプロパティと値を結び付けられる。(これによってプロパティとクラスのメンバが同一である必要がなくなる)
[IgnoreDataMember]をつけたプロパティはJSONに影響が受けないメンバの明示となる。
2日目を通して
今日の気づきは次の通り。
- ストリーミングで値を取得する場合の処理は、C#が言語として担うのでなく、.Netの機能が担う
- Macで動かす場合にはOpenSSLなどの注意が必要
- MacやRider特有の問題が存在する