[midgard-user] [Announcement] Midgard2 10.05 "Ratatoskr" released

Piotr Pokora piotrek.pokora at gmail.com
Thu May 6 21:09:29 CEST 2010

Lodz, May 6th 2010 -- The Midgard Project has released the first 
release of Midgard2 10.05 "Ratatoskr" LTS.
Ratatoskr LTS is a Long Term Support version of Midgard2 Content Repository.

## About 10.05 releases

Midgard2 10.05 is targeted at web framework and desktop application
developers. It provides a comprehensive set of content repository APIs that can be used to build replicated information applications that share their information using a common storage layer and replication tools.

In this release:

 * Content Repository API bindings for the
following programming languages: C, Python, PHP and Objective-C. D-Bus signals are used to inform different Midgard2 applications about things happening in the repository, enabling for example a PHP website and a Python background process to communicate with each other.
 * Midgard MVC, an elegant framework for PHP web applications. Midgard MVC includes interfaces for loadable components, hierarchical sub-requests, a forms system and much more.

 * Midgard Runtime that combines the Midgard MVC, a PHP application server and a WebKit UI to provide a full Midgard web development environment on the desktop.

## Main changes from 9.09 releases:

 * Improved core which supports GObject Introspection
 * Built on top of Libgda4
 * Replication , quota and DBus are now optional and fully configurable
 * Improved performance

## New functionalities in 10.05 releases:

 * New reflection and introspection routines
 * New database query interfaces
 * New language bindings: vala and mono (C#)

## Midgard2

Midgard2 is a content repository. It provides an object-oriented and
replicated environment for building data-intensive applications. This
provides several advantages

 * Common rules for data access mean that multiple applications can work with same content without breaking consistency of the data
 * Signals about changes let applications know when another application using the repository modifies something, enabling collaborative data management between apps
 * Objects instead of SQL mean that developers can deal with data using APIs more compatible with the rest of their desktop programming environment, and without having to fear issues like SQL injection 
 * Data model is scriptable when you use a content repository, meaning
that users can easily write Python or PHP scripts to perform batch
operations on their data without having to learn your storage format
 * Synchronization and sharing features can be implemented on the
content repository level meaning that you gain these features without having to worry about them

Midgard's philosophy includes building on top of a well-known and
supported GNOME libraries like glib and libgda on the system end, and connecting with popular programming languages like PHP and Python. Data storage can utilize SQLite with desktop and mobile applications, or a database server like MySQL or Postgres for web application storage.

The Midgard2 platform enables developers to define a storage structure once and use it on both web and desktop applications, with the possibility of easy data replication between the two.

Read more about Midgard's content repository approach:

 * <http://bergie.iki.fi/blog/why_you_should_use_a_content_repository_for_your_application/>
 * <http://bergie.iki.fi/blog/midgard2_at_fscons-your_data-everywhere/>
 * <http://bergie.iki.fi/blog/midgard_and_jcr-a_look_at_two_content_repositories/>
 * <http://teroheikkinen.iki.fi/blog/midgard_workshop_at_fscons/>

## New Midgard architecture

### Language independence

Midgard is also language independent and due to its powerful
architecture has proven as stable, secure and flexible solution
implemented in various environments:

 * PHP5 extension for web application and CMS development
 * Python module for desktop application and background process development
 * Objective-C package [for Mac OS X][5] and GNUstep developers

It also provides bindings for other languages:

 * Vala 
 * Mono (C#)

### Database independence

The Midgard 1.x was heavily coupled with the MySQL database. The new
Midgard2 architecture is instead built on top of libgda, the GNOME
database abstraction layer. This enables Midgard to be used with various
storage engines, including:

 * MySQL
 * Postgres
 * SQLite
 * Microsoft SQL Server
 * Oracle
 * DB2

### Built-in replication and metadata

All Midgard objects are automatically equipped with a consistent set of
metadata properties that can be used for access control and workflow.

In addition, Midgard provides an API for serializing and unserializing
stored objects in XML format that can be used for replicating data
between different systems. The replication architecture can be used for
staging/live web environments or mobile applications that synchronize
between each other or a web back-end.

# Midgard resources

 * [Download page and changelog for latest release][1]
 * [Bug reporting][2]

## User and developers support:

 *  [Users' forum][3]
 *  [Developers' forum][4]
 *  IRC: #midgard on irc.freenode.net
 *  [#midgard on Qaiku][6]
 *  MidgardProject on Twitter

## About Midgard

The Midgard Framework development started in 1997 and it was initially
released as free software in May 1999. Midgard Project has since
gathered an active user and developer community, powering thousands of
web sites ranging from simple organizational intranets to large
community portals.

Midgard is being developed by an international team of professionals.
Midgard's development team includes new media designers, system
integrators and content management consultants. Midgard development has
been supported by several commercial and governmental entities including
the European Union and the Swedish Internet Foundation.

Midgard2 is free software available under the GNU LGPL license.


## Contacts

Piotr Pokora, Midgard release manager

Henri Bergius, Midgard spokesman

The Midgard Project

[1]: http://www.midgard-project.org/download/10-5/
[2]: http://trac.midgard-project.org/report
[3]: http://www.midgard-project.org/discussion/user-forum/
[4]: http://www.midgard-project.org/discussion/developer-forum/
[5]: http://www.midgard-project.org/documentation/xcode_tutorial/
[6]: http://www.qaiku.com/channels/show/midgard/

More information about the user mailing list