2010-01-14 75 views
4

我是Java新手(但有一定的.NET经验)。Java RAD组件/体系结构 - 对于.NET开发人员的建议?

我需要快速启动并运行Java应用程序,所以我在这里寻找的是对组件的建议,这些组件可以简化或减少常见任务的痛苦,其回报将是立即的,或者至少会带来最小的花时间学习如何使用组件。我没有几周的时间来掌握复杂或广泛的框架 - 我正在寻找易于使用的插件,并删除了使用原始API的一些术语。但是,如果原始API为任何这些任务的最佳选择,这很好,让我知道...

数据层 我想写的MySQL,MSSQL,Postgres的但在其他方面的数据访问特定的供应商是非常简单的东西。我可能需要交易。你有什么建议?是否说Spring Data Access提供了一些值得拥有JDBC的东西?还有什么我需要考虑的?我的猜测是类似于Hibernate将会过度杀伤并花费太长时间来启动和运行 - 你认为如何?

中间层 松耦合,基于接口的业务层。我需要能够通过网络应用程序和桌面应用程序与中间层进行交互 - 揭示此问题的最佳方式是什么?网络服务?

桌面应用程序 我知道关于Swing - 有没有其他简单的桌面UI组件?我将需要某种调度组件来运行后台任务。

Web App 我需要某种缓存,我需要用户会话,我需要动态页面。从我可以告诉的是,JSP是Java的PHP或其他服务器端脚本语言(并且不支持状态)。除非有一个非常直接的框架来处理MVC框架,否则MVC框架可能会过度杀伤。我听说有一个与ASP.NET Web窗体相当的Java - 它有什么好处?也许JSP在这里就足够了?

我在寻找切实可行的意见/您的组件的经验,而不是网页链接:)

感谢您的任何建议名单..

回答

2

我想看看Grails为模型/控制器/视图机制和Web前端。它可以让你快速启动并运行ORM,模型,动态页面等(这是一个RoR - Ruby-on-Rails模型)。

从那里,我会看看使用Java RMI与桌面前端进行通信。 RMI是Java的标准,非常适合Java到Java的通信需求。除非你有多语言/平台的要求,否则我不会看Web服务。 RMI设置起来非常简单,只需很少的配置。

您的启用RMI的服务层将不得不拦截Grails提供的模型,但这应该是微不足道的。为了减少可能的客户端/服务器不匹配(由接口变化引起),您可以通过(比如说)Java Web Start(您将拥有一个Grails的Web服务器端)提供Java桌面,它可以来自相同的代码库服务器正在运行。在更新后端时保持最新的部署。

+0

谢谢布莱恩,一些很好的建议,就是我在找的东西。对于Web前端,Grails还有哪些其他替代方案? – MalcomTucker 2010-01-14 21:56:21

+0

那么,这里的其他答案建议视图/控制器机制(例如Struts)的解决方案。然而,我建议Grails,因为它通过一个简单和集成的方式通过ORM完成了完整的MVC。如果你选择其他的东西,那么你将不得不混合和匹配各种不同的工具(这将工作,我不反对这一点,但它更努力) – 2010-01-14 21:58:51

2

AppFuse是一个工具,可以启动和预配置各种java项目,使用最佳实践。生成的代码也可以用于通过示例进行学习。

AppFuse是一个开源项目和应用程序,它使用基于Java平台的开源工具来帮助您快速高效地开发Web应用程序。它最初是为消除为客户构建新的Web应用程序时发现的上升时间而开发的。 AppFuse的核心是一个项目框架,类似于当你点击一个向导来创建一个新的Web项目时由IDE创建的项目框架。

  • 对于数据层:JPA(休眠,或其他JPA提供商)
  • 对于中间层:春天 - 这是非常强大的,并提供诸如事务支持,schedulling很多东西,等等。它可以很容易地与Apache CXF一起使用来公开Web服务。
  • 对于的Web应用程序 - JSF,Spring MVC的,Struts的
  • 对于桌面应用 - Swing是完全确定。它有能力处理后台任务。 SwingX - 一些很好的组件。

AppFuse支持以上所有。

2

我会限制我对webapp部分的回答,因为我想回答其他部分的内容已经被其他人回答了。

从我可以告诉JSP是一个Java相当于PHP

并非完全如此。 JSP可以做更多的事情。更甚者,(ab)使用JSP的PHP方式(内联Java代码为scriptlets)被认为是不好的做法。 JSP应该用作模板,您可以在其中使用标签库动态地控制页面流,如JSTL,并使用Expression Language访问后端数据。

我听说有一种相当于Java中的ASP.NET网页的形成

这就是所谓的JavaServer Faces (JSF)。然而,有竞争,例如Apache StrutsSpring MVC

- 它有什么好处?也许JSP在这里就足够了?

JSF(其它任何像样的MVC框架)抽象所有你需要在一个正常的MVC应用程序,使你最终只是一个XHTML(或JSP)文件和JavaBean类考虑用走的东西。这样您就不需要控制请求(自定义Servlet等),处理请求参数(请求。getParameter()等),基本的验证/转换(requireness,字符串/数字/日期输入类型转换),更新模型值(在javabeans中设置处理/转换/验证参数)等.MVC框架将关心所有那些无聊的工作透明。

如果你需要开发每页只有几页,JSP就足够了。但是如果你想开发更多的页面或者web应用程序,那么你希望已经有一个框架,这样你就不需要重复一遍又一遍的平常工作。