2

ASP.NETでe-tradeWebアプリケーションを開発しています。

何かを購入するには、まず、ユーザーはログインする必要があります。ユーザーがログインして買い物を始めたとしましょう。ユーザーがbtnBuyをタップすると、このアイテムがコレクションに追加されます。これまでのところ、すべてがうまく機能しています。

ユーザーがbought means here, i added item chosen to theバスケット which contains all the items chosenを購入し、Webブラウザーを閉じたとします。私がやりたいのは、ユーザーが戻ってきたときにこのデータを取得できるように、このデータを保存することです。したがって、ユーザーは中断したところから再開できます。

これまでのところ、私は2つのオプションを考えています:

1-) XMLファイルを使用してデータを取得する:XMLファイルを使用してデータを取得できますが、ここで問題となるのは、ユーザーが選択したアイテムを削除したときに、すべてのXMLファイルを解析して選択したアイテムを削除する必要があることです。高価です。アプリケーションが非常に遅くなります。

2-)データベースに保存する:データベースに保存することを考えていますが、それも高価だと思います。なぜなら、ユーザーが何かを選んだり離れたりするたびに、接続、要求、クエリなどを行う必要があるからです。


何か考えはありますか、それを行うための最良の方法は何ですか?私はここで正しい方向に進んでいますか?

ありがとうございました。

4

2 に答える 2

1

ASP.NET は、 Manager パターン( Profileと呼ばれる) に基づいて、そのような種類のストレージ組み込みソリューションを提供します。詳細の調査を開始する MSDN リンク: http://msdn.microsoft.com/en-us/library/2y3fs9xs%28v=vs.100%29.aspx

プロファイルには、System.Web.HttpContext.Current.Profile を介してほとんどどこからでもアクセスできます (もちろん n 層で適切な場合)。基本オブジェクトはProfileBase型です。しかし、あなたは自分で注射することができます。また、ProfileProvider (APS.NET で SqlProfileProvider として利用可能なデフォルト)もあります。または、自分のものを挿入することもできます。後で必要に応じてプロバイダーを XML や DB... をターゲットにするように変更し (たとえば、Web ファームでは DB がより適している)、キャッシュなどのパフォーマンスのヒントを使用することもできます。

この web.config のスニペットは、プロファイルを有効にする方法を示しています。

<profile defaultProvider="ProjectProfile" inherits="MyLib.ProjectProfile, MyLib">
    <providers >
         <clear/>
        <add name="ProjectProfile" type="MyLib.ProjectProfileProvider, MyLib" />
    </providers>
</profile>

また、ログインしていないユーザーでも使用できます。これは、別の web.config 設定を使用して行うことができます。

<anonymousIdentification enabled="true" />

どのユーザーにも一意の Cookie をサポートします

于 2012-10-19T08:01:34.407 に答える
0

簡単なショッピング カートのソリューションは、ユーザーのブラウザーで Cookie を使用することです。保存されているデータはユーザーや Web サイトにとって重要ではないため、サンプルは次のとおりです: http://www.codeproject.com/Articles/93639/Simple -Shopping-Cart-Basket-User-Control-using-ASP

クッキーについて詳しく読むことができます:

http://msdn.microsoft.com/en-us/library/ms178194(v=vs.100).aspx

ただし、Cookie を使用すると、ユーザーが同じブラウザーで Web サイトにアクセスしている場合にのみデータにアクセスできます。問題がある場合は、データベース ソリューションを使用できます。データベースは xml ファイルの読み取り/書き込みよりもはるかに高速だと思います。ユーザーの注文が完了したときにデータベースをクリアすることもできます

于 2012-10-19T07:58:25.873 に答える