3

我想开发一个 Web 应用程序,例如在线调度程序。(是的,我知道它已经完成了一百万次。)我的大部分经验都是在 Java 中,所以我想在考虑技术时利用它。

我主要是一名系统开发人员,几乎没有接触过 UI 编程,所以我认为这是我需要学习的大部分内容。

您对我应该关注的技术有什么建议吗?我想专注于有市场且易于学习的技术。

到目前为止,这是我认为我需要的 3 层架构(从头开始):

  • 数据库(可能是 MySQL 或 PostgreSQL)- SQL、JDBC
  • 后端服务器 - Java
  • Web 服务器 (Tomcat) - JSP、Servlet
  • Web 框架 - Tapestry(在这方面很弱,有更好的选择吗?)
  • 浏览器技术——HTML、Javascript、CSS(需要学习)

我听说过诸如 Flex 和 Silverlight 之类的“富互联网应用程序”开发工具,但我不确定此类技术的市场。

编辑:似乎有很多提到 Spring/Hibernate,所以我会调查一下。我很感激反馈。

4

6 回答 6

3

我认为你已经很好地覆盖了你的基础。

您可能需要研究一些框架/库以使您更轻松。

Web 框架 - Wicket / Stripes / JSF / Tapestry(组件与基于请求的框架)

Javascript 库 - JQuery / YUI / Dojo

至于您的模板语言,您可以使用 JSP / Velocity / Freemarker。

只需研究框架和工具,也许可以尝试一些,看看哪些最适合你。

仅供参考,我目前正在使用。

  • 阿帕奇——网络服务器
  • Tomcat - servlet 容器
  • MySQL - 数据库
  • Stripes - 基于请求的 Web 框架
  • YUI - 用于 ajax
  • Spring - 依赖注入
  • Hibernate - 对象关系映射
  • jsp - 动态生成html
于 2009-04-23T21:27:35.203 回答
3

我会亲自将Spring添加到此列表中。依赖注入绝对是一门很棒的学习技术,根据我的经验,Spring 可以让你随心所欲地使用它。

您没有明确提到单元测试,但这当然应该是混合的一部分——我在JUnit作为实际测试框架之外没有太多经验,但也有EasyMockJMock(以及其他)用于模拟依赖项。

这些都不是特定于网络的,但仍然是 IMO 重要的东西 :)

于 2009-04-23T21:29:41.547 回答
3

我不同意富 Internet 应用程序没有市场。实际上,将企业规模的应用程序作为 RIA 制作的趋势正在增长。RIA 相对于普通 Web 应用程序的优势在于可用性。您获得了 Web 应用程序的所有优点,但仍然能够保留类似桌面的用户界面。

您说您来自 Java 背景,并且对 Web 技术没有太多经验。好吧,我不得不说,您听起来确实是GWTIT Mill Toolkit(基于 GWT)的理想用户候选人。两者都是允许您纯粹用 Java 创建富互联网应用程序的框架!无需 HTML 或 JavaScript 技能。您必须学习 CSS 才能为应用程序制作自己的主题。

这两个框架都是开源的,并且非常适合商业用途。IT Mill Toolkit 与 GWT 的区别在于它是服务器驱动的,这意味着业务逻辑在服务器上实现和运行,而不是作为客户端浏览器中的 JavaScript(GWT 就是这种情况)。从软件安全的角度来看,这种服务器驱动的架构使应用程序更加安全。GWT 相对于 IT Mill Toolkit 的优势在于更大的用户社区。

What comes to the ORM frameworks, Hibernate is quite popular. However, I'm not very fond of it, because even though it technically implements Java Persistence API, it doesn't always behave as expected and you'll have to use a lot of hibernate specific annotations, which ties your application pretty hard to hibernate (bad thing!) and you cannot just easily swich to another JPA provider if you'd like to. Antoher ORM framework implementing the JPA is EclipseLink. 我个人没有在企业规模的应用程序中使用过 EclipseLink(因为我还没有机会),但我将它用于一个较小的项目,而且它看起来很不错。EclipseLink 是开源的,它的许可对商业用途很友好。EclipseLink 由 Oracle 不断开发,因此它的背景很扎实。它实际上基于 TopLink,这是 Oracle 的闭源 JPA 实现。

希望这可以帮助 :)

于 2009-05-01T05:04:57.260 回答
2

前段时间问了基本相同的问题,有一些非常有用的答案:

网站开发工具

于 2009-05-04T09:42:52.340 回答
1

如果您要使用 Java 后端,我会推荐Hibernate用于您的 JPA,JSF 与RichFaces(AJAX/皮肤)和Facelets(视图呈现/模板)用于您的前端,以及Seam将它们放在一起。这是一个美妙的组合。

于 2009-04-23T21:49:02.983 回答
1

如果你使用 Spring,那么你可以只使用 Hibernate 去 mysql,你可以在那里拥有你需要的一切。

在你写完之后,你想开始改进它,然后也许开始考虑在浏览器端做更多的事情,但是,最初,你可能希望它没有 ajax 调用。

Spring Framework 文档可能会有所帮助,因为您可以选择使用 Spring 的许多部分,例如 Spring MVC、Spring Framework、Spring Webflow 和 Spring Security(如果需要)。

于 2009-04-23T22:13:37.963 回答