Frameworks 分层可重用体系结构的框架

Frameworks 分层可重用体系结构的框架,frameworks,architecture,Frameworks,Architecture,我的问题很简单,我的目的是生成一个包含您的响应的存储库,以便在选择用于开发企业通用应用程序的框架时为社区服务。 这可以很好地应用于通用语言,如C++、C#或Java 您建议使用什么框架来生成分层体系结构 根据您的经验,为什么您更喜欢使用某些框架而不是自己的体系结构 您认为您选择的框架将作为软件开发行业的首选选项保留多久 这个问题不太有效。选择框架很困难,而且非常特定于上下文。对于每个选择过程,您可能会得到一个简单的短名单和一个简单的问题列表来回答,但这些列表不能很好地转移到其他选择中 影响决策

我的问题很简单,我的目的是生成一个包含您的响应的存储库,以便在选择用于开发企业通用应用程序的框架时为社区服务。 这可以很好地应用于通用语言,如C++、C#或Java

  • 您建议使用什么框架来生成分层体系结构
  • 根据您的经验,为什么您更喜欢使用某些框架而不是自己的体系结构
  • 您认为您选择的框架将作为软件开发行业的首选选项保留多久

    • 这个问题不太有效。选择框架很困难,而且非常特定于上下文。对于每个选择过程,您可能会得到一个简单的短名单和一个简单的问题列表来回答,但这些列表不能很好地转移到其他选择中

      影响决策的参数数量和参数敏感性非常大,在企业层面上,许多参数都不是技术性的

      目前,没有可用的
      框架可以支持这些短期企业需求:

      • 大多数员工从pc转向平板电脑和手机
      • 从web客户端和rdbms到基于p2p/断开连接的存储和分发的切换

      这确实是一个过于笼统的问题,尤其是因为对框架这个词有太多的解释,在框架的世界里,有许多不同类型的框架用于不同的任务。尽管如此,我还是要尝试一下Java

      JAVA 爪哇EE Java的默认整体企业框架称为JavaEE。JavaEE非常强调分层体系结构。这是一个相当大的框架,学习它的各个方面可能需要一些时间。它支持多种类型的应用程序。非常小和简单的脚本可能只使用带有一些scriptlet的JSP文件,而较大的脚本可能使用更多

      JavaEE并没有真正强制您使用它的所有部分,但是您可以选择自己喜欢的内容

      自上而下,它由以下部分组成:

      Web层 对于web层,javaee主要定义了一个名为
      JSF
      -JavaServer-Faces的组件和基于MVC的web框架。JSF利用了一种称为Facelets的基于XML的视图描述语言(模板语言)。页面是通过定义模板并让模板客户端为其提供内容(包括其他Facelet)创建的,最后在其上放置组件和常规标记

      JSF提供了一个定义良好的生命周期来完成每个web应用程序应该做的所有事情:转换请求值、验证请求值、调用业务逻辑(模型)以及最终委托(Facelets)视图进行呈现

      有关更详细的描述,请在此处查阅BalusC的一些文章,例如:

      业务层 JavaEE框架中的业务层由一个称为
      EJB
      -enterpriseJavaBeans的轻量级业务组件框架表示。EJB应该包含应用程序的纯业务逻辑。在其他EJB中,EJB负责事务、并发性和需要时的远程处理

      普通Java类通过应用@Stateless注释成为EJB。默认情况下,该bean的每个方法都是自动事务的。也就是说,如果调用了该方法,但没有激活任何事务,则启动一个事务,否则将加入一个事务。如果需要,可以调整甚至禁用此行为。在大多数情况下,事务对程序员来说是透明的,但是如果需要,JavaEE中有一个显式API来手动管理它们。这是
      JTA
      API-Java事务API

      通过使用@asynchronous注释,可以很容易地使EJB上的方法执行异步

      JavaEE通过专门针对EJB的独立模块概念明确支持分层。这将隔离这些bean并阻止它们访问其更高层。请参阅此以获得更详细的解释

      持久层 对于持久性,JavaEE框架附带了一个名为
      JPA
      -JavaPersistenceAPI的标准ORM框架。这是基于使用@Entity注释对普通java类进行注释,并使用@Id对其上的属性或字段进行注释。还可以选择(如果需要)通过注释指定有关对象和对象关系如何映射到关系数据库的更多信息

      JPA非常强调细长实体。这意味着实体本身是尽可能多的POJO,可以轻松地发送到其他层甚至远程客户端。JavaEE中的实体通常不考虑其自身的持久性(即,它不包含对DB连接等的任何引用)。相反,提供了一个名为
      EntityManager
      的单独类来处理实体

      使用该EntityManager最方便的方法是从EJB bean中进行操作,这使得获取实例和处理事务变得轻而易举。但是,也支持在任何其他层中使用JPA,即使在框架之外(例如在JavaSE中)


      这些是与典型企业应用程序中的传统层相关的最重要的服务,但是JavaEE框架支持大量附加服务。其中一些是:

      消息传递 JavaEE框架通过
      JMS
      API-Java消息传递服务直接支持消息传递。这允许业务代码将消息发送到所谓的队列和主题。应用程序的各个部分甚至远程应用程序都可以侦听这样的队列或主题

      EJB组件框架甚至有一种专门为消息传递定制的bean类型;消息驱动bean,它有一个自动调用的
      onMessage
      方法