On Thursday, 19 October 2017 at 23:29:57 UTC, bauss wrote:
I'm pleased to announce that I have just released Diamond 2.1.0.
There has been a lot of updating to Diamond since last
announced release.
Diamond has also moved repository from my personal Github to an
organization Github.
The reason for that change is because I've started a couple
side projects for a tool-chain that can be used with Diamond.
The organization repository can be found here:
https://github.com/DiamondMVC
2.1.0 is not backward compatible with the versions released at
the personal repository.
Here are some of the changes:
* Diamond now has its own organization repository
* Controller actions can be mapped by attributes (@HttpDefault,
@HttpMandatory, @HttpAction)
* Controllers do no longer require their type to be passed as a
template parameter to the base-controller class
* Views support sections (See:
https://github.com/DiamondMVC/Diamond/wiki/Syntax-Reference#sections)
* Views and web configurations have been split into separate
files
* Default headers can be set for different types of requests
(Unlike in the legacy version of Diamond where there were only
one type.) -- These types include gneeral, static files, errors
and not found (404)
* Better construct to control application type (module:
diamond.core.apptype -- isWeb, isWebServer, isWebApi; all of
them are booleans that can be used at compile-time with static
if, instead of the old construct of using version. This works
better because they're conditional, unlike versions)
* Allows you to bind to multiple ips and ports, unlike the
legacy version that only allowed one port for many ip addresses.
* Renames of some members such as request -> httpRequest,
response -> httpResponse
* A routing class has been added to easier access routing data
for requests (module: diamond.http.route)
* Most of the compile-time engine has been rewritten.
* A lot of bugs has been fixed, code is better structured etc.
For the latest release see:
http://code.dlang.org/packages/diamond
For the github repository see:
https://github.com/DiamondMVC/Diamond
To see what's upcoming see:
https://github.com/DiamondMVC/Diamond/wiki/Upcoming-Features
Thank you, that's all!
Even though it has only been 5 days since 2.1.0 has been
announced, I am pleased to announce 2.4.0 now. I have spend the
past days working almost 24/7 to improve Diamond and make it as
close to a usable framework as it can get.
Everything that has been implemented between 2.1.0 and 2.4.0:
* Extension support (Extensions can be in form of local
repositories or repositories that Dub can fetch.)
* Authentication (Can be used with or without the ACL)
* Cookies / Sessions
* ACL (Access Control List)
* CSRF Protection
* RESTFul / Type-secure routing
* Controllers in web-apis can have multiple routes
* Base-view can be passed to a view's controller
* Layout views can be changed dynamically
* Caching for expensive views
* Network restrictions
The wiki and template projects will be updated accordingly to the
latest version of Diamond.
Thank you!