CafeinaXml
By Daniel Cañizares Corrales
This was my try to create a .Net library to persist entities using xml files.
It was useful for me in some desktop projects but the library hasn't been updated for so long. I made this as a student, but I hope that someone will find something helpful inside it.
Readme
Cafeina Xml is a Microsoft.Net library that allows you to easily persist entities in the globally supported Xml standard.
It brings you a fast way to serialize, store and restore your objects with less code-lines than you ever seen.
It's user friendly and you don't need to create data enviroments in order to deploy your app, Cafeina Xml will
do everything for you.
Cafeina Xml will not replace a DBMS in some enviroments like heavily transactional ones, but it will help you in too many
cases to quickly create and deploy any kind of applications in web or desktop enviroments.
The next version we are preparing, will include features to improve multi-user access and tons of cool things that you'll love.
While we finish it, try this version of Cafeina Xml and be amazed of its easiness and power.
Less Sql, more fun, happy Computing!
Cafeina Team.
VERSION HISTORY
RELEASE CANDIDATE (RC)
01/10/2012 VERSION 0.4.0
NEWS
- New! you can define Lists of entities or native types (int, string...)!
- New! you can define Entities as properties to save!
- New! you can save entities without Unique or Identity attributes (Save method)!
- Unique type is now supported!
- CFXML1.0 is the new representation standard and it will be published soon
- To save validating Unique or Identity attributes use Insert or Update methods
- Simplified xml representation removing attributes from file
- PrimaryKey extended method removed, just use Property extended method
- You can change keys in your entities without any modification*
- Improved entities validation
- Added data-strutures reflection
- Key attribute renamed as MetaXmlAttribute (You can use it as MetaXml)
- Most of CafeinaXml is Microsoft Code Analysis All Rules complaining
- Library partially redesigned to support future improvements
- Failed insert or update is now informed
- Lists of Lists currently unsupported
- Validate version of the file
- When Xml file exists but is empty library crashes
BETA 2 PATCH 1
24/06/2012 VERSION 0.3.1
FIXED
- Uncomplete xml entities will partially load instead of throw and exception
BETA 2
26/04/2012 VERSION 0.3.0
NEWS
- Added extended method string Property(Object) and PrimaryKey(Object) to XElement in order
to improve DAL sintax
(For more information see the official Demo) - XmlDatacontext GetEntities method renamed as GetElement to clarify sintax
- Unique type is created but currently unsopported
- Validations on insert, update and delete for Unique type
- NotNull properties aren't supported
- Failed insert or update isn't informed (In revision)
BETA
21/02/2012 VERSION 0.2.0
NEWS
- Reflection basic caching system to improve performance
- InsertOrUpdate method separated on Insert and Update methods
- DAL sytax is now easier than before
- XmlDatacontext is now the main-entry for all operations
- Attribute IdentifierAttribute renamed as PrimaryKey
- IdentifierType (Unique, Identity) renamed as PropertyType (Normal, Identity, Unique)
- Library internally redesigned
- Unique type is created but currently unsopported
- Validations on insert, update and delete for Unique type
- NotNull properties aren't supported
- Failed insert or update isn't informed
ALPHA
28/09/2011 VERSION 0.1.0
PENDING
- Only identity type allowed
- No known bugs
COMPATIBILITY ISSUES
Why are there so many compatibility issues between versions?
Currently, Cafeina Xml it's on beta testing and some many things are changing to bring you the best developing experience. On future stable releases don't expect to many issues.
RC
VERSION 0.4.x
This version makes little changes in Xml representation and code syntax. Compatibility issues with older versions.
BETA 2
VERSION 0.3.x
This version makes little changes in code syntax. Small compatibility issues with older versions. There are no Xml issues.
BETA
VERSION 0.2.x
Compatibility issues with oldest version.