views:

107

answers:

3

Question:

What are some good libraries that've been written in VB.NET? The best would be open source, as that would allow interested developers to take a look at some good VB.NET code and see how the language can be used effectively. But I'd be interested to know about any libraries at all, particularly reputable ones.

Long-winded explanation of where I'm coming from:

Generally speaking, when VB.NET and C# are compared, there is a lot of strong support for C#, accompanied by some bashing of VB.NET until a respected developer comes along and acts as The Voice Of Reason, pointing out that while VB prior to VB.NET had its fair share of issues, VB.NET is really a very strong, fully OOP language that is, feature-wise, right about on par with C# (with the exception of certain things like a full-bodied lamba syntax [pre-VB10] or the yield keyword, as many C# faithfuls are quick to point out).

I myself, having written plenty of code in both VB.NET and C#, fall squarely in the "I prefer C#, but don't consider VB.NET any less of a language" camp. However, one thing I have noticed is that when it comes to respected and/or widely-used libraries for .NET, everyting is written in C#. Or at least that's been my impression. This strikes me as a little strange because, aside from the abovementioned sprinkling of nice features (in particular the yield keyword), I tend to view the VB.NET/C# divide as primarily a matter of personal taste. Obviously, plenty of developers prefer C#. But I personally know some developers (good ones) who prefer VB.NET, which would lead me to suspect that surely some libraries (good ones) would be written in VB.NET.

I'm thinking they must be out there, and I just haven't found them.

+2  A: 

Generally speaking, my opinion is that the languages are really the same. It's the convenience of the syntax. Personally, I like that you can have multiple things happening within the same line. Once I switched to using C, Java, JavaScript, Perl, and the curly bracketed languages, I found it easier to understand simply because you could see much more in fewer characters.

As far as good frameworks written in VB.NET, check out anything written for (and including) Dot Net Nuke.

Dr. Zim
This (Dot Net Nuke) is honestly the only good example I've been able to find thus far... that said, it's a good example!
Dan Tao
+3  A: 

I write VB.NET and C# interchangeably (about 50/50) in the apps I manage, and I've always had a slight preference for VB.NET (I've been programming in BASIC-lineage languages for 25 years, since I was 9, but only about 15 years in C-based languages).

That said, I find C# is a better language for libraries.

This has nothing to do with VB.NET's limitations and everything to do with C#'s.

I want my libraries to be easy to call from both VB.NET and C# code. When I write in C#, I tend pay attention to things that matter when calling the code from C#. Two examples of this are C#'s case sensitivity and its lack of optional parameters. But when I write library code in VB.NET, I'm not as tuned-in on issues that could make my API less friendly to C# callers.

richardtallent
For the record I lean towards writing library/back-end in C# and front-end in VB.NET. That said, C#'s optional parameter support in .NET 4 lessens the argument you gave. Also, wouldn't case sensitivity be an argument in favour of writing in VB? That is, you could easily have two functions ExampleFunc() and exampleFunc() written in a C# library where VB.NET couldn't distinguish between the two. By writing the library in VB.NET and calling from C# you wouldn't have that problem. Please correct me if I've misunderstood what you mean there.
FerretallicA
+1  A: 

Another good point is that most of the Design Patterns, TDD, DDD, Agile, etc. use Java as examples, which is very much like C#. It's like trying to translate British to English rather than Spanish to English.

Dr. Zim