Quote Originally Posted by szlamany View Post
Do you place any value in the fact that MS has discontinued support? I see a value problem with that.
Sorry to bounce backward in the thread a bit, but I thought this was an interesting question. For any platform other than Windows I would say, "yes, absolutely it's a value problem," but IMO desktop Windows is the exception to this.

One of my biggest frustrations in developing for Windows is that Microsoft deprecates APIs in a totally haphazard fashion. It's not just a VB6 problem, either. It affects their whole development stack.

Easy example: GDI+ was deprecated after Vista released. But the entire System.Drawing namespace relies on it. Instead of fixing System.Drawing, Microsoft haphazardly releases parallel implementations (e.g. Graphics.DrawString vs TextRenderer.DrawText), which seem similar but are actually completely different under the hood. Of course, many parts of System.Drawing don't have "non-deprecated" replacements, so you have no choice but to stick with GDI+ despite its current state.

So deprecated support (which would be the correct term IMO, since VB6 does have an active support statement from Microsoft) is one of those things you just have to live with when developing for Windows, because Microsoft can't make up its mind about what support to continue and what support to drop, even in .NET. Trying to avoid things that are deprecated or even discontinued just isn't practical, unless you use a toolchain completely separate from .NET (e.g. "pure" C++ and as few direct WAPI interactions as possible).