选择什么技术堆栈

时间:2009-12-02 05:51:11

标签: java .net ruby programming-languages

对于下面的标准,什么是技术堆栈最适合?

  1. 跨平台(Linux / Windows)。
  2. 能够作为服务(守护进程)运行。
  3. 强大的面向对象数据访问(O / R映射)。
  4. 支持多个数据库(MsSql,Oracle,MySQl,SqlLite,Postgress)。
  5. 可以测试Web应用程序(单元和集成测试)。
  6. 合理或无开发价格(包括IDE和其他工具)。
  7. 合理或免费许可(操作系统,数据库等)。
  8. 非常小的开发团队(1-5人)。
  9. 团队的Windows / .NET背景。
  10. 我很容易选择.NET作为ASP.NET MVC / NHibernate的平台。我擅长.NET并且做了大约3年左右。所以这对我来说是最简单的选择。

    但是在Mono上运行ASP.NET似乎有太多问题。大多数时候我在网上找到了那些。但我所知道的是:

    • 不同主机上不同版本的Mono
    • 不同平台上某些对象的不同行为(Ayende前段时间在他的博客中写到这一点)
    • 保守垃圾收集器
    • 与MS合法issues

    我特别喜欢 Ruby 作为一种语言,但不太确定是否需要很多技巧来满足第2,3,4点。

    至于Java,由于某些原因我不能这样做。每次我不得不考虑编写get / set而不是属性,我会回到C#。如果没有.NET 2/3,我会做Java。

    所以有两个主要问题:

    • 哪种语言最适合?
    • 哪些相关技术会有用?

5 个答案:

答案 0 :(得分:7)

标准建议是:

  • Java(跨平台)
  • 表示层的JSF。 JSF或多或少类似于ASP.NET,(Java和C#也相似),因此.NET背景不会出现这样的问题。
  • Hibernate / JPA(功能强大,支持多种数据库)
  • Selenium,JSFUnit,JUnit,TestNG进行测试
  • Eclipse +插件 - 大多是免费的
  • PostgreSQL - 功能强大且免费
  • 一些适用于操作系统的Linux发行版
  • 弹簧框架 - 您对此没有任何具体要求,但它会让您的生活更轻松。

答案 1 :(得分:4)

好消息是Ruby有一些优秀的O / R映射包。试试ActiveRecord(这是Rails的一部分)。 Ruby中的O / R映射比在Java中更容易 - 您不需要代码生成来满足静态类型系统,ActiveRecord使用method_missing来模拟必要的函数调用。

同样适用于数据库驱动程序 - 它们是大多数主要数据库的Ruby绑定。

如果您对Ruby感兴趣,那么Ruby on Rails将涵盖您的大部分要求(除了与最熟悉Windows / .NET的团队打交道)。您还可以在JRuby上运行Rails(Ruby编译为JVM)。

答案 2 :(得分:2)

我建议去找java

  • Java
  • springframework的
  • Freemarker / Velocity
  • 休眠
  • Eclipse +插件 - 大部分是免费的[从Bozho复制;]]
  • MySQL - 功能强大且免费

答案 3 :(得分:1)

这些选项中的任何一个都适合你(虽然很难打电话):

祝你好运。看看.NET开发人员如何从.NET切换到其他东西会很有趣。

答案 4 :(得分:1)

我会说:

<强>语言

Python或PHP或Java,它们在linux和windows下都能很好地工作。与Ruby社区不同,这两个社区经常为这两种操作系统提供支持

<强>框架

Django(python)或Zend Framework(php)

<强>数据库

任何提及的所有语言都有最流行的数据库的驱动程序,如Mysql,Postgresql,MSsql,Oracle。

<强> O的

选择最适合管理的任何内容。考虑学习如何操作的时间与许可证成本。由于所建议的技术是跨平台的,因此无关紧要。