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 LifeCycle Delivery has leveraged to create a powerful software automation factory. The latest version of CodeFactory is available to use for free at the Visual Studio Marketplace.

Code generating tool kits commonly have two significant drawbacks which limit long-term adoption/usefulness. These include limited template flexibility and a dependence on bundled run-time code, libraries and/or reflection. These tool kits limit your team to building code the way that the automation vendor intended when they built it.

CodeFactory offers a fully supported Authoring capability which allows you to customize ANY code automation tasks to fit your desired architecture or application standards and evolve as better methods emerge. Also, CodeFactory does not require you to bundle run time libraries or alter your code or in any way to take advantage of its features. By generating code 100% at >design time< we eliminate the performance overhead of reflection and even support the ability to version different automation templates per solution or team depending on your needs.

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 2022 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 include pre-defined factory libraries. These libraries are designed to provide automated functionality out of the box with no customization required. Additional factory libraries are under development and will be bundled with new releases at no additional cost.

 Design Time Code Generation - CodeFactory™ as a product is a native extension of Visual Studio 2019. This means that the code runs at design time and does not rely on run-time 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™ 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 from within an automation command. CodeFactory will return 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 2019 - Template authors can create dialog boxes that run inside Visual Studio. These dialogues will allow software factory authors to solicit information or decisions from the developer in order for the factory library to run.

XCopy Deployment of Factory Libraries - Factory automation commands are made available to your own solution by simply placing a single file that contains the factory libraries into the root of your solution structure. 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.