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) 的内容,可能从四个 SOA 原则开始。

使用 WCF 重用当前类应该没有任何问题。服务只会为您提供更好的结构,而且 WCF 技能比 .NET Remoting 技能更常见(对于接下来需要管理此代码的人)。

祝你好运!-账单

于 2012-02-13T23:14:42.453 回答