Screen .NET Developer Skills Set List & Experience Requirements
You are about to start a recruitment campaign to hire a .NET developer or a .NET Core developer. But once you receive your applications and resumes, you have to decide who is good enough to get to an on-site technical interview. This requires a technical screening process.
What a lot of technical recruiters don’t realize is that screening involves more than glancing through a resume. Why is that? On the one hand, good .NET developers are scarce so you don’t want to overlook a candidate with potential and good programming skills. On the other, you don’t want to invite weak candidates for an interview. This wastes the precious time of your IT team and coworkers.
So the question arises, how can you screen the .NET programming skills of your .NET developer candidates so that you interview the good candidates and filter out the bad ones? We have put together this guide to show what matters in .NET technology and how to screen candidates quickly and effectively. Are you ready? Let’s start with the basics.
Check out the average .NET developer salary.
What is .NET?
.NET is a software development framework from Microsoft. It provides a controlled programming environment where software can be developed, installed, and executed mainly on Windows-based operating systems (this is changing with the introduction of .NET Core). It was Microsoft’s response to the rapid growth of the Java platform and that’s why many concepts (starting from languages’ syntax and including the idea of executing programs on a virtual machine) of those two are similar.
The .NET platform supports many languages, like C#, Visual Basic .NET, F#, and C++ .NET. It also gives .NET developers a bunch of libraries and frameworks, making it very straightforward to create a large variety of applications (web, desktop, and mobile), including ones for the most sophisticated enterprise purposes. The main advantages of .NET include natural integration with other Microsofts products/tools like Office, the framework’s maturity and stability, and great support from the .NET developer community.
What should an IT Recruiter know about .NET and .NET skills?
We have come up with a list of the most important things IT recruiters should know when it comes to .NET.
- Just like in the Java environment, only being familiar with a specific language (in most cases it will be C#) is simply not enough. To be a productive .NET developer, you need to know libraries and frameworks, like ASP.NET, MVC, or Entity Framework. These are the building blocks of any non-trivial commercial application built using .NET.
- It is important not to rule out candidates if they don’t know a single framework from the requirements’ list. .NET frameworks are often similar and if the candidate has a decent knowledge of one of them, they can easily migrate to the required one. Despite not knowing the library or framework in question, they should still understand the ideas and principles behind it. If you want to learn more, we will give examples of these relationships a bit further down.
- Commercial experience is what really counts and brings real value to an employer. .NET knowledge from university, unless it’s very practical, doesn’t bring much to business coding. Of course, if you are looking for a junior .NET developer, education does matter. But remember that you can take into account programming experience, even if it is non-commercial. Ask if the candidate has done any hobby or open-source programming project that was done in .NET technology. And don’t forget to inquire about certifications in relevant topics from reputable platforms like Exam-Labs. This demonstrates a commitment to skill development and validates proficiency, further enhancing a candidate’s credibility.
.NET Core Framework
.NET is constantly evolving at a rapid pace. Previously, a common limitation of .NET was problems with porting the framework to other hardware architectures and operating systems. This among other factors eventually led to the creation of the .NET Core framework. This is now open source and supports Windows, Mac, and Linux.
.NET Core hasn’t replaced the previous version of .NET. For now, the two are being developed in parallel and it doesn’t seem that .NET Core will replace .NET anytime soon. There are many applications built using .NET and they will still have to be maintained and updated. Not only that, updating an application from .NET to .NET Core could be hard or even impossible for technological and/or financial reasons.
What’s the difference in .NET developer skill set needed between .NET and .NET Core?
Well, both are quite similar overall, with some differences in details depending on libraries and components. Generally speaking, a .NET developer should be able to get comfortable with using .NET Core pretty easily. That said, there are some specific parts of .NET like ASP.NET Web Forms, or .NET C++ language which currently aren’t supported by .NET Core, and no one knows if they ever will be.
For now .NET Core is usually used in low-risk new projects that are just starting from scratch (startups etc.) It’s possible to use some .NET components in .NET Core apps (but not the other way round). Some companies may try to rewrite their existing software into .NET Core, or just write new modules using .NET Core. To do this, there will be a demand for developers who know both .NET and .NET Core.
Due to the similarities between .NET and .NET Core, we will refer to both of them as .NET from here on out, pointing out differences if needed.
How to verify .NET developer skills in the screening phase
IT recruiters can use a few different screening methods to assess Dot NET developer skills. These can be based on anything from the candidate’s resume, a technical interview or video calls, all the way to online coding tests.
Below you will find some useful and practical recruiting tips to help you verify .NET developer skills using each method.
3.1. Screening a.NET developer using their resume
As an IT recruiter, you can find some really valuable information in the resumes you get from .NET developers. But to unlock the valuable information they contain, you have to understand what is written there without getting confused by any of the .NET terms they use. If you are technical recruiter looking for a .NET developer, then you should at least be familiar with all of its frameworks, build tools, and other resources in order to know what you are looking for. You should be able to speak the same language as your candidates (or at least understand basics the candidate is talking about).
That’s why we prepared this basic .NET glossary. Take a second to brush up on the terms it contains.
.NET glossary for technical recruiters
.NET framework versions | .NET 1.0 – .NET 4.7.2 |
Languages | C#, Visual Basic .NET, F#, C++ .NET |
Web frameworks | ASP.NET MVC 1-5, ASP.NET Web API 1-2, ASP.NET Web Forms (old school) |
Desktop frameworks | WPF, Windows Forms (old school) |
Communication frameworks* | WCF, ASP.NET Web API, 1-2, Web Services (old school) |
IoC Containers | Castle Windsor Container, Unity, Structure Map, Ninject, AutoFac |
ORM | Entity Framework 1-6, nHibernate 1-5, Linq2SQL (depreciated), ADO.NET |
C# unit testing frameworks | nUnit, SpecFlow, MSTest, xUnit |
C# build tools | TFS, Team City, Jenkins, Cruise Control .NET, Azure DevOps (old TFS) |
.NET Core glossary for technical recruiters
.Net Core framework versions | .NET Core 1.0-2.2 |
Languages | C#,Visual Basic .NET, F# |
Web frameworks | ASP.NET Core MVC 1.0-2.2 |
Desktop frameworks | None now but coming in .NET Core 3 |
Communication frameworks* | Web Api is now integrated into ASP.NET Core MVC 1.0-2.2 |
IoC Containers | Castle Windsor Container, Unity, Structure Map, Ninject, AutoFac |
ORM | Entity Framework Core 1.0-2.2 |
C# unit testing frameworks | nUnit, MSTest, xUnit |
Backend technical .NET developer skills and qualification that make a candidate more valuable
- Azure
- Languages (C# plus VB.NET or F#)
- Frameworks (most importantly ASP.NET MVC and Entity framework)
- Databases (MySQL, SQL Server, Azure SQL)
- MTA – Microsoft Technology Associate
- MCSA (Web Applications, Universal Windows Platform)
- .NET Core
Azure
Nowadays, Microsoft has its own cloud platform – Azure. And it’s getting more and more popular as time goes one. The demand for developers who are able to use its functions is also rising. The pricing of Azure services is based on the usage of computing power and resources needed. This means that careless software development may lead to increased bills, even after app deployment. The set of new ideas and technologies that comes with Azure doesn’t make it easier to create optimal software since many developers haven’t had enough time to become experts in those solutions yet.
Let’s see at a glance what issues the .NET developers could be familiar to in the context of Azure:
- Web apps
- Serverless functions
- Cosmos DB
- Service fabric
- Blog storage
- Containers and microservices
Azure is a very deep subject that comes with many new functionalities like these and many more.
Now that you are familiar with .NET basics, we can go into further detail. If you’re not a technical person, then it’s easy to get confused by all the different technology names and abbreviations. If the candidate says that they know C#, does it mean that they are familiar with Visual Basic .NET? Or if the applicant knows ASP.NET MVC 1, does it mean they can also use ASP.NET MVC 3? Just keep on reading and you will get an answer.
The most common .NET technology names that are used interchangeably:
- ASP.NET, ASP.NET MVC, .NET MVC (Model View Controller)
- EF, Entity Framework, ADO.NET Entity Framework
- Windows Communication Foundation, WCF, SOA, Service-Oriented Architecture
How close respective versions of .NET technologies are to each other:
- ASP.NET MVC 3/4/5 are similar
- ASP.NET Core MVC is a bit different than ASP.NET MVC 5
- ASP.NET MVC 1 and ASP.NET MVC 2 are similar
- ASP.NET MVC 3 is different than ASP.NET MVC 2
- C# 7 (there were a few of them: 7.0;7.1;7.2;73) is a bit different than C# 6.0
- C# 7 is used in .NET Core and .NET 4.6.2+
- C# 6.0 is a richer version of C# 5.0 which is a richer version of C# 4.0
- C# 4.0 is a bit different than C# 3.0
- C# 3.0 is different than C# 2.0
- Entity Framework 7.0 was renamed Entity Framework Core because it was completely rewritten from scratch
- Entity Framework Core is a bit different than Entity Framework 6.0 Some things seem the same in the code but works in a different way under the hood.
- Entity Framework 6.0 is similar to Entity Framework 5.0
- Entity Framework 5.0 is similar to Entity Framework 4.0
It is also valuable to be aware of the following relations:
- C# is totally different than Visual Basic .NET
- ASP.NET MVC is totally different than ASP.NET Web Forms
- WPF is totally different than Windows Forms
- All IoC containers are very similar conceptually. If someone knows one, then it’s easy to adapt to another
- .NET Core doesn’t need an IoC container as it’s come with its own, but it can utilize the existing ones.
- nHibernate is similar to Entity Framework
- Entity Framework and nHibernate are totally different than ADO.NET
- RESTful Services: If someone knows ASP.NET Web Api then will be able to deal with the others
How important are .NET certificates for assessing a .NET developer’s coding skills?
Certificates are a bit of a controversial subject in the .NET world. Some companies and specialists say that they are the best proof that the candidate has in-depth knowledge of .NET. Others believe that exams hardly test any practical .NET skills at all, concentrating instead on exceptions and theoretical knowledge.
It is safe to say that certificates don’t necessarily prove anything. Many great developers don’t have any as they don’t see any value in them. Others, who may not have a lot of commercial experience, will try to “boost” their market position by taking a certification exam. Obviously, one can say that having a certificate is better than not having any, but recruiters should remember that it is rather a “nice to have” than a requirement. A candidate’s best proof of quality is their commercial experience and references.
In .NET, Microsoft certifications obviously matter most when it comes to software development. They can be divided into several levels:
1. MTA – Microsoft Technology Associate.
It’s the first level of certification and certifies that a candidate has had exposure to Microsoft technologies. To receive an MTA, a candidate is required to pass one of its exams. The is a wide spectrum to choose from, but there are a couple of exams that are significantly related to development:
- Exam 98-361 Software Development Fundamentals
- Exam 98-364 Database Fundamentals
- Exam 98-375 HTML5 Application Development Fundamentals
- Exam 98-382 Introduction to Programming Using JavaScript
- Exam 98-383 Introduction to Programming Using HTML and CSS
Please note, that having an MTA isn’t required to start an MCSA level examination, so treat it as a bonus.
2. MCSA
It’s the second level and requires no prerequisites. A candidate can earn two versions of the certification:
- MCSA:Web Applications.
For this one, the candidate will need to pass:
Exam 70-486 Developing ASP.NET MVC Web Applications
And at least one of following:- Exam 70-483 Programming in C# OR
- Exam 70-480 Programming in HTML5 with JavaScript and CSS3
- MCSA: Universal Windows Platform. The candidate will need to pass both:
- Exam 70-483 Programming in C#
- Exam 70-357: Developing Mobile Apps
3. MCSD: App Builder
To earn the MSCD: App Builder certification you will need to have at least an MCSA in Web Applications or Universal Windows Platform
To earn this certification, the candidate should pass:
- Exam 70-487 Developing Microsoft Azure and Web Services
More information about current certifications can be found here.
Please note that there are plenty of certifications (MCP, MCTS, MCPD) and exams (especially regarding older versions of .NET, WPF) that has been retired. Those are also notable for a candidate to have. It is also valuable to have passes plain exams, even if the candidate didn’t continue on the path to certification.
Other information on a resume that can show the developer’s .NET skills
When reading a candidate’s resume, pay attention to the following points. They can suggest that your candidate is likely to be valuable to your IT team.
- Experience in large projects, including dealing with large volumes of data. This suggests that the candidate probably already knows how to handle issues which can emerge in any IT project.
- Participation in conferences, programming meetups. This is a sign that the candidate has an above-average interest in new trends and could be a passionate and skillful developer.
- Participation is open-source projects. This is a sign that the candidate probably has an above-average knowledge of .NET technology and would probably do great as a part of any project.
3.2. Technical screening of .NET developer skills during a phone/video interview
Drawing reliable conclusions about your candidate’s Dot NET developer skills from the resume on its own is pretty difficult. That’s why IT recruiters often turn to phone or video interviews to get to know their candidate better. If the candidate does well, they are invited for an on-site technical interview with the IT team, so it’s worth to think through the questions you want to ask carefully.
The questions themselves can vary based on the position you are recruiting for and the specific skills you want to verify. Based on my experience I would recommend following general questions to find out more about candidate’s .NET developer skills:
1. NET interview question about the developer’s experience
Q1: What was the most interesting project you’ve participated in? Can you describe it and say why you considered it to be so attractive?
Why you should ask Q1: It gives you an idea of the complexity of the projects which candidate has participated in. Importantly, it reveals their preferences (algorithms, front-end, database).
2. .NET interview questions about the developer’s knowledge and opinions
Q2: Could you explain the difference between similar frameworks A and B (for example the difference between ASP.NET MVC and Web Forms)?
Why you should ask Q2: If the candidate can explain the difference in an understandable way to a non-technical person, it indicates that they communicate well with business users. Additionally, a clear explanation suggests a deep understanding of the problem (in this case, knowledge of both frameworks).
Q3: Do you like to participate in the analysis, design and deployment phases of an IT project or do you prefer to concentrate on the pure development of a well-described task? Why?
Why you should ask Q3: If the candidate prefers the first option, it means they would probably feel better in an agile-like project (both small and large organization) and can evolve to a different role later (business analysts, architect, scrum master). If they prefer to concentrate on pure development, it suggests the candidate would feel better in a team with well-defined roles and boundaries (a large organization).
Q4: I’ve noticed you listed framework X on your resume. What’s your opinion about it? Is it a good choice?
Why you should ask Q4: An open question like this gives the candidate an opportunity to demonstrate how much they know about a specific framework. You can also play devil’s advocate based on their answers “But why not use framework Y for that?” This way, you can see how the candidate makes decisions concerning technology, justifies their choices, and whether their opinions are in line with your IT team’s opinions.
3. Behavioral question for a .NET developer
Q5: Think about a programming project decision you made that was a failure. Why do you think it was a mistake? Why did it happen? Could you have done anything differently in order to turn it into success? What steps did you take to improve the situation? What did you learn from this experience?
Why you should ask Q5: That type of question will help you find out how the candidate perceives their decisions, draws conclusions, and how much they learned from their previous experience.
3.3. Technical screening of .NET developer skills using an online coding test
Online coding tests can be a great tool to asses .NET developers skill. In fact, they will tell you more than a resume screen or phone interview ever can. Keep reading to find to find out how programming tests can streamline your technical screening process and what should they include in order to provide you with accurate information.
Should .NET online coding tests be the primary or an additional method for screening?
Depending on your company’s approach, coding tests can either be used as the primary method of screening .NET developer skills or an additional one, next to resume analysis and a phone interview. More and more companies are turning to coding tests as the primary method for screening as they give IT recruiters a couple of crucial benefits:
- The most important thing a .NET developer needs is programming skills. Because of this, they should be verified carefully and in an accurate way at the very beginning of IT recruitment process.
- Technical recruiters should only spend their time getting to know promising candidates who passed the programming test.
- Your technical interviewers have a limited amount of time they can spend on interviewing so you should make sure that they only interview a few candidates with the right .NET skills.
- Candidates that take coding test show their willingness to participate in your recruitment process which has a positive impact on candidate’s engagement. That’s why for an on-site interview no-shows rarely happen.
Which.NET online programming test should you choose?
In order to screen your candidate’s .NET developer skills accurately, the coding test you give them has to give you a full picture of their abilities. They have to be formulated in such a way so that they assess programming skills and ability to solve real-life coding challenges and not rely on theoretical knowledge. A lot of experienced programmers can be put off by coding tests if the tests only consist of multiple choice questions. The candidates get frustrated because they can’t show their experience and .NET developer skill set in action.
That’s why you should choose .NET coding tests carefully. Below you will find my top 5 features you should be looking for:
- .NET programming tests should verify not only .NET developer skills in general but also frameworks and libraries. A .NET developer who is familiar with these resources brings a lot of value for the employer and generally works much more much more efficiently.
- .NET coding tests should consist of programming tasks similar to and at the same level of difficulty as the responsibilities the candidates will have if they get the job. Tests shouldn’t be based on algorithmic tasks as you cannot verify whether a candidate can solve a real-life coding challenge.
- It’s worth considering preparing .NET programming tasks based on the company’s code. This is the best way to imitate the challenges the candidate will have once they get the job.
- Coding tests can also include programming task with code review challenges to test .NET developer skills. It gives you information about the experience of the candidate, their approach to code quality, and how efficiently they perform debugging and find traps. Such an assessment should be obligatory when recruiting senior .NET developer.
- There is no point in forbidding the programmer from using external sources. The best way to tis to create them such an environment like they have at work on a daily basis, so open book exam is much more appropriate. Moreover, the candidate should be able to use their preferred IDE to feel comfortable when solving a programming challenge.
DevSkiller ready-to-use online .NET developer coding assessment tests
At DevSkiller we provide companies with an infrastructure that lets them create their own programming tests, where they can use their own code base, whole IT projects using frameworks and libraries, to test programmers online. However, we also have some ready-to-use .NET coding tests which you can use in your recruitment campaign.
- Tested skills
- Duration
- 85 minutes max.
- Evaluation
- Automatic
- Test overview
-
Choice questions
assessing knowledge of .NET, .NET Core, ML.NET, QA, Testing, xUnit, NUnit
Code gaps
assessing knowledge of NUnit, QA
Programming task - Level: Medium
QA | .NET | NUnit | Tests for Document Management System API - Implement an NUnit test that checks business requirements for a Documents API for a Document Management System
- Tested skills
- Duration
- 36 minutes max.
- Evaluation
- Automatic
- Test overview
-
Choice questions
assessing knowledge of .NET, NUnit, QA
Code gaps
assessing knowledge of NUnit, QA
Programming task - Level: Easy
QA | .NET, NUnit | Coffee machine software unit tests - Write thetests in the
NUnitExercise.Tests/CandidateTests.cs
class to verify theCoffeeMachineMain
class.
- Tested skills
- Duration
- 48 minutes max.
- Evaluation
- Automatic
- Test overview
-
Choice questions
assessing knowledge of QA, Selenium, .NET, C#
Code gaps
assessing knowledge of Java, QA, Selenium
Programming task - Level: Medium
QA | .NET, Selenium | Data extraction - Implement methods in class SeleniumTask.SeleniumExecutor to pass successfully all tests.
- Tested skills
- Duration
- 51 minutes max.
- Evaluation
- Automatic
- Test overview
-
Choice questions
assessing knowledge of .NET, NUnit, QA
Code gaps
assessing knowledge of NUnit, QA
Programming task - Level: Hard
QA | .NET, NUnit | Email service unit tests - Write tests in class NUnitExercise.Tests/CandidateTests.cs to verify Email Service class
- Tested skills
- Duration
- 52 minutes max.
- Evaluation
- Automatic
- Test overview
-
Choice questions
assessing knowledge of .NET, QA, NUnit, Testing, C#, Selenium
Code gaps
assessing knowledge of QA, .NET, NUnit
Programming task - Level: Hard
QA | .NET, NUnit | Business Data Generator Interface - Implement the NUnit tests for the
IDataProcessing
interface into theNUnitDataProcessing.Tests.DataProcessingTest
project that verifies business requirements.
- Tested skills
- Duration
- 73 minutes max.
- Evaluation
- Automatic
- Test overview
-
Choice questions
assessing knowledge of .NET, WCF, WCF features, Web applications & Web Services, Windows Communication Foundation, BasicHttpBinding, NetNamedPipeBinding
Code gaps
assessing knowledge of .NET, Basic Common topics, C# basics, C#
Programming task - Level: Medium
.NET | WCF Currency Exchange service - Implement the rest of the methods for the Currency Exchange Rates WCF Service.
- Tested skills
- Duration
- 81 minutes max.
- Evaluation
- Automatic
- Test overview
-
Choice questions
assessing knowledge of .NET, C#
Code gaps
assessing knowledge of .NET Core, .NET Internals, dotnet build, Advanced debugging, Captures a dump, dotnet-dump, Diagnostic trace, dotnet-trace
Programming task - Level: Easy
.NET | .NET Core | Bookstore Inventory - Implement a couple of methods in .Net Core to manage bookstore inventory.
- Tested skills
- Duration
- 51 minutes max.
- Evaluation
- Automatic
- Test overview
-
Choice questions
assessing knowledge of .NET, C#, .NET Core, Basic Common topics, Logging
Code gaps
assessing knowledge of .NET Core, .NET Internals, dotnet build, Basic Common topics, C#, Logging, Logging Extensions in .NET Core, dotnet restore
Programming task - Level: Easy
.NET | .NET Core | Comments Challenge - Implement an Index action for posts controller so that posts can be rendered appropriately into the Posts/Index view in .Net Core.
- Tested skills
- Duration
- 43 minutes max.
- Evaluation
- Automatic
- Test overview
-
Choice questions
assessing knowledge of .NET, C#
Code gaps
assessing knowledge of .NET, Basic Common topics, C# basics, Advanced memory management, Object - disposing, Advanced debugging, dotnet-trace tool
Programming task - Level: Medium
.NET | Anonymizer - Implement couple of anonymization methods, probably using regular expressions.
- Tested skills
- Duration
- 49 minutes max.
- Evaluation
- Automatic
- Test overview
-
Choice questions
assessing knowledge of .NET, C#, Message Patterns, WCF, Web applications & Web Services, Windows Communication Foundation, Metadata
Code gaps
assessing knowledge of HTML, HTML5, CSS
Programming task - Level: Hard
.NET | RSA Decryption WCF Service - Finish implementation of the WCF interface which can decrypt and verify data encrypted using RSA.
Editor’s note: This post was originally published March 31, 2016. It has been extensively updated to represent the latest technical information and best practices.