我正在开发一个Remoting类库,这样我就可以在服务器上保留数据库交互和业务对象,而不是客户端。
我希望能够将自己的对象返回给客户端,以便他们可以通过服务器本身与它们进行交互。
例如(半伪代码):
服务器
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();
如何组织我的类/命名空间?我特别想知道我的系统的类引用和可伸缩性。
非常感谢任何批评/建议。
答案 0 :(得分:0)
我不是故意打鼓,但你可能想看看WCF。 Remoting非常繁琐,并且通过WCF和消息传递完成了对.Net维护干净接口的真正支持,而不是通过远程处理进行完整的对象状态管理。
您正在做的是开发用于管理数据库连接的中间层。只需确保不要将接口重新开发到SQL服务器。
答案 1 :(得分:0)
我倾向于将所有“共享”(数据传输对象)类放在服务器和客户端引用的单独DLL中(如果要分发,可以将它们放在与服务器类相同的DLL中)无论如何,它与客户端代码。)
通过将它们放在单独的组件中,可以加强DTO的分离以及用于远程传输它们的基础技术。 这意味着如果您最终重写远程呼叫技术,则无需触摸DTO即可重新使用组件。
不要忘记将DTO标记为[Serailizable]属性,以便它们可以在客户端和服务器之间传输。
赫比