NConstruct - Intelligent Software Factory

General Questions

What is NConstruct?

NConstruct generally consists of two parts: NConstruct Builder and NConstruct application.

NConstruct Builder is a kind of wizard which helps you set up the whole information system. It works with a database on your database server. The NConstruct Builder reads useful information from your database and produces the source code for the server tier and for the client tier. So, after completing all the wizard's steps you get the source code for your application, the executables and setup files, which you can use for testing purposes or for installation in your customer's environment.

The NConstruct application is a mix of generated code from your database and preproduced code at your disposal for developing essential modules of your application:

- User authentication module
- User management module (create and update application roles, users, permissions...)
- Facade communication between server and client tier (for Windows client)
- Object concurrency module (optimistic, pessimistic or even mixed mode)
- Administration module
- Navigation module which helps users access tables/entities in your database
- CRUD (Create, Read, Update, Delete) module to manipulate data in your database
- GUI module: Windows or Web module for displaying and manipulating data

Why did you choose the bottom-up development approach?

We believe there is no absolute answer which development process is better than others. For us, it was mostly the matter of the decision, which type of the development approach or process we will support in our RAD tool. Our target customers are developers and developer companies, which prefers bottom-up development process or have already designed database.

There are many types of development processes: bottom-up, top-down, middle-out etc. Historically, object-oriented experts have advocated the top-down approach, where developers start with a high-level of abstraction (big picture) and continue with implementation of individual details. The mapping meta-data and relational database is typically generated in the end of the process using one of the many tools (like XDoclet, hbm2ddl, etc.).

The top-down development approach is still a challenge in modern programming and a lot of OOP skills are needed for successful release of the application. A top-down constructed application is more likely to match the customer's requirements, but it may miss technical reality. One of the well-known problem of the top-down approach is also the fact there is no running application until the development is finished.

The bottom-up development begins with an existing database schema and data model. Developers proceed with using the reverse-engineering tools to extract meta-data from the database. This meta-data can be used to generate a skeleton for a .NET persistence layer. Such approach can quickly produce the rudimentary running application and highly efficient final release, but it might fail to match some (or a lot) of customer's requirements.

One of the keys of the successful bottom-up based projects are frequent iterations with the customer, where both sides review the partially built application and propose changes, point to eventual misunderstandings etc. Also, keep in mind that it is sometimes more effective adapting the organization to the software instead of adapting the software to the freedom of personalization or needless requests. There are a lot of situations where you doesn't have to transfer customer's wishes into the source and executable code only, but you have to change or optimize their habitual processes, too.

What are your future plans for new NConstruct versions?

You can check our feature and architecture plans in the Roadmap document for the future NCosntruct releases.
However, if you have some special questions or you want to include some new features in the following releases, please send us an email or post your ideas in our special Feature request forum.

Do you offer your product in a box or on a CD/DVD media?

No, we do not offer boxed versions of our product nor do we offer NConstruct on a CD/DVD media.

Code Generation and Customization Questions

Can I use 3rd party controls, i.e. DevExpress or Component One within NConstruct application?

Yes, we've already supported some of 3rd party controls (DevExpress, Krypton, more to come) as an example how to integrate them in the application generated by NConstruct Builder. Developer has the ability to switch between whole UI control's namespace through simple parameter in the "app.config" file.

What if I change my database model - will I lose my custom code in my data objects when I run code generation process?

The best way to avoid this is to use partial classes. Generated code is quite similar to Windows Form's generated "Designer.cs" code. Mostly you don't change this file by writing your own code but you rather let your IDE to rewrite it if it's necessary.

Which .NET versions are supported by NConstruct?

NConstruct works on Microsoft .NET Framework 3.5.
Solution and project files which are generated through code generation process are consistent with Microsoft Visual Studio 2008.

In what programming language is NConstruct written?

NConstruct is written in pure C# for Microsoft .NET Framework 3.5.

Do I need Microsoft Visual Studio to use and customize generated application?

Both server and client applications are compiled in the last step of the NConstruct Builder. The compilation is accomplished with the Microsoft MSBuild system. Developers can use any IDE he/she wants and compile solutions with MSBuild or some other tools, but by our experience the most productive combination for developing n-tier applications is Visual Studio + JetBrains Resharper. However, this is not a payed ad, and we'd very much love to hear your experience and fresh ideas about most productive solutions for creating high quality applications.

Do you provide documentation for your products?

Yes, we provide comprehensive Developer's Guide which includes more than 200 pages of instructions for using NConstruct Builder (application generation wizard) and guidelines and examples for extending and customizing generated applications.
Developer's Guide is included in the installation file (for trial version as well) or you can download it directly from our Documentation page.

Installation and Activation Questions

I am behind the corporate firewall. Can I activate your product or trial version anyway?

Yes, you can use Manual Activation button and follow the instructions on the wizard.