www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Diamond MVC - v2.8.0 (Backup functionality & cookie consent support

reply bauss <jj_1337 live.dk> writes:
I'm happy to announce the next version of Diamond MVC.

Release: https://github.com/DiamondMVC/Diamond/releases/tag/v2.8.0

This is a breaking change to the cookie API, since it implements 
cookie consent and not in a backward compatible way to make sure 
it's enforced.

This release also contains backup functionality, which allows you 
to implement backup services that can backup files, data etc.

By default there is a backup file service which can be used to 
backup files, but it's possible to implement your own backup 
services that can backup databases etc.

It was something I saw as necessary for Diamond to be used as an 
enterprise framework, since backups are vital.

Diamond now supports vibe.d 0.8.3 and mysql-native 2.2.1

---

If you wonder what other features Diamond has, here are some of 
the key features:

* Full control over requests / responses when wanted.
* "Websettings" file that lets you control requests / responses 
for:
   * Before a request is handled.
   * After a request has been handled.
   * When an error occurres.
   * When a page or controller action wasn't found.
   * When a static file has been requested.
* Multiple static file paths
* Let's you bind to multiple ip addresses and ports.
* Let's you control default headers for each type of request 
(default, static files, errors, not found etc.)
* Uses vibe.d for backend, so it's very powerful and all vibe.d 
features can be used with Diamond
* Easy control over the application's type using *static if* 
constructs.
   * isWeb (true for both web-servers and web-apis.)
   * isWebServer (true for web-servers)
   * isWebApi (true for web-apis)
   * isWeb, isWebServer and isWebApi will be false for standalone.
* ACL & Authentication tied to it
* Separate authentication that can be used either with or without 
the ACL
* CSRF Protection
* Easy integrated cookie/session API.
* The network can be restricted to specific ips.
* Transactions
* Unittesting
* Logging
* i18n
* Version-control
* Route rewriting
* Database Integration & Object Relational Mapping
* Websockets
* Specialized Routes (Can fetch resources external internal or 
local)
* Views are parsed at compile-time, thus rendering of views are 
super fast
* Views can have layout views
* Views have a metadata section that lets you change view 
configurations such as its controller, model, layout, route and 
placeholders.
* Views have placeholders and layout view's can access the render 
view's placeholders.
* Views can encode their data
* Has a rich syntax that allows for complex and innovative 
rendering.
* Easy access to the current request / response using the 
properties: *httpRequest* and *httpResponse*
* Can render other views within itself
* Any type of D code can be written within views.
* Allows for sections, which is useful to only render a part of 
the view. (Very useful for responsive designs)
* Can be passed to controllers by their base view
* Layout views can be changed dynamically
* Expensive views can be cached.
* Flash-messages
* Controller actions are mapped through attributes. (By default 
the route name will be the name of the function.)
   * If wanted actions can be mapped manually, but that's a legacy 
feature.
* Controller actions can easily control how the response is 
handled, as they require a status returned
   * Status.success (Will continue to handle the request.)
   * Status.end (Will end the request; useful for json responses 
etc. *Note: using the json() function already does it for you.)*
   * Status.notFound (Will issue a 404 status for the response.)
* Can map mandatory actions that are executed on every requests. 
(Useful for authentication etc.)
* Easy integrated authentication (Can be combined with ACL)
* RESTful
* Specific actions can be restricted to specific ips.

Github: https://github.com/DiamondMVC/Diamond

DUB: https://code.dlang.org/packages/diamond

You can find the last release here:

https://forum.dlang.org/post/mjueykdyfbeajaofqzjj forum.dlang.org

Thank you all!
Mar 22 2018
parent bauss <jj_1337 live.dk> writes:
Just made a new release for v2.8.1

https://github.com/DiamondMVC/Diamond/releases/tag/v2.8.1

This release contain the following:

* Smtp mail support
* Virtual html elements (Useful for dynamic html generation 
without being textual. Ex. for backends)
* File upload/download management
* Validation such as credit cards, emails, files, types and urls.

It also deprecates all usage of "placeHolder", which has been 
replaced with "placeholder" ex. "addPlaceHolder" should be 
"addPlaceholder" -- in 2.9.0 any place with "placeHolder" will be 
removed in favor for "placeholder"
Mar 24 2018