Ayende @ Rahien

Unnatural acts on source code

What should I work on next?

As we near completion with EF Prof, I am starting to think about what the next project* would be. I got some ideas, but I would like to see what you think.

Note that I won’t necessarily follow this, but it would be a good indication about where to proceed.

A small explanation about the choices:

  • Entity Framework Caching Layer is an idea about adding 2nd level caching (similar to the way NHibernate is doing this) to EF, giving you transparent caching integrated into Entity Framework.
  • Production Profiling means that you’ll be able to connect to a production application with the profiler and see what statements it is executing, without paying any performance price when you are not connected.
  • LLBLGen Prof – as the name says, adding a new profiler profile that would support LLBLGen
  • DAL Prof – this is interesting, instead of supporting a specific product, this is meant for users who have a custom DAL, but still want to get the profiler benefits.

And anything else that you might want to suggest.

* Please note that all options discussed here are commercial ones.

Comments

Eddie Cianci
12/10/2009 04:57 PM by
Eddie Cianci

Come on people, you know you want "Production Profiling"! Any insight into things going wrong (when we think they shouldn't) is pretty valuable.

Question for Oren, would you have to support all other ORMs before this feature could be released? Or would you release the NHibernate implementation as it's completed? (Since you've been doing "continuous releases", I'm hoping it's the latter.)

(thanks for the call for feedback!)

Dmitry
12/10/2009 04:57 PM by
Dmitry

What about the Linq-to-SQL profiler progress? Do you have an idea when it is going to support logging commands that run off the DataContext connection?

DAL prof sounds really interesting.

Judah Himango
12/10/2009 05:14 PM by
Judah Himango

DB4O profiler! Please - the tooling in this space is greatly lacking. We could really use a profiler for DB4O.

Nick Berardi
12/10/2009 05:49 PM by
Nick Berardi

Definitely production support. I don't mind deploying your DLL with my code pushes, however I just want it to side idle with no overhead until the profiler connects.

Paul
12/10/2009 05:49 PM by
Paul

Production Profiling! That would be exceptional.

Bryan
12/10/2009 05:53 PM by
Bryan

Production Profiling.

BjartN
12/10/2009 06:41 PM by
BjartN

From a business perspective implementing caching for Entity framework might be not be a good idea, since chances are that the EF team would implement this themselves. (I'm just guessing here)

I think product profiling would be a good choice. Building a killer feature into your own product cannot be a bad idea.

Jarf
12/10/2009 06:57 PM by
Jarf

DataObjects.Net profiler

cb
12/10/2009 07:19 PM by
cb

+1 for production profiling. From 4 beta users

Ayende Rahien
12/10/2009 07:27 PM by
Ayende Rahien

Eddie,

The actual problem is not support for hooking into each profiler (well, that isn't true, with NH it is slightly easier), but how to deal with it in the first place.

There are several concerns that I just ignored in the past that are important for production: stability, security, memory usage, etc.

Ayende Rahien
12/10/2009 07:27 PM by
Ayende Rahien

Dmitry,

L2S Prof should, OOTB, support logging commands using the DataContext.Connection directly.

Ayende Rahien
12/10/2009 07:28 PM by
Ayende Rahien

Judah,

I think we already talked about that, no?

The problem is what does it means to have DB4O profiler.

Ayende Rahien
12/10/2009 07:30 PM by
Ayende Rahien

BjartN,

EF 4.0 features are pretty much baked in.

At a minimum, there is a 1.5 years gap that is an opportunity for a caching layer.

I don't intend to bet the farm on that, but a year of sales for something like that is still pretty nice.

Ayende Rahien
12/10/2009 07:31 PM by
Ayende Rahien

Jarf,

I don't think that this is likely.

ivos
12/10/2009 09:07 PM by
ivos

I like the Caching Layer for Entity Framework. Besides the easy answer, my question is: why don't do it open source?

Janus Knudsen
12/10/2009 09:18 PM by
Janus Knudsen

A nice ETL tool instead of SSIS :)

Michael
12/10/2009 09:30 PM by
Michael

Production Profiling

Ayende Rahien
12/10/2009 10:17 PM by
Ayende Rahien

ivos,

Because I find myself desirous of compensation for EF work

Jonathan Vukovich
12/10/2009 11:08 PM by
Jonathan Vukovich

Janus: Check out Ayende's Rhino ETL tool. The guys here at work have been using for a huge data migration task and say it's great.

gunteman
12/11/2009 01:09 AM by
gunteman

EF Caching: Indeed. But only having any cool factor if done as an open source project. Other than that, EF is still largely irrelevant.

Production profiling:Absolutely.

LLBLGen Prof: Haven't used it much, but Ayende+Frans is always an interesting combination, and the inevitable discussions could result in real community benefit.

DAL Prof: A bit abstract

Other: No. Please don't go there.

HereBeDragon
12/11/2009 04:43 AM by
HereBeDragon

Rhino Security. Somehow there aren't many people using it yet. The question is: why? Maybe you could look into that.

Rafal
12/11/2009 06:30 AM by
Rafal

+1 production profiling

What if there was an option to write a NH Prof adapter that would allow an application that is using custom ORM/DAL to be profiled with NHProf? Would it be very difficult?

Donny
12/11/2009 07:08 AM by
Donny

Production Profiling.

And the "Sorry, but this comment is a duplicate of another comment. Duplicate comments are not allowed" validation is the only reason why us, the "production profiler sect", did not take control over this post...

Jonas
12/11/2009 08:10 AM by
Jonas

Ayende,

How about taking some time off :) U are a lucky guy, love what u do and being the best!

Keep up the sharing!!!!

/Jonas

Krzysztof Kozmic
12/11/2009 08:29 AM by
Krzysztof Kozmic

@Ayende

Did you find EF interesting, or just go where big enough market is (or presumably soon will be)?

I don't care about EF, and Production profiling seems like the most reasonable choice from where I stand.

Alghouth you'll hopefully still have some time left for OSS work ;)

Dave
12/11/2009 10:01 AM by
Dave

I would like to see a 'DAL' profiler. ORM libraries that provide lazy loading can't be easily used with desktop applications. Either it downloads big chunks of your database or you need to enclose call's to lazy relations with a session. In WPF that's not that easy.

I need lazy loaded entities without the hassle to provide a database context when such related entity is accessed using a binding. So we end up writing our own DAL/ORM. It's very simple and projections are limited. For complex projections we used a iBates like solution. Instead of specifying a table, one can specify a query and map the result to an entity.

Ayende Rahien
12/11/2009 10:26 AM by
Ayende Rahien

Rafal,

That is what DAL Prof is all about.

Ayende Rahien
12/11/2009 10:26 AM by
Ayende Rahien

Jonas,

I did, just recently, no one noticed

Ayende Rahien
12/11/2009 10:27 AM by
Ayende Rahien

Krzystof,

The caching stuff is interesting from pure geeky point of view, but working on EF is because I expect a market there.

Ayende Rahien
12/11/2009 10:28 AM by
Ayende Rahien

Dave,

Hm, I completely disagree with you on the desktop apps & OR/M part, you might want to read my MSDN article about this exact topic

Joe
12/11/2009 11:07 AM by
Joe

As well as Production Profiling, I like the idea of products that support your other Rhino offerings, RhinoSecurity and RhinoETL.

I'm still quite new to NH so the biggest benefit of NHProf for me is the confirmation it gives that NH is set up and being used properly. Having this insight to your other offerings will for me, be a big benefit.

I appreciate the market must be there to make a business work.

Ayende Rahien
12/11/2009 12:19 PM by
Ayende Rahien

Nikola,

I am aware of this, yes.

That is quite an invasive approach, and not something that you would probably want to do.

I have a much less invasive approach designed.

cj
12/11/2009 01:34 PM by
cj

what about macto?

Shane Walters
12/11/2009 02:12 PM by
Shane Walters

+1 for Production Profiling

Simon
12/11/2009 02:28 PM by
Simon

+1 for Macto :-)

Maybe to make it worth your while you could publish it as open-source, but give the information in a Tekpub series so you get some money too.

I'd happily pay $20-30 to see how you develop good software!

Dmitry
12/11/2009 04:37 PM by
Dmitry

Macto as aTekpub series would be a great idea.

User3
12/11/2009 10:59 PM by
User3

What about Lightspeed? It's an interesting OR/M and not some inferior product like L2S or EF. I'd buy it for sure..

wcoenen
12/12/2009 12:24 AM by
wcoenen

It seems that most real IT projects need to be maintained forever. Bugs need to be fixed. Features continue to creep in. More bugs because of the feature creep. Etcetera. And eventually you become walled in by all these old projects that continue to demand attention.

It must be nice to be able to finish a project and get some closure like that. How do you do it?

Ayende Rahien
12/12/2009 10:14 AM by
Ayende Rahien

wcoenen,

A project is never actually over, there are always more things to do. But at some point the number of things to do reduce to a level that means that you can more or less put it on a back burner.

At that point, you have time to do other stuff

Tudor T.
12/14/2009 10:37 AM by
Tudor T.

For me, a LLBLGen profiler would be very usefull.

gvo
12/17/2009 01:09 PM by
gvo

Production profiling!

Thomas Wagner
12/20/2009 03:39 PM by
Thomas Wagner

My vote is for LLBLGen Prof

Comments have been closed on this topic.