VS 2008 Sp1

Microsoft's new agile pace is just killing me.  I'm glad that sp1 will be out some time in the foreseeable future but.  I don't want thing about upgrading to vs 10 in another 18 months. 

C# Debugging Improvements for VS 2008 SP1- Part 1


Comments [0]

The debugger does not support debugging managed and native code at the same time on this platform.

You might receive the "The debugger does not support debugging managed and native code at the same time on this platform." error message in Visual studio 2005/2008 if you have a 32bit native/mixed mode dll linked to your x64bit assembly.  If you change the project properties so that Platform target is x86 you should be able to debug both assemblies.

Comments [2]

Visual Studio 2008 and .NET 3.5 Due out at the end of November?

According to CNN Money Microsoft has committed to an end of November release date.

Full story here.

Comments [0]

Vote for .NET EXEs to run off a network share by default.

Brad Abrams is taking a poll, Allowing .NET EXEs to run off a network share.  There are a lot of useful solutions that are blocked by the current .NET policy.  I would like to see it go the way of the dodo.  It doesn't really offer protection since unmanaged code will execute from a network share.  Removing this default limitation would allow for true xcopy deployment.

Please vote early and often!

Comments [0]

If Paths have you down

If you have not seen it yet Patrick Smacchia is showing off his free library to handle common and complex file path operations.  Its on CodePlex NDepend.Helpers.FilePathDirectory

Here is Patrick's class diagram


It nicely done some thing that MS should have offered in the DotNet Base Class Library.

Comments [0]

The other GACUTIL

Over on Carlo's blog(Gacutil not supported in production?) there is a small discussion about how to register an assembly into the GAC.  Microsoft Recomends using Windows Installer 2.  Gacutil is not really supported on production ( explains why its part of the sdk) but with the proper command line args /i and /r it can be used to register an assembly in to the GAC, however the license for Gacutil, only allows internal redeployment.  So an ISV would need a windows installer.  In the past I have seen System.EnterpriseServices.Internal.Publish.GacInstall used to foster GAC registration in an install shield ( install script). Not sure if it works the same as windows installer but it get the job done. Also of intrest System.EnterpriseServices.Internal.Publish.GacRemove

Comments [0]

Source Code for the .NET Framework Libraries

Scott Gu announced the releasing of .Net framework libraries (Microsoft Reference License).  This is good news its some thing that i miss very much when not working with the MFC libraries.  Truth be told you could already view and to some extent debug the .NET Framework with reflector but first class support in VS 2008 is defiantly great news.  Scott Hanselman appears to already have a Hansel Minutes relating to this announcement.

Comments [0]

Security Updates Are Not Always Your Friends

In July Microsoft released Security Bulletin MS07-040-Critical Vulnerabilities in .NET Framework Could Allow Remote Code Execution (931212) 

A Security Update for Microsoft.net Framework 2.0 (KB928365) was released for  windows server 2003

this updates System.web.dll

I have found this security update to crash IIS and any asp.net 2.0 web site/web service w3wp.exe to be restarted on every web request.

It looks like this is only a problem when this security patch is automatically installed via windows updates.  Once I uninstalled the security update the crashing issue went away.  When I manually reinstalled the security update and rebooted IIS and ASP.NET continued to function correctly with out error.


Also updated was,

 940521 (http://support.microsoft.com/kb/940521/) The behavior of UTF8Encoding, Unicode Encoding, and UTF32Encoding changes to comply to the Unicode 5.0 requirements for Unicode encodings after you install the security update for the .NET Framework 2.0 that is described in security bulletin MS07-040

this seems to affect how ASP.NET generates its web control names.

Comments [0]

vs class library to web application

There just doesn't seem to be any love for the Visual Studio 2005 Web Sit Project.  I know I have none.  I' am  sure its fine for an internally developed web sites, but who cares about those.  For an ISV we need dll's.  It's simpler and your customer can't make unauthorized edits to your code.  So if like me your looking for a simple way to update some of your older asp.net projects Peter Bromberg just posted a nifty trick to get your visual studio 2003 class library project to convert to a visual studio 2005 web application project.  I recommend you take a look and save your self a migraine.

Comments [0]

A listing of CRL 2.0 Hot Fixes

Doug Stewart has posted an extensive list of CRL 2.0 bug (hot)fixes.  Its worth a look if your Dot Net 2.0 app is having issues.  Thanks for putting together such a comprehensive list Doug. 

I have seen this issue on a QA server The managed heap becomes corrupted when you run a program that is built by using the Microsoft .NET Framework 2.0 good to see its not my code and that there is a fix for it.

Some of the Hot fix support articles do leave a little something to be desired though I would like to see Microsoft spend the time to detail the cause for each issue so I can better evaluate my need for a given fix.

Comments [0]

A case of the AWAL Destructor.

Is it a Memory leak or a Resource leak.

It would seem that if you take a c++ managed extensions gc class containing a native pointer to dot net 2.0.  The classes finalization does not happen correctly.  Ie the destructor is no longer invoked.

further more if you migrate said c++ code to c++/cli then your destructor will not get called when the managed object is disposed of via garbage collection.  You will need to either explicitly call the destructor or add a finalize to your reference class.


Not the most obvious memory leak in the world to say the least.

Comments [0]

Microsoft Secure Content Downloader

In your quest to down load all the visual studio 2008 goodness you may find this new ctp tool from Microsoft very useful

Microsoft Secure Content Downloader July 2007 Community Technology Preview


The Microsoft Secure Content Downloader (MSCD) is a peer-assisted download manager capable of securely downloading specific files. MSCD is intended for consumers who are downloading from a home PC, or business users whose computers are not behind a corporate firewall. If you use MSCD from behind a corporate firewall, you may be unable to download content, and may adversely affect other clients' ability to download content.
Main features of the MSCD are:

  • Secure content description
    • Each file available for download has a secure description, ensuring the content you download is exactly what the publisher published.
  • Scalable performance
    • MCSD is a peer-assisted technology. Each client downloads content by exchanging parts of the file they’re interested in with other clients, in addition to downloading parts from the server.
      • No matter how great the internet’s demand for the file, you will always be able to make progress downloading.
      • MSCD lets you download content more quickly than possible without peer assistance.

Some MSCD clients may be connected to each other via peer connections, forming a ‘cloud’ of clients. Pieces of the file you are downloading are sent through these peer connections between clients, as well as through connections with the file server. As a member of the cloud, your computer both serves as a client and server to other members of the cloud. Data destined for the cloud may be routed through your computer and sent to other cloud members. The other cloud members connected to you will be able to access only pieces of the file you are downloading via MSCD – they have no access to any other data on your computer.
You are only connected to other clients while you are downloading a file via MSCD. When the file has finished downloading – or when you pause or cancel the download, or exit the application – you disconnect from the cloud. Once you disconnect from the cloud, you will no longer have any connections to any other members in the cloud and no data will be routed through your computer.
This version of MSCD is a Community Technology Preview, and will only allow you to obtain current Visual Studio 2008 Beta 2. Since it is a Community Technology Preview, additional information related to MSCD’s performance and network transactions -- including your machine name and IP addresses -- may be logged to help evaluate and improve MSCD performance.

Just incase you have been under a rock here are the links to detailed information about today's release of Visual studio via Scott Gu and Somasegar respective blog posts.

Comments [0]

Setting a property via anonymous delegates

I was looking for a way to pass a parameter by reference today.  More specifically the setter.

I found a couple interesting blog posts


notice the comment by Tedesco.

He offers a nice way to do this via an anonymous delegate.

    public delegate void InsertString( System.String param );
public partial class Bird
public void FileToDb( int x )
FillEntityColumn( delegate( System.String value )
tExtra.Text = value;
} );

So we actual pass the FillEntityColumn method an anonymous delegate which then sets the property.

Now in vb you can write

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

End Sub
Sub testme(ByRef s As String)
s = "hello"
End Sub

which a commenter on http://musingmarc.blogspot.com/2006/04/tale-of-two-implementations.html eluded to.  But in vb you still cannot pass a Property by reference, at least not really.  Take a look what vb generates into il.

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim VB$t_ref$S0 As TextBox = Me.TextBox1
Dim VB$t_string$S0 As String = VB$t_ref$S0.Text
VB$t_ref$S0.Text = VB$t_string$S0
End Sub
As you can see vb is writing some code for you which is nice, but we are still not passing the property by ref.
   -Mike has also talked about the want of passing parameters. ( the same misguided comment that vb supports passing parameters by ref)
Comments [1]

Setting up ASP.NET 2.0 on 64-bit Windows

Microsoft KB article 894435

Comments [0]

Packaged ASP.NET Programs

Scott posted a nice article Tip/Trick: Creating Packaged ASP.NET Setup Programs with VS 2005  for deploying your Visual Studio 2005 project.  While Scott's article is focused on deploying to a customer I have found those scenarios to be beyond what VS offers and requires Install shield.  I do this this post is a handy trick for moving your project from dev to QA to staging maybe even production.

Comments [0]

Some Links for Moving Between C++ Versions or to C#

If your moving MFC or C++ extensions to dot net 2.0 here are a few items you might find useful

Comments [1]

Useful DynamicMethod References

Blog Posts

Code Project

Comments [0]

Beta Documentation for LINQ to XML


Language-Integrated Query (LINQ)

Comments [0]

How-To share class/resources between projects in Visual Studio 2005

start by having a solution with two projects.

In the solution exploder window right click the solution and choose add New or existing item.


For this how two we will add a new c# class

click add.  Visual studio will create a new suborder under the solution called "Solution Items" Class1.cs will be in this folder.

now select one of your projects and right click select add existing item.  Navigate to your solutions directory and select Class1.cs

click the drop down arrow next to the add button

select add as link

You will now have a shared link to a common solution file/class

repeat for each project you wish to add this file/class to.

Comments [2]

Expression Blend Today

It seems to have been under reported but Expression Studio was released today.  I don't see Blend on the MSDN Subscriber download yet.

Comments [0]

Wow! Silverlight 1.1 Alpha

I am not at mix but I see the BCL team just announced


Silverlight 1.1 Alpha includes all the features available in Silverlight 1.0 Beta plus a number of new features focused primarily on improving developer productivity and power:

  • Managed code support
  • Support for dynamic languages including Managed JScript and Python
  • Rich UI control model based on WPF
  • Improved networking stack with support for REST, RSS, JSON, POX
  • Enhanced, 2-way HTML/AJAX Bridge
  • Comprehensive and consistent base class library
  • Support for LINQ (LINQ to Objects, LINQ to XML)

That's right.  Silverlight 1.1 Alpha includes support for managed code and a comprehensive base class library!  Now you know what we've been up to and why our blog has been relatively quiet these past several months :-)

Our partner .NET teams within Microsoft have been able to provide an amazing amount of additional functionality on top of the Silverlight 1.1 BCL.  There's a networking stack, XmlReader and XmlWriter, an HTML/AJAX Bridge, a WPF API subset, a safe OpenFileDialog control, LINQ, and the new Dynamic Language Runtime (DLR).  What's really exciting is that all of these APIs are cross platform and work consistently on both Mac OS X and Windows!

You can download Silverlight 1.1 Alpha today along with the SDK at http://msdn.microsoft.com/silverlight.  After you've downloaded the bits, check out the newly launched Silverlight community site.  It's a great resource for getting started with Silverlight.

This will indeed be an interesting year.  BCL on Mac I doubt Linux could be to far off.

Now we know why many Developers were left with the impression that Silverlight was a little lacking, Microsoft was just hiding their real work.

Comments [1]

Microsoft Has A Software License Management System

Check out SecureLM's FAQ


How SecureLM works?

1. The software that is going to be distributed should be integrated with SecureLM. If you protecting your software using SecureLM Code Protector, the integration is almost done. In order to enable or disable GUI elements related to licensed functionality of software SecureLM API can be used. However, licensed functionality of protected software will not be executed without a valid license even if an attacker eliminates API checks.

2. Protected program requires a valid license in order to run. The creation and installation of a license for specific machine or USB hardware key is called Activation. The activation can be done online, via e-mail or via phone. A license is usually locked to machine, USB hardware key or USB flash disk. Non locked licenses are also allowed. Usually end user receives an activation key that allows software activation. SecureLM provides friendly user interface for software activation.

3. SecureLM server provides Web interface that allows performing operations like:

· Issue licenses

· Reissue existing licenses

· Perform e-mail and phone activations

· Increase number of allowed activations per license key

· Track issued licenses and online activations

· Define system configuration

· Much more.


What kind of software can be distributed with SecureLM?

Any Windows application or library can be distributed with SecureLM.

· .NET 1.1 or 2.0 Windows applications, services, or components

· ASP.NET 1.1. or 2.0 applications or components

· VC++/VB6/Delphi applications

I am just stumbling around their site it sounds interesting and worth a try.  Its nice to see another Giant in this market.  At least there is an alternative to MacroVision

Comments [0]

Attend A Virtual Lab and Win a Cannon Digital SLR

Check out Microsoft's free .Net Framework 3.0 Virtual Labs and if you take part in any TechNet or MSDN virtual lab or labcast  you could win.

Comments [1]

Orcas Entity/ORM support

I was having some trouble figuring out how to use the new ado.net entity framework in the last March Orcas CTP, but leave it to Scott to have all the answers.  Scott has posted a nice video covering

  • new asp.net WYSIWYG HTML designer.
  • create classes's from the ORM designer.
  • Intellisense for LINQ.

full detailed blog post.  And you can find the video here.

Comments [0]

Beta 1 Of Orcas Released Into The Wild

Incase you missed it yesterday Soma announced the release of Orcas Beta 1, it can be downloaded here.

Comments [0]

My New Favorite Function

I wanted to take a moment to point out my new favorite DotNet Function.  At VSLive in San Francisco I was introduced to System.IO.Path.Combine( path1, path2) as string.  I no longer have to deal with the logic of adding a trailing or leading slash when combing  file and directory locations.

Comments [0]

LINQ == Warm Fuzzy Feeling

I was taking a look at Scott Guthrie's Developing Data-Driven Web Applications using LINQ.  This is going to make life a little less dreary.

I like the second to the  last line results.Skip(startRow).Take(10);

Comments [0]

This Morning's VSLive Key Note

The Ado and Data blogs have posted links for the screen casts from this mornings VSLive KeyNote.



Comments [0]

Load App.Config data into a DLL

Here is my way of getting a DotNet DLL to load its app.config file.

AppDomain.CurrentDomain.SetData ("APP_CONFIG_FILE",ConfigFile);

Where ConfigFile is the full path to your application's app.config file.(c:\test\myapp.config)

As a side note you may need to call ConfigurationManager.RefreshSection

in order to see your values.
Comments [1]

XML Notepad 2007 version 2.3

Microsoft's XML Team just announced the release of XML Notepad 2007 2.3

You can find the change log here and down load here.

This is the new feature that caught my eye.

"better handling of XML documents containing illegal characters"

Comments [0]

Crypto Algorithms In Orcas

I was talking about the new crypto algorithms in Orcas with a co-worker today, and since The Moth was kind enough to remind me I figured I would post a link to the .Net Security Blog Covering them

Comments [0]

Guide Lines For Structuring Team Projects

J.D. Meier Blogged about Structuring Projects for Team Foundation Server

Interesting very similar to what we have adopted for our projects.

Other links that I found of use regarding structuring projects all form Microsoft's Patterns & Practices team.

Comments [0]

Integrating ASP.NET Security with Classic ASP and Non-ASP.NET URLs

Check out ScottGu's Latest Trick :

Integrating ASP.NET Security with Classic ASP and Non-ASP.NET URLs

Comments [0]

Teach a child to program

I have finally found some programing books at my reading level ;)


  • C# for Sharp Kids - An ebook on programming with C#
  • VB For Very Bright Kids - An ebook for learning how to programming with Visual Basic
  • Code Rules - A curriculum for learning how to program using Visual Basic. This package includes Teacher materials, Student lessons and quizzes and has been used in schools around the country.
  • CurliQue Studios - A curriculum for learning to build a dynamic web site for a rock band. This one also includes teacher materials. My friend Dave Jacobus blogs about using it with his class and seems to like it.
  • Creating your First Website using HTML - Follow along with this Microsoft DigiGirlz Tech Camp presentation to learn how to use HTML to create your own website!
  • A list of other kid friendly websites and learning resources.

Microsoft's Kid's Corner

Comments [0]

March Orcas.

The Moth broke the Orcas News fist.  The Orcas March CTP is available for download.

Install or VPC image

Comments [0]

Wells Fargo and WPF

Take a look at Wells Fargo's next generation ATM, witch uses WPF.  Pretty cool

Microsoft's Case Study

Thanks Somasgar for pointing this out.

Comments [0]

Daylight Saving Time has Changed- don't be caught off guard.

Last night I got a letter from MSDN.  If you have been in away and missed it the Daylight Saving Time has changed read on to see what might be affected if you use DOT NET or CRT.

Dear Valued Microsoft Customer,
In 2005, the United States government passed the Energy Policy Act of 2005. This act changes the start and end dates for Daylight Saving Time (DST) as of spring 2007. These changes may impact the way applications run. Microsoft is releasing an update for Windows through Microsoft Update that reflects these changes.
Developers who use the .NET Framework may find their applications affected if the application uses the time zone information for historical purposes or if they have derived custom classes from System.TimeZone to provide custom time zone information. The standard System.TimeZone class provides a managed wrapper for the underlying Windows Operating System time zone functions.
In addition, developers who use Visual C++ may find their applications affected if they use the CRT time functions, or the TZ environment variable. Microsoft is currently working on a fix for this issue and will post information about its availability on the Visual Studio Support page.
Most applications that use these affected classes will not need to be modified as this update will ensure that the correct data is provided seamlessly to the application. However, applications that use these classes or the underlying Windows API to perform historical time look-ups will need to be modified.
In most cases, developers who have extended the .NET Framework’s time zone support by creating custom time zone classes derived from System.TimeZone, or by direct access to the Win32 API, will not have to update their applications as long as the available updates to the operating system are applied. However, solutions that rely on private time zone data, or that retrieve system time zone information by accessing the registry directly, may need to be updated. Applications that deal with historical time zone data may also need to be updated.
Microsoft advises all developers who make use of time zone data to test their applications against this update to ensure that their applications function correctly.
For more detailed information and the latest updates please visit http://msdn2.microsoft.com/en-us/vstudio/bb264729.aspx, Preparing for daylight saving time changes in 2007, and KB928388: 2007 time zone update for Microsoft Windows operating systems

Update: I corrected all links.
Comments [0]

Reflector 5.0

Reflector 5 still doesn't seem quite right.
Comments [0]

Good by GotDotNet

good by old friend....
Comments [0]

New version of Reflector is out

I heard if first from Lutz

Reflector 5.0

the Add-ins are now hosted over at CodePlex.

Chris and Scott also mentioned this today check out Scott's blog to see the neat features but be careful I moved to version 5 and none of my add-ins work.  I am going to try to clean out my addin folder and start from scratch.  I don't think you want to use Reflectors check for update.  Download it and run 4.2 and 5.0 side by side make sure all your addins work first.

Comments [0]

Code Conversion Again

I found another online code converter this time by SharpDevelop. This will convert between C#, VB,  and Boo.  They also have a web service.

Comments [0]

Saving Face

Finding a way to use system.io.compression for zip archives
Comments [0]

Running an XBAP Application in a Standalone Mode Using the Same Project File?

 Today I am just an aggregator.  Anyway if your into .NET 3.0 Irena has a very neat trick.

Link to AppDev: Something You Should Know by Irena Kennedy : SYSK 289: Want to Have a Choice of Running an XBAP Application in a Standalone Mode Using the Same Project File?

Comments [0]

Passing lists to SQL Server 2005 with XML Parameters

One more reason for to support SQL 2005. 

Link to Jon Galloway : Passing lists to SQL Server 2005 with XML Parameters

Comments [0]

Found Open Source CSharp projects

CSharp-Source  nice resource listing different categorized CSharp based open source projects.

Comments [0]

Resource Refactoring Tool 1.0 Release

Breatan announced the release of the Resource Refactoring Tool to CodePlex  


Release Change Log

Closed7417 Add web application project support

Closed6234 Incorrect default save directory for web projects

Closed6651 Don't refactor parameter names in XML comments

Closed7606 Checkbox selections should be saved between sessions

Closed6236 Unhandled error when creating a resource file in lock project

Closed6235 Silent failure if file is read-only.

Closed6440 Severe error with duplicate names

Closed6319 VS German Version?

Closed6147 Esc does not close Extract to resource form/dialog

Link to the Msi

ResourceRefactorSetup.msi - (832 KB)

Comments [0]

Component Vendors, are they all Idiots?

Why do I so dislike ComponentOne and Preemptive?


c:\Development\SourceControl\Point Projects\Point\main\ReminderWnd.h(223) : error C3624: 'k8': the compiler cannot find this type; it is defined in the module 'OLE32.DLL'
StdAfx.cpp(0) : warning C4945: 'DotfuscatorAttribute' : cannot import symbol from 'c:\development\sourcecontrol\point projects\third party\componentone\main\c1.c1zip.dll': as 'DotfuscatorAttribute' has already been imported from another assembly 'c:\development\sourcecontrol\point projects\third party\componentone\main\c1.win.c1report.dll'
StdAfx.cpp(0) : see declaration of 'DotfuscatorAttribute'
first seen type is used; re-order imported assemblies to use the current type
StdAfx.cpp(0) : warning C4945: 'DotfuscatorAttribute' : cannot import symbol from 'c:\development\sourcecontrol\point projects\third party\componentone\main\c1.win.c1flexgrid.dll': as 'DotfuscatorAttribute' has already been imported from another assembly 'c:\development\sourcecontrol\point projects\third party\componentone\main\c1.win.c1report.dll'
StdAfx.cpp(0) : see declaration of 'DotfuscatorAttribute'
first seen type is used; re-order imported assemblies to use the current type
c:\Development\SourceControl\Point Projects\Point\main\ReminderWnd.h(223) : error C3624: 'k8': the compiler cannot find this type; it is defined in the module 'OLE32.DLL'


Its that kind of crap.  I am not stealing your dime adozen controls I paid for it and what to use it.  Attention component vendors, Do not obfuscate your work. 

Nsoftware is almost worse since you have to dirty your build system with there install in order for licensing to work.


Clearly I realize that companies would like to protect their intellectual property.  But seriously I could still defeat the obfuscation. Why bother if you want to be scared stay out of DOT NET land and stick to assembly where no one can decompile your work.  If your a component vendor you should know obfuscating libraries is nothing but a recipe for disaster.  Since I use Doffuscator for obfuscation I know, It sucks at library mode.  Maybe you should try some thing else or nothing.  Why do you feel compelled to make my life difficult? did I not give you enough money?

Comments [0]

Some XML/XSD code generators

After Reading Ricks troubles with OFX code generation I left a couple comments I thought would be useful for generating classes from xml/xsd.
XSDObjectGen from Microsoft. (vb or c#)
XSD.exe from Microsoft. (vb or c#)
XMLSPY from Altova. (Java, c++, c#)
CodeXS from Business Architects. ( c#) This is what i used for my MISMO mortgage application exporter. (follow the tools link.)

Comments [0]

How to add Atlas or ASP.NET 2.0 AJAX Extensions. to an existing ASP.NET Project

Comments [0]

StrongName Purgatory

I like to keep our applications Strong Named for a multitude of reason which can make finding third party assembly's a pain.  As simple as strong naming is many vendors are to lazy or ignorant to sign the assembly.  Friday I left the office with some unsigned enterprise library DLLs, being lazy I didn't want to recompiling them my strong name signature.  Thankfully I found a nifty little app by Alois Kraus that will add a strong names to unsigned assemblies.  I also happened upon a tool for removing a strong name from codeproject.  Not sure when it would be of use.

Comments [0]

Server side pagination revisited

One of my coworkers sent me note regarding pagination and Nettiers.

Saw your post:

  Easy server side pagination

If you haven’t noticed, Nettiers does automatic pagination at the stored proc and middle tier levels

This is true and I have noticed this before(all be it on a back-end web-server that didnt need paging), but there are still some projects that are not using Nettiers were the SQL stored procedure will help and there are always the cases that Netteirs doesn't write stored procedures for you. 

Comments [0]

Need a free datagrid for WPF?

    Chek out what Xceed is offering.  Free perpetual licenses for their WPF datagrid control.

Comments [0]

VS 2005 Build to the prior frame work

Why is it possible to target a different version of the DotNet framework? and is it a good idea? If so why can we not do this for the MFC library as well?
Comments [0]

ASP.NET AJAX 1.0 Released

ASP.NET AJAX download.  And also impressive the Codeplex community AJAX Control Toolkit

Comments [0]

Odd Exceptions

When file position matters
Comments [0]

WPF Is working now

I need to apologize to the WPF team, its not them its me.
Comments [0]

WPF a flop out of the box

WPF is insane at our office.
Comments [0]