编程决定java或.Net,db或no db

时间:2009-05-07 10:54:38

标签: java .net sql-server database berkeley-db

我在做出编程决定时陷入困境,

我是.Net开发人员,我目前正在为我的客户端构建一个从第三方应用程序接收数据的应用程序,然后必须对这些值执行操作并将其发送到webservice / servlet,然后将数据显示到一个网页,这里的问题是,网页上发送给用户的数据(投票选项,计数等)必须最迟每2秒更新一次,

我有很多困惑做出一些决定,

1)数据提供者(第三方应用程序)推荐Java但不强制执行它,而我擅长.Net(C#),你会建议用C#或Java构建应用程序。在优化和速度方面,哪个更好?你们有什么推荐的?

2)aftr从第三方接收数据时,我和我的同事的想法很复杂,我希望收到数据后,我们应该把它写入数据库(因为它们只发送了几个固定字段)每次),然后获取webservice / servlet来检索数据,然后对其进行计算,我的理由是,如果我们保存它,我们也会有一个跟踪和历史数据以及用户思维模式,而m,y同事说将它保存到db将大大延迟应用程序并且我们应该直接从应用程序轮询数据,他还认为数据库将立即变得庞大而且速度很慢,我们尝试这样做但是它导致了8秒的延迟(对于某些原因tomcat只在每7次尝试之后检索数据,如果它是一个webapp并且如果它是java控制台应用程序则每秒保存一次。)我的想法是,如果我们保存到db并从那里检索,我们可以得到控制台应用程序每秒写入应用程序,然后使用webservi检索数据每隔一秒左右取决于我们想要的东西。

在这个场景中,你们认为什么是一个好方法,我们应该保存到db还是不保存到db?

3)即使我们确实保存到db,你会认为使用berkeley或sqlserver会有所作为吗?我更喜欢使用sqlserver for .net a berkeley for java

我知道这是一个非常大的问题,并且会非常无聊,但是我们非常感谢任何帮助/建议,请帮助我们更清楚地了解堆栈溢出这些问题。

谢谢你的时间!

的问候。

3 个答案:

答案 0 :(得分:5)

  1. 你知道C#,然后使用它。如果没有其他技术限制,请使用您最熟悉的内容。

  2. 在尝试两种情况之前,不要考虑性能。做一个概念证明,你的方式和你的coleague的方式,看看性能差异以及历史数据是否值得性能差异。

  3. 将SQL Server用于C#。您可能需要考虑许可(无论如何,您更了解项目的上下文)。

答案 1 :(得分:3)

如果您对.NET感到满意,为什么要花时间使用Java?我对Java的担忧是无关紧要的,但无论如何你都会花时间学习Java,可能会陷入任何初级开发人员使用任何工具或技术陷入的陷阱。

我说,如果你对.NET感到满意,可以在.NET中完成。最终结果不会有太大的不同,但你会更快到达那里。

然后,进行计算并将数据库用作“缓存”的形式与保留跟踪记录不同。您可以从第三方应用程序返回结果,并仍将历史记录存储在数据库中。如果它太慢,请排队。

答案 2 :(得分:1)

  1. 只要您的客户可以使用您最熟悉的语言。

  2. 询问您的客户是否必须保留数据,如果不存在则不会持续存在。如果你必须坚持下去,你可以异步进行,而不会影响在线处理。

  3. 我不知道这些差异,但答案取决于你想要对持久数据做什么(你要保留多长时间,你需要备份,你愿意为解决方案)...所以如果你知道你想要达到什么目标,你可以选择合适的工具,也许它不会是一个数据库...