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.

Architecture-Overview.jpg

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

Aiframe Website

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.

Demo

The first steps when using this framework are:
  1. Initializing AiFrame
  2. Creating a product line definition and a program theme
  3. Implementing the core logic and GUI of a plugin and adding the plugin in the Plugins.PluginManager.xml

AiFrame Overview

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

Last edited Jan 17, 2011 at 10:08 AM by brilliantvision, version 35