比较新项目的 ASP.NET MVC 和 Grails

2022-09-03 02:29:40

大家好。我认为自己是一个中级开发人员,但坦率地说,可能更接近新手而不是专家。无论如何,我对C#和.NET平台有更多的经验,但我目前的工作让我几乎完全使用Java。这本身就是一个问题,但我处理得很好,我现在真的无法改变我的角色。

另一方面,我开始研究一个高度互动的、数据库驱动的Web项目。我这样做是因为我觉得这是一个好主意,我知道从头开始做这样的事情的经验将极大地帮助我。

我最初想选择 ASP.NET MVC,我仍然倾向于这个方向。我甚至不知道为什么,但我喜欢它背后的社区,在我看来,Visual Studio是最好的IDE。但是,这样做会对我目前的工作产生反作用。这让我想到了Grails。尽管我意识到Groovy不是Java,但它似乎足够相似(更不用说它在JVM上运行),我学到的技能仍然应该对我目前的工作有所帮助。我对 Grails 了解得越多,我就越喜欢它,尤其是在我不得不处理我认为在工作中极其复杂的 J2EE 环境之后。

但是好的,我发现坏的。我不禁注意到,有很多开发人员对Grails中的错误数量感到恼火。由于我正在开始一个新项目,而且我相当缺乏经验,我甚至想考虑Grails吗?这是一种负担吗?关于它的长寿的共识是什么?我真的很讨厌过多地参与其中,如果它很有可能在未来几年内逐渐消失得无影无踪。即使错误和寿命问题不是一个大问题,你如何将Grails的易用性与 ASP.NET MVC的开发进行比较?我意识到最后一部分是高度主观的。但为了进行比较,假设几乎没有技术背景的人处于相同的位置。你会建议他们看看MVC或Grails ASP.NET 吗?

非常感谢。如果有任何需要澄清或重新措辞的地方,请告诉我。我真诚地希望我没有打开一罐蠕虫...


答案 1

我是这个问题的作者,我可以给你一些关于我自己的经验的分享。

正如问题中所说,我没有真正的偏好,我对任何可以满足我要求的技术/平台都持开放态度。经过许多不同技术的尝试(在PHP,Rails,ASP和Grails的几天内)以及StackOverflow的一些答案,我最终陷入了与你相同的困境:Grails还是 ASP.NET MVC ?

我选择了圣杯。为什么?因为戈尔姆。几乎只是因为戈尔姆。这对于仅处理您的域类并自动生成/更新数据库架构非常有用。当然,它有其局限性,但这对于查询和维护数据库非常强大。你不再写SQL了,它很容易学习。

现在,以下是我对这两种技术的2美分比较:

圣杯优势

  1. 戈尔姆(见上文)

  2. 完整的Web Stack框架:您可以在几分钟内生成一个网站,并且一切都已经配置好了

  3. 有很多东西要学:你有Spring MVC,Hibernate,Sitemesh,Java,JEE,Groovy...掌握圣杯后,您可以在简历中添加一个额外的页面

  4. 爪哇世界。无论您需要什么,如果它已经存在于Java中,则可以使用它。

  5. Groovy :我真的很喜欢这种编程语言。熟悉需要时间,但一旦完成,您就会喜欢它。

圣杯弱点

  1. 内存使用情况。Grails/groovy对内存很贪婪,它的成本可能比虚拟主机的ASP高

  2. 圣杯错误 :有一些,当你在新技术上开始一个新项目时,你会认为大多数问题都来自你......直到你发现(1或2天后)它是一个圣杯错误。所以我的建议是按步骤进行:尽快测试,不要试图扭曲框架。它在边缘很粗糙,所以去追求通常推荐的东西。但是,2个月后,我不再遇到大问题。

  3. 调试 :由于框架的多层,错误通常隐藏在大量的异常行中。此外,唯一像样的IDE调试器是IntelliJ,但这并不像VS下的.NET那样容易调试。

ASP.NET MVC 优势

  1. 社区:这是巨大的!首先,它受到微软的支持,其次,30%的网站都是内置的 ASP.NET。您可以找到任何代码片段,任何小部件,任何AJAX组件,任何CMS...圣杯社区非常活跃,但你能与数百万人竞争吗?

  2. Visual Studio :我绝对同意你的观点:没有比这更好的IDE了。IntelliJ非常适合Grails,但同时使用两者,我更喜欢VS

ASP.NET MVC 弱点

  1. ASP.NET 的年轻:这是一个年轻的框架。建立在稳定的技术之上,但足够年轻(不到2年),也有一些错误/一些不好的做法。事实上,下一个版本的 ASP.NET MVC正受到社区的强烈期待。

  2. 微软:即使 ASP.NET MVC是开源的,你也完全依赖于他们的决定(和价格)。

底线如果你的项目期限很紧,并且如果你的成功至关重要,那么就去ASP(根据你的背景)。否则,请尝试圣杯。别担心,你也会成功,但这需要更多的时间。我也深信Grails刚刚开始其漫长的旅程,它有一个伟大的未来(参见谷歌趋势)。)

Dmitriy更新:如果您参考Google趋势,则必须比较其中的2个Groovy Grails和 ASP.NET MVC

祝你好运