自己紹介
自己紹介
- なまえ - 政倉 智 (まさくら とも)
- 所属 - codeArts 株式会社
- 所属 - html5j 鹿児島
- 趣味 - バイク・モータースポーツ見たり
I 💛 LOVE C♯
C# 1.0 を知った時に、この言語と心中する! と決めました
I 💛 LOVE JetBrains
アジェンダ
- .NET Standard Class Library
- 鹿児島の .NET の勉強会
.NET Standard Class Library
.NET Core が出てから 2 年経ちました!
移行を考えていますか?
でも
書き直すのだるいですよね
既存のプロジェクトをそのまま .NET Core 化する手もあるんですが
修正はやっぱり必要です
そんなあなたのための
.NET Standard Class Library!
.NET Standard Class Library とは?
.NET Framework と .NET Core の両方から利用できるクラスライブラリ
.NET Standaed Class Library とは?
- ASP.NET Core や Entity Framework Core もこれで提供
- .NET Standard で規定された API しか使えません
.NET Standard って?
- .NET (Fx / Mono / Core) が実装すべき API の仕様
.NET Standard って?
- 以前は API が少なすぎて使いづらかった
- System.Drawing とか System.Transactions のサポートが弱い
- .NET Standard 2.0 から API が大幅に強化された
- .NET Framework 4.6.1 以降
- .NET Core 2.0 以降
- Mono 5.4 以降
.NET Standard という名前のクラスライブラリがあるわけではない
あくまで API 仕様
.NET Fx と .NET Core で実装が違う
.NET Standard の String 型は .NET Fx と .NET Core の型にマップされている
public static void Test1() {
var uri = new Uri("http://example.jp/?u=http%3A%2F%2Fexample.jp");
Console.WriteLine(uri.ToString());
}
プラットフォームで結果が異なります。
- .NET Fx 4.7.1 -
http://example.jp/?u=http:%2F%2Fexample.jp
- .NET Core 2.0 -
http://example.jp/?u=http:%2F%2Fexample.jp
- .NET Core 2.1 -
http://example.jp/?u=http%3A%2F%2Fexample.jp
public static void Test2() {
var bytes = new byte[] {0x8e, 0xad, 0x8e, 0x99, 0x93, 0x87};
var encoding = Encoding.GetEncoding(932);
Console.WriteLine(encoding.GetString(bytes));
}
プラットフォームで結果が異なります。
- .NET Fx 4.7.1 -
鹿児島
- .NET Core 2.0 - System.NotSupportedException
- .NET Core 2.1 - System.NotSupportedException
.NET Core の実装には CP932 (≒ Shift_JIS) のサポートはありません
でも、両対応なライブラリを書けるのは便利なので
新しく書く分からだけでも
.NET Standard Class Library 化を!
鹿児島の .NET 勉強会
自分は C#/.NET が大好きです
残念ながら、鹿児島にはコミュニティがありません
こんなにあるのにねぇ
- さくらクラブ鹿児島
- WordBench 鹿児島 -> Meetup 鹿児島に変更中
- JAWS-UG鹿児島
- 鹿児島らぐ
- 鹿児島機械学習勉強会
- K-Ruby
- kintone Café 鹿児島
- 鹿児島県サイバーセキュリティ協議会
- GCPUG 鹿児島
- html5j 鹿児島
- MovableType 鹿児島
- GitLab Meetup Kagoshima
- Twilio-UG 鹿児島
- Japan Android Group 鹿児島
というわけで...
かごべんという、無属性コミュニティのなかでやってます
過去の .NET 勉強会
- 2016/06/26 .NET Core もくもく勉強会
- 2016/12/17 TDD体験会 (C# で)
- 2017/10/20 かごもく #1 ASP.NET Core ハンズオン
- 2018/03/03 TDD 体験会 #3 (C# で)
- 2018/07/21 かごもく #10 - .NET
- 2018/08/20 TDD 体験会 #5 (C# で)
こんな感じですね!
かごべんでは、毎月テーマを変えてやってます
他でやらないことをやってます! (一部紹介)
- 2015/08/02 正規表現エンジンを作ろう!
- 2016/01/23 LINQ とか勉強会
- 2017/11/23 かごもく #2 UDP 通信プログラムを書いてみよう!
- 2018/05/26 かごもく #8 でばっぐ!
- 2018/06/13 かごもく #9 番外編 - 20 世紀のコンピューター
- 2018/08/25 かごもく #11 - アルゴリズム: ソートをやってみよう
かごもく #9 番外編 - 20 世紀のコンピューター
かごもく #9 番外編 - 20 世紀のコンピューター
かごもく #9 番外編 - 20 世紀のコンピューター
たまには鹿児島にも遊びに来てください!
かごもく #13 Better C/C++ (Go / Rust) ピザ付き