草庐IT

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

coder 2023-08-27 原文

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

另一方面,我开始从事高度交互、数据库驱动的 Web 项目。我这样做是因为我觉得这是个好主意,而且我知道从头开始做这样的事情的经历会对我有很大帮助。

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

但有了好的一面,我发现了坏的一面。我不禁注意到有很多开发人员对 Grails 中的错误数量感到恼火。因为我正在开始一个新项目而且我还没有经验,我什至想考虑 Grails 吗?这是一种责任吗?关于其生命周期的共识是什么?如果它很有可能在未来几年内逐渐淡出人们的视线,我真的不想过多参与其中。即使错误和生命周期问题不是什么大问题,您如何比较 Grails 与 ASP.NET MVC 的开发简易性?我意识到这最后一部分是非常主观的。但是为了比较起见,假设几乎没有技术背景的人处于相同的位置。您会推荐他们看一下 ASP.NET MVC 或 Grails 吗?

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

最佳答案

我是这个 question 的作者我可以分享一些我自己的经验。

正如问题中所述,我没有真正的偏好,我愿意接受任何能够满足我要求的技术/平台。在多次尝试不同的技术(至少几天使用 PHP、Rails、ASP 和 Grails)和 StackOverflow 的一些答案之后,我最终陷入了与您相同的困境:Grails 还是 ASP.NET MVC?

然后我选择了 Grails。为什么?因为 GORM。几乎只是因为 GORM。仅处理您的域类并自动生成/更新您的数据库模式真是太棒了。当然,它有其局限性,但这对于查询和维护您的数据库来说非常强大。不用再写 SQL,非常容易学。

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

GRAILS 优势

  1. GORM(见上文)

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

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

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

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

GRAILS 弱点

  1. 内存使用情况。 Grails/groovy 对内存很贪婪,它可能比 ASP 的 Web 托管成本更高

  2. Grails 错误:有一些错误,当您开始一项新技术的新项目时,您认为大部分问题都是您自己造成的...直到您发现(1 或 2 天后)它是一个 Grails 错误。所以我的建议是循序渐进:尽快测试,不要试图扭曲框架。它的边缘很粗糙,所以按照一般推荐的方式去做。然而,2个月后,我没有再遇到大问题。

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

ASP.NET MVC 优势

  1. 社区:非常庞大!首先,它得到了 Microsoft 的支持,其次,30% 的网站都是用 ASP.NET 构建的。您可以找到任何代码片段、任何小部件、任何 AJAX 组件、任何 CMS...Grails 社区非常活跃,但您能与数百万的人抗衡吗?

  2. Visual Studio:我完全同意你的看法:没有更好的 IDE。 IntelliJ 非常适合 Grails,但同时使用两者,我更喜欢 VS

ASP.NET MVC 弱点

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

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

底线 如果您的项目有紧迫的期限,并且如果它对您的成功至关重要,那么请选择 ASP(根据您的背景)。否则,试试 Grails..别担心,你也会成功,但需要更多时间。我也深信 Grails 才刚刚开始它的漫长旅程,它有一个美好的 future (参见 google trends )

Dmitriy 更新:如果您引用 Google 趋势,则必须比较其中的两个 Groovy Grails and ASP.NET MVC .

祝你好运

关于java - 比较新项目的 ASP.NET MVC 和 Grails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1682818/

有关java - 比较新项目的 ASP.NET MVC 和 Grails的更多相关文章

  1. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  2. ruby - Ruby 的 Hash 在比较键时使用哪种相等性测试? - 2

    我有一个围绕一些对象的包装类,我想将这些对象用作散列中的键。包装对象和解包装对象应映射到相同的键。一个简单的例子是这样的:classAattr_reader:xdefinitialize(inner)@inner=innerenddefx;@inner.x;enddef==(other)@inner.x==other.xendenda=A.new(o)#oisjustanyobjectthatallowso.xb=A.new(o)h={a=>5}ph[a]#5ph[b]#nil,shouldbe5ph[o]#nil,shouldbe5我试过==、===、eq?并散列所有无济于事。

  3. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  4. ruby-on-rails - 新 Rails 项目 : 'bundle install' can't install rails in gemfile - 2

    我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="

  5. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  6. Ruby 从大范围中获取第 n 个项目 - 2

    假设我有这个范围:("aaaaa".."zzzzz")如何在不事先/每次生成整个项目的情况下从范围中获取第N个项目? 最佳答案 一种快速简便的方法:("aaaaa".."zzzzz").first(42).last#==>"aaabp"如果出于某种原因你不得不一遍又一遍地这样做,或者如果你需要避免为前N个元素构建中间数组,你可以这样写:moduleEnumerabledefskip(n)returnto_enum:skip,nunlessblock_given?each_with_indexdo|item,index|yieldit

  7. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  8. java - 我的模型类或其他类中应该有逻辑吗 - 2

    我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我

  9. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  10. Observability:从零开始创建 Java 微服务并监控它 (二) - 2

    这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/

随机推荐