TekNewell C# OOP Framework - User Manual and Instructions

Version - Target: Release (oop) - Built on: 3/21/2023 1:58:01 PM - Released on: 3/21/2023 4:17:10 PM

Presentation of Contents

How to use the document


This document is well structured and easy to navigate through. Please navigate up and down through left panel Tabel of Contents.


hit both 'Ctrl' + 'f', and type in the word and hit 'Enter' to search for. hit 'F3' to search for next occurrence.

Samples and Figures

Samples and figures provided in this document are not necessarily coherently in binding in design. It is up to the user to make his or her 'story' complete by applying the principles.

Version Icons

Icons like these     ... indicate the associated section is a new or revised section with a new version number.

About TekNewell C# OOP Framework

What is OOP Framework?

TekNewell C# OOP Framework is a software tool. It is built to run on MS Windows and the executable is EatUI.exe which is inherited from its brother product Excel Accocunting Tool's executable name. It takes input Excel file(s) and produces output Excel files and C# object files over previous version.

System requirements

It requires :
  1. a Windows 7, 8, 10 or 11 OS system
  2. a Windows Microsoft.NET Framework 4.6.1
  3. an Internet browser
  4. a Microsoft Office Excel program, Google Sheets On-line or other equivalents
  5. a license from Teknewell


The tool is very convenient and versatile. It allows developers design, implement Object Hierarchy with OOP mindset easily in time ever.

How it works

Each developer owns a copy of this tool. He or she uses it to create and upgrade the Object Oriented Programming source code version. The source code files are created in design based on Object Hierarchical Chart created by the tool previously, and once it upgrades, a new chart is again created for future design. Hence it creates a series of healthy cycles one after another. The collection of object code files are like an enterprice's factories, offices and building floors that were built already. A developer just need to assign furnitures, machines and work units into each room. This totally eliminates the lack of design in the procedure-oriented programming method and the shortcomings that comes with it.

License Agreement

Users should have at least once read the User Purchase and License Agreement at time of using the Trial version. Subsequent decision to purchase the software indicates user agrees without preservation the provisions set forth in the document of User Purchase and License Agreement.

Here you can access User Purchase and License Agreement

How to acquire OOP Framework

Trial Version

Goto Trial Download to download a trial version. The trial version only lasts for 1 month. Follow on-screen instructions, and you should have downloaded the file 'eatprooop.zip'.

Product Version

If you felt Teknewell C# OOP Framework tool is a useful and can help you adapt to OOP Mindset, and decided to acquire, then goto Teknewell C# OOP Framework Tool to purchase a license.

How to set up and run

Unzip the file

Once downloaded, unzip to the file to your desired location in disk. You can right-click the file EatUI.exe and then click on 'Pin to Taskbar'. You can click the icon on Taskbar in continuous use.

Run for the first time

After you click the icon on Taskbar, the Framework Manager will run and prompt user to enter the license key. You can find the key in your email. You should also save a copy of the email for future reference. By this time you are all set and ready to set up your models for projects.

The model

The model file

Under the directory Model, you have a sample model file prefixed with 'model' like model-*.xlsx which is an Excel file, a LibreOffice Calc file or a Google Spreadsheet file. In this file you can specify the location where your input sheets are. The command is 'scan' and in column B the cell is the location.

The input sheet files

Under the directory Location mentioned above, you can supply Input sheet files prefixed with 'eat' like eat-*.xlsx which is also an Excel file, a LibreOffice Calc file or a Google Spreadsheet file. In this file you can specify the commands for your projects. The commands are described in following chapter.

The commands

Main of the commands

There are 2 commands. One is named 'ZdcParameters', the other 'ZdcCreateItem'. The first is singular, the other plural. There is a field for both commands, it is called Prefix, and they have to match for both. And at this time there is only one Prefix that is being processed for 1 model. The prefix is to identify 1 package of version in which a set of objects are closely related and serve in unison. The 2 commands are described in great detail below.
Term: Double cell definition (DCD) is that if a cell value is not empty, and it is a file name, then the content of the file is used. If it is not a file, then the cell value is used. If it is a file, it is assumed that the the file resides in directory defined in column I of command 'ZdcParameters'. In fact, all files are assumed residing in the directory.
Note: user can write any comments and memos beyond the rightest column described here in the 2 commands. The memo can help user to recall any design details to upgrade the furthering design. Note: the 2 commands and even same commands do not have to be on the same sheet of Excel Spreadsheet book. That means user can organize the commands into categories where he or she sees making business senses.


Column What Example
A Command Name ZdcParameters
B Prefix john
C Global Class Name AAGlobalStorageCenter
D Foundation Class Name Foundation
E Log Class Name Log
F Not Used
G Project File (csproj)
H Project Folder Name projectAI
I Assistant File Folder Name john_feed_files
J Staging Folder Name john_Staging_Folder
K # of Versions to Keep 20
L Region Marker (long, short or none) long
figure 2520
  1. Column B 'Prefix' is used to prefix all file names and class names, which uniquely identify a package of version in unison.
  2. Column C 'Global Class Name' is used to specify the global class name. This class should also has been defined in command 'ZdcCreateItem' and should be without a base class. This class is the first class in package to be instanciated. All other classes instanciated will be registered within this class after it is registered in their deepest base class 'foundation' defined in column D.
  3. Column D 'Foundation Class Name' is used to specify the deepest base class name. This class should also has been defined in command 'ZdcCreateItem'. This class holds a pointer to the global class in column C which enables 'this' class in turn registered. This foundation class inherits Window's class 'IDisposable'.
  4. Column E 'Log Class Name' is used to specify a log file handler which provides log service versionwide. This class should also has been defined in command 'ZdcCreateItem'.
  5. Column G 'Project File (csproj)' is used to specify a project control file in extension '.csproj'. This file is used to have the previous package link names replaced by the new ones.
  6. Column H 'Project Folder Name' is used to specify the project folder where the previous version is read from and new upgraded version was written to. The version directory takes the format 'Auto_p_0000032.dir' where 'Auto' is the prefix, '0000032' is the version number, 'p' and 'dir' are a fixed marks.
  7. Column I 'Assistant File Folder Name' is used to specify a folder where files in collumn G,H,I,N and O of command 'ZdcCreateItem' are read from.
  8. Column J 'Staging Folder Name' is used to specify a folder where all past versions are held as the files were prepared, upgraded and transfered. Each upgrade directory takes the format 'Auto_s_0000032.dir'. This upgrade directory contains 2 directories. One is 'Auto_migrate.dir' and the other 'Auto_input.dir'. All names contains the prefix name. Here it is 'Auto' as example.
  9. Column K '# of Versions to Keep' is used to specify an integer number which is the max number of staging version directories and project version directories allowed. This means the older versions are deleted.
  10. Column L 'Region Marker (long, short or none)' is used to specify which region write-out format is desired. 3 choices are available, long, short or none.


Column What Example
A Command Name ZdcCreateItem
B Prefix john
C Identity 100
D Class Name PriceFormBase
E Old Different Class Name
F Base Class Name PriceForm
G Replacing Formula
H Document Decree auto_commentsNotes.cs
I Common Usings auto_common_usings.cs
J Debug only? yes
K NameSpace Name JohnPricePackage
L Class Modifier internal
M Base Class Trailer , interface1
N Constructor priceForm.cs
O Other Data and Code otherCode.cs
figure 2520
  1. Column B 'Prefix' is to match the Prefix in Column B of command 'ZdcParameters'.
  2. Column C 'Identity' is used to mark an object file on the #region lines. It is useful to use this ID number to write to Log to mark this object.
  3. Column D 'Class Name' is used to name the new object.
  4. Column E 'Old Different Class Name' is used to upgrade from a different object in case user want to change the file name and object name. It is a one time operation. It is assumed the Prefix is added as file name too. Once this upgrade is completed, user should remove the old name for next upgrades.
  5. Column F 'Base Class Name' is used to name the base object. In c#, the inheritance is from singular object. We recommend to write it right after colon ':' and other interfaces to follow.
  6. Column G 'Replacing Formula' is a Double cell definition (DCD), and used to replace strings in upgrade process. The formula has 2 level of separators. The old string and new string are separated by '|1|' and the pairs are further separated by '|0|'. For example, OldString1|1|NewString1|0|OldString2|1|NewString2|0|OldString3|1|NewString3
  7. Column H 'Document Decree' is a DCD, and used for manager to issue decree of how the documents and notes should be written into source code.
  8. Column I 'Common Usings' is used to include the commonly used 'using' statements of assemblies. Additional 'using' statement can be put in in region 'Usings'.
  9. Column J 'Debug only?' is used to indicate an object is for Debuging mode only. Its value is either 'true' or 'yes' for positive.
  10. Column K 'NameSpace Name' is used to specify the NameSpace of the package.
  11. Column L 'Class Modifier' is used to include class modifiers like 'public' or 'internal' before clause 'class'.
  12. Column M 'Base Class Trailer' is used to include additonal clauses like interface after the base class or just the class itself.
  13. Column N 'Constructor' is used to replace the default constructor syntax.
  14. Column O 'Other Data and Code' is used to include additional data and code in Auto-generated region.

Create first code version

Main of Create first code version

In first run, there is no upgrade available. Other than that there is no other difference. The first version number is 1. A first staging directory is created in 'Auto_s_0000001.dir' and a first version package project directory 'Auto_p_0000001.dir' is created in the project folder. There is only one step user can take to run. Once the EatUi.exe is up, it will show the Run page. User will choose the right model, then click 'Create Report'. The result data will show in the list on the same page.

Include the first version package

After a successful first run, user need to go to the Visual Studio Project, click an icon called 'Show all files' on top of Solution Explorer. The new project folder 'Auto_p_0000001.dir' will show. user can right-click and select 'Include in Project', then the package will participate in the project.

General c# file code lines

In each object file, the text lines are typical c# source code lines for a class. Following top component lines are in the file. Those lines are called a region. All regions are folderable.
  1. Top Manager decree region
  2. FileDefinition region
  3. Common Using statement region
  4. Additional Using statement region
  5. NameSpace region
  6. Bottom Manager decree region
In NameSpace region, there are 2 regions:
  1. Extra Supporting class region
  2. Class region
In Class region, there are 8 regions:
  1. Constructor region
  2. Destructor region
  3. Auto-generated region
  4. Data region
  5. Property region
  6. Method region
  7. Virtual region
  8. Override region

10 User Regions

In the regions listed above, following 10 regions are for user to write in. Note that the class is spelled as clxss. This is because the tool looks for the word 'class' to identify a class. In order to avoid confusion, the word is changed as such.
  1. FileDefinition region
  2. Additional Using statement region
  3. Extra Supporting class region
  4. Constructor region
  5. Destructor region
  6. Data region
  7. Property region
  8. Method region
  9. Virtual region
  10. Override region

Upgrade code version

Main of Upgrade code version

When there is a new decree, a revision of class hierarchy, or versionwide dessemination, a developer should make an upgrade to a new version.

Include the new version package

After a successful run, the tool will update the project file (csproj) specified in column G of command 'ZdcParameters' with the new project directory name automatically, provided that the new package version number is right above the previous package number by 1. After the project file automatical update, and user flips over the Visual Studio, it will prompt user whether to make the change or ignore. If not update in any means or updated but there were new object classes added, user have to update manually. User can do the same described in previous chapter to exclude the previous package and to include the new package. Note: the manual inclusion process will add the new object classes in whole, while the auto-process will not.

Algorithm of the Upgrade

Following steps are involved in each upgrade. They are all automatical except when there is an error, user need to fix the error and run again.
  1. get the new version number
  2. create the shell (or skin) for the new version. This includes all new decree, new auto-generated codes, new using statements, revision of class line and constructor line, etc.
  3. migrade all user code from user code regions.
  4. transfer the new version to the project folder.
  5. exclude the previous version in Visual Studio project
  6. include the new version into Visual Studio project
  7. build the project
  8. if build is a success, then done.
  9. if build is a failure, then cancel the upgrade by deleting the new version directory 'Auto_s_0000001.dir' in staging area, then make changes to fix the error and go back to step 1, run again.

Cancel the Last Upgrade

By deleting the new version directory 'Auto_s_0000001.dir' in staging area, the user could start over again. In the next run, the project new version directory 'Auto_p_0000033.dir' is renamed to a name contains the word 'removed', user could delete them in the future when peaceful in terms of risk of data loss.

Safety of Upgrade

The upgrade is completely safe. user can switch back to previous version without any issue.

Object Hierarchical Chart

Main of Object Hierarchical Chart

The core value of this tool is the presentation of object hierarchy in Excel Spreadsheet. That is where a developer or an architect to design a healthy relational object images. Once an idea is formed, It is very convenient for the developer to write out the commands of 'ZdcCreateItem'. Most of the work involves CopyPaste on existing approved classes built before. Most classes represent same pattern with zero or few variations.

Hierarchy Detail

The hierarchical chart is a set of nodes on a tree structure. In our chart on the left is the base class node, right, the derived class. Each node contains 6 column fields. They are listed as following:
  1. Field 1: the base class ID number
  2. Field 2: its own class ID number
  3. Field 3: the class name
  4. Field 4: not used
  5. Field 5: tree branch level number. the most outer leaf number starts at 1001.
  6. Field 6: not used
So the multiple derived classes shares the same base ID number, plus they are on the right, and their left base class node cells are not repeating and hence empty. This presents an easy, forthcoming chart to recognize the class deriving relationships.

A Convenient Feature

The field 3 shows the cell as a hyperlink to the class file in the upgrade version. User clicks the link and it will open the file for view and edit.

The OOP Mindset

Main of The OOP Mindset

We believe this tool will help developers greatly. It fundamentally changes how developers code a project and store their legacy code. In conventional procedural programming, a developer most of time just drop the code and data into a source file at hand or nearby, in a set of limited, well categorized files best scenario. There is no planning or tool of planning, no object relational design, and no reentry images or blueprints upon which one can refreshs mind or an discuss can take place among colleagues. Also there is no easy way to desseminate a decree or common features versionwide, for example, an ID number for each classes. It is always the best practice to start thinking from top which is the object hierarchy to bottom which is the data and functional code. When object classes are separated by files, it is less possible to mistake typing at a wrong place, and the objects are well protected when files are not opened unnecessarily. This tool facilitated a mechanism for a developer to follow and discipline himself in his profession of software engineering.

Summary of Benefits

Main of Summary of Benefits

This comes to the end of the user manual document. Following is the list of benefits.
  1. The tool allows user to design Object Hierarchy in OOP Mindset easily.
  2. The tool provides a chart or a blueprint to allow user to refresh or review and discuss Object Hierarchy for oneself or among colleagues.
  3. The tool provides an input Excel Spreadsheet to make quick easy revisions on Object Hierarchy.
  4. The tool provides an universal separated object file format to fit into IDE safe and light.
  5. The tool provides a machanism to desseminate company decree versionwide or specific design components among objects related.
  6. The tool is safe in upgrade of version, creates no inpact of harm on previous verions. Rewinding to previous version is easy.
  7. The tool paves a way for a developer to adjust to the OOP mindset and discipline in write-out of object conponents.
  8. All in all, the object hierarchy is like the enterprise's estate where all buildings, factoris, warehouses are well planed and built, and ready for admin offices, task teams, and furnitures to move in.

Back up


All files reside on the same disk drive. If the disk drive is no longer functioning, all financial data files are lost. The solution is to backup the files to another USB or network drive.

Backup a Must

Purchase a portable USB drive for backup purpose. Plug the drive to a USB port. Backup after you have made changes to the system, usually at the end of day. Once the backup is finished, then proceed to shut down the PC.

How to

In Eat Manager, go to page Backup, click the bottom buttons to back up either to a drive or to a directory.


This backup command only backs up the files that have the file dates newer than the ones on destination drive, avoiding waste of time on copying unnecessarily the files that have the same contents as that of the destination ones.

History of Changes

Date Description
09/17/2022Started to implement the project.
12/25/2022Finished the project.
01/20/2023Deploy as a separate project.
02/15/2023Finished testing.
03/04/2023Created User Manual.
03/07/2023Upgraded User Manual Creation program to include the integration of shared document sections.
03/09/2023Finished the Teknewell C# OOP Framework User Manual.
figure 8001