构建端到端Web应用程序所需的技术?

时间:2009-04-23 21:22:26

标签: java architecture ria tapestry

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

我主要是一个很少接触过UI编程的系统开发人员,所以我认为这是我需要完成大部分学习的地方。

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

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

  • 数据库(可能是MySQL或PostgreSQL) - SQL,JDBC
  • 后端服务器 - Java
  • Web服务器(Tomcat) - JSP,Servlets
  • Web Framework - Tapestry(对此有所了解,还有更好的选择吗?)
  • 浏览器技术 - HTML,Javascript,CSS(需要学习)

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

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

6 个答案:

答案 0 :(得分:3)

我认为你的基础很好。

您可能希望查看一些框架/库,以便于您使用。

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

Javascript库 - JQuery / YUI / Dojo

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

只需研究一下框架和工具,可以尝试一些,看看哪种方法最适合你。

我正在使用的仅供参考。

  • Apache - 网络服务器
  • Tomcat - servlet容器
  • MySQL - 数据库
  • Stripes - 基于请求的Web框架
  • YUI - for ajax
  • Spring - 依赖注入
  • Hibernate - 对象关系映射
  • jsp - 动态生成html

答案 1 :(得分:3)

我个人将Spring添加到此列表中。依赖注入绝对是一项很好的学习技术,根据我的经验,Spring可以让你根据自己的喜好尽可能多地使用它。

你没有明确提到单元测试,但这肯定应该是混合的一部分 - 我在JUnit之外没有太多经验作为一个实际的测试框架,但是还有EasyMockJMock(以及其他)用于模拟依赖关系。

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

答案 2 :(得分:3)

我不得不反对Rich Internet Application没有市场。实际上,作为RIA的企业规模应用程序正在发展。 RIA优于普通Web应用程序的优势在于可用性。您可以获得Web应用程序的所有优势,但仍然能够保持类似桌面的用户界面。

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

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

对于ORM框架来说,Hibernate非常受欢迎。但是,我不是很喜欢它,因为即使它在技术上实现了Java Persistence API,它并不总是按预期运行,你将不得不使用大量的hibernate特定注释,这很难将你的应用程序联系起来。休眠(坏事!)如果你愿意,你不能轻易地转向另一个JPA提供商。实现JPA的Antoher ORM框架是EclipseLink。我没有亲自在企业规模的应用程序中使用EclipseLink(因为我还没有机会),但我正在将它用于一个较小的项目,它看起来相当不错。 EclipseLink是开源的,它的lisencing对商业用途很友好。 EclipseLink是由Oracle不断开发的,因此它的背景非常扎实。它实际上基于TopLink,这是Oracle的闭源JPA实现。

希望这会有所帮助:)

答案 3 :(得分:2)

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

Tools for website development

答案 4 :(得分:1)

如果您使用Java后端,我会建议您使用Hibernate作为JPA,JSF使用RichFaces(AJAX / skinning)和Facelets(查看渲染/模板) )为你的前端,Seam把它们放在一起。这是一个很棒的组合。

答案 5 :(得分:1)

如果你选择Spring,那么你可以使用Hibernate转到mysql,你可以拥有你需要的一切。

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

Spring Framework文档可能会有所帮助,因为Spring可以使用很多部分,例如Spring MVC,Spring Framework,Spring Webflow和Spring Security,如果需要的话。