[ Create account | Log-in ] Home ::  Downloads ::  Web links ::  FAQ 
Main Menu

Online
There are 3 unregistered users and 0 registered users on-line.

You can log-in or register for a user account here.



A Brief Introduction to csopf

The C# Object Persistent Framework (csopf) is a project which has a goal of making development of business software as rapid and as maintainable as possible. The philosophy is to create a framework which is very developer oriented, to create clean, obvious and readable code. It also lets the developer develop software, with database administration handled automatically.
The features which are available currently (v0.4.0) are:
  1. Auto creation of the database store in the server on the first run. (user authority has to be set properly, of course)
  2. Auto creation of the persistent object tables in the database
  3. Auto creation of support tables in the store
  4. Support for multi-rdbms as the persistent store: Microsoft SQL Server, MySql and Firebird RDBMS
  5. Makes full use of Attributes to fully describe a class
  6. Designed to be database independant
  7. Extensive NUnit testing of the framework
  8. Support for easy One to One Relationships
  9. Support for easy One to Many Relationships
  10. Persistent operations Create, Read, Update and Delete (CRUD) are supported in an Object Oriented manner
  11. Primary Keys and Indexes are defined on the class level and are automatically created in the DB
  12. Database connection details are configured via an UI and stored in an XML file
  13. Meta-Information: Caching of Reflection, Fields and Property interchangeability and inheritence order.
  14. Proper handling of DateTimes
  15. Auditing Information persistable: Created Date Time, Created ID, LastUpdated DateTime, LastUpdated ID
  16. Table Name Information can be defined as an Attribute to the Business Object.
  17. Parameterized Queries to prevent SQL injection.
  18. A Simple Sample Application to demo the framework's functions.
  19. Transactions / Atomic Updates
  20. ASP.NET compatibility
  21. mono compatibility - runs on linux


Future features which will be worked on soon:
  1. Gtk# port
  2. FAQ / Tutorial / Manual
  3. Checking and Altering of Column Types
  4. Better integration with UI
  5. Support for other databases: Oracle, Sybase, etc ...
  6. ... and more ...

Task list is available here at sourceforge...

Hopefully this is enough to get you developers excited.

To get the latest, click Download above.
[for the brave, here is the nightly tarball: http://csopf.sourceforge.net/snapshot/]

Regards,

yk.
PostNuke Ah, sourceforge decided to change their mysql servers; upgrading, reorganizing and redistributing. I didnt have the time to do the changes, but finally its back online. sorry for the 10 days of downtime...

http://sourceforge.net/docs/E07#mysql

yk.
Published Nov 16, 2005 - 12:04 AM


C# Persistent Framework News Lots of changes on the csopf.UI.ASP namespace. Namely some upgrades to the Grid component. It now allows editable columns, so users can directly edit on the grid. It currently supports Text, checkboxes and comboboxes.

Unrelated to this new feature, Ive changed the OnPopulateCell delegate parameter signature. This is to allow the passing of the Cell Object along, so its easier for the UI dev to have accesss to the object to display.

So some old code may be broken. Just change:
private string gridQuestions_OnPopulateCell(csopf.Core.PDObject pObj, string pColumnName)

to
private string gridQuestions_OnPopulateCell(csopf.Core.PDObject pObj, string pColumnName, object pCellObj
)

Otherwise you will get some compile error which says that it cannot match the delegate, blah blah...

yk.
Published Sep 11, 2005 - 08:09 PM


C# Persistent Framework News csopf has a rather crude Templating mechanism for ASP.NET. All you do to get consistent pages is to inherit from csopf.UI.ASP.BaseForm to define your template for your Web App.

Then inherit from this web form for all your other pages. csopf will insert your designed controls from VS.NET ide into the body area of the page.

Previously a page would be defined by a Header, a Side Navigator Bar, the Body of the page and finally the Footer. All these can be defined by overriding the Generate[Header/Footer/NavMenu]() function from the BaseForm.

I have since added a GenerateRightColumn() so that if need be, you can have the right hand column filled with other information.

If you dont need this, then just do this:

protected override void GenerateRightColumn(Control pTag)
{ // 050902 yky Dont need the Right Column Bar.
pTag.Controls.Add( new LiteralControl( " " ));
}


yk
Published Sep 02, 2005 - 04:09 AM


PostNuke csopf.sourceforge.net was down for a few days because I didnt read the advisory from sourceforge. They remounted the project directorys as read only causing postNuke to bork as it needs a temporary directory to dump its stuff...

So all it took was just a redirection to their /tmp/persistent dir to get this up and going again. Sorry for the downtime.

Issue

yk.
Published Aug 18, 2005 - 11:59 PM


C# Persistent Framework News Things are going extremely fast, Im porting over a Delphi written Windows app over to c# / ASP.NET for use in the immediate future. Its a very interesting app, and it will sure put csopf's features to good use. It will also allow me to fill in any feature gaps.

Nick is also working on another project which makes use of csopf.UI.ASP, and he is trying out a TreeView component from obout. Quite nice, but we dont like it forgetting the tree structure on return to the page.

All in all, interesting progress. Creating functional pages in csopf for ASP is really a breeze.

yk.
Published Aug 09, 2005 - 07:26 PM


C# Persistent Framework News We have finally changed the namespace for ASP modules. Previously it was csopf.ASP, but since asp is basically a UI item, it should be csopf.UI.ASP, consistent with csopf.UI.Gtk and csopf.UI.Win (System.Windows.Forms)

Converting over is not too bad, just do a project search for "csopf.ASP" and replace it with "csopf.UI.ASP", Except for the Assembly name, which remails at csopf.asp(.dll)

yk.
Published Aug 09, 2005 - 07:26 PM


C# Persistent Framework News Nick has been working on some subselects and Im glad to report that progress has been great! Something like this will work:
SearchCriteriaList vCrits = new SearchCriteriaList();
vCrits.Add( true, "Name", "Nick", "", SearchCriteriaOperator.Like, false)
vCrits.Add( true, "Orders.OrderDate", Date.Parse("2005-01-01"), null, SearchCriteriaOperator.GreaterThan, false);
CustomerList vCusts = new CustomerList();
vCusts.LoadByCriteria( vCrits )
Should return all the orders of the "Nick" customer made since the new year of 2005. Note that the only thing the developer has to do is to define the relationship once between the Customer and the Orders as such:
public class Customer: PDObject
{
   ...
  [OneToMany("ID", "CustomerFK")]
  public OrderList Orders {
     get { return (OrderList) PDList.CreateByAttribute( this, "Orders" ) }
   ...
}
The framework will make use of all this information to generate the appropriate subselect statement in SQL.

Fun stuff!

yk.
Published Jul 05, 2005 - 01:26 AM


C# Persistent Framework News I just did a search for 'csopf' on Google, and I found some strange sites linking to here.

One is GDS or also known as "Goodie Domain Service". And it looks like they keep a copy of all the released files I submit at sourceforge.net! Its strange!
csopf Package Listing as GDS

Then theres Camelot which seems to scrape off everybody else, and posts up my release news from sourceforge as well.
News Item on csopf at Camelot

I dont know why these guys are doing it, but it seems like a waste of bandwidth to me...

[btw, I havent seen any referals from them yet]

yk.
Published Jun 16, 2005 - 09:14 PM


C# Persistent Framework News Hey, just found out that csopf is now listed in the United Nations Development Programme - International Open Source Network (iosn.net) under Malaysian FOSS Contributors

"This is a list of FOSS projects and FOSS contributors whereby the principal developers are Malaysians or where substantial code and community contributions have come from Malaysians. All projects listed below are available for download and fully meet the FSF and OSI definition of FOSS copyright licenses. In addition, there is also a list of active community members of the IRC channel, #myoss on irc.freenode.net."

How nice! Thanks to Ditesh who maintains that page. Currently there is an impressive list of 13 projects... and growing, we hope!

yk.
Published Jun 14, 2005 - 09:18 PM


C# Persistent Framework News I just had a one day crash course on enums in c#.
The Result? Completed support for enums for persistence in integers.

Problem: Enumerated types are usually values which can be stored as integers, thus saving space but more importantly defined within a certain number of bytes. If we were to store the Enum values as strings, as most people may do, first of all how do we determin the length of the string for something like pnFunctionReturnOK. Secondly, its darn inefficient.

Anyway, just for info, to translated between enum <--> string, we use these easy functions:

enum enStuff { Food, Computers, Games }

enStuff vStuff = enStuff.Food;
Console.WriteLine( vStuff.ToString() ); // outputs "Food"
vStuff = Enum.Parse( typeof(enStuff), "Games" ); // vStuff = enStuff.Games

That was simple enough.
Now if we need to store these enums as integers, converting enum -> int is easy enough:

int vInt = (int) vStuff;

but converting from int -> enum is NOT obvious.

vStuff = (enStuff) Convert.ChangeType( typeof( enStuff ), vInt );

does not work, but this:

vStuff = (enStuff) Enum.ToObject( typeof( enStuff ), vInt );

strangely works... ToObject??? gimme-a-break! shouldnt it be ToEnum?

Anyway, glad to announce that enums, stored as integers are fully supported by csopf. (The release would be in v0.4.1, or you can grab it from cvs)

yk.
Published Jun 10, 2005 - 04:40 AM



Other Stories
· Downtime ... mysql (Nov 16, 2005)
· Editable Grids, and OnPopulateCell.. Change of param signature (Sep 11, 2005)
· Right hand Column (Sep 02, 2005)
· site down.... (Aug 18, 2005)
· More Apps with csopf (Aug 09, 2005)
· Namespace change for ASP (Aug 09, 2005)
· Searching with subselects (Jul 05, 2005)
· Strange Links. (Jun 16, 2005)
· csopf is listed in the UNDP - International Open Source Network (Jun 14, 2005)
· All about Enums (Jun 10, 2005)

Poll
How do you persist your objects?

· With an Object Persistent Framework
· Manually write out SQL statements
· Object to RDBMS Mapper
· CRUD is Code Gen'ed
· Dont need to - OODB!
· Real men dont store data!

[ Results | Polls ]

Votes: 119
Comments: 0


Login
 



 


 Log in Problems?
 New User? Sign Up!

Past Articles
Friday, June 10
·Namespace change for UIs. (0)
Tuesday, June 07
·csopf-v0.4.0 is finally out! (0)
Monday, June 06
·csopf works with mono (0)
Sunday, June 05
·Revamp to the csopf Website (0)
Sunday, December 05
·Wot?! No Updates?! (219)
Monday, October 18
·Transactions as Well! (124)
Monday, October 11
·ASP.NET.... working on it! (272)
Thursday, September 30
·.Net Reflection and Performance (127)
Wednesday, September 22
·csopf-v0.3.9 - Major Changes (82)
Thursday, September 16
·Work In Progress for v0.3.9 (256)
 Older articles
Home ::  Share your story :: 

Web site powered by PostNuke yoonkits blog Malaysian IndependantDot Net Developers


All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest (c) 2004 by me
This web site was made with PostNuke, a web portal system written in PHP. PostNuke is Free Software released under the GNU/GPL license.
You can syndicate our news using the file backend.php