什么';C#桌面客户端连接到远程MySQL数据库的最佳方式是什么?
我正在学习c#,正在编写一个Windows客户端,它从计算机收集温度数据,并需要将数据发送到远程linux mySQL数据库 我本来打算直接在c#client中编程,但我想学习更多的方法来实现这一点并获得经验。直接编程会不太安全,很可能需要额外的连接器 你们中有谁能告诉我其他的方法,或者你们会怎么做什么';C#桌面客户端连接到远程MySQL数据库的最佳方式是什么?,c#,mysql,database,web-services,apache,C#,Mysql,Database,Web Services,Apache,我正在学习c#,正在编写一个Windows客户端,它从计算机收集温度数据,并需要将数据发送到远程linux mySQL数据库 我本来打算直接在c#client中编程,但我想学习更多的方法来实现这一点并获得经验。直接编程会不太安全,很可能需要额外的连接器 你们中有谁能告诉我其他的方法,或者你们会怎么做 有没有办法编写一个在我的linux mySQL服务器上充当web服务的C#程序?我应该在哪里查找/搜索以了解更多信息。它叫什么特别的东西吗?或者可能不是用C#? 我应该编写一个php脚本来接受来自
- 有没有办法编写一个在我的linux mySQL服务器上充当web服务的C#程序?我应该在哪里查找/搜索以了解更多信息。它叫什么特别的东西吗?或者可能不是用C#?
- 我应该编写一个php脚本来接受来自C#桌面客户端的HTTP发送/获取请求吗?
- 还有其他方法吗?
- Windows桌面:用C语言编程的客户端,用于检索临时数据并需要发送到服务器
- Linux服务器:运行Apache和mySQL服务器,并已设置数据库。与外部连接关闭
“哪一个是专业的”问题是主观的——以上三个选项都可以。只需让代码清晰简洁:)直接将MySQL服务器公开到internet上是一种严重的争议,此外,这会给您提供一组相当粗粒度的访问权限,这可能不足以满足您的应用程序,因此运行某种服务器应用程序是正确的选择
- 使用mono,您可以在Linux服务器上运行大量基于.Net(以及C#)的代码。经验法则是:如果它没有Winforms GUI并且没有P/Invoke,它就可以正常工作。当然,这需要在服务器上安装mono,这在大多数商业主机上都没有
- 在PHP中运行服务器使其更具可移植性,但会带来性能开销。此外,它不允许某些业务逻辑对象在DLL程序集中实现并在两侧使用
- 至于协议:选择你的毒药。经验法则是,像SOAP这样的预定义协议往往需要更多的工作(并且在第一步中需要更多的学习),但从长远来看,它们往往更健壮
对于您的特殊用例,我个人会使用一个基于PHP的快速解决方案,其中协议只是一个简单的GET,带有几个参数,一个是温度,另一个是验证客户端的参数。我的建议是设置一个web服务,以便与您的windows客户端通信。直接连接到mysql服务器是可以的,如果它们都驻留在同一个lan中,但如果不是,例如,您的windows客户端运行在到处旅行的某台笔记本电脑上,或者甚至mysql服务器只允许本地传入连接,您应该设置一个web服务。此外,当通过其他端口的连接被阻止时,http连接通常可以通过防火墙
php是一种很好的方法。由于您正在学习c#,您可能还想使用c#进行服务器端编程,那么,为什么不试试mono?您可以使用胖客户端将传感器的MO从一个轮询更改为另一个事件:只需在本地进行轮询,并且仅当读数发生变化时才将其推送到服务器。谢谢:)我想指出的是,我希望每天两次发送大约300个潜在的传输,可能是在同一时间。只有在事件发生变化时,我才会把你的建议包括在内。那么PHP是否仍然足够?明天还要看mono。我只是想知道明天从哪里开始研究的方向。300个5位数的值每一个都是1500字节的有效负载,比如说,使用JSON和打包时小于4K——我认为PHP中根本不会出现性能问题。即使是“temp1=123.456&temp2=234.567&…”的查询字符串也足够好了。不过可能想使用POST。