This blog post is part of our Interview Laid Bare series:


!! Important !!

Very good knowledge of the Software Engineering questions is a prerequisite. Please make sure you go through all of them and are able to have an in-depth discussion about the topics mentioned there.

Technology knowledge (represented by the questions in this post) is a plus, but we won’t reach this part of the interview unless you pass the Software Engineering questions part first.

You can read more about why we put so much emphasis on Software Engineering knowledge in our introductory blog post


.NET general

What is the difference between a .DLL and an .EXE?

What are the two broad categories of types in .NET. Differences and similarities. How come that if all types are derived from Object, which is a reference type, the value types are allocated on the stack?

What is the difference between early-binding and late-binding?

What is the GAC? What problems does it solve?

What is an assembly Qualified Name? Is it a file name? How is it different?

Can DateTimes be null?

What is the difference between Int32 and int.

What’s the method GetHashCode() good for.

How does the generational garbage collector in .NET CLR manage object lifetime? What is non-deterministic finalization?

What is the difference between Finalize() and Dispose()? When do you use IDisposable?

How is the using() pattern useful?

Delegates? Purpose and usage. How are delegates different from events?

Explain the use of virtual, sealed, override, and abstract.

What is keyword “this” used for? Can “this” be used within a static method?

What is Reflection?

What is wrong with a line like this? DateTime.Parse(myString);

What is the difference between:

	catch(Exception e)
	{
	  throw e;
	}

and

    catch(Exception e)
	{
	  throw;	
	}	

What are PDBs? Where must they be located for debugging to work?

What is difference between Debug and Release build? Is there a significant speed difference? Why or why not?

Does JITing occur per assembly or per method?

What is the difference between a.Equals(b); and a = = b;

In the context of a comparison what is object identity versus object equivalence?

Is string a value type or a reference type?

What are generics? Implementation in clr? Constraints?

What are iterators? What does the yield keyword do?

What are nullable types?

What are anonymous methods?

Covariance and contravariance

What is LINQ? When does a LINQ query execute and how is that actually implemented?

What are lambda expressions. Are they closures? What is the “modified closure” gotcha?

What does the var keyword do

What’s an anonymous type and what’s it good for

How does async/await work behind the scenes? How is the execution suspended then resumed?

Resources


.NET Web API

What is an action filter? How many types exist?

Can controllers be async? How does that help?

How can we implement authentication?

How can we implement authorization?

Should user input data validation occur server-side or client-side? Why?

How can you define services/dependencies and inject them where needed? How can you control their lifetime (e.g. for the duration of a single request)


WPF / XAML / WinUI

Describe XAML. How is XAML actually used at runtime?

Describe several layout panels (Grid, StackPanel etc)

How does data-binding work? Can you use a static property as a data binding source ?

What kind of templates exist and what are their uses?

What are styles?

What are behaviors, triggers and triggeractions?

Describe the kinds of triggers that exist

What are user-controls?

What are custom controls and how are they built?

How can applications be localized?

Describe the MVVM pattern and how it helps

How do animations work ?

How are you able to reference custom classes in xaml files ?

What is WinUI and how is it different from WPF / Universal Windows Apps?

Resources

Written by:
Adi.jpg
Adrian Hara

Managing partner and geek wannabe