Oren Eini

CEO of RavenDB

a NoSQL Open Source Document Database

Get in touch with me:

oren@ravendb.net +972 52-548-6969

Posts: 7,582
|
Comments: 51,212
Privacy Policy · Terms
filter by tags archive
time to read 2 min | 224 words

I got one question about this. How am I supposed to do this?

No, using a data adapter is not an option, I want to create my own commands and batch them. Searching gave no answer, and Reflecting over the relevant classes bring me to a whole mess of internal classes and methods in System.Data.

Any ideas?

I would really like it to be DB agnostic (or be able to query if I can batch or not), but even something for SQL Server only will be helpful.

It looks like this is not supported :-(.

We dont have batching at command level for .Net Framework version 2.0. Batching is only supported at the Adapter level. Meaning all the update, insert and delete commands on the adapter are the only ones that get batched. Hope this helps.

This is extremely annoying. Why does Microsoft insist of interalizing everything? Here is a perfectly good functionality that I can't access, reducing me to the bad way of concating queries if I need to do it.

Yuck!

time to read 1 min | 168 words

I have to agree with Frans in this matter, Microsoft Product Feedback sucks. I reported several crashing bugs there (compiler, IDE), among other things. I never even got "we are checking" message.

In th same vein, and from the same source, Frans also talks about the due date for .Net 2.0 SP1. Apperantly it has been set to Orcas' release. I'm not overly concerned about this, since I have far more problems with VS than the framework itself. The due date for this SP is Q3 of this year, which has already started, and beyond a single page, no one seems to be talking about.

Hotfixes by request, after phoning PSS, is not a way to distribue patches. The Windows team is capable of putting patches out, why can't the VS team do the same? We are all developers, we understand about unexpected consequences. What I don't understand is why Microsoft is hoarding the patches this way.

time to read 2 min | 261 words

Just a few words about this issue. As you can probably guess, I'm not an advocate of this approach. The problem I see with this is that the code exists, it is just not code as you normally think about it. But it is there, and it will have bugs, and you will need to fix it. I'm suspicious of the whole deal because it is a leaky abstraction at best, and highly rigid most of the time. It also tend to break down when things gets complex.

The WinForms designer and ASP.Net 's markup are two cases of very well done designer that are very leak-proof, and they still break down when you are doing complex stuff. In WinForms it is easier to handle, since dropping to code is natural if you know what you are doing. In ASP.Net it is more complex, because of the page lifecycle issues, but very possible.

The problem starts when the designer is the only way in. Take SSIS for example. It is pretty easy to grok when you have a few steps. I have a project that has ~100 items in a single package, many of them include more items in them. There are arrows all over the screen, and I usually can't really understand the flow without a lot of effort.

I see a big push toward "no code" approach, and this is fine and dandy for demos. But I don't write demo software for a living.

time to read 2 min | 205 words

I've reviewed a lot of resumes lately, and there have been some that actually made me cringe.

When applying to a developer, this guy listed email as a core competency. And no, he did not mean that he can chat about the relative merits of POP/SMTP vs. IMAP over coffee.
I understand the need to put everything in the resume to inflate it, but some things should be implict.

Another gem was a guy listing several years of experiance in Java, working in ADO.Net against SQL Server. Hm... possible, if he was using J#. Chances that he was... ? Nil to none, I would say.
On the other hand, the resume was full of all the buzzward of yesterday.

There were a few that cought my eyes, because they actually listed projects that they did, and some included details. Knowing that they actually did something with their skills is much more important to me than a checklist of stuff in a resume.

Then again, maybe I shouldn't speak. I am not hirable by my resume.

time to read 2 min | 392 words

David Hayden has posted about the Active Record pattern, and in particular, about using Castle.ActiveRecord. In the examples, he has a class with this structure:

public class Post
{
  public int PostId;
  public int BlogId;
  public int CategoryId;
}

I think that he did it so he would have an easy time explaining it, but I feel compelled to respond to this, because this is an anti pattern that I see a lot of OR/M new comers do. You shouldn'y work with explicit Ids when you are using you objects. A Post object shouldn't know what to do with an integer called BlogId. That is the responsability of the OR/M implementation. You shouldn't bring the database structure into your domain model.

Here is how the class should look like:

public class Post
{
  public int PostId;
  public Blog Blog;
  public Category Category;
}

Working with explicit Ids means that the OR/M can do a lot less for you, since it doesn't have enough information. For instance, it cannot eagerly load the Blog object, since it doesn't know about it. All it know is that you wanted to load an integer, and that is all.

time to read 1 min | 178 words

Well, this time it was an interesting release. Well, interesting to me at least :-)

The issue was nested orderring and expectations that can be called over a range of values (in this case AtLeastOnce() ). Rhino Mocks didn't handle this case correctly, and this require some minor changes to the way calls are routed internally.

The interesting part was that solving this edge case opened up another, unexpected method call on orderring boundary, which was a bit harder to solve. Anyway, it is fixed, and you can check the new tests here.

One thing to note before I send you to the usual place for source & binaries. The With.Mocks syntax is in this release, but I'm not completely sure of it. I would like to get some info about it, so you can get it now without having to compile the source. Take it, abuse it a bit, and tell me if you like it.

Good night.

Blog numbers...

time to read 1 min | 81 words

I occasionally look at my Blog logs, and today and yesterday there was about 3,500 visitors, and about 5,500 rss reads. This is a significant jump, and I'm not sure that I can explain it. I was linked from TheServerSide and from ScottGu's blog, both of which are major contributors, but it is not just that.

I wonder if it will keep. To all the new visitors, welcome, and do feel like home :-)

FUTURE POSTS

  1. fsync()-ing a directory on Linux (and not Windows) - one day from now

There are posts all the way to Jun 09, 2025

RECENT SERIES

  1. Webinar (7):
    05 Jun 2025 - Think inside the database
  2. Recording (16):
    29 May 2025 - RavenDB's Upcoming Optimizations Deep Dive
  3. RavenDB News (2):
    02 May 2025 - May 2025
  4. Production Postmortem (52):
    07 Apr 2025 - The race condition in the interlock
  5. RavenDB (13):
    02 Apr 2025 - .NET Aspire integration
View all series

Syndication

Main feed Feed Stats
Comments feed   Comments Feed Stats
}