I would first find a use for them, then eventually add them.

On Thu, Dec 23, 2010 at 22:14, Gauthier Segay <gauthier.se...@gmail.com>wrote:

> yes other Inline operations I have in mind / or in some code base:
>
> InlineFilterOperation (takes a predicate)
>
> InlineAggregationOperation (with possibility to unnest aggregation
> within same operation since it's pretty common and more convenient
> than chainning two independant operations)
>
> InlineGenerateRowsOperation (which has issue you mention about yield,
> but can be work arround by passing method reference instead of
> anonymous method, also Linq Select as Jason mention is nifty solution)
>
> InlineTransformOperation (applies a Func<Row,Row> to transform rows)
>
> InlineExpandOperation (applies a Func<Row,IEnumerable<Row>> to
> generate multiple rows from a single row)
>
> InlineConventionInputSqlCommand (takes sql statement and
> Action<IDbCommand> commandPreparer)
>
> I think all those are pretty useful to avoid kingdom of nouns,
> although nouns are useful for more involved operations, simple
> processes gain not having to define that many classes
>
> Thanks again for your feedback
>
> On Dec 23, 11:02 am, Nathan Palmer <snowpal...@gmail.com> wrote:
> > Have you looked into making the other operations inline? You may run into
> an
> > issue with using yield. Optimally it would be great to specify an
> abstract
> > operation using an anonymous method. But yield is not allowed there which
> > causes issues.
> >
> > Register(new Operation {
> >    Execute = (r) => {
> >       yield return r;
> >    }
> >
> > });
> >
> > Nathan Palmer
> >
> > On Thu, Dec 23, 2010 at 11:56 AM, Gauthier Segay
> > <gauthier.se...@gmail.com>wrote:
>  >
> >
> >
> >
> >
> >
> >
> > > Thanks Jason and Nathan
> >
> > > regarding constructor / property initializer syntax, I think my issue
> > > is that a join operation without proper settings is not valid, the
> > > constructor enforce proper initialization. For those using c#4 with
> > > named arguments that is not looking that much different than property
> > > intializers
> >
> > > But I'm ok to use property initializer for optional things (like
> > > orphan row handlers, operation name, etc.)
> >
> > > Thanks for your feedback, I'll be pushing other operations and unit
> > > tests in my fork
> >
> > > On Dec 23, 7:21 am, Nathan Palmer <snowpal...@gmail.com> wrote:
> > > > I like the idea of having this require less code when doing it in C#.
> I
> > > use
> > > > the DSL most of the time for that very reason.
> >
> > > > I do prefer the instantiators over the constructor though.
> >
> > > > Nathan Palmer
> >
> > > > On Thu, Dec 23, 2010 at 6:41 AM, Jason Meckley <
> jasonmeck...@gmail.com
> > > >wrote:
> >
> > > > > I would go with properties instead of ctor args and take advantage
> of
> > > > > 3.0s instantiators. This way you don't need builder objects.
> >
> > > > > Register(new InLineJoinOperation
> > > > >   {
> > > > >      JoinType = JoinType.Inner
> > > > >      LeftOperation = ThisOp(),
> > > > >      LeftColumnsToJoinOn = new[]{"column1"},
> > > > >      RightOperation = ThisOp(),
> > > > >      RightColumnsToJoinOn = new[]{"column1"},
> > > > >      Action = (left, right) => {left}
> > > > >   });
> >
> > > > > On Dec 22, 3:29 pm, Gauthier Segay <gauthier.se...@gmail.com>
> wrote:
> > > > > > Hi,
> >
> > > > > > I started to use Rhino ETL framework and found useful to be able
> to
> > > > > > define operations inline in my processes, what I mean is that I
> don't
> > > > > > have to define a class for each typical operation (like join,
> > > > > > aggregation, filtering, inline sql output, etc.).
> >
> > > > > > I intend to add those inline operation to the framework itself
> > > because
> > > > > > I think it would be useful to other people as well, I started
> with
> > > > > > InlineJoinOperation that you can look at here:
> >
> > >https://github.com/smoothdeveloper/rhino-etl/blob/master/Rhino.Etl.Co.
> ..
> >
> > > > > > so to do a plain join operation I can now register something like
> > > > > > this:
> >
> > > > > > var ensureMergerReturnsNewRow = true;
> > > > > > new InlineJoinOperation(
> > > > > >         columnsToJoinOn,
> > > > > >         columnsToJoinOn,
> > > > > >         JoinType.Inner,
> > > > > >         (left, row) => { // return join result; },
> > > > > >         leftoperation,
> > > > > >         rightoperation,
> > > > > >         ensureMergerReturnsNewRow
> > > > > > );
> >
> > > > > > instead of having to define a specific class
> >
> > > > > > Anybody think it's a good thing to have those baked in the
> framework?
> > > > > > Do you have any feedback on what is shown in this first class?
> >
> > > > > > The icing on the cake for this would be to have fluent operation
> > > > > > builder to encapsulate the bulky constructors, for this I'm
> looking
> > > > > > for syntax ideas.
> >
> > > > > > Thanks for your feedback
> >
> > > > > --
> > > > > You received this message because you are subscribed to the Google
> > > Groups
> > > > > "Rhino Tools Dev" group.
> > > > > To post to this group, send email to
> rhino-tools-...@googlegroups.com.
> > > > > To unsubscribe from this group, send email to
> > > > > rhino-tools-dev+unsubscr...@googlegroups.com<rhino-tools-dev%2bunsubscr...@googlegroups.com>
> <rhino-tools-dev%2Bunsubscribe@ googlegroups.com>
> > > <rhino-tools-dev%2Bunsubscribe@ googlegroups.com>
> > > > > .
> > > > > For more options, visit this group at
> > > > >http://groups.google.com/group/rhino-tools-dev?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Rhino Tools Dev" group.
> To post to this group, send email to rhino-tools-...@googlegroups.com.
> To unsubscribe from this group, send email to
> rhino-tools-dev+unsubscr...@googlegroups.com<rhino-tools-dev%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/rhino-tools-dev?hl=en.
>
>

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

Reply via email to