Synopse mORMot framework- 领域驱动设计(DDD)框架

网友投稿 1672 2022-10-24

Synopse mORMot framework- 领域驱动设计(DDD)框架

Synopse mORMot framework- 领域驱动设计(DDD)框架

Synopse mORMot framework, 原名Synopse SQLite3 Framework 。是一个Client-ServerORM和SOA框架,适用Delphi6到XE4,Win32或Win64.

可以创建从独立方案到复杂的领域驱动设计:

表示层 MVC UI生成含有i18n和用于Delphi或Ajax的富客户端报表 应用层 实现了SOA,通过interface-based services(像WCF)和Client-Server ORM - 带有使用jsON的RESTful模型跨多种网络协议(包括HTTP/1.1) 领域模型层 用普通Delphi对象处理所需的业务逻辑,包含高层管理的类型,如dynamic arrays or recods for Value Objects, or dedicated classes for Entities or Aggregaates 数据持久基础层 含有ORM持久,通过直接连接Oracle, MS SQL, OleDB, ODBC, ZEOS/ZDBC,或TDataSet库例如FireDAC/AnyDAC, UniDAC, NexusDB 或 BDE, 使用一个强大的SQLite3核心,按需直接SQL访问 - 神奇的效率及高级功能如Array DML 跨领域基础层 用于处理数据的 过滤和验证,安全性(甚至Windows authentication),缓存,日志,测试(框架使用了测试驱动法,并且包含了stubbing and mocking接口)

框架中包含了几个可以独立使用的子项目:

SynopsePDF Engine 用TCanvas绘制PDF,纯Delphi代码,Unicode ready SynopseBig Table 快速强大的NoSQL引擎 Fast JPEG decoderGDI+ librarySynProject documentation tool

The main two features of mORMot are therefore:

Client-Server ORM: objects persistence and remote access; Client-Server Services: remote call of high-level data process.

Due to its modular design, switch from such a Client-Server architecture overHTTP, named pipes or GDImessages into a stand-alone application is just a matter of mORMot classesinitialization.For instance, the very same executable can even be running stand-alone, as aserver, or a client, depending on some run-time parameters!

Emphasizing simplicity, speed and versatility, mORMot is a incredibly welldocumentedOpen Source project easy enough to add basic ORM or Client-Server features tosimple applications for hobbyists, or let experienced users develop scalingand strong service-based projects for their customers, with the advantages ofnative code and easy-to-deploy solutions, reducing deploymentcost and increasing ROI.

It provides an Open Source self-sufficient set of units (even Delphi starteredition is enough) for creating any application, from a stand-alone solutionup to the most complex Domain-Driven design:

Presentation layer featuring MVC UI generation with i18n and reporting for rich Delphi clients, or rich AJAX clients; Application layer implementing Service Oriented Architecture via interface-based services (like WCF) and Client-Server ORM - following a RESTful model using JSON over several communication protocols (including HTTP/1.1); Domain Model layer handling all the needed business logic in plain Delphi objects, including high-level managed types like dynamic arrays or records for Value Objects, or dedicated classes for Entities or Aggregates; Data persistence infrastructure layer with ORM persistence over direct Oracle, MS SQL, OleDB, ODBC, ZEOS/ZDBC access orTDataSetlibraries like FireDAC/AnyDAC, UniDAC, NexusDB or BDE, with a powerful SQLite3 kernel, and direct SQL access if needed - with amazing performance and advanced features like Array DML; Cross-Cutting infrastructure layers for handling data filtering and validation, security (even Windows authentication), caching, logging and testing (framework uses test-driven approach and includesinterfacestubbing and mocking).

With mORMot , ORM is not used only for data persistence of objects (like inother implementations), but as part of a global n-Tier, Service OrientedArchitecture (SOA), ready to implementDomain-Driven solutions.This really makes the difference.

The business logic of your applications will be easily exposed as Services ,and will be accessible from light clients (written in Delphi or any othermean, including AJAX).

The framework Core is non-visual: it provides only a set of classes to be usedfrom code. But you have also some UI units available (including screen auto-generation, reporting and ribbon GUI), and you can use it from any RAD or AJAXclients (via JavaScript or even the newborn SmartStudio).

No dependency is needed at the client level (no DB driver, nor third-partyruntime): it is able to connect via standard HTTP, even through a corporateproxy or a VPN. Rich Delphi clients can be deployed just by copying andrunning a stand-alone small executable, with no installation process.Endpoints are configured automatically for each published interface on theserver side, and creating a load-balancing proxy is a matter of one methodcall.Speed and scalability has been implemented from the ground up: a single serveris able to handle a lot of clients, faster than DataSnap , WCF ornode.js, and our rich SOA architecture is able toimplement both vertical and horizontal scalablehosting.

Even if mORMot will be more easily used in a project designed from scratch,it fits very well the purpose of evolving any existing Delphiproject, or even creating the server side part of an AJAX application.

Licensed under a MPL/GPL/LGPL tri-license.

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:#yyds干货盘点# 面试必刷TOP101:链表相加(二)
下一篇:Android TV 上使用的RecyclerView和焦点框架
相关文章

 发表评论

暂时没有评论,来抢沙发吧~