Hello,

I was wondering about your take on adding .Net 4.0 support on Rhino
ETL.

I was writing several helper classes on top of RhinoETL for my own
purpose, just to make it a lot more boo-like (less C# noise), and one
of the thing I wanted was to add C# dynamic capability on Row objects
like its boo counterpart.
To do that I had to modify RhinoETL source-code, and add ExpandoObject
implementation on QuackingDictionary class.
I would prefer if I don't maintain a non-vanilla fork of RhinoETL if i
can help it, so I'm curious if I can push this change back to the
trunk, noting that it will lock RhinoETL on .Net4.0.

Dynamic isnt actually necessary for what I wanna do, it just reduces
row["column"] kind of noise. So let me know whether you're happy to
patch this class to be dynamic-happy, or if you prefer to leave it 3.5
friendly.

PS, if you're curious, the helper class I was talking about is to
enable me to write my ETL code like following (don't worry about the
actual logic.. it's purely random):
RegisterAll(
        SourceDb.Read("select blah, bluh from foo"),
        Rows.Each(row=> row.Price = row.UnitPrice * row.Quantity),
        Rows.Map(row=> new{CityId = row.City.Id, FullName = row.FirstName + "
" + row.LastName}),
        Rows.Filter(row=> row.Type == "Employee"),
        Rows.Aggregate((agg, row)=> agg+= row.Tax)
);

Or some join, with an example that makes more sense:
RegisterAll(
        Join.Left(
                        Compose(
                                SourceDb.Read("select * from Order"),
                                Rows.Map(row=> new {row.OrderId, Spending= 
row.UnitPrice *
row.Qty}),
                                Rows.Each(row => log.Write("Order: {0} at {1}", 
row.OrderId,
row.Spending)
                )).Right(
                        SourceDb.Read("select Percent, MinSpending from 
discount")
                ).On((order, discount)=> order.Spending > order.minSpending)
                .Select((order, discount)=> new {order.OrderId, DiscountAmount=
order.Spending * discount.Percent),

        TargetDb.Output("insert into OrderDiscount values(@OrderId,
@DiscountAmount):)
);

Cheers guys

-- 
You received this message because you are subscribed to the Google Groups 
"Rhino Tools Dev" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rhino-tools-dev?hl=en.

Reply via email to