Is C++/CLI a Second Class Language with Microsoft?

The post frequency on the Visual C++ team blog is reasonably high. Some posts deal with new features that were added to VC++ 2008. But, is Visual C++ a second-class citizen in the Visual Studio product group?  Recently the Visual Studio 2008 Product Comparison was released (don’t ask me why it wasn’t released at the same time as the products…).  In the product comparisons VC++ Express has an inordinate number of features that only it doesn’t have.  When you look at the Visual C++ 2008 Express Edition product sites, it seems pretty clear that it’s geared towards native-only software development.  Despite this … Continue reading Is C++/CLI a Second Class Language with Microsoft?

New Warning CS1060 in C# 3 (Visual Studio 2008)

Recompiling C# 2 (Visual Studio 2005) code in C# 3 (Visual Studio 2008), you may incounter a new warning that didn’t used to ocur: Warning CS1060: Use of        possibly unassigned field ‘fieldName’. Struct instance variables are initially unassigned if struct is unassigned. Dealing strictly with syntax, C# let’s you declare a value type (struct) with a reference member, for example: namespace Examples{    using System.Drawing;    public static class Program    {        public static void Main()        {            LabelEntry labelEntry;            labelEntry.Location.Point.X = 0;        }    }     public struct LabelEntry    {        public LabelLocation Location;        public String Label;    … Continue reading New Warning CS1060 in C# 3 (Visual Studio 2008)

New warning CS0809 in C# 3 (Visual Studio 2008)

There were several breaking changes (fixes) in C# 3 from C# 2.  One is the ability to attribute a member override with ObsoleteAttribute without also attributing it the virtual member in the base class. For example, the following will compile without error In C# 2 (Visual Studio 2005/.NET 2.0): using System; internal class BaseClass{    public virtual void Method()    {    }} internal class DerivedClass : BaseClass{    [Obsolete]    public override void Method()    {    }} public static class Progam{    public static void Main()    {        BaseClass baseClass = new DerivedClass();        baseClass.Method();    }} This same code will generate a CS0809 warning with C# 3. This change … Continue reading New warning CS0809 in C# 3 (Visual Studio 2008)

New Contributor to the C# Developer Centre

A new contributor to the C# Developer Centre has posted a new article.  This article goes into great detail about extension methods, what they are and how they’re implemented.  If you’re more than curious about this feature of the soon-to-be-release Visual Studio 2008 and C# 3.0, it’s a great read.  http://msdn2.microsoft.com/en-ca/vcsharp/bb905825.aspx

Web seminars on Visual Studio 2008

In the same fashion as Visual Studio 2008, Bill Lodin of IT Mentors is giving Web seminars on Visual Studio 2008.  Introducing Microsoft Visual Studio 2008, Microsoft Visual Studio 2008 – Next-Generation Web Applications, and Microsoft Visual Studio 2008 – Rich Windows Client Applications have been presented and recordings can be downloaded for each: Introducing Microsoft Visual Studio 2008 Microsoft Visual Studio 2008 – Next-Generation Web Applications Microsoft Visual Studio 2008 – Rich Windows Client Applications Future web seminars by Bill on Visual Studio 2008 will include: Microsoft Silverlight and Microsoft Visual Studio 2008 Building Better Web Services with Microsoft … Continue reading Web seminars on Visual Studio 2008

My Visual Studio 2008 Code Analysis Rules

Although a couple of suggestion for changes to existing rules seem to have made it into Visual Studio 2008 Beta 2, unfortunately, none of my suggestions for new Code Analysis rules made it into Orcas Beta 2 (and thus likely not in RTM). I was holding off on writing my own rules waiting for a stable SDK because I didn’t really want to write several different versions of the same rule.  But, unfortunately that also wasn’t in the cards for Orcas, so I’ve begun writing a few rules for Visual Studio 2008 that I feel are important. Some of the … Continue reading My Visual Studio 2008 Code Analysis Rules

Visual Studio 2008 Managed Code Analysis

I had a quick look at the managed code analysis (FxCop) rules the other day to see what’s new and what’s been removed.  Unfortunately, one of the analysis engines wasn’t able to be “resurrected” in time for the release, so there’s a few really useful rules that haven’t stayed with Beta 2 the reslease of Visual Studio 2008.  Fortunately, there have been some additions too.  Fortunately, there is not a deficit, we’re up by 12 new rules. Following are the new rules: DoNotRaiseExceptionsInUnexpectedLocations NormalizeStringsToUppercase SpecifyMarshalingForPInvokeStringArguments SpecifyStringComparison UseOrdinalStringComparison AvoidUnmaintainableCode ReviewMisleadingFieldNames AvoidExcessiveClassCoupling IdentifiersShouldBeCasedCorrectly IdentifiersShouldBeSpelledCorrectly IdentifiersShouldDifferByMoreThanCase IdentifiersShouldNotContainTypeNames OnlyFlagsEnumsShouldHavePluralNames ResourceStringCompoundWordsShouldBeCasedCorrectly ResourceStringsShouldBeSpelledCorrectly MarkAssembliesWithNeutralResourcesLanguage RemoveEmptyFinalizers CatchNonClsCompliantExceptionsInGeneralHandlers … Continue reading Visual Studio 2008 Managed Code Analysis