Geeks With Blogs

News

Series

Add to Technorati Favorites


An Archived Managed World This blog has moved to http://www.managed-world.com/blog Development
Visual Studio 2010 Training Course on Channel 9
This morning, Channel 9 launched the new Channel 9 Learning Center. From Channel 9, here’s a description of what the Learning Center is: “The Channel 9 Learning Center is the destination for free technical training on emerging Microsoft products and technologies. The Learning Center consists of a set of courses with each course including a set of videos, hands-on labs, and source code samples to get you up-to-speed quickly.” I’m pleased to say that Visual Studio 2010 is one of the first Training ......

Posted On Wednesday, October 21, 2009 5:08 AM

F# Basics – Infix Operators
As I’ve been writing more F# code and learning more about the F# language, I have found myself intrigued by how some surprisingly simple language features can combine with each other to enable us to write very expressive code. While I am still learning F# (and realize just how much more I have to learn), I’m hoping that sharing some of these thoughts will encourage others to dig into what I think is a very powerful language that a lot of us developers can learn from. In this post, we’re going to ......

Posted On Friday, April 17, 2009 10:03 PM

TxF Managed Wrapper on Code Gallery
Hello, everybody, I have released the first version of a rudimentary managed wrapper around Transactional NTFS to Code Gallery on MSDN: http://code.msdn.microsoft.... The wrapper in its current form is very basic but should give developers a good idea on how simple it is to use Transactional NTFS from managed code. Feel free to go grab it, play around with it (there are some sample screencasts using the wrapper on the Developer Meet Server Show), and feel free to use it any way you wish. ......

Posted On Wednesday, April 23, 2008 4:41 AM

Visual Studio 2010 Beta 2 Training Kit Published
The Beta 2 version of DPE’s Visual Studio 2010 Training Kit is now live (you can find it at http://tinyurl.com/Beta2Tra... A training kit includes presentations, hands-on labs, and demos. This content is designed to help you learn how to utilize a variety of Visual Studio 2010 and .NET Framework 4 technologies. The Beta 2 release of the Training Kit contains 15 presentations, 19 hands-on labs, and 13 demos. Many technologies are covered in this release, including: C# 4, VB 10, F#, Parallel Extensions, ......

Posted On Tuesday, October 20, 2009 5:54 AM

10-4 Episode 26: Creating Extensible Apps with MEF
In this episode of 10-4, we take a look at a new library in .NET Framework 4 and how it helps developers write applications that are more extensible and easier to maintain than before. For more information on the Managed Extensibility Framework, make sure to check out its home on Codeplex: http://www.codeplex.com/mef. For more 10-4 episodes, be sure to visit: http://channel9.msdn.com/sh... 10-4! Over and out ......

Posted On Monday, July 13, 2009 4:17 PM

Parallel Computing with Visual Studio 2010 Beta 1
One of the big areas of improvements coming to Visual Studio 2010 and .NET Framework 4 is in the area parallel computing. There are a LOT of new features and improvements to existing features here with this latest release of our developer tools. Many people smarter and more capable than I have already written about most of this stuff, so there’s not much for me to add. What I did want to do though is to let you know all the places where you can find this wealth of information (and there is a lot ......

Posted On Tuesday, June 9, 2009 6:44 PM

Tour de BCL 4.0
Over the coming months, I would like to take you on a whirlwind tour of a bunch of the new data structures and APIs being added to the Base Class Libraries (BCL) for .NET Framework 4.0. This will take us everywhere from new multithreading-oriented data structures like Barrier and CountdownEvent, to more basic structures like Tuple. I’ll update this post with correct links as new posts are created… An Intro to Barrier An Intro to Barrier, Continued An Intro to CountdownEvent An Intro to LazyInit An ......

Posted On Monday, February 9, 2009 11:40 PM

An Intro to Barrier
In this first stage of our Tour de BCL, we will be passing through the new Barrier class. So what is a Barrier? Let’s take a look at the boring technical description for a Barrier: A Barrier is a synchronization primitive that enforces the stopping of execution between a number of threads or processes at a given point and prevents further execution until all threads or processors have reached the given point. I don’t know about you, but sometimes technical descriptions like the above just sound like ......

Posted On Monday, February 9, 2009 11:17 PM

Avoiding Inheritance Dependencies Using Generics and Lambdas
One realization I have come to when talking with many other developers is that there is a good number of developers that don't realize that inheritance introduces dependencies directly into your classes. Your derived class is now dependant upon the interface and behavior of your base class. Worded another way, your derived class is now strongly coupled to your base class. I've met a number of developers that are very passionate about managing their dependencies via inversion of control, dependency ......

Posted On Sunday, June 15, 2008 1:18 AM

An Intro to Barrier, cont.d
Well, I said I was going to be moving on to CountdownEvent, but I was wrong. there is one more aspect of using Barrier that I just had to share (thanks go to Stephen Toub on the Parallel Computing Platform team for bringing this up). In my first Barrier post, I had mentioned: Barrier is a great new synchronization primitive to use when there is a known amount of work to do that is being done by different workers that all have common synchronization points. To make a long story short, this isn’t strictly ......

Posted On Tuesday, February 24, 2009 10:42 AM

10-4 Episode 2: Welcome to Visual Studio 2010
Happy Holidays, everybody! First of all, thanks to everybody who helped get the word out on the launch of this new show on Channel 9 by blogging, tweeting, or spreading the word using other ways. There is no doubt in our minds that the launch of this new show wouldn’t have been nearly as successful without all of you! In this second episode of 10-4, we’ll take a very high-level look at Visual Studio 2010. We’ll discuss what types of features you can expect to see in Visual Studio 2010 and .NET Framework ......

Posted On Wednesday, December 24, 2008 2:34 PM

On the potential abuse of the var keyword
This question/conversation has come up quite often when chatting with friends and other developers. With the introduction of the "var" keyword in C# now, when should it be used (and, perhaps more importantly, when should it not be used). Here is a quick summary on my thoughts... My personal feeling is that it's a problem if I have to rely on Intellisense in order to be able to tell what type a variable is when it is declared. It's important to keep the future audience in mind while you are writing ......

Posted On Sunday, December 14, 2008 12:56 PM

SmallBasic is here!
I'm VERY excited to finally talk about this publicly. A while ago, I was able to start playing around with a programming language called SmallBasic being developed internally at Microsoft by Vijaye Raji. And now, it's finally been announced as part of our new Dev Labs effort. So what is SmallBasic? From the website: "Small Basic is a project that's aimed at bringing "fun" back to programming. By providing a small and easy to learn programming language in a friendly and inviting development environment, ......

Posted On Thursday, October 23, 2008 11:26 PM

Threading Basics: Race Conditions, Part 1
I've talked in the past about the importance of parallel computing for all us developers. It's a trend in computer software and hardware architecture that is not a fad. Currently, in the US, it is nearly impossible to buy a new computer that has only a single core. We're even starting to see some of the first quad-core laptops hit the market. It's becoming very important for developers to start dealing with parallel code. There's one problem: multithreaded development is hard. And in the class of ......

Posted On Thursday, September 18, 2008 8:13 PM

Building A Fluent Interface for MEF
How would you like to use the following way to configure dependencies in MEF? A fluent interface with POCO support (no attributes necessary)? Yup. var resolver = new FluentResolver(); resolver.Register<HelloW... And<HelloGreeting>().... And<ConsoleOutputter>... var domain = new CompositionContainer(resolv... // HelloWorld has dependencies on IGreeting and IOutputter var helloWorld = domain.Resolve<HelloWorl... helloWorld.SaySomething(); ......

Posted On Friday, July 4, 2008 9:59 PM

True CCR Concurrency - Using CCR without Iterators
As developers get up to speed with the CCR, they quickly come across the (ab)use of iterators to achieve "concurrency." Okay, "(ab)use" may have been a bit of a low-blow. I call it an abuse as it is a totally unorthodox use of what iterators are usually used for, and I've came across my fair share of developers who find this unorthodox usage highly confusing. Not only is it confusing, but it's not what I would consider true concurrent code. In a concurrent environment, if I create twenty different ......

Posted On Saturday, June 21, 2008 7:22 AM

Lambdas - Know Your Closures
In this post I want to discuss with you the importance of realizing how lambdas work (and why you should care). Let's dive right in with some code. Given the following code snippet, what would you expect the output to be (no cheating :P)? var actions = new List<Action>(); for (int i = 0; i < 10; i++) { actions.Add(() => Console.WriteLine(i)); } foreach (var action in actions) { action(); } Would you believe me if I told you this is the output you get? 10101010101010101010 At first glance, ......

Posted On Friday, June 13, 2008 6:28 AM

Managed Extensibility Framework CTP Released
What a great week to be a developer. First, the latest Parallel Extensions CTP was released to the net, and now the first Managed Extensibility Framework CTP has been released onto Code Gallery. So what is the Managed Extensibility Framework? From the announcement: "The Managed Extensibility Framework (MEF) provides developers with a tool to easily add extensibility to their applications and with minimal impact on existing code. The application developer can define extension points according to the ......

Posted On Thursday, June 5, 2008 5:22 AM

Facet Mapping with LINQ, Part 2
In "Facet Mapping with LINQ, Part 1", we discussed how to add Facet Mapping to your .NET application using an attribute-based solution. This solution just doesn't leave me very excited. As we recounted, there are some problems with using an attribute-based approach: Littering domain models with presentation layer-specific attributes Doesn't support existing POCOs (that perhaps can't change) Can't support combinations of members (without create a new method property that actually does the combining ......

Posted On Tuesday, June 3, 2008 9:00 PM

Parallel Extensions to the .NET Framework, June 2008 CTP Released!
The latest CTP for Parallel Extensions to the .NET Framework was released out to the intarw3bs today (Go Digg It on Digg and Kick It on DotNetKicks). This is the second major CTP for the Parallel Extensions. If you're the kind of person who likes to just get the latest install and play around, you can find it here. If, however, you are a person who would like to read some resources about the new CTP first, there's a bunch of links for you as well: Ed Essey announces the release on the Parallel Extensions ......

Posted On Monday, June 2, 2008 8:01 PM

Facet Mapping with LINQ, Part 1
As I've been digging more into all the C# 3.0 goodness, I've been learning a lot more about lambda expressions, expression trees, query expressions, and all sorts of other things LINQ. One of the cool scenarios I think LINQ-To-Objects enables is the concept of facet mapping. From the facet mapping website: "First, a quick definition of terms (our glossary has more complete definitions). A resource is one of the objects you want to find by navigating a facet map. In this case, the resources are bottles ......

Posted On Friday, May 30, 2008 8:18 AM

Back to the things I love
Don't get me wrong, I absolutely love Technical Evangelism and enjoyed my first role here at Microsoft doing evangelism around Windows Server 2008. But now that I've transitioned back into evangelism of .NET technologies, I feel like I'm "home again." Before joining Microsoft, I was very passionate about design, pragmatic programming, unit testing, etc. Essentially, all those tools and processes you see actively coined with the term "ALT.NET" now. Even though the term wasn't coined yet, I consider ......

Posted On Wednesday, May 28, 2008 7:23 PM

Fluent Languages
The first time I saw some talk about this "movement", it was Martin Fowler discussing "Fluent Interfaces". An example Martin gives is the idea of time intervals. Here's how one might declare an interval today (in Java): TimePoint fiveOClock, sixOClock; ... TimeInterval meetingTime = new TimeInterval(fiveOClock, sixOClock); Here's how one might to do the same with a fluent interface (anybody who writes Ruby code should recognize this type of programming): TimeInterval meetingTime = fiveOClock.until(sixOClock); ......

Posted On Monday, June 2, 2008 11:16 PM

The launch of marshal-as.net
In my previous post, I talked about why I personally love C++/CLI as a solution for managed and native interop. With the launch of Visual Studio 2008, and the include of the new marshalling library, there is on part of the equation missing, I believe. On the C# side of the interop equation, you have http://www.pinvoke.net. When I'm wanting to interop with a given Windows API, there is a very (very) good chance that the wrappers have already been posted onto pinvoke.net. While the marshal_as<> ......

Posted On Thursday, November 22, 2007 11:03 PM

Functional Languages and Dynamic Languages
Lately, I've been getting a lot more serious about cutting out some time to learn a functional or dynamic language. After watching several Channel 9 videos while traveling today (and listening to several podcasts), I've realized that I've started to grow not only "complacent", but a bit frustrated as well with static languages (currently VB and C#). It came to mean when I was defining a class. I was working on the properties of that class, of course using encapsulation (read: public properties backed ......

Posted On Monday, November 5, 2007 11:03 AM

Discoveries of the day
Well, another day, more work done, more lessons learned, and some new and exciting discoveries and announcements made as well. First of all, Soma announced on his blog today that F# is becoming an "official" .NET language, joining the ranks of languages like C#, VB, C++/CLI, JScript, IronRuby, IronPython, etc. If you're not familiar, F# is a functional language that started out in Microsoft Research as a project of Don Syme's. I think this is great news. And I'm thinking that perhaps I should give ......

Posted On Thursday, October 18, 2007 1:42 AM

How I'm becoming a better developer
Well, nearly a month after George's throw-down (and Chris's follow up), here I am posting my list of how I plan on becoming a better developer. Most of the focus on this list is around technology internals and diving deep. Some of the other points are around topics that are definitely not developer related. I feel that those items will help bring me a fresh set of eyes to my development efforts by limiting burn out and providing me with some non-computer-related experiences to help think "outside ......

Posted On Monday, July 30, 2007 2:51 AM

Copyright © Jason Olson | Powered by: GeeksWithBlogs.net