Vendidi - Application Builder
Monday, September 06, 2010 - 7:07 PM (GMT +01:00)
User: Guest
HOME PRODUCTS DOWNLOAD SUPPORT NEWS PURCHASE FEEDBACK
PRODUCTS > Vendidi Framework > Vendidi Class Library >
Vendidi Class Library
To better evaluate the product features, consult Vendidi Class Library Reference and User Guide documentation.
Software applications are developed in order to solve specific business problems. However, they have a lot of requirements and basic functions in common, even when referring to the most diverse domains... For instance catalogs of items of some sort for users to browse or search, content's organization and so on.

When developers build software to solve common problems such as these, they must also create nearly identical classes and services for their applications. Wouldn't it be great if they could somehow get together and save each other from reinventing the wheel each time someone begins a development project?

That's what a framework like Vendidi is all about. It makes available to developers a library of classes to handle some of the most common requirements of an application, so as to speed up the development process, reducing costs and time-to-delivery. Obviously, you can use Vendidi Framework classes as they are or you can refine them to better suit your needs, deriving from them to extend their attributes and behavior. The rationale behind Vendidi Framework is to give developers a head start when they begin a new application, through some building blocks of proven reliability.

Vendidi is developed on Microsoft .NET framework, using Microsoft C# programming language. Vendidi Framework features are served by a well documented class library and ready-to-use samples. Any software developer will be able to personalize existing classes or create new ones (drawing from the existing ones), expanding the features of the product according to his /her own needs.

Each class can be used as it is, but, obviously, new subclasses can be derived to meet specific requirements or for an easier management. For instance, the available Product class is, as a matter of fact, quite generic, since different catalog entries can have different properties and, moreover, the database structure can be easily modified and, therefore, may be totally different in different applications. Then, all the custom properties can only be made accessible through a generic property dictionary, with the name of the property as a key.

However, it's easy for a developer to derive one or more typed subclasses from Product, corresponding to the actual items inside the catalog, with an explicit accessor for each property. For a book catalog, a new Book class will be derived from Product, with such public properties like Title, Author, Publisher, Binding and so on.

The hierarchy of catalog entry classes includes product variants and a multiple-level bill of materials.

Classes are available for handling roles and relationship. An unlimited number of role types can be defined and any object in the application domain can be associated to a role. Then, any two roles can be related to one another through a relationship object, creating a binary relationship which can be used as a building block for n-ary relationships. For each role and relationship type constraints can be defined as to the kinds of objects that can play a given role and the roles that can form a relationship. A powerful feature to create custom hierarchies, such as organization charts.

Each class has instance methods for database persistency and static methods for retrieval. That makes easy to persist objects in the underlying database through transparent save (insert or update) and delete operations. In addition to single object retrieval, multi-row datasets can be retrieved based on search parameters, which include the number of rows and the starting row number. Thus, with only a few instructions you can handle paged list navigation on web pages. All the classes used to handle database access are encapsulated in a separated module, so that they can be easily derived and methods overridden to use different databases.

 
 
Class diagram displaying only a subset of the classes derived from DomainObject and PersistentDomainObject.


Diagram of dependencies for the main assemblies currently composing the Vendidi Framework.



Implementation of ASP.NET 2.0 Providers
How to use Vendidi. Part I
Catalog Sets
Catalogs
Categories
Currencies
Languages
N-tier Applications
Packages
Parties
Products
Property Types
Relationships
Role Types and Roles
Templates