Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Synopse mORMot 1 ORM/SOA/MVC framework - Please upgrade to mORMot 2 !

NotificationsYou must be signed in to change notification settings

synopse/mORMot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7,675 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

  Synopse mORMot 1 Framework - Frozen ModeAn Open Source Client-Server ORM/SOA framework (c) 2008-2026 Synopse Informatiquehttps://synopse.infohttp://mormot.net=========   WARNING========= This repository is now in "frozen/maintenance" mode.  Only SQLite3 static binaries and important bug fixes will be included in the future. Thehttps://synopse.info/fossil repository has been disabled after our server failure.----------------------------------------------------------------------------------------------- Please consider usinghttps://github.com/synopse/mORMot2 for any new or maintainable project.-----------------------------------------------------------------------------------------------Contributors  Alan Chate  Alexander (sha)  Alexander (volax)  AlexPirate  Alfred Glaenzer (alf)  Andre Heider (dhewg)  Antoine Simard (AntoineGS)  Arnaud Bouchez  ASiwon  Aweste  Bas Schouten  BigStar  BugsDigger  Cheemeng  CoMPi  Damien (ddemars)  Darian Miller  Daniel Kuettner  David Mead (MDW)  Delphinium (louisyeow)  DigDiver  Dominikcz  EgorovAlex  Emanuele (lele9)  Eric Grange  Esmond  Esteban Martin (EMartin)  Eugene Ilyin  Eva Freimann (EVaF)  FeelAirSlow  F-Vicente  Goran Despalatovic (gigo)  Jean-Baptiste Roussia (jbroussia)  Joe (jokusoft)  Johan Bontes  Jordi Tudela  Kevin Chen  Lagodny  Leon Oosthuizen  Macc2010  Maciej Izak (hnb)  Marcos Douglas B. Santos (mdbs99)  Mario Moretti  Marius Maximus (mariuszekpl)  Martin Eckes  Martin Suer  Mapes  Matkov  Maxim Masiutin  Mazinsw  MChaos  Miab3  Michael (EgonHugeist)  Michalis Kamburelis   MilesYou  Mingda  Mr Yang (ysair)  Nicolas Marchand (MC)  Nortg  Nzsolt  Oleg Tretyakov  Ondrej (reddwarf)  Pavel Mashlyakovskii (mpv)  Pierre le Riche  RalfS  Richard6688  Rik (rvk)  Sabbiolina  Sanyin  Sinisa (sinisav)  Sllimr7139  SSoftPro  Stefan (itSDS)  Svetozar Belic (transmogrifix)  Transmogrifix  Uian2000  Vaclav  Vadim Orel  Willo vd Merwe  Win2014  Wloochacz  Wolfgang Ehrhardt  Yoanq  Ysair  Zed[See below if you upgrade from 1.17 revision]  Synopse mORMot is an Open Source Client-Server ORM SOA MVC frameworkfor Delphi 6 up to the latest Delphi and FPC revisions, targeting Windows/Linuxfor servers, and any platform for clients (including mobile or AJAX).The main features of mORMot are therefore: - ORM/ODM: objects persistence on almost any database (SQL or NoSQL); - SOA: organize your business logic into REST services; - Clients: consume your data or services from any platform, via ORM/SOA APIs; - Web MVC: publish your ORM/SOA process as responsive Web Applications.With local or remote access, via an auto-configuring Client-Server REST design.Due to its modular design, switch from a Client-Server architecture overHTTP, named pipes or GDI messages into a stand-alone application is justa matter of mORMot classes initialization.For instance, the very same executable can even be running stand-alone,as a server, as a service, or a client, depending on some run-time parameters!Emphasizing simplicity, speed and versatility, mORMot is a incredibly welldocumented Open Source project easy enough to add basic ORM or Client-Serverfeatures to simple applications for hobbyists, or let experienced usersdevelop scaling and strong service-based projects for their customers, withthe advantages of native code and easy-to-deploy solutions, reducingdeployment cost 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 (DDD): - Presentation layer featuring MVC UI generation with i18n and reporting (with pdf export) for rich Delphi clients, MVC web clients (with logic-less Mustache templates) or rich AJAX clients (via native JSON/REST access); - Application layer implementing Service Oriented Architecture via interface-based services (like WCF) and Client-Server ORM (including  method-based services) - following a RESTful model using JSON over several communication protocols (e.g. 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, dedicated classes for Entities or Aggregates, and variant storage with late-binding for dynamic documents; - Data persistence infrastructure layer with ORM operations on direct Oracle, MS SQL, OleDB, ODBC, ZEOS/ZDBC access or any TDataSet provider (e.g. FireDAC/AnyDAC, UniDAC, NexusDB, BDE...), with a powerful SQLite3 kernel, and optional SQL access if needed, with amazing performance and advanced features like Array DML, auto-generating SQL for SQLite3, Oracle,  Jet/MSAccess, MS SQL, Firebird, DB2, PostgreSQL, MySQL and NexusDB - and alternative high-speed MongoDB NoSQL database access for ODM persistence; - Cross-Cutting infrastructure layers for handling data filtering and validation, security (e.g. Windows authentication or any custom model), caching, logging and testing (framework uses test-driven approach and features interface stubbing and mocking).With mORMot, ORM/ODM is not used only for data persistence of objects (likein other implementations), but as part of a global n-Tier, Service OrientedArchitecture (SOA), ready to implement Domain-Driven solutions. Thisframework is not an ORM on which a transmission layer has been added, likealmost everything existing in Delphi, C# or Java: this is a full Client-Server ORM/SOA from the ground up.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 SpiderMonkey JavaScript engine has been integrated on the server sideand can be used to define business rules or any process (including MVC webrendering) - just like node.js, but with a multi-threaded core, and thefull power of our optimized Delphi libraries at hand.The framework Core is non-visual: you will get everything you need in aconsistent set of classes to be used from code. In order to let you focuson your business, using mORMot's KISS/DRY/SOC/YAGNI/TDD and Convention OverConfiguration patterns. But you have also some UI units available (includingscreen auto-generation, reporting and ribbon GUI), and you can use it fromany RAD, web, or AJAX clients (via JavaScript or Smart Mobile Studio).No dependency is needed on the client side (no DB driver, or 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 and runninga stand-alone small executable, with no installation process. Stream can beencrypted via HTTS or with proven SHA/AES-256. Endpoints are configuredautomatically for each published interface on both server and client sides,and creating a load-balancing proxy is a matter of one method call.Speed and scalability has been implemented from the ground up: a genuineoptimized multi-threaded core let a single server handle more than 50,000concurrent clients, faster than DataSnap, WCF or node.js, and our rich SOAdesign is able to implement both vertical and horizontal scalable hosting,using recognized enterprise-level SQL or NoSQL databases for storage.Even if mORMot will be more easily used in a project designed from scratch,it fits very well the purpose of evolving any existing Delphi project, orcreating the server side part of an AJAX application.Licensed under a disjunctive tri-license giving you the choice of one ofthe three following sets of free software/open source licensing terms: - Mozilla Public License, version 1.1 or later; - GNU General Public License, version 2.0 or later; - GNU Lesser General Public License, version 2.1 or later.This allows the use of our code in as wide a variety of software projectsas possible, while still maintaining copy-left on code we wrote.Main project page:http://mORMot.netDocumentation:https://synopse.info/files/html/Synopse%20mORMot%20Framework%20SAD%201.18.htmlInstallation:https://synopse.info/files/html/Synopse%20mORMot%20Framework%20SAD%201.18.html#TITL_113FAQ:https://synopse.info/files/html/Synopse%20mORMot%20Framework%20SAD%201.18.html#TITL_123A forum is dedicated to support:https://synopse.infoA blog is available:https://blog.synopse.infoIssues and feature requests can be posted (take a look at the forumsand latest unstable version first!) on GitHub.You can also monitor/fork our projects on GitHub:https://github.com/synopse/mORMotYou may also install it as a Delphinus package: Delphinus-SupportDon't forget to download the documentation (available online or as pdf files,created by our SynProject tool).In particular, you should take a look at all general introduction chaptersof the SAD document. It will cover all key-concepts and code modellingused by the framework.A developer guide is included in this SAD document, in its 2nd part. You'llget good practice guidance, presentation of the ORM/SOA approach and otherunderlying concepts.The original Fossil repository was removed and GitHub will remain alive.https://synopse.info/fossilBut consider switching to mORMot 2 if you really want to stay updated. It isusually painless, only a matter of changing the unit names in your code.Feel free to contribute by posting enhancements and patches to thisquickly evolving project.  Enjoy!Some units (e.g. SynPdf, SynGdiPlus, SynBigTable, SynCommons, SynCrypto, SynDB*, SynSQLite3, SynMongoDB, SynMustache, SynSM, mORMotReport) are used by mORMot, but do not require the whole framework to be linked.That is, you can use e.g. only  PDF generation, SynDB fast databaseaccess, a static-linked SQLite3 engine, direct MongoDB access, Mustachetemplates, SpiderMonkey JavaSCript engine, code-generated reports, or the TDocVariant, TDynArray, TSynLog classes of SynCommons, without usingthe main mORMot units and features (ORM, Client-Server, services, UI).Some of those units can even be compiled with Delphi 5 (e.g. SynPdf, SynDB).Quick Steps when upgrading from a previous 1.17 revision:1) Note that some units where renamed, and some breaking changes introduced   by some enhanced features, therefore a direct update is not possible2) Erase or rename your whole previous #\Lib directory3) Download latest 1.18 revision files as stated just above  4) Change your references to mORMot units: - Add in your uses clause SynLog.pas and/or SynTests.pas if needed; - Rename in your uses clause any SQLite3Commons reference into mORmot; - Rename in your uses clause any SQLite3 reference into mORMotSQLite3; - Rename in your uses clause any other SQlite3* reference into mORMot*; - Add in one uses clause a link to SynSQLite3Static (for Win32). 5) Consult the units headers about 1.18 for breaking changes, mainly: - TSQLRecord.ID: TID primary key, TIDDynArray, and TRecordReference are now Int64; - Renamed Iso8601 low-level structure as TTimeLogBits; - TJSONSerializerCustomReader/Writer callbacks changed; - TSQLRestServerCallBackParams replaced by TSQLRestServerURIContext class; - TSQLRestServerStatic* classes renamed as TSQLRestStorage*; - rmJSON* enums replaced by TSQLRestRoutingREST/JSON_RPC classes; - Changed '¤' into '~' character for mORMoti18n language files.

Sponsor this project

 

Packages

No packages published

Contributors48


[8]ページ先頭

©2009-2026 Movatter.jp