Thread overview
Diamond MVC / Template Engine - v2.1.0 Released
Oct 19, 2017
bauss
Oct 25, 2017
bauss
Oct 28, 2017
Kapps
Oct 28, 2017
bauss
Nov 02, 2017
WebFreak001
Nov 03, 2017
bauss
Nov 03, 2017
WebFreak001
Nov 04, 2017
bauss
October 19, 2017
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!
October 25, 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!
October 28, 2017
This looks very cool. I already ended up doing my more recent project in C# partially due to wanting ASP.NET MVC and Entity Framework, but this would have been a really nice replacement to ASP.NET MVC.
October 28, 2017
On Saturday, 28 October 2017 at 13:01:56 UTC, Kapps wrote:
> This looks very cool. I already ended up doing my more recent project in C# partially due to wanting ASP.NET MVC and Entity 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.
November 02, 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.
>
> [...]

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
November 03, 2017
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/
November 03, 2017
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
November 04, 2017
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.