What is CodeFactory™?
In relation to the application lifecycle management space, our first commercial product is designed to support standardized software automation. As the gold standard for .NET application delivery tools, Microsoft’s Visual Studio provides a publicly extensible framework which LCD has leveraged to create a powerful software automation factory. This beta product is currently being used by a closed group of partners, and the public version of CodeFactory™ is in the final stages of development with a number of additional CFX (CodeFactory Extension) pattern templates planned for release in the coming months.
Leveraging this powerful tool can reduce coding time by 20-40%, while improving the quality and supportability of your system. When we decrease the time spent on routine, repetitive hand coding you have more time to focus on the more creative elements of application development. Our robust set of features cuts development time and increases your efficiency from end to end. You’ll find that CodeFactory™ will quickly pay for itself in improved developer throughput and overall code quality.
CodeFactory™ is an extension to Visual Studio 2017 that is focused on enabling small or large teams responsible for the delivery of .NET (C# & ASP) solutions to design, build, maintain, support and update/refactor their source code assets much more efficiently. It also gives architects and product owners more control over the consistent implementation of their architecture standards and patterns.
Business benefits include:
- Reduction in Delivery Time - Probably the most important benefit to a business is the reduction of time to build and deliver software. The use of software factories reduce the effort needed to construct “plumbing code”, or software logic that is repetitive in nature and can be built in an automated fashion. For example, every application has, or should have, code for handling exceptions, validating data, disposing of unnecessary objects in memory, security authentication and authorization, etc. Instead of re-writing this code each time an application is built or when an organization’s methodology compliance rules change, CodeFactory™ can automate construction of this type of code, reducing the time to market.
- Reduction in Application Defects - With or without established coding standards and code reviews, application code tends to vary widely in implementation when two or more developers are involved. Even when only one developer is writing code, variations appear over the course of an application’s lifecycle due to the introduction of new requirements or new technological advancements, etc. Most of the time these variations are never addressed and refactored due to project schedule constraints. The result is a functional but brittle application which is difficult to maintain and contributes to the technical debt associated with the application. With CodeFactory™, much of an application can be automatically generated to a consistent pattern. When new requirements arrive or new methodologies are introduced into the architecture of the application, the CodeFactory™ author(s) can simply modify the template(s) and re-run the actions to consistently apply the changes without losing the code written by the development team in the interim.
- Reduction in Maintenance Costs - One of the big sources of code maintenance inefficiency is inconsistently implemented code. If two developers are given the same problem to solve they will use different approaches for how to solve these problems. This means that when defects are found in the application or enhancements need to be added, the existing style of development has to be discovered which takes up valuable time. With CodeFactory™ generated code there is only one style of implemented code. This makes it easy to find and easy to fix by simply updating the CodeFactory™ template and regenerating all the impacted code sources.
- Reduce Application Code Shortcuts - One of the big maintenance problems with applications has been due to using shortcuts to get the development done. Most applications today do not use well-documented or easily understandable application code due to the fact it just takes longer and costs more money to create. With CodeFactory™, development teams can automate the creation of higher quality application code. This will empower developers to build more robust, longer-life applications and enable easier maintainability of the application in the long term.
Technical capabilities include:
Standard Factory Libraries – Your CodeFactory™ RT and Professional license includes several pre-defined factory libraries. These libraries are designed to provide automated functionality out of the box with no customization required. The following factory libraries are under development and will be bundled with new releases at no additional cost:
- MVC Factory Library- The MVC factory library provides extensive code generation and refactoring options for ASP.NET applications based on the Model-View-Controller (MVC) pattern.
- PAC Factory Library- The PAC factory library provides extensive code generation and refactoring options for thick client and mobile applications using the Presentation Abstraction and Control (PAC) pattern.
- MVVM Factory Library- The MVVM factory library provides extensive code generation and refactoring options for thick client and mobile applications using the Model View - ViewModel (MVVM) pattern.
Design Time Code Generation - CodeFactory™ as a product is a native part of Visual Studio. This means that the code runs at design time and does not rely on runtime reflection. There are no libraries or application code that will be added to your application that are part of CodeFactory™.
Solution Explorer Access - Initiate code automation actions inside the Solution Explorer. Code Factory™ actions are context aware, only presenting choices relevant to the item that is selected in Solution Explorer.
Factory Authoring - CodeFactory™ Professional™ provides a fully functional SDK that allows organizations to extend pre-defined code factories, or create their own specific to their own standards. The SDK fully integrates with Visual Studio and allows developers to create, debug, package and deploy software factory templates to meet the organizational needs.
Source Code as a Data Model - CodeFactory™ allows developers and template designers to fully access existing/legacy C# source code as if it were a data model. This allows for creation of intelligent code automation templates, where decisions on what code is created or modified can be based on the organization’s application source code combined with specific coding standards.
Source Code Search Engine – The CodeFactory™ search engine allows authors to search the C# source code in their running solutions as well as access reference libraries and fully search those as well. The search engine will return data models of the search results. The data can then be used to make decisions and power factory libraries.
Source Code Generation with T4 - CodeFactory™ natively supports the generation of source code by using Microsoft’s T4 text transformation platform. CodeFactory™ provides T4 templates and loads data model information directly into the T4 template. This allows factory authors to transform and format the source code into any format desired.
Source Code Injection into Files (Any Language) - CodeFactory™ allows authors to explicitly define where generated output is injected. It can replace content in an existing code file, or CodeFactory™ can create a new code file and inject it into existing projects. Since CodeFactory™ is simply injecting information into a file, the data can be in any language and in any format.
Source Code Removal and Injection into Classes and Structure (C#)– When refactoring a specific design component or pattern, CodeFactory™ has native support for removing and injecting code functionality into C# classes and structures. Authors will be able to make real time decisions on what information to add and remove from a class or structure without having to rebuild the entire file. No other languages are supported at this time. Future releases of CodeFactory™ plans to have support for other languages.
Interactive Dialog Integration with Visual Studio - Authors will be able to create dialogs that will run in Visual Studio. These dialogs will allow software factory authors to solicit information needed from the developer in order for the factory library to run.
Factory Packaging - Consumers of CodeFactory™ select which factory library that is applicable to their projects, select the options that meet their needs, and package up the options that will be accessible via Visual Studio IDE.
XCopy Deployment of Factory Libraries - Factory libraries will be made available within Visual Studio by simply placing a single file that contains the factory libraries into the Visual Studio solution. The factory library will load as soon as Visual Studio starts up the solution. From that point, the automation is ready for use. Factory library functionality can be updated by simply replacing the package file with an updated version. Creation of custom factory libraries require a Professional license.