我有一个在多个应用程序中复制的DAL(我知道它设计不好但现在忽略它),我想要做的就是这个...
创建一个将通过所有桌面应用程序访问的WCF DAL组件。任何人都可以分享他们对以下内容的看法吗?
让我知道你对上述各点的看法,以及你是否能为我提供更多的见解......将是b gr8。
提前致谢...
答案 0 :(得分:3)
我来回答一下:
1)netTcpBinding是一个很棒的绑定 - 非常快,非常好的性能 - 绝对适合那个!
3)在IIS 7.0中主机,或者然后是自主机 - 编写一个小的Windows NT服务并自己处理主机。为您提供更多控制,以及手动启动和停止DAL服务的能力。我甚至不愿意尝试让NetTcp在IIS5 / 6上运行某种技巧/黑客 - 浪费时间。
4)同一个绑定的多个端点既没有用,也没有帮助提高性能。
5)我总是使用“Per-Call”。每个服务请求都获得自己的服务实例,处理调用,然后就完成了。这使得对WCF服务实现的编程变得轻而易举 - 如果你单独使用,要有任何性能,你需要担心多线程和线程安全的编程 - 真是一团糟。不要这样做。不,只是不要这样做。
DAL应该始终是无状态的,并且应该在“尽可能晚地打开数据库连接,完成工作,并尽快关闭连接”上再次运行模式,这非常适合每个呼叫实例模式。当您的服务请求进入时,将打开连接(无论如何,这些都连接在ADO.NET中的连接池中,服务器端),工作已完成,连接再次关闭。