Frameworks 您能推荐一个替代的web应用程序堆栈吗?

Frameworks 您能推荐一个替代的web应用程序堆栈吗?,frameworks,Frameworks,我是一名经验丰富的开发人员,在过去5年左右的时间里一直在使用.Net。在我为自己的创业想法组装应用程序堆栈的过程中,我注意到我想要使用的许多支持工具要么是脆弱的,要么已经商业化。由于我没有收入,并且考虑到Visual Studio、SQL Server(是的,我知道Biz Spark)等的成本,我突然意识到我应该去别处寻找 因此,不用再多说了,这里是我的要求和很好的拥有。Java和Ruby显然是领先者,但我很高兴听到任何其他建议(首选面向对象和编译,但不是必需的。这里不欢迎使用PHP) 总体上

我是一名经验丰富的开发人员,在过去5年左右的时间里一直在使用.Net。在我为自己的创业想法组装应用程序堆栈的过程中,我注意到我想要使用的许多支持工具要么是脆弱的,要么已经商业化。由于我没有收入,并且考虑到Visual Studio、SQL Server(是的,我知道Biz Spark)等的成本,我突然意识到我应该去别处寻找

因此,不用再多说了,这里是我的要求和很好的拥有。Java和Ruby显然是领先者,但我很高兴听到任何其他建议(首选面向对象和编译,但不是必需的。这里不欢迎使用PHP)

总体上

  • 必需:由共享主机支持以开始
  • 可取的:不应过于烦琐而无法工作(仅在插入组件时工作)
框架

  • 强制性:现代mvc框架
  • 强制:对html输出进行细粒度控制
代码质量

  • 必需:日志框架
  • 需要:静态分析(复杂性等)
  • 需要:生成代码结构的UML图
  • 可取:测试覆盖率报告
面向对象的东西

  • 必填项:处理半深层层次结构(包括多对多关系)的ORM
  • 必需:模拟框架
  • 必填项:IOC容器(可能是它自己的类别)
IDE

  • 必填项:格式辅助(缩进)
  • 强制性:调试:断点、变量检查
  • 理想:自动完成:VS的intellisense非常好。这几乎是强制性的
  • 需要:调试:就地代码执行(即时窗口),向后移动当前帧
  • 理想:测试框架集成
代码质量

  • 强制性:测试框架
  • 理想:代码覆盖率
  • 可取的:从代码注释生成文档
建造

  • 可取的:从SVN一键拉取、构建、测试、代码覆盖率、代码文档
  • 可取的:持续集成(用于以后我们,呃,变得非常大的时候)
其他注意事项:我很高兴使用Linux(这会让人耳目一新!)。我假设MySQL用于DB,因为我不需要ACID遵从性(而且现在可能已经是ACID了),而SVN用于源代码控制

如有任何帮助或建议,将不胜感激

编辑:目前倾向于Sinatra,因为它看起来非常优雅,但允许用户拥有他们想要的任意多或任意少的控制。当我认为答案已停止时,我将选择一个答案。

  • 红宝石
  • PHP
  • 蟒蛇
  • 虚拟机
S#arp架构 (结合ASP.Net MVC和NHibernate,以及NUnit和Rhino Mock)


是一个很好的选择。它有很好的关注点分离,而没有类似的学习曲线。

!它是用Scala编写的,代表了web框架之间的某种范式转换,使用JVM的托管服务就足够了。

如果您想快速入门,可以使用Ruby或Ruby微框架。

Ruby中的共享托管比Java更强大,因为您排除了PHP(在共享托管中非常流行)那个会把你引向鲁比的方向

框架:如果您使用的是Ruby,RoR就是一种选择。如果您决定使用Java,我会(除了其他答案中的优秀推荐之外)看看。这是一种方法(更多的代码驱动)。Seam+IceFaces(或者RichFaces,如果您需要一些健壮性来交换小部件)是一种不同的方法,但也是有效的

EclipsePlus插件为您提供了很多工具(免费)。你也可以看看Intellij,个人许可证的价格是249美元(personal只是指它是以你的名义而不是以你公司的名义获得许可的,没有限制),或者RubyMine是同一家公司的Ruby,价格是99美元

通过持续整合,我在TeamCity取得了巨大成功,并且在入门级免费

(不,我不为JetBrains工作,我只是对他们的产品有很好的体验)


我知道我没有勾选你列表中的每一个,但是一旦你添加了IDE可用的插件,你列表中的所有内容都会在上面介绍。当然,还有很多其他框架。非微软解决方案的好处在于有很多选择。非Microsoft解决方案的缺点是有太多的选项…

我原以为visual studio的快速版几乎涵盖了您。它们符合您的经验,当与后端的MYSql和用于.net的百万零一个免费开发组件结合使用时,可能会满足您的需要

是否有什么特定的东西排除了它们?

Ruby(和Rails)的自动完成功能


Jet Brain的作品很棒。我同意这一切都是关于API发现的……

一些需求似乎以MS为中心,可能会扼杀您的选择。开放一点可能会让你受益更多。例如,由于Ruby语言的设计,IoC在Ruby中没有那么大的意义。我知道你认为你需要它,但是经验丰富的红宝石专家比IoC有更多的惯用解决方案(相信我,或者谷歌Jamis Buck-RubyConf并观看演讲)。类似地,在Ruby或Python中,自动完成也没有那么重要,因为总的LOC要低得多。也许我已经习惯了。但是自动完成很好。。。这是关于发现API而不是保存击键。但用动态语言很难做到。浏览sinatra文档。。。看起来很不错,每个都有b的优点和缺点