grack.com

Welcome to grack.com

Get Firefox

If you're wondering: Why grack?

News

RSS Validate

Is .NET Open-Source Dead?

Looks like NDoc is one of many .NET open-source projects to “bite the big one”, but certainly not the last. I stopped development on NProf a while back because I couldn’t build up any momentum around it. I suppose that it was slightly annoying that I found some of my GPL’d code in Jetbrains’ new profiler. Perhaps they could have contributed something back to NProf at least. ;)

NAnt releases are getting further apart and the mailing list traffic is dwindling. Log4Net seems to be moving so slow I don’t know how they manage to get releases out!

Is there such a fundamental difference between .NET and Java developers that one community can sustain such a great set of open-source projects and one can’t?

The sad thing about the death of open-source projects on the .NET platform is that they end up being replaced by closed-source (or worse – shared-source) projects that you can’t fix bugs in or redistribute without a team of lawyers.

I’m not sure why, but they don’t seem to learn anything from the open-source equivalents that they clone either. Compare NAnt to MSBuild, for instance. MSBuild ends up being a horribly complicated system that doesn’t let you do half the stuff as clean or as elegantly as the equivalent NAnt script.

As the original author of the solution task in NAnt, I can now say that I’m glad that they have to deal with the numerous ideosyncracies in their bizarre world of .NET project building, like reading source files to figure out what the names of embedded resources are.

All I can really say to them is good luck re-implementing all this stuff.

Posted in Open Source, .NET | no comments

VS2005 - worst VS.NET ever?

Sounds like there’s a bit of a negative vibe going around the blogosphere concerning the impending release of a buggy VS.NET 2005. All things considered, this doesn’t surprise me much. VS.NET 2003 shipped with so many bugs that were never fixed. Heck, there wasn’t even a service pack!

I don’t understand why they keep shipping below-par releases of their IDE. I feel as if enterprise developers are left out to dry to better serve Microsoft MVPs doing inane web services demos. None of those MVPs ever demoed a solution with more than 90 projects. I’d wager that noone within Microsoft ever even tried it, considering how badly it works.

My suggestion: don’t ship until you’ve got all the bugs out. It’s such a no-brainer that I can’t believe bloggers need to bring it up.

Posted in .NET, Tech | no comments

Want an open-source project?

I’ve decided that after nearly a year of very little activity, it’s time to start looking for a new maintainer for nprof.

nprof is pretty much the only open-source .NET profiler on the map. It has support for multi-threaded, multi-appdomained applications and even has basic support for profiling ASP.NET.

I am sad that I have to move on from the project before it hit 1.0, but it’s clear that my limited time isn’t going to change any time soon. With someone that has time to contribute to it at the helm, I’m certain the 1.0 release will be spectacular.

Contact me either via email or on the nprof-developer mailing list if you are interested.

Posted in .NET, Open Source | no comments

C# 3.0 hurts the eyes

I’ve been looking briefly at the latest C# 3.0 specification and all I can say is that reading some of those LINQ examples hurt my eyes.

Seriously, who wants to read code that looks like this? What does it do?

public void Linq19() {
    List customers = GetCustomerList();

    var customerOrders =
        customers.SelectMany(
            (cust, custIndex) =>
            cust.Orders.Select(o => "Customer #" + (custIndex + 1) +
                                    " has an order with OrderID " + o.OrderID) );

    ObjectDumper.Write(customerOrders);
}

I have the same problem with C# 3.0 that I have with Perl. It’s easy to forget what some of the unfamiliar operators do.

I’m disappointed that they aren’t making use of the yield operator and anonymous functions for this stuff instead. I would prefer to read code like this instead (note that this is using a pseudo C# 2.0-syntax):

ICollection result = Collection< String >.Create(
  delegate() 
  {
    foreach (c in customers)
      foreach (o in c.orders)
        yield "Customer #" + c.ID + " has an order with OrderID " + o.OrderID; 
  }
);

A bunch of examples like this are available here.

Posted in .NET | no comments

RSS Validate

Note: If you're not sure where you are, you may have come here looking for one of my old addresses.

If you are looking for something in particular, you can search this site via Google:

Google
 
Web www.grack.com