Yep, one more VS 2008 post - an overview link..
-
For those checking into VS 2008, Scott Guthrie has a new blog post of a good overview of 2008 and a warning for those developing Silverlight 1.1 to wait a couple of weeks before upgrading: http://weblogs.asp.net/scottgu/archive/2007/11/19/visual-studio-2008-and-net-3-5-released.aspx[^]
Rocky <>< Blog Post: LINQ Scores a Yahtzee! Tech Blog Post: Cheap Biofuels and Synthetics coming soon?
-
For those checking into VS 2008, Scott Guthrie has a new blog post of a good overview of 2008 and a warning for those developing Silverlight 1.1 to wait a couple of weeks before upgrading: http://weblogs.asp.net/scottgu/archive/2007/11/19/visual-studio-2008-and-net-3-5-released.aspx[^]
Rocky <>< Blog Post: LINQ Scores a Yahtzee! Tech Blog Post: Cheap Biofuels and Synthetics coming soon?
Thank you for that, I'm surprised there is so much in .net 3.5 that was apparently never discussed here. After reading through some of those changes like automatic properties, extension methods, anonymous types etc I'm starting to see that .net 3.5 is a pretty major change for people used to .net 2. There are a *lot* of implications in there for a business software developer such as myself. There's way more to .net 3.5 than LINQ.
More people died from worry than ever bled to death. - RAH
-
Thank you for that, I'm surprised there is so much in .net 3.5 that was apparently never discussed here. After reading through some of those changes like automatic properties, extension methods, anonymous types etc I'm starting to see that .net 3.5 is a pretty major change for people used to .net 2. There are a *lot* of implications in there for a business software developer such as myself. There's way more to .net 3.5 than LINQ.
More people died from worry than ever bled to death. - RAH
John Cardinal wrote:
There's way more to .net 3.5 than LINQ.
Yes. What surprises me is that there is no good explanation of extension methods yet. Everyone talks about "extending sealed types" etc, but extension methods cannot do anything that static methods in a helper class cannot do (which means: extension methods cannot break encapsulation). The underlying problem that extension methods solve is not that we need to add methods to classes, but that we need to introduce custom "operators", and in complex expressions, infix notation
a+b
is much easier to read than prefix notation+(a,b)
. The major difference between extension methods and normal, static helper methods is that static methods calls are prefix notation, whereas extension methods calls are in infix notation. This leads to more readable code when the result of one operation is used for another operation. With static methods:HelperClass.Operation2(HelperClass.Operation1(x, arg1), arg2)
With extension methods:x.Operation1(arg1).Operation2(arg2)
It's not easier to read because we don't need to write 'HelperClass' all over; the main improvement is that Operation1 and Operation2 appear in source code in the order in which they are executed, and that one can see which operation uses which arguments without counting parentheses. -
Thank you for that, I'm surprised there is so much in .net 3.5 that was apparently never discussed here. After reading through some of those changes like automatic properties, extension methods, anonymous types etc I'm starting to see that .net 3.5 is a pretty major change for people used to .net 2. There are a *lot* of implications in there for a business software developer such as myself. There's way more to .net 3.5 than LINQ.
More people died from worry than ever bled to death. - RAH
John Cardinal wrote:
automatic properties, extension methods, anonymous types
Well these have been at least mentioned. (BTW extension methods is what makes LINQ possible.) What have not been discussed are: 1. The new encryption classes 2. TimeZoneInfo class which I missed forever 3. Anonymous and Named pipes support (Can't believe it took 3 versions for something which should have been in version 1.0) 4. Web Get/Post model in WCF 5. HashSet class 6. Prf counters 7. ETW 8. A better ReaderWriterLock
Co-Author ASP.NET AJAX in Action CP Quote of the Day: It is the same Friday that blooms as a new enriching day with novelty and innovation for us every week. - Vasudevan Deepak Kumar
-
John Cardinal wrote:
automatic properties, extension methods, anonymous types
Well these have been at least mentioned. (BTW extension methods is what makes LINQ possible.) What have not been discussed are: 1. The new encryption classes 2. TimeZoneInfo class which I missed forever 3. Anonymous and Named pipes support (Can't believe it took 3 versions for something which should have been in version 1.0) 4. Web Get/Post model in WCF 5. HashSet class 6. Prf counters 7. ETW 8. A better ReaderWriterLock
Co-Author ASP.NET AJAX in Action CP Quote of the Day: It is the same Friday that blooms as a new enriching day with novelty and innovation for us every week. - Vasudevan Deepak Kumar
Rama, I hate to nitpick, but LINQ is possible without extension methods. It would be ugly (e.g.
LinqExtensions.Where(data, predicate)
), but it would be possible.Tech, life, family, faith: Give me a visit. I'm currently blogging about: The Lord Is So Good The apostle Paul, modernly speaking: Epistles of Paul Judah Himango
-
Thank you for that, I'm surprised there is so much in .net 3.5 that was apparently never discussed here. After reading through some of those changes like automatic properties, extension methods, anonymous types etc I'm starting to see that .net 3.5 is a pretty major change for people used to .net 2. There are a *lot* of implications in there for a business software developer such as myself. There's way more to .net 3.5 than LINQ.
More people died from worry than ever bled to death. - RAH
Like LINQ, I cannot see writing code anymore without automatic properties and Object Initializers, which are big time savers in typing... Those are all just part of day-to-day coding for me now, such as using a "for" loop. With all they have crammed into 3.5, I am really curious what will end up in 4.0 :)
Rocky <>< Blog Post: LINQ Scores a Yahtzee! Tech Blog Post: Cheap Biofuels and Synthetics coming soon?
-
John Cardinal wrote:
There's way more to .net 3.5 than LINQ.
Yes. What surprises me is that there is no good explanation of extension methods yet. Everyone talks about "extending sealed types" etc, but extension methods cannot do anything that static methods in a helper class cannot do (which means: extension methods cannot break encapsulation). The underlying problem that extension methods solve is not that we need to add methods to classes, but that we need to introduce custom "operators", and in complex expressions, infix notation
a+b
is much easier to read than prefix notation+(a,b)
. The major difference between extension methods and normal, static helper methods is that static methods calls are prefix notation, whereas extension methods calls are in infix notation. This leads to more readable code when the result of one operation is used for another operation. With static methods:HelperClass.Operation2(HelperClass.Operation1(x, arg1), arg2)
With extension methods:x.Operation1(arg1).Operation2(arg2)
It's not easier to read because we don't need to write 'HelperClass' all over; the main improvement is that Operation1 and Operation2 appear in source code in the order in which they are executed, and that one can see which operation uses which arguments without counting parentheses.Technically yes you could do that and we all do I'm sure with static helper methods. It does seem cleaner in a way to use an extension method but as I was reading it I was thinking about the case where you're coming in cold to look at some source code someone else wrote and you see something like this: string s=arg1; if(s.ValidURL()) { //blah blah; } Which can be all kinds of confusing versus: string s=arg1; if(UrlChecker.ValidURL(s)) { // blah blah; } Or what happens if you add an extension method to object and it conflicts with something you've written in a class derived from object?
More people died from worry than ever bled to death. - RAH
-
Like LINQ, I cannot see writing code anymore without automatic properties and Object Initializers, which are big time savers in typing... Those are all just part of day-to-day coding for me now, such as using a "for" loop. With all they have crammed into 3.5, I am really curious what will end up in 4.0 :)
Rocky <>< Blog Post: LINQ Scores a Yahtzee! Tech Blog Post: Cheap Biofuels and Synthetics coming soon?
Rocky Moore wrote:
such as using a "for" loop.
Funny that, I find myself rarely ever using a for loop anymore and using foreach instead with almost the only exception being cases where I need to modify the collection being iterated inside the loop.
More people died from worry than ever bled to death. - RAH
-
Rama, I hate to nitpick, but LINQ is possible without extension methods. It would be ugly (e.g.
LinqExtensions.Where(data, predicate)
), but it would be possible.Tech, life, family, faith: Give me a visit. I'm currently blogging about: The Lord Is So Good The apostle Paul, modernly speaking: Epistles of Paul Judah Himango
Judah Himango wrote:
It would be ugly (e.g. LinqExtensions.Where(data, predicate)),
That's nitpicky:)
Co-Author ASP.NET AJAX in Action CP Quote of the Day: It is the same Friday that blooms as a new enriching day with novelty and innovation for us every week. - Vasudevan Deepak Kumar
-
Judah Himango wrote:
It would be ugly (e.g. LinqExtensions.Where(data, predicate)),
That's nitpicky:)
Co-Author ASP.NET AJAX in Action CP Quote of the Day: It is the same Friday that blooms as a new enriching day with novelty and innovation for us every week. - Vasudevan Deepak Kumar
Yep, but it's true. :)
Tech, life, family, faith: Give me a visit. I'm currently blogging about: The Lord Is So Good The apostle Paul, modernly speaking: Epistles of Paul Judah Himango
-
Rocky Moore wrote:
such as using a "for" loop.
Funny that, I find myself rarely ever using a for loop anymore and using foreach instead with almost the only exception being cases where I need to modify the collection being iterated inside the loop.
More people died from worry than ever bled to death. - RAH
John Cardinal wrote:
for loop anymore and using foreach instead
Yeah, I was going to say "foreach" but did not want to sound too VBish ;)
Rocky <>< Blog Post: LINQ Scores a Yahtzee! Tech Blog Post: Cheap Biofuels and Synthetics coming soon?
-
Yep, but it's true. :)
Tech, life, family, faith: Give me a visit. I'm currently blogging about: The Lord Is So Good The apostle Paul, modernly speaking: Epistles of Paul Judah Himango
Yes the other day I accidentally launched VS 2005 instead of VS 2008. I added System.Xml manually and spent about 5 minutes to understand why extension methods where not working. :)
Co-Author ASP.NET AJAX in Action CP Quote of the Day: It is the same Friday that blooms as a new enriching day with novelty and innovation for us every week. - Vasudevan Deepak Kumar
-
For those checking into VS 2008, Scott Guthrie has a new blog post of a good overview of 2008 and a warning for those developing Silverlight 1.1 to wait a couple of weeks before upgrading: http://weblogs.asp.net/scottgu/archive/2007/11/19/visual-studio-2008-and-net-3-5-released.aspx[^]
Rocky <>< Blog Post: LINQ Scores a Yahtzee! Tech Blog Post: Cheap Biofuels and Synthetics coming soon?
I can't wait to start developing applications with plug-in functionality. They all them "addins" in the class library. I believe there are a couple of namespaces and numerous classes (I found a lot using a .NET reflector) devoted to it. It also appears that two of the assemblies are executables with a .exe extention. The one of them had a "32" appended to the name, so I assume there is a different assembly for 32-bit and 64-bit systems. How does it work? I'll find out when I get my hands on a copy of Visual Studio 2008 (not that I need to use it).
ROFLOLMFAO
-
Thank you for that, I'm surprised there is so much in .net 3.5 that was apparently never discussed here. After reading through some of those changes like automatic properties, extension methods, anonymous types etc I'm starting to see that .net 3.5 is a pretty major change for people used to .net 2. There are a *lot* of implications in there for a business software developer such as myself. There's way more to .net 3.5 than LINQ.
More people died from worry than ever bled to death. - RAH
John Cardinal wrote:
automatic properties, extension methods, anonymous types
Those are in .NET 3.0, right??
Thanks and Regards, Michael Sync ( Blog: http://michaelsync.net) "Please vote to let me (and others) know if this answer helped you or not. A 5 vote tells people that your question has been answered successfully and that I've pitched it at just the right level. Thanks."
-
John Cardinal wrote:
automatic properties, extension methods, anonymous types
Those are in .NET 3.0, right??
Thanks and Regards, Michael Sync ( Blog: http://michaelsync.net) "Please vote to let me (and others) know if this answer helped you or not. A 5 vote tells people that your question has been answered successfully and that I've pitched it at just the right level. Thanks."
-
No idea, I'm working only in .net 2 right now.
More people died from worry than ever bled to death. - RAH
me too.. :) Microsoft is the only one who wanna move one version after another.. The most of software companies are still enjoying with .NET 1.1 or 2.0.
Thanks and Regards, Michael Sync ( Blog: http://michaelsync.net) "Please vote to let me (and others) know if this answer helped you or not. A 5 vote tells people that your question has been answered successfully and that I've pitched it at just the right level. Thanks."
-
John Cardinal wrote:
automatic properties, extension methods, anonymous types
Those are in .NET 3.0, right??
Thanks and Regards, Michael Sync ( Blog: http://michaelsync.net) "Please vote to let me (and others) know if this answer helped you or not. A 5 vote tells people that your question has been answered successfully and that I've pitched it at just the right level. Thanks."
Michael Sync wrote:
Those are in .NET 3.0, right??
No, .NET 3 is just .NET 2 + WPF. .NET 3 is the new one being released right now, which includes a new .NET framework, new C# features (e.g. C# LINQ syntax, automatic properties, anonymous types, lambda expressions, ...), and new Visual Basic syntax for similar things, plus special VB syntax for dealing with XML. Note that .NET 3.5 does *not* require a new CLR. Everything in .NET 3.5, and indeed in .NET 3, are either new libraries added to the .NET framework and new language syntax candy. The CLR hasn't changed since 2.0 with generics. That means one can theoretically use these new features of C# 3.5 and still run on .NET 2.0.
Tech, life, family, faith: Give me a visit. I'm currently blogging about: No, Not I - A poem by Holocaust escapee, chief rabbi, and Messiah-follower Daniel Zion (audio) The apostle Paul, modernly speaking: Epistles of Paul Judah Himango
-
Michael Sync wrote:
Those are in .NET 3.0, right??
No, .NET 3 is just .NET 2 + WPF. .NET 3 is the new one being released right now, which includes a new .NET framework, new C# features (e.g. C# LINQ syntax, automatic properties, anonymous types, lambda expressions, ...), and new Visual Basic syntax for similar things, plus special VB syntax for dealing with XML. Note that .NET 3.5 does *not* require a new CLR. Everything in .NET 3.5, and indeed in .NET 3, are either new libraries added to the .NET framework and new language syntax candy. The CLR hasn't changed since 2.0 with generics. That means one can theoretically use these new features of C# 3.5 and still run on .NET 2.0.
Tech, life, family, faith: Give me a visit. I'm currently blogging about: No, Not I - A poem by Holocaust escapee, chief rabbi, and Messiah-follower Daniel Zion (audio) The apostle Paul, modernly speaking: Epistles of Paul Judah Himango
Judah Himango wrote:
C# LINQ syntax, automatic properties, anonymous types, lambda expressions
I saw those things in C# 3.0 specification.. So, C# 3.0 is for .NET 3.5? I'm very confused with those versions.. Can you please clarify this? .NET 1.1 = C# 1.0 , VB.NET 8.0 .NET 2.0 = C# 2.0 , VB.NET 9.0 .NET 3.0 = C# 3.0 ?, ?? .NET 3.5 = C# 3.0 ?, ??
Thanks and Regards, Michael Sync ( Blog: http://michaelsync.net) "Please vote to let me (and others) know if this answer helped you or not. A 5 vote tells people that your question has been answered successfully and that I've pitched it at just the right level. Thanks."
-
Rocky Moore wrote:
such as using a "for" loop.
Funny that, I find myself rarely ever using a for loop anymore and using foreach instead with almost the only exception being cases where I need to modify the collection being iterated inside the loop.
More people died from worry than ever bled to death. - RAH
I found myself almost being reacquainted with for in a recent project. I did a lot of work with correspondences between collections, for it was either foreach and an extra index variable, or a for loop and just use one index variable. Yes, I know lots of people would tell me that 'smells funny', and it is a prime target for refactoring, but it was more important to have it working than smelling like roses.
My head asplode!
Calling all South African developers! Your participation in this local dev community will be mutually beneficial, to you and us.
-
John Cardinal wrote:
automatic properties, extension methods, anonymous types
Those are in .NET 3.0, right??
Thanks and Regards, Michael Sync ( Blog: http://michaelsync.net) "Please vote to let me (and others) know if this answer helped you or not. A 5 vote tells people that your question has been answered successfully and that I've pitched it at just the right level. Thanks."
Michael Sync wrote:
[R
No, they are in .NET 3.5, but C# 3.0.
My head asplode!
Calling all South African developers! Your participation in this local dev community will be mutually beneficial, to you and us.