5 Key Questions a Good .Net Developer Should be Able to Answer
The .Net framework is a Microsoft platform that incorporates a variety of applications and tools. It supports the development and running of next generation XML Web services and applications. In order for someone to be considered proficient in .Net development, they need to be well grounded in internet standards such as HTTP. XML, SOAP and UDDI. An intimate knowledge of a variety of programming languages is also a must, and they include VB.NET, C#, F# and IronPython. A good .Net developer should be able to confidently answer the following questions:
1. When should one use an IoC container?
This is a great question for separating the amateurs from the pros. Most people will either not have heard of IoC containers or have a vague idea that it has something to do with design patterns and testing. Real .Net pros will be familiar with IoC and view them as a valuable efficiency creating tool. If the answer starts with dependency injection, you can be fairly certain they know what they are talking about. This allows for behaviors to be modified without making any changes to services.
2. When and how should you use interfaces?
Although this is a fairly general programming question, how one answers it can be quite telling. Most people with a basic IT background will be familiar with the concept, and that Microsoft creates interfaces. A seasoned .Net developer will know that interfaces provide control and reduce compatibility problems by allowing the development of enhanced implementations without changing the existing code.
3. What is a static class, and when should it be used?
This one is more or less common knowledge to anyone with a basic programming background. Most programmers will know that static classes are used to cache information throughout an application. However, creating a static class in .Net requires a higher level of proficiency. A good answer would be that static classes are used to organize methods that do not have associations with particular objects. A static class is inherently faster, as it does not require object creation in order to call its methods.
4. When and where should you use the statement: Assert.AreEqual?
If your answer to this question is debugging, you are only partially correct. Assert.AreEqual statements are most useful for unit testing. Unit testing is a great measure of a coder’s prowess, as it reports the precision of a code’s behavior and allows for a cleaner and more productive code. The most common unit testing frameworks are NUnit and Microsoft’s MS Test.
5. How do you use reflection and when?
Reflection is a way for you to pose questions to the .Net framework, but it is also a whole lot more. It allows you to gather information about loaded assemblies and their defined types. Reflection can also be used to create, invoke and access type instances. Reflection is particularly suitable to .Net as it builds types and implements improvements and changes in real time.