nTierOnTime Introduction - ntierontime/Log4Net GitHub Wiki

Nowadays, applications are required to run on multiple operating systems, especially user interfaces. Building any application, web, windows, IOS, mobile apps on IOS/Android/Windows Phone, Xbox, etc., is a difficult experience - you will need to build everything from scratch, including a business logic layer, data access layer, and more. And this is just for a basic application. Add a sophisticated nTier structure and user interface to that, and advanced features such as reporting and charting. Once you get past all the bugs and integration issues that may arise in any steps, e.g. development/deployment. Months and Years may have passed. And if project requirements change, you might have to change everything.

Development teams are facing forever changing and increasing, and the wide range of and customers’ requirements across multiple platforms. And they are always pursuing faster and more efficiency solution.

It is a dream for all parties involved in software development that a developer can write cross-platform (Windows, Android, IOS/MacOS, …)applications in Single codebase:

  • Project Customer
  • Project Decision Maker, e.g. business owners, project owners, etc.
  • Project Development team, e.g. Architect, Analyst, Developer, Tester, etc.

What

nTier On Time is a code generator with a Single Codebase solution for cross-platform systems with multiple User Interfaces and Service Interfaces.

It will generate all types of applications that will suit most based on your database structure for now, and gradually make all application more and more configurable. You can deploy the baseline applications immediately.

nTier On Time take advantage of Bottoms-Up + Template approach, which allows:

  • User define/design database structure, get "Linq to Sql classes" file, and submit to nTier On Time.
  • nTier On Time will generate the whole solution based on nTier On Time templates and user database structure. And send back to user.

Generated Visual Studio projects are marked as Yellow on following chart:

Why

Any new Technology is trying to reduce cost, improve performance. nTier On Time can reduce up to 90% development effors.

To Whom

nTier On Time is taking design/development burden and reducing design/coding efforts from business decision makers, architects, project managers, analysts and developers, and all stakeholders, help decision making, requirement, design and development team move faster.

When

nTier On Time can be used for concept-proof application, brand new applications development or modify existing applications.

nTier On Time can be used at any stages in a process of application development of any methodologies, e.g. Water Fall, Agile. A modifed Waterfall methodology is suggested.

Use Cases in Waterfall Methodology

Customers always smarter than a service provider. Customers can find better usages. Some use cases in all phases are suggested by nTier On Time but not limit to.

Requirements Phase

When a new project started, the first phase is gather requirements. Usually, similar application/web site can be found. Decision makers, with developer's help, find a similar database, generate nTier On Time solution.

Business decision makers, analysts and developers can work together on the baseline solution, take screenshot, write down major requirements.

Design Phase

Architect, analysts and developer, sometimes decision makers also involved, working on generated baseline application, find out changes needed, update database structure, re-generate nTier On Time solution.Then review baseline application.

Agile can be used in this phase, to help Design Phase faster

Implementation Phase

Architect can directly take nTier On Time solution structure and add projects when needed. For projects, Developer can

  • create a new UI Applciation project with same structure/properties as generated UI Application project ,
    • It is suggested for e.g., Asp.Net Mvc, WPF, Silverlight, Windows App Store, and Windows Phone projects.
    • use generated UI Applications as baseline application.
  • use existing C# class library project.
    • It is suggested for Non-UI projects.
    • Add partial class files when you want to add/modify code to generated C# files.

For code files, Developer can

  • work on code files directly
    • it is not suggested, because you database structure may changed, will means code files generated next time may overwrite existing files.
  • copy the code files to a new project
    • use generated UI Applications as baseline application.
  • create a new partial class file for generated C# files
    • It is suggested for .cs files.
  • create a new UI Applciation project with same structure/properties as generated UI Application project ,
    • It is suggested for Asp.Net Mvc, WPF, Silverlight, Windows App Store, and Windows Phone projects.

Maintenance Phase

When issues related to database structure:

  • Modify database structure, re-generate nTier On Time solution, and merge to existing production release.