Sneak Peak at Response Files (.rsp)

The Visual Studio has evolved so much that anyone hardly uses the CSC.exe tool and command line switches any longer. But there could be days when you are forced to opt for CSC.exe and the biggest woe is the huge list of switches/parameters that you need to associate each time you want to compile using csc.exe.

The response files (*.rsp) provides a cleaner way to find a solution for this problem, inevitably also taking caring of accidentally missing parameters. Response files is plain text files which contains a set of switches you would like to apply to your compilation command. Let’s consider the example.

csc.exe /out:jia.exe /t:exe program.cs

We have opted for a simple example. In real life, you could be referring to a bag full of dependencies, which you would have to include using the /r switch. But for sake of example, we will stick to simple example mentioned above. We will now write out response file to include the /out and /t switches.

/out:jia.exe
/t:exe

We will name it as “app.rsp”. Now, to compile our cs file, we would need to specify the rsp file using the @ prefix.

csc.exe @app.rsp program.cs

The .Net framework uses a similar approach internally by employing a global response file (csc.rsp). This is the reason we could compile the source files even when skip referencing commonly used dlls in command.

Advertisements

Zero Bug Bounce (ZBB)

ZBB or Zero Bug Bounce is a defect management technique originating from Microsoft that represents the moment (would prefer to call it a milestone) in time when the developers has managed to fix (or triaged) all the bugs reported by the QA team. The bounce refers to the fact the QA team might (and surely will) find bugs again increasing the count of bugs. The rate of discovery of bugs gradually tend to decrease as the application gets ready for release.

zbb

So what is the significance of ZBB ? It surely doesn’t mean the application is ready for release as there is a bounce expected. But the ripple or the bounce, gives the team a good indication of how stable the application is and how closer are we nearer to a release.  Surely, that is an useful indication which the development team and Managers would like.

Evil Code 0001 : Lambda and Ref/out

What would be output of following ?

        static void Main(string [] args)
        {
            List< int> numlist = new List< int>() {1,2, 3, 4, 5, 6, 7 };
            CalculateAndPrint( ref numlist);
        }
 
        public static void CalculateAndPrint( ref List< int> Num)
        {
            var n = Num.Where(d => d > Num[2]);
 
            foreach ( var item in n)
            {
                Console.WriteLine(item);
            }
        }

The most obvious answer is 4,5,6,7. However that’s not. This code refuses to compile because Lamba expressions  cannot accept variables that are declared in an outer scope.