【问题标题】:Java/JRuby on Rails vs .NET 3.5... feel like I'm doing it wrongJava/JRuby on Rails vs .NET 3.5...感觉我做错了
【发布时间】:2008-12-29 16:46:47
【问题描述】:

我打算用 Metro/Hibernate 用 Ja​​va 开发一个 Web 服务(SOAP 到 C++ 客户端),并在它前面用一个用 JRuby on Rails 编写的网站,通过 JRuby 连接 Java 模块,通常通过数据库.我已经编写了一些代码并设置了所有内容。

现在,我听说 .NET 3.5 非常强大,经过阅读后我承认这是真的。但是,放弃 Java 和 RoR 的这种怪异而奇特的混合体,将一切都切换到 .NET 是否有意义?一切:服务、数据库连接(对象的 linq)、web-front、ajax 东西——一切都在一个巨大的 .NET 3.5 解决方案中。

我也希望玩得开心,但不如在服务器端的 C++ 中玩得开心 :)

我知道,凭借 RoR 的力量,它是否属于任何一方并不重要。但是,无论我是为 .NET 还是 Java 设置的,我仍然觉得我做错了,我应该切换到非我当前打开的一侧。

我在 Web 开发方面的经验非常有限,我只写过一次 ASP.NET Web 服务并支持 Java Web 服务,所以我有一个真正的强迫症,可以在这里选择平台。

【问题讨论】:

  • 你说的这个“地铁”是什么?
  • JAX-WS for Java 的实现,有点像 Axis 或 XFire metro.dev.java.net

标签: java .net ruby-on-rails jruby


【解决方案1】:

.NET 3.5 非常有趣(在主流平台中),但在我个人看来,Ruby 和 .NET 3.5 一样有趣。

关于功能,它们也大致相当,您当然可以在两者中毫无问题地制作一个 SOAP Web 服务应用程序。

关于“可怕的混合”,没有这样的东西,它只是一个(非常活跃的)端口,就像 .NET 领域的 IronRuby 或 IronPython。

当然,如果你坚持使用 .NET 并使用 C# 编写,而不是混合搭配 Ruby 和 Java,那么整体会更加连贯。但是你当然只能使用 JRuby。

鉴于乐趣和能力因素大致相同,我会选择 JRuby,以防我将来碰巧必须在 Linux、Solaris 或非 Windows 上部署。

如果您确定要永远使用 Windows,请选择最适合您的方式。

【讨论】:

    【解决方案2】:

    很抱歉,但你的所作所为听起来像个大泥球。你走哪条路对我来说并不重要,但我会通过减少你使用的技术/框架的数量来简化架构。如果您可以在 Ruby/Rails 中找到一种无需参考 Java 的方法(尽管您可能需要保留 C++ 客户端),那将是可行的。显然,在 .NET(我的首选平台)中工作是另一种选择。 Windows Communication Foundation 使得编写比旧的 ASP.NET Web 服务更轻量级的 Web 服务(包括使用 JSON 的 RESTful Web 服务)变得更加容易。

    如果我今天这样做,我会使用 ASP.NET MVC 作为 Web 前端,WCF(用于 Web 服务),或者消除 C++ 客户端,或者考虑使用 .NET 或 Mono 用 C# 编写它。

    【讨论】:

      【解决方案3】:

      在我看来,您在这里有点过度规划或过度工程。通过阅读,我对您的架构不太清楚,但我看到很多词,如 .NET、Java、SOAP、C++、JRuby on Rails、RoR、Web 服务、Hibernate、ajax、linq 等,都被抛出周围,​​所以我只是想知道它们将如何融合在一起。由于我不太了解您的问题,因此这里有一些可能适合或不适合您的需求的简化架构。我也没有看到你的帖子有任何问题,所以鉴于这种情况,我建议:

      1. Web 前端:使用 Ajax 的 RoR。 网络服务:.NET。 数据访问:Linq。

        这意味着您的 .NET Web 服务将使用 Linq 访问数据并通过前端 Ror 使用的 SOAP 公开。

      2. 或者,将 .NET 替换为 Java,将 Linq 替换为 Hibernate。

      如果以上没有用,那么我的另一个建议是您不必将所有这些技术组合在一个解决方案中。

      【讨论】:

        【解决方案4】:

        我宁愿将来迁移到 FreeBSD 或 Debian...我肯定不想永远留在 Windows 上。但是有 Mono,对吧?

        【讨论】:

        • 单声道如果你能在它的范围内生活就很好。它并不完全支持 MS .NET 平台提供的所有功能。
        • 特别是如果您想要 3.5 来获得乐趣。 Mono 始终(并且将永远)落后于当前的 .NET。
        猜你喜欢
        • 2012-01-15
        • 1970-01-01
        • 1970-01-01
        • 2023-03-28
        • 1970-01-01
        • 1970-01-01
        • 2010-09-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多