0

わかりました。私は.NETリモーティングに非常に慣れていないことを知っています。ベストプラクティスに関する限り、質問があります。まず、私はすでに構築した社内アプリケーションを持っており、すべてのデータを処理するために参照するdllを持っています。サーバーバージョンのアプリケーションで、これらのクラスとそのメソッドをすべて利用し、これらのカスタムオブジェクトをやり取りできるようにしたいと考えています。

私の質問は、[Serializable]を前後に受け渡したいすべてのクラスに適用してから、Get、AddOrUpdate、Deleteなどのメソッドを具体的に使用する特別なクラスを作成する必要があるかどうかです。

現在、データベースとやり取りするすべてのクラスにGet、AddOrUpdate、およびDeleteメソッドがあります。これらのクラスすべてにMarshalByRefObject&[Serializable]を実行できないことをすでに学びました。そうしないと、問題が発生します。そのため、プロパティ定義やメソッド呼び出しではなく、「管理」(Get、AddOrUpdate、Deleteなど)を実行する個別のクラスを作成する必要があると考えています。

私が考えていることの例を実行する必要があります。

[Serializable]
    public class Users {
        #region Properties...
        private int _userID;
        private string _displayName;
        private string _userName;
        private string _firstName;
        private string _lastName;
        private string _LogOnPassword;
        private List<Users> _Associates = new List<Users>();
        private AuthenticationLevel _authorizationLevel;
        private string _userSettingsXML;
        private string _active;
        private string _signature;
        private int _PhoneExtension;
        private int _Index;
        private List<UserAssignedRoles> _Roles = new List<UserAssignedRoles>();

次に、実際にリストを作成するには、UserManagementのような別のクラスを作成します。

public class UserManagement : MarshalByRefObject { 
    public List<Users> GetUsers() { 

    }
}

どんなアドバイスも大歓迎です!

4

1 に答える 1

1

リモート処理は優れたアプローチかもしれませんが、リモート処理を行っている理由について多くのコンテキストが提供されていないため、追加の提案をさせてください. アーキテクチャ層全体で通信するための Web サービスの作成を検討することをお勧めします。Windows Communication Foundation (WCF) は成熟したテクノロジであり、単純な通信を非常に簡単に行うことができます。また、 SOA の 4 つの原則から始めて、サービス指向アーキテクチャ (SOA) についても読みたいと思うかもしれません。

現在のクラスを WCF で再利用しても問題はありません。サービスは構造を少し改善するだけであり、WCF スキルは .NET リモーティング スキルよりもはるかに一般的です (次にこのコードを管理する必要がある人にとって)。

幸運を!-明細書

于 2012-02-13T23:14:42.453 に答える