Diamond MVC / Template Engine - v2.1.0 Released

bauss jj_1337 at live.dk
Wed Oct 25 13:35:23 UTC 2017


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!


More information about the Digitalmars-d-announce mailing list