.NET の Serialize
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-戻る
--[[.NET開発]]
--[[.NET Coreへの移行]]
* 目次 [#iae4e923]
#contents
*概要 [#nc729dde]
-以下の様な[[様々なシリアライザ>#f9129591]]も存在するが、~
ココでは、BinaryFormatterのバイナリシリアライズのみ取り扱...
-System.Runtime.Serialization名前空間のBinaryFormatterク...
*詳細 [#m1c7bdf2]
**使用例 [#te0a05d7]
BinaryFormatterのバイナリシリアライズを使用すると、以下の...
***オブジェクト ⇔ バイト変換 [#cb5f9514]
-オブジェクトをバイトに変換できる。
-オブジェクトをバイトから復元できる。
***オブジェクトのセーブ&ロードや転送 [#j389d347]
-ファイルにセーブ&ロードできる。
-ネットワーク経由で転送できる。
***参考 [#r89a9471]
-.NET Tips (VB.NET,C#...)
--オブジェクトの内容をバイナリファイルに保存、復元する~
https://dobon.net/vb/dotnet/file/binaryformatter.html
-[[.NET 5への移行]]で、obsolete and prohibitedに。
**様々なシリアライザ [#f9129591]
以下の様なシリアライザも存在する。
***バイナリ [#r089b39d]
-DataContractSerializer
-MsgPackFormatter - [[MessagePack>#x915dcfa]]
***XML [#odd9cf36]
-XmlSerializer
-DataContractSerializer
***JSON [#xca3001a]
-純正
--DataContractJsonSerializer
--JsonSerializer - System.Text.Json
-その他
--JsonSerializer - JSON.NET
--JsonSerializer - JSON.NET BSON
※ [[JSONのparseを色々試してみた。]]
**相互運用性 [#se5554ec]
***[[バージョン間>https://opentouryo.osscons.jp/index.php...
相互運用性あり
***[[x86, 64間>https://opentouryo.osscons.jp/index.php?%E...
相互運用性あり(ポインタだけ注意)
***net, netcoreapp [#d3d21bb5]
以下の[[検証コード>#j95f127f]]で検証した結果、基本的に相...
-net ⇔ netcoreapp~
Windows上であれば動作する。
-netcoreapp(on Windows) ⇔ netcoreapp(on Linux)~
netcoreapp同士であれば動作する。
-net ⇔ netcoreapp(on Linux)~
netcoreapp(on Linux) → netの場合に限り動作しないケースが...
(デシリアライズしたDictionaryにIConvertibleが無いとかそ...
**パフォーマンス [#b0ac71c8]
-一般的に遅いとされる。
-ゲーム業界では、[[MessagePack>#x915dcfa]]などの、~
POCOシリアライズに特化した高速なシリアライザが開発されて...
**セキュリティ [#za8911a9]
最近、問題視されてきている模様~
(オープンなサービスなどで、不特定多数ユーザから~
バイナリデータをインジェクションされるのが脅威)。
*参考 [#kb243639]
**パフォーマンス [#ndd1c418]
-neue cc - .NET(C#)におけるシリアライザのパフォーマンス比...
http://neue.cc/2010/05/29_261.html
**セキュリティ [#a216bfe6]
詳細は[[コチラ>.NET 5への移行#x00b62f4]]
**実装 [#c78b88bf]
-https://github.com/OpenTouryoProject/OpenTouryo/blob/dev...
**相互運用性検証 [#j95f127f]
-https://github.com/OpenTouryoProject/SampleProgram/tree/...
**[[Protocol Buffers>#m200a1bf]] と [[MessagePack>#x915dc...
-クロスプラットフォーム&高性能なシリアライザ
-双方とも、JSONのバイナリ版([[CBOR]])みたいなものだが、
-少々、思想が異なる。~
端的に言うと、
--[[Protocol Buffers>#m200a1bf]]は、
---gRPC用に設計されている。
---運用を見据えるなら [[Protocol Buffers>#m200a1bf]]。
--[[MessagePack>#x915dcfa]]は、
---ビッグデータ用のユーティリティとして設計されている。
---手軽に使いたいなら [[MessagePack>#x915dcfa]]。
***[[Protocol Buffers]] [#m200a1bf]
-Googleによって開発され、主に、gRPCで使用される。
-[[Protocol Buffers]]はIDLを使用するので、
--データの構造化に重きを置いていると言える。
--クロスプラットフォーム対応が完全になり得る。
***MessagePack [#x915dcfa]
-serialize/deserializeの速度とデータ長の圧縮をアドバンテ...
-IDLが無いので、クロスプラットフォームが保証されない部分...
-なんとなく、[[CBOR]]的([[CBOR]]から参照されている)で、~
IETF標準化が提案されたが、下位互換を重視するため~
標準化を拒否した等の、開発のポリシーが読み取れる。~
(開発者がビッグデータ界隈の出身である事を考えると解り易...
-参考
--MessagePackのIETFへの提案に関する困惑 - たごもりすメモ~
https://tagomoris.hatenablog.com/entry/2013/03/01/130433
**microsoft.com [#nc00c9ec]
-.NET でのシリアル化~
https://docs.microsoft.com/ja-jp/dotnet/standard/serializ...
--バイナリ シリアル化~
https://docs.microsoft.com/ja-jp/dotnet/standard/serializ...
-シリアル化
--(C#)~
https://docs.microsoft.com/ja-jp/dotnet/csharp/programmin...
---チュートリアル: C# を使用してオブジェクトを永続化する~
https://docs.microsoft.com/ja-jp/dotnet/csharp/programmin...
--(Visual Basic)~
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/prog...
---Visual Studio でのオブジェクトの永続化 (Visual Basic)~
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/prog...
-BinaryFormatter Class (System.Runtime.Serialization.Form...
https://docs.microsoft.com/ja-jp/dotnet/api/system.runtim...
----
Tags: [[:プログラミング]], [[:.NET開発]]
終了行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-戻る
--[[.NET開発]]
--[[.NET Coreへの移行]]
* 目次 [#iae4e923]
#contents
*概要 [#nc729dde]
-以下の様な[[様々なシリアライザ>#f9129591]]も存在するが、~
ココでは、BinaryFormatterのバイナリシリアライズのみ取り扱...
-System.Runtime.Serialization名前空間のBinaryFormatterク...
*詳細 [#m1c7bdf2]
**使用例 [#te0a05d7]
BinaryFormatterのバイナリシリアライズを使用すると、以下の...
***オブジェクト ⇔ バイト変換 [#cb5f9514]
-オブジェクトをバイトに変換できる。
-オブジェクトをバイトから復元できる。
***オブジェクトのセーブ&ロードや転送 [#j389d347]
-ファイルにセーブ&ロードできる。
-ネットワーク経由で転送できる。
***参考 [#r89a9471]
-.NET Tips (VB.NET,C#...)
--オブジェクトの内容をバイナリファイルに保存、復元する~
https://dobon.net/vb/dotnet/file/binaryformatter.html
-[[.NET 5への移行]]で、obsolete and prohibitedに。
**様々なシリアライザ [#f9129591]
以下の様なシリアライザも存在する。
***バイナリ [#r089b39d]
-DataContractSerializer
-MsgPackFormatter - [[MessagePack>#x915dcfa]]
***XML [#odd9cf36]
-XmlSerializer
-DataContractSerializer
***JSON [#xca3001a]
-純正
--DataContractJsonSerializer
--JsonSerializer - System.Text.Json
-その他
--JsonSerializer - JSON.NET
--JsonSerializer - JSON.NET BSON
※ [[JSONのparseを色々試してみた。]]
**相互運用性 [#se5554ec]
***[[バージョン間>https://opentouryo.osscons.jp/index.php...
相互運用性あり
***[[x86, 64間>https://opentouryo.osscons.jp/index.php?%E...
相互運用性あり(ポインタだけ注意)
***net, netcoreapp [#d3d21bb5]
以下の[[検証コード>#j95f127f]]で検証した結果、基本的に相...
-net ⇔ netcoreapp~
Windows上であれば動作する。
-netcoreapp(on Windows) ⇔ netcoreapp(on Linux)~
netcoreapp同士であれば動作する。
-net ⇔ netcoreapp(on Linux)~
netcoreapp(on Linux) → netの場合に限り動作しないケースが...
(デシリアライズしたDictionaryにIConvertibleが無いとかそ...
**パフォーマンス [#b0ac71c8]
-一般的に遅いとされる。
-ゲーム業界では、[[MessagePack>#x915dcfa]]などの、~
POCOシリアライズに特化した高速なシリアライザが開発されて...
**セキュリティ [#za8911a9]
最近、問題視されてきている模様~
(オープンなサービスなどで、不特定多数ユーザから~
バイナリデータをインジェクションされるのが脅威)。
*参考 [#kb243639]
**パフォーマンス [#ndd1c418]
-neue cc - .NET(C#)におけるシリアライザのパフォーマンス比...
http://neue.cc/2010/05/29_261.html
**セキュリティ [#a216bfe6]
詳細は[[コチラ>.NET 5への移行#x00b62f4]]
**実装 [#c78b88bf]
-https://github.com/OpenTouryoProject/OpenTouryo/blob/dev...
**相互運用性検証 [#j95f127f]
-https://github.com/OpenTouryoProject/SampleProgram/tree/...
**[[Protocol Buffers>#m200a1bf]] と [[MessagePack>#x915dc...
-クロスプラットフォーム&高性能なシリアライザ
-双方とも、JSONのバイナリ版([[CBOR]])みたいなものだが、
-少々、思想が異なる。~
端的に言うと、
--[[Protocol Buffers>#m200a1bf]]は、
---gRPC用に設計されている。
---運用を見据えるなら [[Protocol Buffers>#m200a1bf]]。
--[[MessagePack>#x915dcfa]]は、
---ビッグデータ用のユーティリティとして設計されている。
---手軽に使いたいなら [[MessagePack>#x915dcfa]]。
***[[Protocol Buffers]] [#m200a1bf]
-Googleによって開発され、主に、gRPCで使用される。
-[[Protocol Buffers]]はIDLを使用するので、
--データの構造化に重きを置いていると言える。
--クロスプラットフォーム対応が完全になり得る。
***MessagePack [#x915dcfa]
-serialize/deserializeの速度とデータ長の圧縮をアドバンテ...
-IDLが無いので、クロスプラットフォームが保証されない部分...
-なんとなく、[[CBOR]]的([[CBOR]]から参照されている)で、~
IETF標準化が提案されたが、下位互換を重視するため~
標準化を拒否した等の、開発のポリシーが読み取れる。~
(開発者がビッグデータ界隈の出身である事を考えると解り易...
-参考
--MessagePackのIETFへの提案に関する困惑 - たごもりすメモ~
https://tagomoris.hatenablog.com/entry/2013/03/01/130433
**microsoft.com [#nc00c9ec]
-.NET でのシリアル化~
https://docs.microsoft.com/ja-jp/dotnet/standard/serializ...
--バイナリ シリアル化~
https://docs.microsoft.com/ja-jp/dotnet/standard/serializ...
-シリアル化
--(C#)~
https://docs.microsoft.com/ja-jp/dotnet/csharp/programmin...
---チュートリアル: C# を使用してオブジェクトを永続化する~
https://docs.microsoft.com/ja-jp/dotnet/csharp/programmin...
--(Visual Basic)~
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/prog...
---Visual Studio でのオブジェクトの永続化 (Visual Basic)~
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/prog...
-BinaryFormatter Class (System.Runtime.Serialization.Form...
https://docs.microsoft.com/ja-jp/dotnet/api/system.runtim...
----
Tags: [[:プログラミング]], [[:.NET開発]]
ページ名: