www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Diamond MVC / Template Engine - v2.1.0 Released

reply bauss <jj_1337 live.dk> writes:
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!
Oct 19 2017
next sibling parent reply bauss <jj_1337 live.dk> writes:
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!
Oct 25 2017
parent reply Kapps <opantm2+spam gmail.com> writes:
This looks very cool. I already ended up doing my more recent 

Framework, but this would have been a really nice replacement to 
ASP.NET MVC.
Oct 28 2017
parent bauss <jj_1337 live.dk> writes:
On Saturday, 28 October 2017 at 13:01:56 UTC, Kapps wrote:
 This looks very cool. I already ended up doing my more recent 

 Framework, but this would have been a really nice replacement 
 to ASP.NET MVC.
Yeah, it has been inspired by ASP.NET a lot and have a partial ORM implemented as a separate package that integrates pretty well with it.
Oct 28 2017
prev sibling parent reply WebFreak001 <d.forum webfreak.org> writes:
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.

 [...]
Looks really useful, how about making a longer example and provide a template project? I could also include that template project in the code-d project creation dialog
Nov 02 2017
parent reply bauss <jj_1337 live.dk> writes:
On Thursday, 2 November 2017 at 22:55:04 UTC, WebFreak001 wrote:
 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.

 [...]
Looks really useful, how about making a longer example and provide a template project? I could also include that template project in the code-d project creation dialog
I don't normally use VS Code, so to create a template for it are there anything specific it must include? And yeah I'll come up with some longer examples and tutorials, for now I've made a temporary website with a bit of documentation as well API docs. https://diamondmvc.github.io/Diamond/
Nov 03 2017
parent reply WebFreak001 <d.forum webfreak.org> writes:
On Friday, 3 November 2017 at 14:16:53 UTC, bauss wrote:
 On Thursday, 2 November 2017 at 22:55:04 UTC, WebFreak001 wrote:
 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.

 [...]
Looks really useful, how about making a longer example and provide a template project? I could also include that template project in the code-d project creation dialog
I don't normally use VS Code, so to create a template for it are there anything specific it must include? And yeah I'll come up with some longer examples and tutorials, for now I've made a temporary website with a bit of documentation as well API docs. https://diamondmvc.github.io/Diamond/
Cool, I will take a look at that website. There aren't actually templates in vscode but my D plugin adds some for D projects, you can check the folder in here: https://github.com/Pure-D/code-d/tree/master/templates
Nov 03 2017
parent bauss <jj_1337 live.dk> writes:
On Friday, 3 November 2017 at 14:43:32 UTC, WebFreak001 wrote:
 On Friday, 3 November 2017 at 14:16:53 UTC, bauss wrote:
 On Thursday, 2 November 2017 at 22:55:04 UTC, WebFreak001 
 wrote:
 [...]
I don't normally use VS Code, so to create a template for it are there anything specific it must include? And yeah I'll come up with some longer examples and tutorials, for now I've made a temporary website with a bit of documentation as well API docs. https://diamondmvc.github.io/Diamond/
Cool, I will take a look at that website. There aren't actually templates in vscode but my D plugin adds some for D projects, you can check the folder in here: https://github.com/Pure-D/code-d/tree/master/templates
Created a pull-request with empty templates for Diamond projects.
Nov 04 2017