- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先让我说:这是我在这里发表的第一篇文章,有点长,而且我已经很多年没有进行 Windows 窗体开发了……考虑到这一点,如果这不是直接的编程,请原谅问题,请耐心等待,因为我真的需要帮助!!
我被要求为我们公司开发一个 Windows 窗体应用程序,该应用程序与托管 PostgreSQL 数据库的中央(局域网)Linux 服务器通信。该应用程序允许用户在系统中验证自己的身份,然后与 PG 数据库进行常规交易。通常,我会建议针对 Mono 编写一个 webforms 应用程序,但客户端需要利用本地资源,例如 USB 外围设备,所以这是不可能的。虽然看起来不太清楚,但我的问题是斜体如下:
该应用程序旨在始终连接。 我应该如何构建我的 DAL/BLL - 它应该驻留在服务器上还是与客户端一起?
我一直在阅读 Client Application Services (CAS) ,它似乎非常适合身份验证,因为所有内容都通过 URI 公开。我知道 PostgreSQL 有一个 .NET 数据提供程序,但不太确定 CAS 是否可以在 Linux (Debian) 服务器上运行?相信我,我会亲自动手尝试,但我需要先想出一个合乎逻辑的设计,然后才能为“试用目的”分配资源!
如果 DAL/BLL 驻留在服务器上,有什么方法可以创建数据服务,并仅将这些服务公开给经过身份验证的客户端。有一个(安全)要求,即带有用户名和密码的连接字符串不能出现在任何客户端机器上......即使数据库端的安全性非常严格。我猜想这个工作的唯一方法是创建由 ASP.NET 应用程序公开的各种 CRUD 数据服务方法,并让 WindowsForms 向 ASP.NET 应用程序发出数据请求或持久数据(通过 URI)并返回一个结果集或值。 我的假设是否正确?我应该研究 WCF 数据服务吗? WCF 能否与非 SQL Server 数据库一起使用?
感谢您抽出时间阅读本文,但要知道我正在拼命寻求有关此的任何建议!感谢一百万!!!!
我也在考虑使用 NHibernate 作为我的 ORM
最佳答案
您问题的某些部分很复杂,超出了我的专业范围。但是,一般来说,除了 CAP 定理等之外,您几乎可以做任何您付出努力的事情。
DAL/BLL 内容通常可以驻留在任何层中。我把很多这样的东西放在我的数据库中,还有一些放在中间层,但是这是为了允许在不同的环境中重复使用,这可能是也可能不是你的目标。问题是我会仔细考虑这里的关注点分离问题以及你想放置什么样的逻辑集中。越往后,它变得越可重用,但这并不总是一个免费的权衡。
我并不完全熟悉 CAS,但从我在 MSDN 网站上看到的来看,它看起来像是 AJAX 类的东西。这可能是错误的,但如果它是正确的,那么您会遇到一个问题,因为此类请求可能是无状态的,如果您需要持续连接,这可能是一个问题。
总的来说,根据你所说的,做一个两层而不是三层应用程序听起来最干净,并且让 DAL/BLL 位于客户端,可能由服务器中的存储过程支持。然后,您可以将 PostgreSQL 设置为针对您在网络上使用的任何内容进行身份验证(如果我推荐使用 AD,则为 KRB5)。这简化了您的数据访问,并允许您根据对数据库的身份验证来控制权限。由于您可以根据 AD 对用户进行身份验证,因此您可以相应地设置权限。
一个重要的考虑因素是连接数。 PostgreSQL 确实有一些地方必须检查和迭代每个当前连接,并且在某些情况下连接启动和拆卸开销可能很大。因此,一个重要的决定将涉及连接池。您是否使用连接池来提高性能取决于您在做什么,但我已经看到 PostgreSQL 处理 600 个连接而没有出现严重问题的情况。
关于postgresql - "Always-Connected"Windows 客户端数据架构策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2687043/
always block 和 always @* block 之间有区别吗? 最佳答案 always @* 是 always block 的一种类型。它用于推断组合逻辑。 始终使用 @(thought
我的 JNLP 文件是: PocketBrain zatokar PocketBrain PocketBrain
我正在编写 JUnit 测试,并希望拥有一个始终成功的 Outlook 电子邮件收件人,以及一个始终因无法送达而退回的邮件收件人。 对于“永远成功”,我认为 SMTP 相当于 NUL:会很有帮助。 (
所以,我使用 IntelliJ IDEA 在 Java 中进行编程,并且我正在试验关键字 instanceof,我的代码最终看起来像这样: public class Main { public
我有这样的代码:。我的网络有以下张量:Torch.Size([1,1536,1152])Torch.Size([1,1536,1152])。。但我总是收到运行时错误:。如果我改变我的频道大小,比方说我
我有这样的代码:。我的网络有以下张量:Torch.Size([1,1536,1152])Torch.Size([1,1536,1152])。。但我总是得到运行时错误:。如果我改变我的频道大小,比方说我
您可能知道,Microsoft Azure 网站服务下托管的网站默认配置为空闲 20 分钟后超时 (idleTimeout),并且应用程序池每 29 小时重新启动一次 (periodicRestart
我有一个具有3个功能的功能应用程序,其中每2分钟触发一次计时器。我观察到一段时间后,该函数停止被触发,但是当我进入门户网站时重新启动。 据我了解,其原因是默认情况下“始终打开”处于关闭状态。但是,当我
出于什么原因我得到了相同的结果: groovy -e "println 'Hello'.getBytes('windows-1251')" 结果 [72, 101, 108, 108, 111] 和
我有一个 winforms 应用程序,它使用多个 UserControl 填充一个可滚动区域。我的问题是,只要此应用程序 View 可见,是否始终捕获鼠标滚轮滚动?当然,这个应用程序正在为焦点而活跃。
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
在iOS13下,当您为coreLocation请求.always权限(以启用后台位置(例如,地理围栏或iBeacons))时,该应用仅被授予“始终临时设置”权限,这不允许它在后台使用coreLocat
我工作的公司想在我们支持 SQL Server 的应用程序中使用 Always on 可用性组架构。我们有 3 个直接安装的数据库,其中一个按配置分区,我们目前使用 MSDTC 来协调这三个数据库之间
我正在使用 jQuery.ajax 进行 REST 调用并检索一些 JSON。它按预期工作。但是,当我强制出现错误条件(例如无效 URL)时,always 方法不会触发。如果我设置 crossDoma
我有一个相当奇怪的问题。 我有一个正在使用 CAKeyframeAnimation 制作动画的 View 。然而,动画按预期工作,一旦触发委托(delegate)的 animationDidStop:
下面的过程中,数组会在栈上分配吗? procedure One: var arr: array[0..1023] of byte; begin end; 堆栈中最大的项是多少? 访问堆栈上的变量和
我已经创建了一个容器,却忘记了在创建容器时设置--restart ='always'。 是否可以为已经创建的容器修改此选项?我知道我可以创建一个新的,但这很有用,因为它发生在我身上好几次了... 最佳
在下面显示的测试台代码中,我观察到时钟信号clk未按预期切换。时钟在时间 5 从低电平变为高电平,但此后不再切换。 module tb(); reg clk; initial begin
您能给我一些在 Hibernate session 中使用 FlushMode.ALWAYS 的实际示例吗? 谢谢 最佳答案 这几乎总是不必要的。如果在 session 中进行的修改在刷新到数据库时导
我对 C# 反射有疑问。我要反射(reflect)的对象如下: public partial class ApplicationUser : IdentityUser { public App
我是一名优秀的程序员,十分优秀!