使用Java技术决定应该使用 - beginner

时间:2010-08-14 20:22:31

标签: java

我对软件开发并不陌生,但在过去几年里,我几乎完全参与了Web应用程序开发,最有可能使用MySQL / PostgreSQL进行PHP。

现在我正在改变焦点。我想用Java开始桌面应用程序的编程。关于语言的决定是出于以下原因:它是一种成熟的语言,有进入市场的空间,它是多平台的,充满了资源,并且有一些非常好的IDE(我使用的是netbeans 6.9)。

我并不是OOP概念的新手(或者至少是大多数概念),但是Java有很多解决方案(技术,框架等),我对此感到迷茫。无法决定采用和学习什么是最合适的解决方案。

那就是说,让我们谈谈这一点。我将描述软件目标,到目前为止我采用的一些事情,并期望有人给我一些跟踪填补杂乱点的路径。

我的应用程序是一个小型企业应用程序。关于产品,销售,现金管理的常见内容。它需要运行到一个小型办公室,有一些计算机(不是一个完全独立的桌面应用程序)。并非每个用户都能做到。有些人有权使用财务资料,有些人只能出售,有些人只能履行产品,等等。

根据上面的高级定义,我们知道它将像客户端 - 服务器应用程序一样运行。一台服务器将安装在一台机器上,其他服务器将只安装客户机。我使用HSQL作为持久性的后端。

想使用Swing构建UI(以保持基于操作系统的主题)。客户的可能性包括发送电子邮件(不是直接发送,而是通过一些已设置的电子邮件客户端[Thunderbird,Outlook])和打印(发送到网络中任何可用的打印机)。

为此,我使用的是Desktop API。

好吧,最后我们得到的是我失去了抓地力:您建议哪种框架/技术快速开发(基于可用表格的预建表格),并尽可能模块化?

正如我所说,不同的用户将拥有不同的权限,但我不想只是检查和禁用,而是希望将模块分开。在不同的包装,或类似的东西。

EJB? BlueJ的? JavaBeans的? OSGi的? Swing应用程序框架?我和那些人有点失落。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:3)

如果你迷路了,请保持简单。

对于您描述的桌面应用程序类型,您将需要Swing和JDBC。如果切换到web,则替换仅使用JSTL和servlet编写的JSP。你必须知道编写JSP的HTML和CSS。您可以根据需要使用JavaScript修饰它们。

只有那些你会走很远的路。

你提到的其他人只是噪音,直到你变得更舒服:

  1. EJB适用于企业级应用程序。您可以将大量复杂的东西(如线程,对象池和生命周期等)留给应用服务器,并专注于在称为Enterprise Java Bean的分布式事务组件中表达业务逻辑。没必要开始。
  2. BlueJ是一个初学者IDE,旨在保护人们免受Java的复杂性。我不推荐它。
  3. OSGi - Web应用程序的模块化部署。没必要开始。
  4. Swing App Framework?我不熟悉它 - 我不写Swing。如果你的意思是Spring,我认为这是一个很好的框架,但没有必要开始。

答案 1 :(得分:2)

这有点偏离主题,但我认为无论如何应该说。

  

我的应用程序是一个小型企业应用程序。关于产品,销售,现金管理的常见内容。它需要运行到一个小型办公室,有一些计算机(不是一个完全独立的桌面应用程序)。并非每个用户都能做到。有些人有权使用财务资料,有些人只能出售,有些人只能履行产品,等等。

你正在尝试一些非常雄心勃勃的事情。对于小型企业来说,有无数现有的应用程序可以做这种事情,其中​​一些是家喻户晓的名字。是什么让你觉得你可以做得更好?是什么让你认为你可以竞争?

你不熟悉Java这一事实使得这个雄心勃勃。

我的建议是:

  • 如果你有梦想从中赚很多钱,那就别忘了。你已经晚了10年。

  • 如果您正在为某个客户,您的公司或您自己使用,他/您最好使用现成的商业应用程序。

  • 如果你是为了“公益事业”这样做的话,如果加入一些现有的开源商业应用项目,你的工作会更富有成效。

  • 如果你只是这样做“为了好玩”......去吧。 (虽然这不是一个“有趣”的项目......)

答案 2 :(得分:1)

从java开始,swing桌面应用程序是正常的......我必须说默认包含的组件,我从不喜欢,我认为它们太难看了。 https://substance.dev.java.net/ 是java的外观和感觉库。 所以,你的应用程序,想一想,并确保你有一些设计。 如果你想知道你在哪里进行视觉比你刚刚开始编码并希望你到达你喜欢的地方那么它会更容易,也更快。

取出纸和笔,涂抹GUI的小笔记和图纸。 你不一定需要框架和批量,如果你的应用程序需要存储数据然后查看JDBC驱动程序以连接到mysql,或者查看嵌入式数据库,如HSQLDB ......