Welcome to the AiFrame community site
AiFrame (Application Infrastructure Framework) is a framework for business applications. It was created to improve the productivity of the development process and provides best practices like a plugin manager, an application frame, support for nhibernate and a navigation bar.
Features
- Plugin manager
- Predefined application frame
- Navigation bar, toolbar, main menu, status bar
- Support for application themes
- Product line support
- Configuration mode for configuring database changes or system updates
- Best practices / generic design patterns for business application
- Support for NHibernate
Download
Click on the "Downloads" tab at the top of this page to access downloads for AiFrame.
Requirements
Microsoft .NET Framework 3.5 SP1 or
Microsoft .NET Framework 4.0
Usage instructions
For your first business application we've set up a demo application which shows you some features like the plugin manager, the usage of the navigation bar and theming with AiFrame.

The first steps when using this framework are:
- Initializing AiFrame
- Creating a product line definition and a program theme
- Implementing the core logic and GUI of a plugin and adding the plugin in the Plugins.PluginManager.xml
1. Initializing AiFrame
- Add a reference to the Base.Core assembly and initialize the framework.
public class CoreInitialization
{
public static void Initialize()
{
ConfigurationProxy.ApplicationName = "AiFrameDemo";
ConfigurationProxy.CompanyName = "MyCompany";
DatabaseConnection.Instance.HostAddress = "server";
DatabaseConnection.Instance.Database = "aiframe_demo";
DatabaseConnection.Instance.Username = "user";
DatabaseConnection.Instance.Password = "password";
}
}
- Add a hibernate.cfg.xml to your project and activate the "Copy to output directory" property.
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="show_sql">false</property>
</session-factory>
</hibernate-configuration>
- In your executing assembly you have to reference the assemblies Base.Core, Base.WinUI and InterfaceLib. After that you can get your program running with
BaseInitialization baseInitialization = new BaseInitialization(args);
baseInitialization.PreInitialize();
CoreInitialization.Initialize();
baseInitialization.PostInitialize(new DefaultStartupView());
The
PreInitialize method initializes the framework and loads all registered plugins, the
PostInitialize method opens the main window.
2. Product Line and Theme information
In order to get the program starting properly you need the following two assemblies in your application directory:
- Policy.Productline.dll: Requires a public class which implements the IProductLine interface
- Windows.Theme.dll: Requires a public class which implements the ITheme interface
3. Implementing the core logic and GUI of a plugin and adding the plugin in the Plugins.PluginManager.xml
- Add another assembly to your solution and create a public class implementing the IPlugin interface.
- Add the assembly to the Plugins.PluginManager.xml