2011-10-17 4 views
1

IIS上でSilverlightアプリケーションを実行していますが、現在はいくつかのデータリストがC#にコード化されていますが、これはコンセプトデモ用の証明書ではありませんでした。別のソースを変更することができます。Silverlightアプリケーションのデータストレージにはどのような簡単なソリューションが適していますか?

私はxmlファイルとsqlデータベースを見てきました。問題は、クライアントが余分なものをマシンにインストールすることを躊躇していることです(長いセキュリティプロセス)ので、SQL Expressは実用的ではないかもしれません。私はまた、SQLコンパクト版を調べようとしましたが、それについてのまともなチュートリアルを見つけることができないようです。

データは、文字列と整数を含む小さなオブジェクトの3つのかなり短いリストで構成されています。私は、理想的にはサーバー上に特別なインストールを必要としないソリューションを実装するために、シンプルで迅速な方法を探しています。

誰にでも便利な候補やリンクがありますか?事前に

おかげで

キャップ

+1

"保存"する必要があるデータの特徴付けをすると役立ちます。すべてのクライアント(製品カタログなど)が共有する「静的な」データですか? OTHは動的に入力されたデータで、各クライアントのみが所有していますか?他に何か? – AnthonyWJones

+0

ああ、良い点。静的なデータは、すべてのクライアントが使用する単一のデータストアであり、製品カタログや提案どおりのものです。 – Captastic

答えて

0

私は、これは理想的なソリューションではありません知っていますが、タブ区切りのテキストファイルを使用して試みることができます。それらは作成するのが最も簡単です。

0

XML(web.config)を使用して、事前設定またはデフォルトのユーザー設定値などのすべてのクライアントによるデータ使用を保存し、ユーザーのUIレイアウト設定などのクライアントに依存しないデータにIsolated Storageを使用します。

1

LINQを使用してSQLの代わりにデータを照会するのに慣れている場合は、Sterling DBが最適です。これは非常に軽量で、サーバーやクライアント上で特別な作業は必要ありません(コードに明示的に含めてください)。独立したストレージを使用してデータを格納します。すべてのシリアライゼーション/デシリアライゼーションはライブラリによって処理されます。

編集:あなたが述べたように(でも、スターリングなど、クライアント側のデータベースを使用しないデータは、(すべてのクライアントが同じデータを消費意味する)「静的」であることをあなたのコメントに基づいて

、それはおそらく最高です)SQL CE。このタイプの「カタログ」データを変更するには、そのデータを変更するにはソフトウェアの新しいリリースが必要になるため、ハードコーディングを予約するのは間違いありません。

抽象化を行う簡単な方法は、すべてのデータを含むXAPとともにXMLファイルをホストすることです。 XMLは、任意の方法で作成できます。ソフトウェアでは、XMLファイルをダウンロードして解析し、アプリケーションが実行されるたびにカタログを作成するのはかなり簡単です。カタログの変更が必要な場合は、XMLファイルを変更するだけです。ここで

0

私はXMLにオブジェクトをシリアル化し、サーバーに保存するだろう、それはあなたがに値を引くことができ

を行うことは比較的容易だとXDocument

XDocument ConnectionStrings = XDocument.Load(System.AppDomain.CurrentDomain.BaseDirectory + "ConnectionStrings.xml"); 

は、私はシリアル化の関数であります

private static XDocument Serialize<T>(object obj) 
    { 
     XDocument ReturnValue = new XDocument(); 

     //Create our Serializer with the type that was passed in 
     XmlSerializer Serializer = new XmlSerializer(typeof(T)); 

     //Serialize our object to a string writer 
     System.IO.StringWriter sw = new System.IO.StringWriter();   
     Serializer.Serialize(sw, obj); 

     //We use a string reader to read the string from our Writer (created when serialized) 
     System.IO.StringReader sr; 
     sr = new System.IO.StringReader(sw.ToString()); 

     //Then we can load the string reader giving us an XDocument 
     ReturnValue = XDocument.Load(sr); 

     return ReturnValue; 
    } 
    private static T Deserialize<T>(XDocument Xdoc) 
    { 
     T ReturnValue; 

     //Create our Serializer with the type that was passed in 
     XmlSerializer Serializer = new XmlSerializer(typeof(T)); 

     //Create a string reader to access the XML data in our XDocument 
     System.IO.StringReader sr = new System.IO.StringReader(Xdoc.ToString()); 

     //Deserialize the XML into our object 
     ReturnValue = (T)Serializer.Deserialize(sr); 

     return ReturnValue; 
    } 
関連する問題