- Base4
Base4 is a Free (
LGPL )application server for generating, sharing and re-using .Net data layers; this is intended to allow a development team to leverage existing enterprise systems and common functionality instead starting from scratch. It shares many similarities withWinFS but is significantly simpler because it doesn't need to be backward compatible with the whole of theWin32 API stack.The latest version comes with a schema guesser to help new developers get started quickly. There is a video demonstrating this ability for setting up and writing in Base4 [http://www.base4.net/Blog.aspx?ID=138 here.]
Features
*Server has [http://www.base4.net/blog.aspx?ID=138 embedded website] for Creating, Guessing, Managing and Registering schemas, with no need to learn XML syntax.
*Client/Server architecture allows many application to act as client of a Base4 Server at the same time while centralizing common business logic. Business logic is bound typically to a schema and this is the primary unit of re-use in Base4. Each client application picks which schemas it needs to work with, from those that the server makes available, and the server provides a central place which can enforce the business logic for the schema, independently of who is using it.
*Server support new [http://www.base4.net/blog.aspx?ID=75 List() ] query pattern in preparation forLanguage Integrated Query
*Define and generate a fully functional .NET datalayer from either by using the embedded website or by using the simpleXML schema
*Support for inter-schema references, to encourage data-layer sharing and re-use
*Support for schemas that [http://www.base4.net/quickstarts/cool/WrapLegacyDatabase.aspx wrap legacy] databases
*Support for schemas that [http://www.base4.net/quickstarts/cool/ExtendLegacyDatabase.aspx extend legacy] databases
*Support for Object SQL like queries, and for deep pre-loading of objects using what is called ObjectScoping
*Application Server supports addins to respond to lifecycle events (some examples are BeforeSave, AfterQuery etc)
*A core schema with builtin support for Files, Users etc, and a framework for supportingMetadata promotion and demotion to and from files.
*All generated data-layers provide extensive support for XML including XML persistence, including object Readers and Writers that work directly with XML
*Automatic .NET Remoting configuration and custom typeserialization managementPlanned features: Version 3.0
*Port from .NET Remoting to a completely REST based architecture
*Ability to load and save objects via a full URL, not just an object key relative to the current connection
*Ability to load and save individual object properties via a full URL, independent of their containing Object.Code examples
Connecting to a server
using Base4.Storage;StorageContext.SetDefault("tcp://Server:@localhost:999/default-store");Requesting objects from a server
See the examples here: http://www.base4.net/quickstarts/quickstarts.aspx
FileBase file = StorageContext.FindOne("Name='My File'"); //Above: same as StorageContext.Default.FindOne( … ) if (file != null){ // ID is unique across all files. file.Name = "Updated"; TextWriter writer = file.OpenWriter(); writer.Write("Hello World"); writer.Close(); file.Save(); //Above: Because the file has Base4 will update Version and Modified automatically for the file}User user = StorageContext.FindOne
("UserName='UserX'"); // Same as ItemContext.FindOne( … )if (user != null){ // User found do something. // Do Work} History
* Project Started by Alex James and software consulting team -
2004
* Open Sourced -Feb2005
* Development of Version2 targeting .Net 2.0 runtime and supporting generics -September2005
* Entered Public Beta1 phase -March2006
* Entered Public Beta2 phase -April2006
* May CTP released - May2006
* August CTP released - August2006
* Version 2.1 released - October2006 External links
* [http://www.base4.net Base4.NET]
* [http://www.base4.net/download.aspx Download]
* [http://www.base4.net/blog.aspx Base4 Blog]
* [http://fogbugz.base4.net/default.asp?pg=pgPublicEdit Log a bug]
Wikimedia Foundation. 2010.