Windows ランタイム コンポーネント ブローカーについて

de:code 2016 のサンプルに Windows ランタイム コンポネント ブローカーの UWP が含まれており、その使い方のドキュメントも含めていました。まだ日本語訳はありませんが、「Windows ランタイム コンポーネント ブローカー」の記事が公開されました。この記事には、 サンプル (IPC サーバーのみ) UWP 用のプロジェクト テンプレート へのリンクが含まれています。また、vcvarsall.bat の引数なども解説されています。このドキュメントの公開と同時期に、Windows ストア アプリのドキュメントも英語版が更新されています。 プロジェクト テンプレートでプロジェクトを作成して、プロジェクト ファイルを見れば、マネージ デスクトップ アプリとUWP で説明したプロジェクト ファイルへの変更が行われていることも確認することができます。 技術的には、Windows 10 には、デスクトップ ランタイム(.NET Framework)、Windows ストア アプリ ランタイム(Windows 8.1互換ランタイム)、UWP アプリ ランタイム(Windows ランタイム、.NET Core)の3種類があるので、Windows ランタイム コンポーネント ブローカー自体はデスクトップ ランタイムで動作しますので、動いて当たり前というものになりますが、テンプレートが公開されましたので、これを使用することで容易に Windows ランタイム コンポーネント ブローカーを Visual Studio 2015 で作成できるようになったということになります。  …

0

バイナリ シリアライザについて

オブジェクトをシリアライズする時に、どのシリアライザを使用するかによってデータの互換性を含めて、様々な問題が発生することがあります。.NET Framework や Mono を使った開発で、利用するシリアライザの種類を列挙します。 バイナリ シリアライザBinaryFormatter が標準で組み込まれていますので、使われるケースが多いと思われます。標準以外にも様々なシリアライザが OSS として開発されていたりします。 XML シリアライザDataContractFormatter が標準で組み込まれています。 JSON シリアライザ標準で用意されているシリアライザを使用したり、Json.net を使用することが多いと思います。 バイナリ シリアライザを使用する時の資料は、MSDN ライブラリに掲載されています。バイナリ シリアライザを使用する時の注意は、以下の点になります。 シリアライズするクラスの型を持つアセンブリをライブラリにすること。 後日にクラスにメンバーを追加した場合は、バージョン トレラントを確保すること。 バイナリ シリアライズで作成されたバイナリ データには、「アセンブリ識別子(アセンブリ名、バージョン、カルチャ、パブリック トークン)」と「型の完全名(名前空間。クラス名)」、「シリアライズするフィールド名」と「データ」が記録されています。クラスという型の情報は、アセンブリのType Definition で定義されており、デシリアライズする時に型情報が一致しないとデシリアライズが失敗します。この理由で、シリアライズする型を定義するアセンブリをライブラリにしておくことで、デシリアライズのエラーを削減できるようになります。 シリアライズの基本的な使い方 シリアライズ対象になるクラスが、SerializeSample というアセンブリで、Person クラスが以下のように定義されていたとします(シリアライザは、内部でリフレクションを使用しています。リフレクション API が変更されると、その影響を受けることもあります)。 using System; namespace SerialSample { [Serializable] public class Person { public Person() { } public string Name { get; set;…

0