Here is the response I would give:
@Alx said:
6. Additionally as mentioned in String Handling paragraph, relic paradigms deriving from non-OOP languages like Visual Basic should be strongly avoided in your code.
I appreciate your opinion in what should and shouldn't be avoided, but please allow me to remind you C# has a language has only expanded from these so called "relic" paragidms. Lambda expressions in C# are a direct result of the "relic" paradigm called Functional Programming. Also C# 4.0's largest feature is a direct pull from another "relic" paradigm called Dynamically Typed Programming. While Microsoft has had and will continue to have its issues, I suspect the people who create the very language of the code you are reviewing to have a better understanding of how the language is best used.
@Alx said:
Bad practices that have their roots back to VB can be found all around the project. The naming of the variables doesn’t follow certain and steady methodology and a lot of practices followed do not promote clean code which developers with C++ & Java background are accustomed to visually handle with.
If a C++ or Java developer cannot within a reasonable time discern what the code is saying, they do not have enough knowledge of C# to be working on this code and should direct it to the attention of someone who is more familiar with the language. The naming conventions applied are the same ones used by default from the IDE and are a convention for C# that Microsoft has created. While this convention is not set in stone and there are many possibilities with naming conventions, it should be understood that naming conventions are usually kept at an organization level meaning each company tends to have their own variation of a naming convention. As long as all the code within this organization follows this naming convention, an issue should not arise.
@Alx said:
With Blocks like the above, are strongly discouraged in OOP language. Treat class properties as imposed by OOP language semantics and not from relics come from other languages.
I agree that "With Blocks" are not among best practices in development but I fail to see where a "With Block" is being used here, especially since C# does not support this functionality. What I see above is called an "Object Initializer", a new feature to C# 3.0. It allows properties to be cleanly set in an objects creation without creating unnecessary constructors and causing a maintenance headache. Following your guidance though, properties should not even be used and should be replaced with a private variable with setter and getter methods. This would make code much easier to follow for those who come from a Java/C++ background, correct?
This guy is a boob and your boss shouldn't be paying him to review your code.