DesiGen v1.6.0 now released

Published
02 November 2021
Category
Releases
Author
Andrew H

The latest beta version of DesiGen is now released, containing the latest improvements and bugfixes. This version is a significant improvement upon v1.5.0, so we strongly recommend you upgrade to v1.6.0 to get the bugfixes we have made in this version.

Note that there was a breaking change in v1.5.0; if you have upgraded to v1.6.0 from an older version and have already started creating custom Artefact Templates, please read the blog post containing the changes for v1.5.0 in case you are affected by this break.

User feedback is most welcome.

Details on how to install this version can be found on the installation page of the documentation.

New in this release:

  1. Enhancement: You can now reference templates from within other template sources as part of any custom Artefact Set Templates you create. This allows you to reuse the templates from the built in Template Source in your own Artefact Set Templates without having to export them. This is appropriate if you do not need to customise the Artefact Template to meet your own requirements. Built in templates are maintained by us to keep them up to date.

A new property has been added to the members within an Artefact Set Template to allow you to specify in which Template Source an Artefact Template resides. This new property is called CodeGenTemplateSourceCode and it is optional. If you specify a value for this property then it must match the code assigned to the template source to which you are referring. If you leave this value blank, it defaults to the same template source in which the Artefact Template Set is defined.

Bear in mind that when exporting an Artefact Set Template, the members refer to the templates in the source from which you are exporting. They are not updated to refer to local templates that you may have exported. It is your responsibility to perform this update if that is what you intend.

  1. Change: The name of the data type containing context information used by artefact template helpers has been changed to be more understandable. However, backwards compatibility with older artefact templates has been retained, so you do not have to change any custom templates that you have created.

The data type used to be known as NamingContext, but has been renamed to GenerationContext. You may refer to either from within your Artefact Template Text when calling helper types. Built in templates have been updated to use the new name, as this new name is probably more understandable for future template developers.

  1. Fixed a bug that stopped the complete import of Artefact Set Templates.

  2. Various small bugfixes are also contained within this release.

Known issues/limitations in this release:

  1. The application will not run if installed inside of the "Program Files" or "Program Files (x86)" folders. This is a permissions problem that is out of my control. Please workaround this by installing it outside of these folders. The default location is C:\DotNotStandard\DesiGen.

  2. Clicking on a link in the design menu causes unsaved changes made on the current page to be lost. This will be fixed when the application is upgraded to .NET 6; this will take place later in the year. The workaround is to click either the Next or Back button before navigating away from the design section.

  3. There are a limited set of templates at the moment. We do not intend that we deliver all of the templates you will ever need; instead you are able to create your own. However, there are a number of solution quickstarts that we do intend to add, such as a template for a hybrid MAUI solution.

  4. The navigation between the design section and the rest of the application is still somewhat incomplete, such as how you close designs. We are currently seeking feedback on how navigation should be enabled. For the moment, you should either use the small 'X' in the top-right corner of the design section. Alternatively you can click on the application name at the top of the design menu to return to the main menu, although you risk losing changes if you use this approach.

  5. There are still some limits to the ability to change settings at the moment. In the future it will be possible to modify more behaviours, but this currently remains on the backlog for prioritisation.

  6. There is no functionality to assist with collaboration between team members, including design reviews. We will assess what extra work is required in this area as part of a future development phase. The workaround for the moment is to interact via other channels. If you wish to do offline collaboration, we suggest generating a Word document, which you could print and review by hand, or use the notation features in built into Word to enable collaboration upon it.

  7. There is no status change functionality at this point in time; we are still deciding on what functionality is required as part of this feature. This will probably be tackled as part of the collaboration featureset.

  8. There is no data management in place, such as the scheduled deletion or archiving of old designs.

  9. Additional styling and UI tidy up is on the backlog for prioritisation.

  10. All child CSLA objects are code generated to have async data access code. However, a limitation in CSLA currently makes async inserts and updates unreliable in some UI technologies, especially WPF applications built using Mobile Blazor Bindings. It is recommended that repository interfaces and classes are changed to use synchronous methods for Insert, Update and Delete if any application hands are encountered with generated code. This issue does not affect Fetch methods/operations, which can still benefit from async data access for maximum scalability.

  11. Whilst custom artefact templates can make use of artefact template helper types, at this stage only built-in helper types can be used. This is an intentional limitation because importing user-defined helper types needs careful consideration; importing external code could represent a security vulnerability if not handled correctly. This limitation will be removed in a future release, once the code to mitigate the security risk has been completed.