No fewer than five major announcements in the development field are being issued by Microsoft this afternoon, the timing of which is by no means coincidental: On the top of the list, Beta 2 of Visual Studio 2008 – which is quickly losing touch with its old code-name ‘Orcas’ – will be made generally available for download by this Friday, along with Beta 2 of .NET Framework 3.5.
What do you mean by “Beta 2 of Visual Studio 2008 – which is quickly losing touch with its old code-name ‘Orcas'”? Just that they aren’t using the code name anymore?
The article doesn’t contain links to the download pages, so if it saves trouble for anyone:
Visual Studio 2008 Beta 2 & .NET Framework 3.5 Beta 2
http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx
I couldn’t find links for the new versions of Silverlight, but I assume that http://www.microsoft.com/silverlight/downloads.aspx will be updated soon.
I’ve been on that page hitting F5 all day, was starting to think they were going to push it off until tomorrow!
The Silverlight updates are out now, I checked the page.
“The article doesn’t contain links to the download pages, so if it saves trouble for anyone:
Visual Studio 2008 Beta 2 & .NET Framework 3.5 Beta 2
http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx
I couldn’t find links for the new versions of Silverlight, but I assume that http://www.microsoft.com/silverlight/downloads.aspx will be updated soon.”
I believe that one has to be an MSDN subscriber to be able to use the full VS 2008 Beta 2 (at least that’s what I read in posts at Channel 9).
But the VS 2008 Express Beta2 products are free to all, and here is the link for those:
http://msdn2.microsoft.com/en-us/express/future/bb421473.aspx
(Also accessible (and prominently hilighted today) from the main VS Express page: http://msdn.microsoft.com/vstudio/express/ )
Edited 2007-07-27 16:42
“I believe that one has to be an MSDN subscriber to be able to use the full VS 2008 Beta 2 (at least that’s what I read in posts at Channel 9).”
That’s incorrect. If you click on any of the links to the VS 2008 images, you’ll see that anyone with an internet connection can get them. I personally prefer the prebuilt VPC images, but be prepared to devote an entire day to downloading them as they total > 10 gigs, but are a ready built OS + VS 2008 + VSTS 2008.
Does anybody has a link to a “what’s new” for .NET 3.5?
Thanks.
More hype and less fizz.
However, this is a link I found.
http://dotnetwithme.blogspot.com/2007/05/what-new-in-net-35.html
The more interesting stuff is in C# 3.0, rather than the .NET 3.5 libraries.
http://dotnetwithme.blogspot.com/2007/05/what-new-in-csharp-30.html
Implicit types – var i = 10
Extension methods – sort of like javascript prototypes
Anonymous types – so you don’t have to define a new class just to return more than 1 value from a function
Lamda expressions and LINQ
Anonymous types – so you don’t have to define a new class just to return more than 1 value from a function
Lamda expressions and LINQ
Wow. Alas, I’ve been using ActiveRecord for about three years ;-).
You could always use out parameters.
“You could always use out parameters.”
Out parameters are generally advised against as they defeat the whole OO paradigm of ‘singleness of purpose’…in other words, if you find yourself needing out parameters, you probably need 2 separate methods as your method is doing more than one logical piece of work. They are also confusing as hell to use for users of your API.
” if you find yourself needing out parameters, you probably need 2 separate methods as your method is doing more than one logical piece of work.”
With C# 3.0’s anonymous types I agree with you but with before now, one had to use out params for lack of a proper “tuple” concept.
But I just thought of something. I remember from my old Lisp days, Lisp lacked a real “tuple” type so we returned from functions lists of items to represent a tuple of multiple values, and the caller would access the values via car, cadr (or cdr if a dotted-pair was returned), caddr, etc (or Common Lisp’s first, second, third, etc functions)). We did this for cases where it wasn’t worth the effort to define an actual structure with multiple fields (using Common Lisp’s defstruct facility). When I think about it, that’s no different from a C# function returning an array of System.Objects to represent a “tuple” of multiple values and having the caller access the values via a[0], a[1], etc, which could be done with C# 1.0 and 2.0. That’s not nearly as nice as having real tuples via C# 3.0’s anonymous types, obviously. But it’s just funny that when I was doing Lisp, it seemed natural to return lists of multiple values, but returning an array of System.Objects in C# to do the same thing never occurred to me until now. :p Maybe that’s because C# does have out params, so there’s no need to return tuples as object arrays. Or maybe it’s the lack of type-safetry of System.Object arrays that caused me to never think of returning them, whereas in Lisp, we didn’t care much about type-saftey. :p
I wonder if, with C# 3.0’s anonymous types, there’ll be a significant decrease in the use of out params altogether. I’d like to see that, but I think there are so many from a C/C++/Pascal, etc background that out params will continue to be used. Those from a more functional-style background will return anonymous types.
Edited 2007-07-28 03:17
“When I think about it, that’s no different from a C# function returning an array of System.Objects to represent a “tuple” of multiple values and having the caller access the values via a[0], a[1], etc, which could be done with C# 1.0 and 2.0.”
I’m not quite sure I’m following what you’re trying to do here, but it still sounds like it would violate singleness of purpose. Are you attempting to return an object[] which contains different types in the array itself, i.e. object[0] might be an int, and object[1] might be a bool, etc? If so, that would be symptomatic of bad design…generally speaking you almost never want to return an object, much less an array of them due to what you mention above: Lack of strong typing.
Var could be used in place of this, but you do understand that although var types are similar to dynamic typing, it’s still statically typed at compile time to the actual reference to the object you hold, i.e. if you have:
var myVar = “value”; // the compiler will type this as a string
Down the line when you want to use myVar, you’ll see that intellisense will only give you members that belong to the string instance type. Everything is still statically typed under the hood. Regardless of all that, var can only be used for local variables, and thus cannot be returned from a function call:
public var MyRoutine() { … } // generate a compile error (http://www.strangelights.com/blog/archive/2005/10/10/1264.aspx)
You might want to look into some of the generic collection types introduced in .Net 2.0 such as List<T>.
“I wonder if, with C# 3.0’s anonymous types, there’ll be a significant decrease in the use of out params altogether.”
I’ve been programming against .Net for quite a while now, and have maybe used out parameters a dozen times? Don’t forget that non-primitive types are passed by reference in .Net, so parameters can be changed by the routine being called, although this intention should still be made clear in the documentation for the API.
😉
I agree with everything you’re saying, I was just rambling about something that had just occurred to me (using System.Object arrays to return a tuple from a function in C# 2.0 or 1.0 and how it’s not really different from returning a list of differing typed values in Lisp). I’d never actually do it.
BTW, I use List<T> all the time. And I agree that out params aren’t used very often as it is, but I’m wondering if they’ll now virtually disappear with C# 3.0.
Pardon? more hype less fizz? I had a look through the changes and I’d hardly call it hype or fizz, they’re genuine changes – btw, my view is one of Solaris user who has no interest in .NET.
I was just poking fun at Microsoft over ability to hype things that end up not being all that great. It wasn’t really meant to be taking seriously.
I don’t think Microsoft actually hypes up .net that much. I hardly ever hear anything about it, but then again I’m not a .net developer either.
C# and .NET were the one thing that bring me back to programming for Windows for pleasure.
Dude, I was a diehard J2EE webapp developer who thought ASP was kids stuff, and looked down on all those losers who were stuck coding on the platform. Nowadays I am freelance, and all my friends are laughing at me because of how much I rave about ASP.net 2.0. It’s not perfect, but its a good generation or two ahead of anything else out there, and it is a pure joy to code in.
The only thing I missed about my java days was IDEa by Jetbrains, which I still think is the greatest thing ever. Recently I found out about resharper, and was only too eager to hand over the two hundred they ask for to bring all the best stuff over into VS.
Honestly, I think that .net is the single best accomplishment ever to come out of microsoft.
You are right about the asp.net 2.0 stuff. The APIs and workflow are really well done.
And you are even more right about the IDE/Code situation. C# is a great language, but editting it in VS2005 feels like stepping back in time about 6 years. Java development environments are much nicer from a pure coding standpoint.
Oh well, maybe 2008 will be an improvement.
I was shocked at just how primitive editing in VS really is considering how everyone always talks about how it is the best IDE. Once you’ve added Resharper it’s pretty good though.
The initial .net attempt by MS was an obvious copy of Java, but they’ve done a great job of improving it. 2.0 is a very nice coding environment and they’re adding new stuff now at a rate that’s hard to keep up with. Very few people have even started using .net3 and pretty soon 3.5 will be ready which is starting to take C# in a different direction than the traditional C type language.
There were rumors awhile back about MS giving 2k5 customers a free upgrade in order to generate more vista-friendly development on the platform. Anyone know anything about that?
The two big things that float my boat is that MS AJAX (which is phenomenal btw), is no longer an extension, so hopefully it wont require the massive web.xml hacks it currently does. The other one is IIS7 integration, which means that all us losers who do development on Vista Home wont have to manually attach to debug anymore.
The article mentions “five major announcements in the development field”, but didn’t seem to enumerate them. So I don’t know if IronRuby was among them, but Microsoft has just released the first publicly available version of IronRuby. One interesting thing is that they are opening up the development process for IronRuby’s implementation by moving the source tree to RubyForge and accepting outside code contributions. Like IronPython and the DLR, the source code is licesned under the (soon to be OSI-certified?) Ms-PL.
http://weblogs.asp.net/scottgu/archive/2007/07/23/first-look-at-iro…
http://www.iunknown.com/2007/07/a-first-look-at.html
Edited 2007-07-27 16:50