c# - java web 的框架太多了。害怕和困惑 :(

标签 c# java php frameworks

<分区>

我是一名经验丰富的 Java 开发人员,目前正在尝试学习使用 Java 进行 Web 开发。我还拥有 ASP.NET (c#) 和 PHP 的 Web 开发经验。我知道哪些基本概念(JSP、Servlet、Bean)并正在寻找一个框架。

我的问题不是“什么是 Java 的最佳框架”或类似的问题。

在阅读了此处的许多主题并在 Google 上搜索了许多小时后,我感到害怕和困惑。有太多的框架和无穷无尽的组合。我即将改变主意,在 .net 甚至 PHP 中执行此操作。

  1. Java 真的适合非常小的团队(1 或 2 名成员)开发网络应用程序吗?
  2. Java 真的适合开发 web 2.0 应用程序吗?
  3. 在这种情况下,.NET 和 PHP 不是更容易混淆吗。
  4. 如果选择一个框架,6 个月后我决定使用另一个,是否可以轻松迁移?
  5. 将我学习 Java 所花的精力花在一个随时可以更改或变得无用的框架上,这感觉不对。我错了吗?

最佳答案

Is Java really suitable for very small teams (1 or 2 members) to develop web applications?

当然可以,只要那一两个团队成员熟悉 Java 即可。这是一个荒谬的问题,取决于你想如何定义“合适”。我会偏向保守,将“适合”解释为“可能”。

Is Java really suitable for developing web 2.0 applications?

你是问JavaFX适不适合,或者web 2.0 UI技术可以是Flex什么的吗?我自己没有使用过 JavaFX,但我认为 Java 后端可以与 Web 2.0 前端很好地共存。服务就是服务。

Aren't .NET and PHP far less confusing in this context?

您的措辞需要改进。在那里,我已经修好了。取决于您对 .NET 或 PHP 的了解程度。 PHP 可以说是“工程化程度较低”并且更直接,但是每个 Web 应用程序都不是 Web CRUD 应用程序。 .NET 可以像 Java 一样工程化,但它具有使用作为框架一部分的功能的公认优点。至少一切都来自微软。也许您感到困惑,因为 Java 有更多选择。

If choose a framework and after 6 months I decide to use another, is it possible to migrate easily?

这取决于框架以及您对应用程序的分层程度。我会说,如果你正确地分层你的代码,那么事情应该是可以修改的。但是框架往往是胶水代码,因此如果您严重依赖框架,那么无论您选择哪个框架都很难将其提取出来。

It just feels doesn't right to spend a same effort that I spent to learn Java to a framework that anytime can be changed or become useless. Am I wrong?

任何东西都可以改变并变得毫无用处。 Microsoft 可以决定以不向后兼容的方式重写他们的 Enterprise Framework 4.0。我不认为这是一种语言缺陷 - Java 并不是唯一受这种情况影响的语言。

你是对的——当你依赖他人时,你总是处于危险之中。当您自己编写和维护所有内容时,您也会面临风险。您需要做出明智的选择以最大程度地降低风险,但您永远无法完全消除风险。

我的建议?选择 Spring ,晚上 sleep 。这是一个了不起的框架,已经存在了八年并且还在继续,而且仍然很强大。它有一个很棒的 Web MVC 框架等等。它所提倡的习语将使您的 Java 应用程序变得更好:更多层次、更易于维护、可以与其他框架很好地配合使用,从而最大限度地降低风险。它们现在归 VMWare 所有,所以它们哪儿也去不了。

关于c# - java web 的框架太多了。害怕和困惑 :(,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3176077/

相关文章:

php - 在尝试将键插入数据库之前如何检查键是否存在?

php - 如何在 PHP 中绑定(bind) SQL 变量?

c# - 使用 nlog 记录多个线程

C# All 复选框外观

c# - 有没有办法在我的 ASP.Net MVC 5 应用程序之间传递 Windows 身份验证 session ?

java - 如何在 Jetty 中向端口绑定(bind)添加重试

c# - AssemblyResolve 未针对依赖项触发

java - 在 Java 中导入 API (eclipse)

java - 从内部存储、Android Studio (JAVA) 播放音频文件的应用程序

php - 如何在 Zend-Framework 中创建或执行 MySQL 过程?