This is a feature that allows the user to register their custom code with OxyGen
Code Generator. The effect of this is that the Code Generator is now aware of your
custom classes, methods and properties. This means that it will generate UI and
Service components that reflect your custom code.
Virtual Stored Procedures are an innovative way to manage SQL code.
With Virtual Stored Procedures, you have the flexibility of SQL statements, but the security,
manageability and structure provided by Stored Procedures.
Virtual Stored Procedures are SQL Statements stored in a resource file ("Generated.VirtualStoredProcedures.resx").
This abstraction ensures that SQL code is not intermingled with your application
code.
Virtual Stored Procedures can sometimes improve the effectiveness of your
development time because you don't have to run SQL scripts to create stored procedures
in the database.
Virtual Stored Procedures may be used in conjunction with preexisting
stored procedures in the database. The generated code is smart enough to figure
out which data access methods uses Virtual Stored Procedures and which methods use
normal Stored Procedures.
Virtual Stored Procedures are named identically with ordinary
Stored Procedures. This means that your may decide to switch back to Stored Procedures
at your discretion.
You may also override Virtual Stored Procedures with Custom
SQL Statements (create a file named: "Custom.VirtualStoredProcedures.resx").
The code publication feature is now able to merge the files in your project.
Version 3.0 continues to build on our customization features by providing additional
mechanisms that allows you to influence or change generated code.
- For the Data Layer: T-SQL in "Custom.VirtualStoredProcedures.resx" will override
T-SQL in "Generated.VirtualStoredProcedures.resx". Our consulting clients gets an
additional tools that will allow them to override generated Stored Procedures.
- For all other layers (except the ASP.NET UI): Intercepts, Post Execution Events
and Durable classes.
- For the ASP.NET UI: The ASP.NET Template Editor may be used to influence/transform
the generated Markup. In addition, the code behind files of the generated User Control
classes are never overwritten (this only applies when the Publication feature is
used). Also in the 'User Controls' output mode, only the .ascx file in the "_Controls"
folder are overwritten during each generation session. The significance of not overwriting
the code behind files is that you may now use it to write your own custom code,
and all the controls in the markup will be available. The generated User Controls
usually inherit from classes contained in the Durable folder. As always, files in
the Durable folders are not overwritten an you may safely change their code. Before
the UI generated for Stored Procedures and Search functions are called, they pass
through a 'Validate' method. The Validate method is defined in the appropriate base
class.
This is a mechanism for introducing external files into the generated output. This
is a good way to replace the Durable files with one of your own.
CRUD Constraints allow you to specify an additional filter for generated sql statements
that are based on Tables and Views. This additional filter is appended to the existing
WHERE clause, or introduces a new WHERE clause where none existed before. This feature
may be used to implement the following database design constructs:
- 'Virtual Deletes': For data security, remorse, and archiving reasons, many database
experts don't actually delete rows from a production database during an online transaction.
Instead they ensure that all tables have include an additional bit column somethings
called 'IsDeleted'. This bit is then toggled on and off to indicate if a row is
"deleted" or not.
- 'Logical Tables': a logical table is when a single physical table is divided into
more than one data groups. This is usually achieved with the use of an additional
'Status' column. For example, only 'Active' customer may take part in the normal
operations of an online application.
Version 3.0 introduces support for Class Table Inheritance. See the design pattern
here. The configuration is very simple and there’s a screencast that shows
you how to do it.
Version 3.0 includes an ASP.NET Template Editor that let you transform, change or
merge markup. In addition, you are able to register third party controls.
We recognize the fact the user Interfaces are very subjective. Our generated UI
may be consider plain – that is because we made a conscious decision to generate
only the barest minimum.
It is easier to add exactly what you want than fix what we like. Keeping with the same theme, we now generate all ASP.NET markup into .ascx
files (version 2.0 generated directly into aspx files).
Additionally, you may configure the ASP.NET layer to use one of two modes: 'Generic Data Entry' or 'User Controls'.
In 'Generic Data Entry' mode, the generated UI is configured as a data entry application.
In 'User Controls' mode, the generated UI is configure as Portlets – discrete pieces
of UI functionality.
If you are building a traditional ASP.NET Application, you
should probably use the 'User Controls' mode. This mode does not generate aspx pages.
You may then use the generated user controls as a repository of domain specific
Portlets or "Web Parts".
We made a lot of changes to improve the user experience. Some of which are listed
below
- Search functionality for Processing instruction
- An additional transformation step was included for the Stored Procedure Wizard.
This may be used to clean up the method names derived from the Stored Procedure
names
- In version 3.0, The 'Generate Code' wizard creates a configuration after the last
wizard step. This saves your settings and makes it easier to repeat the same configure
again
Version 3.0 supports the new SQL Server 2008 types. There are a few screencasts
that covers this. Please look at the
screencasts page (in the "SQL 2008" tab).