読者です 読者をやめる 読者になる 読者になる

HttpStream を .NET Platform Standard 1.1 対応のパッケージとして NuGet で公開しました

実は、以前に HttpStream というライブラリを作ってました。

espresso3389.hatenablog.com

これ、普通に HttpClient で ReponseStream とかをランダムアクセスしようとすると、対応してないぜって感じで例外が出て悲しいので、うまーい具合にラッパーを作ることで、HTTP上のリソースにあたかもランダムアクセスできているかのようにしちゃうというもので、まぁ、便利なので、弊社プロダクトでも利用していたわけです。

NuGet化

で、血迷って、このライブラリは、GitHub で公開したのに、弊社プロダクトは、社内Gitサーバーで管理されているという状態で、そんな状態にもかかわらず、なぜか、git submodule 使ってしまったので、泣きそうな目にあっているという酷い early summer だったんですが、モジュールとしてはかなり安定もしてるので、この際、NuGet にアップロードしてバイナリ運用の方が良くない?みたいな感じになりました。

.NET Platform Standard

https://www.microsoft.com/net/core

で、このライブラリ自体は、今まで、 Profile259 の PCL だったわけですが、そういや、.NET Core 1.0リリースされたよなぁ。ってことで、あの辺もちゃんとサポートするにはどうするんだっけ?って調べてたら、

github.com

PCL から、.NET Platform Standard ってやつに切り替えようぜって書いてありました。
PCL は Profile がもうぐちゃぐちゃで、Xamarin プロフェショナルが謎の番号を暗唱するっていう最悪な状態でしたが、この辺が綺麗に整理されて、.NET Platform Standard のバージョンいくつみたいな感じで管理できるようになりました。
マトリックスも非常にわかりやすい。まぁ、Windows 8って何だっけ?みたいな記憶のかなたになっていることもありますけどw

で、Profile259 なら、.NET Platform Standard 1.0 なんですが、もはや、 Silverlight 要らんのじゃ疑惑もあり、.NET Platform Standard 1.1 でってことになりました。

この辺の移行作業については、次のページは参考になるかもしれませんが、ならないかもしれません。

xamarinhelp.com

このページでも書かれているように、既に NuGet 配布しているパッケージを無理に .NET Platform Standard に移行すると、そのパッケージに依存しているプログラムがぶっ壊れるというか、.NET Platform Standard 移行の道連れになるのでお勧めできませぬ。
別パッケージとしてリリースしなおす方がよいでしょう。

まぁ、要はまだ過渡期過ぎて、ちょっと痛みを伴いますなぁという話ですね。

僕の場合は、 HttpStream は、NuGet 初デビューなので、何にも問題ありませんでした。
また、あと、良い点としては、PCL の時には、Microsoft.Net.HttpClient など、BCL 系のパッケージに依存している形だったのが、.NET Platform Standard では、この部分が、フレームワーク側に統合される形になったので、要は、何にも依存しないパッケージになるので、管理は凄く楽になりました。

公開したパッケージ

NuGet のパッケージはこいつ:

www.nuget.org

GitHub

github.com

使う側からすれば、ビルドしなくて良い。空から降ってくる感があるので、非常に楽になりました。