Vacation on Risa

by Matthew Noonan 18. August 2006 21:04

Man, vacationing on the planet Risa can be exhausting. It's an awfully long trip via shuttlecraft.

Seriously, I must apologize for being away for so long. A combination of customer projects, a certain level of personal "burn-out", and the distractions of a very pleasant summer here in the US Midwest, have all conspired to keep me from doing any serious work on EasyObjects. But the summer is drawing to a close, a well-earned vacation helped with the burn-out, and I'm finally in a groove with my current project, so all of that means it's time to refocus my attention back to my favorite ORM.

So what's been happening with EasyObjects?

  • The 2.0 CTP has been updated. There was a problem with timestamp handling, as well as a few bugs in the templates and dynamic query providers, so against my will I released an update. In addition, I have added a SQL 2005 dynamic query provider, because SQL 2005 handles timestamps differently than SQL 2000 (with the now non-existent TSEQUAL function). I also hard-coded the new SQL 2005 provider as the default, so if you are using SQL 2000 or Oracle, you will have to uncomment the correct provider (line 2760 in EasyObject.cs).
  • The 2.0 code base has come quite a ways. I have added an option to do IDENTITY inserts, and I have the configuration part worked out. All that remains is Configuration Tool support and completing the NUnit test suite before we can release.
  • I was hoping I wouldn't have to, but it looks like I will be doing a EO 1.2 release. There are a couple of outstanding bugs to address, and I would also like to back-port the IDENTITY insert, timestamp handling and the SQL 2005 query provider.

The original plan was to begin selling add-on modules (for other database providers), but getting a store up and running is proving both problematic and time consuming. I still intend to do this, but there may be an interim work-around before I get the final solution in place.

I'm going to prioritize my TO DO list this weekend, and I will post here as I make progress. I promise it will be more often than the past few months!

Comments

8/24/2006 2:00:00 AM #

Hi Mariano,

Thanks for the kind words!

EasyObjects uses Views to join related tables together. You can then use the EO View template in MyGeneration to create an object based on the view. Email me or post on the MyGen forums if you have any questions.

--
Matt

mgnoonan United States

8/24/2006 2:00:00 AM #

Hello Mr. Noonan    
My name is Mariano, I am from Argentina. First, let me tell you that the product is brilliant. I was proving it altogether with Mygeneration and was pretty cool. I want to ask you if you can advise to me, how to handling related objects, that is to say, that objects containing other objects. I was thinking to implement a class that contains both objects, what do you think?
Regards,

Mariano
( with some help of http://translate.google.com so excuse my english)

Mariano United States

8/25/2006 2:00:00 AM #

Mariano,

No entiendo español, pero tu inglés es muy bueno. Smile

EasyObjects does not implement the IEnumerable interface. Unfortunately that would require a redesign of the current code base. I realize this is important for design time databinding in .NET 2.0, but it is not yet supported.

mgnoonan United States

8/25/2006 2:00:00 AM #

Mr. Noonan.

I have read some about views , but i understood that a view cannot be updated, am i right?, i'm searching something like the functionality that gives nhibernate, without entering depth with lazy loading nor nothing of that.  On the other hand, I would like to know how if EasyObjects defines or exposes the IEnumerable interface, to connect with a bindingsource object (winforms). What binding approach do you suggest? something at design time?

Regards

Mariano

And again, excuse my english.. i'm doing my best to explain my troubles in my "spanglish" :o)

Mariano United States

8/26/2006 2:00:00 AM #

Hi Mr. Noonan

I have been playing with EasyObjects and bindingsource. Here is an example of it:

I have a Form, with a bindingnavigator, tied to a bindingsource, and on the other hand i have an EasyObject custom class named Turnos;

here is the example class

namespace PrimerEasyObj
{
    public partial class Moviendome : Form
    {
        Turnos t;
        public Moviendome()
        {
            InitializeComponent();
            t = new Turnos();
            t.Query.Load();
            this.bindingSource1.DataSource = t.DefaultView;
            this.textBox1.DataBindings.Add("Text", bindingSource1, "Paciente",false, DataSourceUpdateMode.OnPropertyChanged);
            this.textBox2.DataBindings.Add("Text", bindingSource1, "DiaHora", false, DataSourceUpdateMode.OnPropertyChanged);
            this.textBox3.DataBindings.Add("Text", bindingSource1, "Hora", false, DataSourceUpdateMode.OnPropertyChanged);
            this.textBox4.DataBindings.Add("Text", bindingSource1, "IdEquipo", false, DataSourceUpdateMode.OnPropertyChanged);
            this.textBox5.DataBindings.Add("Text", bindingSource1, "Usuario", false, DataSourceUpdateMode.OnPropertyChanged);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            t.Save();
        }

        private void agregar(object sender, AddingNewEventArgs e)
        {
            t.AddNew();
            this.bindingSource1.ResetBindings(false);
            this.bindingSource1.MoveLast();
        }
    }
}


When the user press Addnew ( from binding navigator) i catch the event onAddingNew in the bindingsource, and then call t.AddNew()

When user press button1, i call the t.save(); method..

Now, its working pretty good, adding, editing and deleting.

I'm just starting to play with it... can you suggest me another way of binding?

Regards,

Mariano.

Mariano United States

Comments are closed