0

我正在开发一个远程处理类库,以便我可以将数据库交互和业务对象保留在服务器上而不是客户端上。

我希望能够将我自己的对象返回给客户端,以便他们可以通过服务器本身与它们进行交互。

例如(半伪代码):

服务器

class Database { ... }
class Utility
{
  public User getUser(username)
  {
     return new User(username);
  }
}
class User
{
  public string[] getPerms()
  {
    return Database.query("select * from permission where user = " + this.username);
  }
}

客户

Utility utility = (Utility)getRemotingClass("Utility");
User user = Utility.getUser("admin");
string[] perms = user.getPerms();

如何组织我的类/命名空间?我特别想知道我的系统的类引用和可伸缩性。

任何形式的批评/建议都非常感谢。

4

2 回答 2

0

我不是要打鼓,但您可能想研究 WCF。远程处理非常健谈,.Net 对维护干净接口的真正支持是通过 WCF 和消息传递完成的,而不是通过远程处理进行完整的对象状态管理。

听起来您正在做的是开发用于管理数据库连接的中间层。只要确保您最终不会重新开发 SQL Server 的接口即可。

于 2010-06-25T10:34:18.873 回答
0

我倾向于将所有“共享”(数据传输对象)类放在一个单独的 DLL 中,服务器和客户端都引用该 DLL(如果要与无论如何,客户端代码)。

通过将它们放在单独的组件中,您可以加强 DTO 和用于远程传输它们的底层技术的解耦。这意味着,如果您最终重写了远程调用技术,您将不必接触 DTO,只需重新使用程序集即可。

不要忘记将 DTO 标记为具有 [Serailizable] 属性,以便它们可以在客户端和服务器之间传输。

赫比

于 2010-06-25T11:16:50.480 回答