Skip to content

Commit 2ec265c

Browse files
committed
Updated Readme
1 parent 3d11478 commit 2ec265c

File tree

1 file changed

+113
-70
lines changed

1 file changed

+113
-70
lines changed

README.md

Lines changed: 113 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -2,73 +2,116 @@
22

33
# What is CodeFactory?
44

5-
In the simplest terms, CodeFactory is a real time software factory that is triggered from inside Visual Studio during the design and construction of software.
6-
CodeFactory allows for development staff to automate repetitive development tasks that take up developer’s time.
7-
8-
## What is a Real Time Software Factory?
9-
A real time software factory is automation that can be triggered when ever requested and replace only target content within the solution.
10-
By not requiring complete regeneration of the entire file or process, you can do continuous real time management through automation.
11-
12-
## What Can I Automate?
13-
Anything you base on a set of demonstrated repeatable steps can be turned into an automation.
14-
The following are the basic criteria for automation.
15-
16-
### Data Sources
17-
How information is collected and provided to the automation process to execute.
18-
The following are common data sources used in automation:
19-
20-
#### CodeFactory Data Models
21-
CodeFactory provided data about the Visual Studio environment. The following are the common types of models CodeFactory provides:
22-
- Solution Data
23-
- Project Data
24-
- Project Folder Data
25-
- Project File Data
26-
- Full C# Source Code Models from Code Files
27-
28-
#### Collection of Information from the Developer
29-
A number of times we may need to get information directly from the developer in order for the automation to execute correctly.
30-
CodeFactory provides direct access to creating custom user interface screens that display information as if they were Visual Studio dialogs.
31-
32-
#### Usage of 3rd Party Libraries
33-
34-
CodeFactory allows direct access to the entire .NET framework, this allows for automation to use other third-party libraries to gather information.
35-
The following are some common examples of usage scenarios for collecting data:
36-
- Third party library to parse HTML files
37-
- Third party library to read in a target file format (markdown, yaml, json)
38-
- ADO.NET calls to a database to read out information used in the automation process
39-
40-
### Automation Logic
41-
CodeFactory uses an event driven model for processing automation requests from Visual Studio.
42-
These events are called "commands" and once commands are executed the automation logic is managed directly in the native .NET framework C# programming language.
43-
Your logic is directly executed to run the expected functionality to build the output identified from the data you provided.
44-
45-
Part of the automation process is providing common helper-based functionality to handle common automation Tasks.
46-
CodeFactory has a number of helpers built into the SDK to help with common activities found inside code automation.
47-
48-
### Automation Formatting
49-
A key part of any software factory automation is formatting the final data into a target format expected to be added back into your project or solution in Visual Studio.
50-
CodeFactory provides direct access to the T4 templating engine hosted inside Visual Studio. This allows you to build up formatted output regardless of the target language or format needed.
51-
52-
### Automation Output
53-
The final step in any automation process is output of the process itself. The following are common outputs from CodeFactory:
54-
55-
#### Document Creation with Content
56-
CodeFactory allows for the creation of a new document either at the project level or the solution level. During the creation of the document the content is directly added at time of creation.
57-
58-
#### Positional Based Content Management
59-
CodeFactory provides access to solution and project documents and allows you to update the content of documents based on the position within the document. This includes the following scenarios:
60-
- Remove content by position
61-
- Replace content by position
62-
- Add content before position
63-
- Add content after position
64-
65-
#### C# Artifact Based Content Management
66-
CodeFactory give you direct access to update content within C# code files. This includes the following scenarios:
67-
- Add content in the beginning of a class, structure, or interface definition
68-
- Add content at the end of a class, structure, or interface definition.
69-
- Add a class, structure, or interface to a code file
70-
- Remove a class, structure, or interface to a code file
71-
- Remove a member (field, property, event, or method)
72-
- Replace a member (field, property, event, or method) with updated content.
73-
- Add content before a member (field, property, event, or method)
74-
- Add content after a member (field, property, event, or method)
5+
CodeFactory is real time software delivery tool that natively runs inside of Visual Studio. The focus of CodeFactory is to increase the delivery velocity of applications being built new or uplift of projects to other technologies.
6+
7+
## Automation of Construction Delivery Patterns
8+
One of the core goals of CodeFactory is to use application source code within the application as a data model.
9+
This is a similar concept to ORM mapping based tools.
10+
11+
This allows for the implementation of development patterns to auto generate common application code developers have to build by hand. The following are common usage scenarios, but by no means the only scenarios in use.
12+
13+
- Bounds checking in methods
14+
- Implementation of exception handling logic
15+
- Implementation of standard logging
16+
- Automation of dependency injection
17+
- Auto creation of different application layers based on common data models that can now be identified directly from application source code
18+
- Auto generation of data access layers based on different technologies that fit the need of a target delivery pattern
19+
- Auto generation of validation logic based on application source code data
20+
- Auto generation and mapping of logic between service technolgoies and consumers
21+
22+
## Automation of Technology Transformation
23+
Due to the design of CodeFactories SDK the tooling is very helpful in transformation of existing functionality of application to be lifted into new technology implementation. The following are common usage scenarios for technology transformation, like about these are not the only scenarios for usage.
24+
25+
- Read ORM based data classes and transform into POCO's or to other ORM based implementations
26+
- Read data classes and generate interface definitions for all classes
27+
- Read markup languages and use adapters to transform markup from one implementation into another (Example WebForms to Blazor)
28+
- Read markup languages and update UI implmentation frameworks from one implementation to another (Example Modern UI to BootStrap)
29+
- Lift and shift of application logic from one platform to another (Example map logic from .net framework to .net standard)
30+
- Migration Mapping of logic from one system to another (Example using UI dialogs to select where logic comes from and where it goes in a new system)
31+
32+
## Designed for Different Delivery Approaches
33+
The CodeFactory tool directly integrates into the Solution Explorer in Visual Studio. This provides flexibility to the delivery team on when to use automation and how that automation should be triggered. The following are a few examples, like the others above not the only approaches that can be taken.
34+
35+
### Contract Driven Approach
36+
Interfaces are defined and automation triggers when interfaces need to be implemented. Allowing for a interface based design of the system and the core shell of the entire delivery driven by interface implementations.
37+
38+
### UI Driven Approach
39+
User Interface dialogs are triggered and questions are asked which generates the impementation of new or uplift of application logic.
40+
41+
### Event Driven Approach
42+
Changes in markup files or .net application code files like c# will trigger the option to execute automation logic to complete the implementation of logic.
43+
44+
### Rebuild Approach
45+
Logic is run that will rebuild the definition of a target artifact. This is a common approach with ORM based tools.
46+
47+
### Hybrid Approach
48+
This is the most common which uses a number of the above approaches together to meet a development teams delivery needs.
49+
50+
## Zero Touch Delivery Tool
51+
CodeFactory runs inside of visual studio itself. Which means it acts more like a behind the scene compiler.
52+
CodeFactory is a design time tool and has no application runtime capabilties.
53+
This means there is no application libraries or technologies that have to be included inside the application you are delivering.
54+
Any artificates that are generated by CodeFactory appear to be standard developer hand written code.
55+
56+
## Designed to Build Team Customized Delivery
57+
CodeFactory is a team delivery tool, which means there is no one size fits all delivery process. Its a SDK style platform that simplifies the design of automation to be taken advantage of by delivery teams.
58+
CodeFactory releases a standard set of automation libraries fully implemented.
59+
The goal of these libraries is to provide standard guidance scenarios.
60+
Alot of teams will want to extend and change the guidance. Which is exactly what this tool is designed for.
61+
62+
The following are the core tooling capabilities of CodeFactory
63+
### Solution and Project Management
64+
Direct access to the solution and project system hosted in visual studio. This will include access and partial management of the following items.
65+
66+
- Solution
67+
- Solution Folders
68+
- Projects
69+
- Project Folders
70+
- Project Documents
71+
- C# Source Code Files
72+
73+
### Document Management
74+
Direct access to any document that is hosted in the solution this will include the following.
75+
76+
- Read of all content from any document in the solution
77+
- Replace all content in a document
78+
- Add/remove/replace content at target locations within the document
79+
- Add new documents
80+
- Remove documents
81+
### C# Source Code Model Generation
82+
CodeFactory builds real time data models of C# code files. The models provide access to the following information
83+
84+
- Using statements
85+
- Namespace definitions
86+
- Attributes
87+
- Classes
88+
- Interfaces
89+
- Structures
90+
- Delegates
91+
- Fields
92+
- Methods
93+
- Properties
94+
- Events
95+
- Type definitions
96+
- Access to the body of classes, interfaces, structures
97+
- Access to the body of methods, properties, events
98+
- Source code management that include replace, add before, add after, delete on all member objects
99+
- Source code management that include replace, add before, add after, delete, beginning, end of all classes,structures, interfaces
100+
101+
### Source Formatting
102+
CodeFactory provides support for formatting of source code regardless of target langauges. This includes the following
103+
104+
- T4 integration to support the use of T4 formatting files to emite the target source code to be generated
105+
- Source formatter an internal code factory formatter that provides granular source editing
106+
107+
### User Interface Management
108+
CodeFactory integrates natively into the Visual Studio IDE. Allowing people to build their own custom dialog windows that display as native windows inside of visual studio.
109+
110+
111+
## Build Using .Net Technologies for Fast Adoption
112+
CodeFactory was designed to author automation using the C# programing language. All of code factory technologies are written using .net framework libraries.
113+
114+
(Note: This is a current limitation of the Visual Studio development environment. As Microsoft provide .net core integration into visual studio code factory will update at that time)
115+
116+
CodeFactories SDK provides a common set of tools for delivery teams to quickly extend and author their own automation for application delivery.
117+

0 commit comments

Comments
 (0)