Home > C#, .NET

Some of the new things in C# and .NET 4.0

29. September 2009

Just thought I should share some thoughts and information about some of the new things that I think are a bit interesting. This is in no way a complete list of new things.

Language

 

Optional and named arguments

I feel VB6 coming back to me when I see this and I guess that this is something the VB.NET people already have? Optional arguments simply let’s you omit argument values and named arguments let’s you enter them in any order you’d like.

public int Test(int a, int b = 1, int c = 2, int d = 3) {
return a + b + c + d;
}

public string Hello(string name = "World") {
return "Hello, " + name + "!";
}

public void Main() {
Test(0); //Test(0,1,2,3)

Test(0, c: 5); //Test(0,1,5,3)

Test(d: 5, a: 0); //Test(0,1,2,5)

Hello(); //Hello("World");
}

I think this is something I will use for saving some lines of code where I earlier wrote several method/constructor overloads.

Note that both functions will work not only in methods but also in constructors and indexers.

Variance

Oh dear… Let’s see if I can make this one justice.

Everybody knows that you can write this:

//No problem!
string s = "Hello";
object o = s;

It works because string is a subclass of System.Object and you can always cast to a less derived object.

The following however does not work.

IList<string> strings = new List<string>();
IList<object> objects = strings;
// And if you think of if it kind of makes sense:
objects[0] = 1000.0;
var whatAmI = strings[0]; //Would contain a string representation of 1000.0

The thing is that the above code should be fine if the collection objects where “readonly”, say, IEnumerable<T> but in C# pre 4.0 you wouldn’t have any luck there either. But now!

//Will work in C# 4.0 since IEnumerable is a readonly collection
IEnumerable<string> strings = new List<string>();
IEnumerable<object> objects = strings;

Let’s try and make a “real” example. The following code will not compile in C# 3.0 but in 4.0 it’s party time. The reason is the last line of code. Only with C# 4.0 is it possible to cast apples and bananas to IEnumerable<Fruit>.

public class Fruit { }
public class Apple : Fruit { }
public class Banana : Fruit { }

public class Varicance
{
public static void Main()
{
//Bag of apples
var apples = new List<Apple>() {
new Apple(),
new Apple()
};

//Bag of bananas
var bananas = new List<Banana>() {
new Banana(),
new Banana()
};

//Let's put them together
IList<Fruit> fruitBasket = apples.AsEnumerable<Fruit>()
.Concat(bananas).ToList();
}
}

For a deeper explanation of variance I recommend watching the following video with Anders Hejlsberg. Expert to Expert: Erik Meijer and Anders Hejlsberg - The Future of C#

Dynamic

This is probably one of the biggest news in C# 4.0 and it’s also the one I will write least about. But this is what it is:

C# 4.0 introduces a new static type called dynamic and if you declare an object dynamic the properties and methods of that objects won’t be resolved until runtime. This is useful when communicating with other dynamic languages and COM objects.

Framework

 

Code Contracts

This is a way for you to more easily declare and visualize the contracts that a method must fulfill. Not only is it more easy for you as a developer to understand what the “rules” for a method is the compiler can also pre-check the conditions and find code that will break your contracts.

public object GetObject(string id)
{
Contract.Requires(!string.IsNullOrEmpty(id));
Contract.Ensures(Contract.Result<object>() != null);

return Repository.Get(id);
}

The contract will ensure that the id argument is not null or empty and also that the returned object is not null.

Parallel Extensions

Quite a lot of work has been done to add better multi core support to .NET, better as in easier to use. There is a improved ThreadPool, two new types: Task and Task<T> that you can think of as a lighter, easier to use Thread type and Parallel LINQ(PLINQ).

public void PLINQ()
{
//.AsParallel is all you need...
var data = GetData();
var q = from x in data.AsParallel()
where someFunc1(x)
orderby x.SomePropery
select x;
}

BigInteger

For when you need does reeeally big numbers… In theory the BigInteger has no maximum but eventually you will run out of memory.

//1e+100. One followed by one hundred zeros.
BigInteger googol = BigInteger.Parse("10000000000000000000000000" +
"0000000000000000000000000" +
"0000000000000000000000000" +
"0000000000000000000000000");

//(1e+100)^1000. That's one followed by 100 000 zeros!!
//(That is 27 pages in Word with nothing but zeros....)
BigInteger reallyBig = BigInteger.Pow(googol, 1000);

Better file system enumerations

The GetFiles and GetDirectories methods on System.IO.Directory and DirectoryInfo returns an array of objects. This is not always(when would it be?) ideal. A better solution would be if they returned IEnumerables and that the internally used yield return. And now they do! Or at least the new EnumerateXXXX methods do. This is far more efficient when writing code like this.

public FileInfo FindFile(string filename)
{
var directory = new DirectoryInfo(SOME_PATH);
foreach (var file in directory.EnumerateFiles())
if (file.Name.Equals(filename, StringComparison.InvariantCultureIgnoreCase))
return file;
}

There you go. Is I said, this is only a handful of the new things in C# and .NET 4.0 but it’s some of the coolest ;)

C#, .NET ,

Comments

2/27/2010 8:14:23 AM #
Should I get a Virtual Private Server? Currently I am using shared hosting but they keep disabling my account due to high server load. Im getting about 3,000 unique views a day. What brand should I get?
3/1/2010 5:20:46 AM #
Need a quit smoking program http://stop-smokingprograms.com  Take a look!  Stop smoking and kick the habit.
3/2/2010 2:02:20 AM #
Finally someone that actually knows what they are talking about - thank you!
3/2/2010 6:54:46 AM #
There is more to life than increasing its speed.
3/3/2010 5:07:19 AM #
WoW Mobiles is awesome! I get free mobile service with t-mobile because I refered 3 people to wow. You can too!
3/3/2010 2:57:55 PM #
I like streaming movies online, it is way cheaper than going to the theaters.
3/4/2010 4:50:02 PM #
I like watching movies online, it is way cheaper than going to the theaters.
3/5/2010 6:09:05 AM #
I believe that templates are a nice means to resolve a kind of problem: Doing stuff in real-time when it could be done in compile-time. Why? To have the code lighter and simpler to manage – and it’s rather OK. But this sort of meta-programming lets you write code +- ‘naturally’ and have the overhead cut by the compiler.
3/5/2010 3:01:13 PM #
Is tethering against the Terms of Service of mobile phone providers? Which ones allow it?
3/5/2010 5:51:45 PM #
This is certainly my initial stop by and I really like what I'm seeing. Your weblog is so much fun to look over, quite compelling as well as informative. I'll undoubtedly recommend it to my friends. Nevertheless, I did have some problem with the commenting. It kept giving me an problem whenever I clicked on publish comment. I hope, that can be fixed. Many thanks
ELC
3/6/2010 9:42:12 AM #
I wanted to thank you for this interesting I definitely loved every little bit of it. I have you bookmarked your site to check out the latest stuff you post.
3/7/2010 4:36:53 AM #
Perfect reports & Great a site….
3/8/2010 9:40:08 PM #
Hi. Very nice Blog. Not really what i have searched over Google, but thanks for the information.
3/9/2010 3:59:23 AM #
Do you know which mobile phone services allow tethering?
3/9/2010 5:26:30 AM #
amazing stuff thanx
3/9/2010 1:27:04 PM #
I can see that you are an expert at your field! I am launching a website in the near future, and your information will be very handy for me. Thanks for all your input. With best wishes x
3/9/2010 5:38:44 PM #
This is a great post, but I was wondering how do I suscribe to the RSS feed?
3/10/2010 8:28:08 PM #
I want to subscribe to this blog.
3/12/2010 5:43:05 PM #
That is nice to definitely find a site where the blogger knows what they are talking about.
3/13/2010 4:25:20 AM #
Good morning, I read this blog once, then lost it. Took me forever to come back and find it. I wanted to see what comments you got. Nice blog by the way.
3/14/2010 1:08:19 PM #
In Common I usually do not post on blogs, but I would prefer to express that this area in truth pushed me to complete so! Really excellent put up.
3/14/2010 8:08:47 PM #
Interesting. I was just having a scan around this sort of area &  although penny shares sound "cheap" beginners often think that they are more suited to people with less money. I would highlight that they are just as suitable for people with high net wealth because the truth is we need to look at percentage gains. Also - having someone with little money especially who is new to the markets start on penny shares is probably a bad idea (they cant be expeted to learn to trade on a stock that has such little accurate information out there!).
3/14/2010 10:29:47 PM #
Useful! I was having a read up on this sort of thing and I wanted to point out to anyone who is just getting into this that although penny shares sound "cheap" beginners often think that they are more suited to people with less money. I would highlight that they are just as suitable for people with high net wealth because the truth is we need to look at percentage gains. Also - having someone with little money especially who is new to the markets start on penny shares is probably a bad idea (they cant be expeted to learn to trade on a stock that has such little accurate information out there!).
3/15/2010 2:33:27 AM #
Hi, I read this blog once, then lost it. Took me forever to come back and find it. I wanted to see what comments you got. Great blog by the way.
3/16/2010 1:38:53 PM #
Gud kommer att döma oss alla i slutändan. Ingen kommer att undgå vrede domen. Även du.
3/16/2010 11:05:36 PM #
I'll gear this review to 2 types of people: current Zune owners who are considering an upgrade, and people trying to decide between a Zune and an iPod. (There are other players worth considering out there, like the Sony Walkman X, but I hope this gives you enough info to make an informed decision of the Zune vs players other than the iPod line as well.)
3/17/2010 5:37:07 PM #
Good day, how to subscribe to your RSS Feed? Bless you
3/18/2010 2:31:58 AM #
This truth holds for the buying and selling of medicinal drugs as well. Online pharmacies provide similar functions to those of the local pharmacy.
3/18/2010 12:50:09 PM #
3/18/2010 2:24:15 PM #
Found this site from a search in Bing when looking for sportsbet codes Some great stuff here!
3/18/2010 3:40:53 PM #
3/18/2010 5:38:08 PM #
Superb read, I just passed this onto a fellow worker that was doing a small amount of research on this subject
3/18/2010 9:29:12 PM #
Resources comparable to the one u named here will be very useful to me! ill post a backlink to this website from my web log.
3/19/2010 9:24:01 AM #
Hey I just wanted to get the scoop on what is the difference between blogenenigne and wordpress blogs? Is it easier to use or more efficient? I amseeing a lot of blogs powered by this software popping up lately and wondering if it is better or not? Thanks...
3/19/2010 2:41:30 PM #
Please let me know if you are looking for a writer for your website. You have some really good articles and I think I would be a good asset.
3/19/2010 5:39:42 PM #
I like the blog, but could not find how to subscribe to receive the updates by email. Can you please let me know?
3/19/2010 10:43:41 PM #
Do you care if I quote you on my website if I link back to this page?
3/20/2010 12:54:36 AM #
Averages: head in the oven, feet in the freezer, on average I'm comfortable              
3/20/2010 5:51:18 AM #
Though I would've loved it much more if you added a relevant video or at least pictures to back up the explanation, I still thought that your write-up quite helpful. It's usually hard to make a complicated matter seem very easy. I enjoy your weblog and will sign up to your feed so I will not miss anything. Fantastic content
3/20/2010 9:33:17 AM #
Great Post, I love to read articles that are informative and acutally have good content. Thank you for sharing your knowledge and I look forward to seeing more.
3/20/2010 1:17:54 PM #
I like the blog, but could not find how to subscribe to receive the updates by email.
3/22/2010 2:48:18 AM #
Hi, Will you be posting a follow up piece? The partner and me have put in some time looking over your site and interestingly you touched on one thing i was referring to only the other day with our accountant. We often find ourselves arguing with the littlest of details, isn't it ridiculous? Nonetheless we wish everyone best wishes from Spain.
3/22/2010 5:25:02 AM #
Carry up the excellent perform.
3/22/2010 8:08:10 AM #
This is a good piece of content, I was wondering if I could use this write-up on my website, I will link it back to your website though. If this is a problem please let me know and I will take it down right away. % BLOGTITLE %
3/22/2010 8:12:40 AM #
I've stopped by here a few times and it looks like your blog posts get more informative each time. Keep it up I enjoy reading them.
3/22/2010 11:24:37 PM #
I love this post. Expecting more like this.
3/23/2010 12:38:06 AM #
I wanted to thank you for this interesting I definitely loved every little bit of it. I have you bookmarked your site to check out the latest stuff you post.
3/23/2010 6:40:07 AM #
I was wondering if you would like to be a guest poster on my blog? and in exchange you could put one link the post? Please let me know when you get a chance and I will send you my contact details - thanks.
3/23/2010 7:08:08 AM #
That is a important point to point out
3/25/2010 5:57:23 AM #
I thought it was going to be some boring old post, but it really compensated for my time. I will post a link to this page on my blog. I am sure my visitors will find that very useful
3/25/2010 9:36:18 AM #
Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I'll be subscribing to your feed and I hope you post again soon.
3/26/2010 3:03:17 PM #
Your blog is so informative … keep up the good work!!!!
3/28/2010 10:15:50 PM #
This is a good post, but I was wondering how do I suscribe to the RSS feed?
3/29/2010 2:30:45 PM #
Took me time to read all the comments, but I really enjoyed the article. It proved to be Very helpful to me and I am sure to all the commenters here! It's always nice when you can not only be informed, but also entertained! I'm sure you had fun writing this article.
3/30/2010 2:57:36 AM #
I love what you guys are always up too. Such clever work and reporting! Keep up the great works guys I've added you guys to my blogroll.
3/30/2010 10:35:03 AM #
Well done, you have gained a new fan, resources like the one you mentioned here will be very useful to me. I will post a link to this page on my blog. I am sure my visitors will find this very useful, please check out my site sometime and leave me a comment to let me know what you think. Regards, Marie
3/30/2010 11:17:18 AM #
Nice blog! Are you using Blogger as your main blogging platform? I ask this because your blog looks a little different.
3/31/2010 6:28:38 PM #
Resources like the one you mentioned here will be very useful to me! I will post a link to this page on my blog. I am sure my visitors will find that very useful.
4/3/2010 11:43:32 AM #
Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I'll be subscribing to your feed and I hope you post again soon.
4/3/2010 3:40:37 PM #
Well done, you have gained a new fan, resources like the one you mentioned here will be very useful to me. I will post a link to this page on my blog. I am sure my visitors will find this very useful, please check out my site sometime and leave me a comment to let me know what you think. Regards, Marie
4/3/2010 3:57:09 PM #
Hi I'm interested in create a rss feed from your site to my website. How can I go about this ?
4/7/2010 12:45:15 PM #
Just my two cents, but your website will look much more inviting if you can put in some pictures.
4/8/2010 12:40:54 AM #
I sometime back commented in your web page and picked notify me upon latest responses. There has to be a way to disable that service? I am receiving plenty of emails.
4/13/2010 11:42:58 PM #
Thanks a good deal! I truly loved reading this. It makes me want to make my own blog. I do not know what subject though? I am a dentist but can't conceive of most people wanting to read about that! Maybe I'm wrong. Any ideas?
4/17/2010 7:48:36 PM #
Such a usefule blog…wow !!!!
4/18/2010 5:30:38 AM #
post to my blog?
4/18/2010 5:44:02 PM #
Blogroll links aint that great Tong but i am not the admin… Tong … Just Telling Tong
4/21/2010 10:03:07 AM #
Wonderful site, where did you come up with the info in this piece of writing? I'm happy I found it though, ill be checking back soon to see what other articles you have.
4/21/2010 11:44:12 PM #
I think more people need to read blogs like this.  Its so important to know how to construct a great blog to get people interested and youve done just that.  The content is great, the videos are perfect for what youre trying to say.  Awesome, man. Really awesome!  Cant wait to read more.
4/22/2010 8:55:11 AM #
What I wouldnt give to learn how you got your design to be so amazing!  I mean it.  Besides the blog just being awesome, this page is too sweet!  Its not too flashy.  It doesnt do too much with colours and things and the videos you use are perfect for this topic!  Really, awesome blog.
4/25/2010 2:06:11 AM #
Have you ever thought about adding a little bit more than just your thoughts?  I mean, what you say is important and everything.  But its got no punch, no pop!  Maybe if you added a pic or two, a video?  You could have such a more powerful blog if you let people SEE what youre talking about instead of just reading it.
4/27/2010 11:22:37 PM #
What are you saying, man?  I know everyones got their own opinion, but really?  Listen, your blog is cool.  I like the effort you put into it, especially with the vids and the pics.  But, come on.  Theres gotta be a better way to say this, a way that doesnt make it seem like everyone here is stupid!
4/28/2010 3:01:17 PM #
I\'m happy I found this blog, I couldnt discover any info on this subject matter prior to. I also run a site and if you want to ever serious in a little bit of guest writing for me if possible feel free to let me know, i\'m always look for people to check out my site. Please stop by and leave a comment sometime!
4/30/2010 6:39:58 PM #
Today well lived makes every yesterday a dream of happiness and every tomorrow a vision of hope. Look well therefore to this day.
5/4/2010 2:33:28 AM #
Fantastic blog!  I dont think Ive seen all the angles of this subject the way youve pointed them out.  Youre a true star, a rock star man.  Youve got so much to say and know so much about the subject that I think you should just teach a class about it...HaHa!
5/4/2010 4:17:41 AM #
Your blog is outrageous!  I mean, Ive never been so entertained by anything in my life!  Your vids are perfect for this.  I mean, how did you manage to find something that matches your style of writing so well?  Im really happy I started reading this today.  Youve got a follower in me for sure!
5/4/2010 5:52:24 PM #
Can I just say, this blog is what got me through the day today.  Every time I read it, I just get more and more excited about whats next.  Very refreshing blog and very refreshing ideas.  Im glad that I came across this when I did.  I love what youve got to say and the way you say it.
5/6/2010 5:05:07 AM #
All serious brokers need to be associated with a large financial institution such as a bank in order to provide the amount of funds necessary for margin trading. In the United States a broker must be registered as a Futures Commission Merchant (FCM) and also with the Commodity Futures Trading Commission (CFTC). These credentials will ensure you have peace of mind, knowing that you have protection against any case of fraud and abusive trade practices.
5/7/2010 6:23:20 PM #
He who fears being conquered is sure of defeat.
5/8/2010 2:53:23 AM #
Have you ever considered adding some videos to your blog to keep the visitors entertained? I just read through the post and it was quite good…thanks for sharing
5/8/2010 5:28:22 PM #
This is such a deep blog!  What can I say, youve hit the nail right on the head!  You even added some videos to make it seem so much more real.  Youve got a great way of communicating with the reader, a great way of making me feel like what you have to say is just as important to me as it is to you.  Keep it up!
5/8/2010 10:41:53 PM #
Have you ever thought of adding some videos to your blog to keep the visitors more entertained? I just read through the entire article and it was quite good…thanks for the share
5/11/2010 5:10:01 AM #
Thanks for this excellent read. I liked every little bit of it. I have you bookmarked and will be reading more.
5/15/2010 7:55:18 AM #
Have you ever considered adding more videos to your blog posts to keep the readers more entertained? I mean I just read through the entire article of yours and it was quite good but since I'm more of a visual learner,I found that to be more helpful well let me know how it turns out
5/17/2010 5:57:31 PM #
I have to say, I dont know if its the clashing colours or the bad grammar, but this blog is hideous!  I mean, I dont want to sound like a know-it-all or anything, but could you have possibly put a little bit more effort into this subject.  Its really interesting, but you dont represent it well at all, man.
5/18/2010 4:14:35 AM #
I usually dont post in Blogs but your blog forced me to, amazing work.. beautiful
5/19/2010 4:41:41 AM #
I utterly liked reading about jPalm | Some of the new things in C# and .NET 4.0 and thought it was well worth the read. The only other site I found on Bing wasnt as good as this one, thanks.
5/19/2010 11:56:56 AM #
Fascinating and it may be worth seeing what individuals have to add.
5/20/2010 4:01:02 AM #
Hi there, I found your blog via Google while searching for first aid for a heart attack and your post looks very interesting for me.
5/20/2010 6:47:22 AM #
Fascinating and it could be interesting seeing what folks may add.
5/20/2010 11:54:10 AM #
Hi I've been trying several times to add your blog in my rss reader, can u help me plz
5/20/2010 3:39:39 PM #
I am quite new to wordpress. but what you write in this blog is really great and very informative. I think it will help me in the future. Thanks for the great job
5/20/2010 5:49:15 PM #
All I can say is keep it up.  This blog is so necessary in a time when everyone just wants to talk about how many people someones cheated on their wife with.  I mean, thanks for bringing intelligence back to the web, its been sorely missed.  Great stuff.  Please keep it coming!
5/20/2010 7:53:42 PM #
Nice article. However all except the first point are correct. Which you'll come across the second or third approach you attempt to write similar things.
5/21/2010 1:24:02 PM #
It should be fascinating to determine what other people have to say.
5/22/2010 4:04:02 AM #
After searching Yahoo I found your site about jPalm | Some of the new things in C# and .NET 4.0 . I think both are good and I will be coming back to you and them in the future. Thanks
5/22/2010 6:44:52 PM #
Aw, this was a really quality post. In theory I'd like to write like this too - taking time and real effort to make a good article... but what can I say... I procrastinate alot and never seem to get something done
5/22/2010 7:21:16 PM #
I utterly enjoyed reading about jPalm | Some of the new things in C# and .NET 4.0 and thought it was well worth the read. The only other site I found on Ask wasnt as good as this one, thanks.
5/23/2010 9:37:45 AM #
Took me time to read all the comments, but I really enjoyed the article. It proved to be Very helpful to me and I am sure to all the commenters here It's always nice when you can not only be informed, but also entertained I'm sure you had fun writing this article.
5/23/2010 9:56:19 AM #
Nice site.  I think it's gonna do very very well.
5/23/2010 4:01:06 PM #
I like this site. Very practical and very motivational. Thanks a bunch. It’ll help me a lot.
5/23/2010 5:53:59 PM #
I was wondering if you ever considered changing the layout of your blog?  Its very well written; I love what youve got to say.  But maybe you could a little more in the way of content so people could connect with it better.  Youve got an awful lot of text for only having one or two images.  Maybe you could space it out better?
5/24/2010 2:16:42 AM #
Howdy, I stumbled across this site by fluke when I was browsing on Bing then I wandered up to your site. I feel the need to tell you that your blog is fantastically cool I fantastically am jealous of your theme! Currently I have a lot of spare time to fully check out your page in which case I bookmarked it. I will return in a day or two. Thanks for a great site.
5/24/2010 2:43:22 PM #
I haven't visited a site this revealing in a while.  I will definately return!
5/24/2010 11:04:49 PM #
Man, I've been looking all over for this stuff.  Thanks.  Do you have any other sites other than jPalm | Some of the new things in C# and .NET 4.0?  I'd like a list of the best way to prepage for all of this and what is the best place to start?  It'd be nice, no?
5/25/2010 7:14:25 AM #
You are so inspirational and you talk sense. That’s important. You’re intelligent and you have a lot of heart. I love your posts! Thank you!
5/26/2010 2:55:43 AM #
I have been looking for this, was not on the same page in bing as it was last week when I first saw it. Anyway, thank God for search history!
5/26/2010 3:50:31 AM #
We are fast growing online entertaining community with a bright future and new ideas. On www.total-request.com you can find high quality movies, TV Shows, Serials, News about Movies and Actors and much more, totally free of charge. We are regularly adding new content so that nobody will be bored on a rainy evening Smile So don't waste your time searching the web for Movies, Visit us and you will never get bored: total-request.com
5/26/2010 7:37:53 AM #
Exceptional read, I just handed this onto a colleague who was doing a little researching on that. And he in fact bought me lunch because I found it for him.... smile.. So let me rephrase that: Thanks for lunch!But yeah Cheers for taking the time to discuss this, I feel strongly about it and like learning more on this topic. If possible, as you gain expertise, would you mind updating your blog with more information? It is extremely helpful for me.
5/28/2010 10:45:41 AM #
I have been surfing online more than three hours today, yet I never found any interesting article like yours. It's pretty worth enough for me. In my opinion, if all webmasters and bloggers made good content as you did, the internet will be much more useful than ever before.
5/28/2010 4:21:16 PM #
VRy interesting to read it Tong Laughing
5/29/2010 8:25:14 AM #
I have been checking out your posts for the last couple of hours, and everything has been very informative and well written.  I did want to let you know that for some reason this post doesn't seem to work with Internet Explorer.  On a side note, I was wondering if you wanted to swap blogroll links?  I hope to hear from you soon!
5/30/2010 8:23:14 PM #
Between me and my husband we've owned more MP3 players over the years than I can count, including Sansas, iRivers, iPods (classic & touch), the Ibiza Rhapsody, etc. But, the last few years I've settled down to one line of players. Why? Because I was happy to discover how well-designed and fun to use the underappreciated (and widely mocked) Zunes are.
5/30/2010 8:23:16 PM #
Zune and iPod: Most people compare the Zune to the Touch, but after seeing how slim and surprisingly small and light it is, I consider it to be a rather unique hybrid that combines qualities of both the Touch and the Nano. It's very colorful and lovely OLED screen is slightly smaller than the touch screen, but the player itself feels quite a bit smaller and lighter. It weighs about 2/3 as much, and is noticeably smaller in width and height, while being just a hair thicker.
5/31/2010 4:57:26 PM #
It is not enough to stare up the steps, we must step up the stairs.
Clicky Web Analytics