Gtk.DataBindings and System.Data.Bindings
(version 2.0 release candidate)
Sourceforge is not supporting anchor links as it seems, this will be fixed in future!
Before asking, please read FAQ, especially first one before I start seeing dots. I was asked this same question for at least zillion times and I'm tired of answering it.
Only few changes are left for me to do on this version and then final
2.0 will hit the net. But even this one is very much stable as it is
used in at least 10 commercial applications and most of the bugs were
already fixed.
Changes needed for v2 to be final:
- Fix drawable in DrawingCell on some occasions
- Introduce IValidatable and WhatIsWrongWithMyData widget (already in my scratch version)
- Add possibility to specify auto discovered column names (already in my scratch version)
- Add pluggable translation engine and support for GetText integration (already in my scratch version)
- Few minor fixes
- Cell rederer editors (just finishing touches, date cell editor already resides in svn)
- Method data binding (already in my scratch version)
- Finishing stetic patch
- Adding icons for all widgets
- Attributes needed to decribe bindable class which is not able to bind by default (already in my scratch version)
- Installers (for fedora, opensuse and windows)
What is new?
Practically everything. Codebase now is about 250000 lines of
code. I don't really know how much, because a lot of code still sits on
my design scratch version waiting for my approval to be commited.
- Introduced speed fixes from v0.98
- Bug fixes from v0.98
- Binding improvements
- Rock stable memory handling (only if gtk-sharp is patched, which needs to be patched anyway)
- Real MVC tree models
- Registration of query models and query model factory
- DataTable and DataView QueryModel (which would work if someone would fix this in Mono, this bug prevents any DataTable/DataView to work correctly in Mono)
- Array and Enum query model
- List and Hierarchical TreeModel shell classes (for new list based query model 3 methods are needed, for hierarchical 5)
- Registration of data handler widgets and widget factory
- Registration of data handler cell and cell factory
- Bunch of custom cell renderers with shell for creation of new ones based on DrawingCell
- DrawingCell classes and CellDrawingArea. Complete widget building
framework based on Cairo and Pango, mainly to be reusable in my other
part of the project which still waits on first release
System.Data.Bindings.GtkReporting. Also providing with that is
completely theme respective container framework, where one line is
needed for your widget to look like button or entry based on system
style and theme. Also handling mouse, states and such. Basically way to
wide usage case to be described in one paragraph
- Bunch of list types, both generic and non-generic, all mostly based to fulfill the Observable part including TreeSort
- DbObservableList wrapper over DataTable or DataView
- Observable list wrappers (filter and sort)
- Generic DataTable type
- Complete set of assembly development attributes with assembly viewer and specific query model
- Property views and property description attributes
- Complete set of data aware widgets
- Custom widgets for entering Date, Time, Ip, LinkLabel, ColorLabel, HorizontalCombo, etc
- Class and property desription attributes
- Improved virtual objects
- Aware application preferences
- Complete resource management framework
- Manual Binder
- Assembly load based registrations
Plans for v2.1:
- Separation of SDB into 2 assemblies to fulfill FOSS requirements based on MS community promise. This would be done in this version already, but I can't find correct information what needs to be removed and what not.
Although this is more than complete application building framework, this is just a base for complete framework which includes
System.Data.Bindings.GtkReporting, System.Data.Bindings.ApplicationData
and so on. But... complete framework will be released later and licensed under different
license GPLv3+Commercial. SDB and GDB alone on the other hand will always stay LGPL.