A lot of thoughts have been given to the VS integration aspect in this version to try to make LASG more flexible to the developer. The migration to Open GAX for the VS 2012 version has given the opportunity to revise the integration code.
You will immediately notice that the new version comes in a smaller installer file and a cleaner single item option in the New Project dialog window.
Selecting solution templates has now been moved to a custom template chooser. A few pre-set solution templates are shipped out-of-the-box for you to quickly select the type of layered applications that you want to build. These templates serve nothing more than providing you with a recommended structure of the layered application.
You can easily include or exclude any projects that you wish to suit your application needs.
In the list of project templates, there are also three new project types - A Framework project for us to deposit shared code for our back-end components, a Data.Agents project for our Service Agents and a Database project that allows us to manage and keep track of database schema changes for our applications.
[Take note that you may experience a longer project unfolding time if the Database project is selected. This is observed on some machines when adding SQL Server Database Projects.]
The unfolding process has been refined and you will notice that the projects are not fully expanded by default like in the previous versions. We no longer need to manually collapse the projects and references after each solution creation.
One of the most exciting feature of the new LASG is that it can be enabled or disabled on any projects on-the-fly. You can now take any old projects or manually create a solution and enable LASG on them. As long as they comply to the LASG project naming convention, the automation options such as the code generators will be available for use.
You do this by going to Tools -> Guidance Package Manager -> Enable/Disable Packages... , check on the checkbox beside Layered Architecture Solution Guidance 2012 and click OK.
You will then see all the automation that is enabled from LASG. Close the Guidance Package Manager and LASG will be enabled for your custom solution.
You can organize your projects to any solution folders, including nested folders, and LASG will still be available to your projects. New projects added to the solution later, that comply with the naming convention will also automatically be LASG enabled, and developers can now have the freedom to add more than one layer component type projects with automation enabled to their solution.
When manually adding projects to a layered solution, it is quite common for a developer to forget about the dependent project references. LASG provides an Auto-Configure Project References option to help figure out those references and add them for the developer.
You can disable LASG at any time by going to the Guidance Package Manager and your solution will still compile since LASG does not inject any dependencies to your projects, therefore, living up to its promise of a non-disruptive framework to your code.
With this powerful new feature, developers are no longer constrained to using LASG for new projects only. Any projects can now benefit from LASG's automation. Indirectly, this feature also helps resolve the issue of the .gpstate file being corrupted when used in a multi-developer environment, particularly in a Version Controlled environment like TFS. Lastly, this feature also allow LASG enabled projects to be upgradable to Visual Studio 2012 thus enabling the automation across Visual Studio versions.
For developers who are still using Visual Studio 2010, a down-ported version with similar functionalities is also available. This is to ensure that while moving into the more advance capabilities of Visual Studio 2012, Visual Studio 2010 LASG users are not being neglected.
Apart from integration, some enhancements and bug fixes were also made to the code generators. There is a new Keep generated files open option that allows developers to work on the code files immediately after they have been generated. This reduces the need to manually hunt for the generated code.
The Impulse: UI Process Component Generator has also been given a new option to launch the Add Service Reference dialog for conveniently adding references to the WCF services after generating the controllers.
Finally, for the collaboration aspect, LASG now stores the code generation settings together with the solution. This will allow any previous code-generation settings to be checked-in together with the solution into version control systems and shared among the developers who are working on the same project.
I hope you are as excited as I do with the new LASG features, as many hours (and my rest time) have been invested into building it. I value your continuous support and hope you will help spread its goodness among your peers and community.
You can download LASG 2012 here and LASG 2010 here. You can also get more information and discuss about it here.
Happy Coding ^_^!