Transcription

1.NET Interview Questions andanswer:Practical ImplementationThis free book is provided by courtesy of C# Corner and Mindcracker Network and itsauthors. Feel free to share this book with your friends and co-workers. Please do notreproduce, republish, edit or copy this book.Nitin PanditSoftware Engineer,Microsoft.Net Consultant NoidaC# corner Delhi Chapter LeadC# corner MVP 2016 C# CORNER.SHARE THIS DOCUMENT AS IT IS. PLEASE DO NOT REPRODUCE, REPUBLISH, CHANGE OR COPY.

2INDEXPage noChapter 1:- .NET CLR Interview Questions and Answers4 – 17Chapter 2:- C# Interview Questions And Answers18 – 70Chapter 3:- Most Asked ADO.NET Interview Questions And Answers71 – 116Chapter 4:- ASP.NET Interview Questions And Answers117 – 166Chapter 5:- WCF Interview Questions and Answers167 – 223Chapter 6:- Most Asked ASP.NET MVC Interview Questions and Answers 224 – 278Chapter 7:- WPF Interview Questions And Answers279 – 337Chapter 8:- Most Asked SQL Server Interview Questions and Answers338 – 400 2016 C# CORNER.SHARE THIS DOCUMENT AS IT IS. PLEASE DO NOT REPRODUCE, REPUBLISH, CHANGE OR COPY.

3About AuthorHe is a Microsoft Professional having Master's degree in Computer Science. With over 5years of experience his rick skill set includes designing, integrating, implementing, ORMwith LINQ, WCF, MVC & managing IT/Web applications. He is an expert in C#.NETADO.NET, LINQ to SQL, LINQ to EF, ASP.NET 2.0/3x/4.0, WCF, MVC 5.0 (Razor),WPF and Silverlight, including client side technologies jQuery and AngularJS.He has trained more than one lakh students and professionals as a speaker forworkshops and AppFests conducted in more than 25 universities of North India.Nitin PanditSoftware Engineer,Microsoft.Net Consultant NoidaC# corner Delhi Chapter LeadC# corner MVP 2016 C# CORNER.SHARE THIS DOCUMENT AS IT IS. PLEASE DO NOT REPRODUCE, REPUBLISH, CHANGE OR COPY.

.NET CLR Interview Questions and AnswersQuestion 1: What is the .NET Framework?Answer: The .NET is a Framework, which is a collection of classes of reusable libraries given byMicrosoft to be used in other .NET applications and to develop, build and deploy many types ofapplications on the Windows platform including the following: Console ApplicationsWindows Forms ApplicationsWindows Presentation Foundation (WPF) ApplicationsWeb ApplicationsWeb ServicesWindows ServicesServices-oriented applications using Windows Communications Foundation (WCF)Workflow-enabled applications using Windows Workflow Foundation (WF)that primarily runs on the Microsoft Windows Operating System. 2016 C# CORNER.SHARE THIS DOCUMENT AS IT IS. PLEASE DO NOT REPRODUCE, REPUBLISH, CHANGE OR COPY.4Chapter 1

Answer: The CLR stands for Common Language Runtime and it is an Execution Environment. Itworks as a layer between Operating Systems and the applications written in .NET languages thatconforms to the Common Language Specification (CLS). The main function of CommonLanguage Runtime (CLR) is to convert the Managed Code into native code and then execute theprogram. The Managed Code compiled only when it is needed, that is it converts the appropriateinstructions when each function is called. The Common Language Runtime (CLR)’s just in time(JIT) compilation converts Intermediate Language (MSIL) to native code on demand atapplication run time.When a .NET application is executed at that time the control will go to Operating System, thenOperating System create a process to load CLR.The program used by the operating system for loading CLR is called runtime host, which aredifferent depending upon the type of application that is desktop or web based application i.e.The runtime host for desktop applications is API function called CorbinToRuntime.The runtime host for web based applications is ASP.NET worker process (aspnet-wp.exe). 2016 C# CORNER.SHARE THIS DOCUMENT AS IT IS. PLEASE DO NOT REPRODUCE, REPUBLISH, CHANGE OR COPY.5Question 2: What is CLR?

CLR services Assembly ResolverAssembly LoaderType CheckerCOM marshalledDebug ManagerThread SupportIL to Native compilerException ManagerGarbage CollectorQuestion 3: What is CTS?Answer: The Common Type System (CTS) standardizes the data types of all programminglanguages using .NET under the umbrella of .NET to a common data type for easy and smoothcommunication among these .NET languages.To implement or see how CTS is converting the data type to a common data type, for example,when we declare an int type data type in C# and VB.NET, then they are converted to int32. Inother words, now both will have a common data type that provides flexible communicationbetween these two languages. 2016 C# CORNER.SHARE THIS DOCUMENT AS IT IS. PLEASE DO NOT REPRODUCE, REPUBLISH, CHANGE OR COPY.6CLR runtime engine comes with set of services, which are classified as follows

Answer: One of the important goals of .NET Framework is to support Multiple Languages. Thisis achieved by CLS. For multiple languages to interoperate, it is necessary that they should go onin common in certain features such as Types that are used. For example, every language has itsown size and range for different data types. Thus CLS is the agreement among language designersand class library designers concerning these usage conventions.Question 5: What is managed code?Answer: The resource, which is within your application domain is, managed code. The resourcesthat are within domain are faster.The code, which is developed in .NET framework, is known as managed code. This code isdirectly executed by CLR with help of managed code execution. Any language that is written in.NET Framework is managed code.Managed code uses CLR which in turn looks after your applications by managing memory,handling security, allowing cross - language debugging, and so on. 2016 C# CORNER.SHARE THIS DOCUMENT AS IT IS. PLEASE DO NOT REPRODUCE, REPUBLISH, CHANGE OR COPY.7Question 4: What is CLS?

8 2016 C# CORNER.SHARE THIS DOCUMENT AS IT IS. PLEASE DO NOT REPRODUCE, REPUBLISH, CHANGE OR COPY.

Answer: When we compile our .NET code then it is not directly converted to native/binary code;it is first converted into intermediate code known as MSIL code which is then interpreted by theCLR. MSIL is independent of hardware and the operating system. Cross language relationshipsare possible since MSIL is the same for all .NET languages. MSIL is further converted into nativecode.Question 7: What is JIT?Answer: A Web Service or Web Forms file must be compiled to run within the CLR.Compilation can be implicit or explicit. Although you could explicitly call the appropriatecompiler to compile your Web Service or Web Forms files, it is easier to allow the file to becomplied implicitly. Implicit compilation occurs when you request the .asmx via HTTP-SOAP,HTTP-GET, or HTTP-POST. The parser (xsp.exe) determines whether a current version of theassembly resides in memory or in the disk. If it cannot use an existing version, the parser makesthe appropriate call to the respective compiler (as you designated in the Class property of the.asmx page).When the Web Service (or Web Forms page) is implicitly compiled, it is actually compiled twice.On the first pass, it is compiled into IL. On the second pass, the Web Service (now an assembly inIL) is compiled into machine language. This process is called Just-In-Time JIT compilationbecause it does not occur until the assembly is on the target machine. 2016 C# CORNER.SHARE THIS DOCUMENT AS IT IS. PLEASE DO NOT REPRODUCE, REPUBLISH, CHANGE OR COPY.9Question 6: What is MSIL?

10JIT Types:Question 8: What is portable executable (PE)?Answer: Every .NET program first compiles with an appropriate compiler like if we write aprogram in C# language then it gets compiled by C# compiler (i.e. csc.exe).In .NET framework every program executes (communicate) in an operating system by using CLR(Common Language Runtime).Managed module is standard windows Portable Executable (PE) file which contains the followingparts. 2016 C# CORNER.SHARE THIS DOCUMENT AS IT IS. PLEASE DO NOT REPRODUCE, REPUBLISH, CHANGE OR COPY.

PE Header-11 It is similar to common object file format. CLR HeaderThis contains CLR version required to run this managed module, location & metadata.This also contains entry point of function i.e. the address of entry point of function. MetadataThis contains table information means variable with its data types and default values,functions / methods which are declared & defined in our program.Question 9: What is an application domain?Answer: An Application Domain is a logical container for a set of assemblies in which anexecutable is hosted. As you have seen, a single process may contain multiple ApplicationDomains, each of which is hosting a .NET executable. The first appdomain created when the CLRis initialized is called the default AppDomain and this default one is destroyed when the Windowsprocess is terminated. An AppDomain can be independently secured.An AppDomain can be unloaded.Independently configured.No mutual intervention by multiple appdomains.Performance 2016 C# CORNER.SHARE THIS DOCUMENT AS IT IS. PLEASE DO NOT REPRODUCE, REPUBLISH, CHANGE OR COPY.

12How does an AppDomain get createdThe AppDomain class is used to create and terminate Application Domains, load and unloadassemblies and types and enumerates assemblies and threads in a domain. The following tableshows some useful methods of the AppDomain class:MethodsDescriptionCreateDomain()It allows us to create a new Application Domain.CreateInstance()Creates an instance of type in an external assembly.ExecuteAssembly()It executes an *.exe assembly in the Application Domain.Load()This method dynamically loads an assembly into the current app domain.UnLoad()It allows us to unload a specified AppDomain within a given process.GetCurrentThread()Returns the ID of the active thread in the current Application Domain.In addition, the AppDomain class also defined as a set of properties that can be useful when you 2016 C# CORNER.SHARE THIS DOCUMENT AS IT IS. PLEASE DO NOT REPRODUCE, REPUBLISH, CHANGE OR COPY.

PropertiesDescriptionCurrentDomainGets the Application Domain for the currently executing thread.FriendlyNameGets the friendly name of the current Application Domain.SetupInformation Get the configuration details for a given Application Domain.BaseDirectoryGets the directory path that the assembly resolver uses to probe for assemblies.Question 10: What is an assembly?Answer: An Assembly is a basic building block of .NET Framework applications. It is basicallycompiled code that can be executed by the CLR. An assembly is a collection of types andresources that are built to work together and form a logical unit of functionality. An Assembly canbe a DLL or exe depending upon the project that we choose.Assemblies are basically the following two types:1. Private Assembly2. Shared AssemblyQuestion 11: What are the contents of assembly?Answer: Assembly An Assembly is a basic unit of application deployment and versioning.An Assembly is also called the building block of a .NET application.An Assembly is either an .exe or .dll file.An Assembly structure consists of the following parts: Assemblies manifest (name, language and version).CIL code (logic part).Type information (Datatype).Resources. 2016 C# CORNER.SHARE THIS DOCUMENT AS IT IS. PLEASE DO NOT REPRODUCE, REPUBLISH, CHANGE OR COPY.13wish to monitor the activity of a given Application Domain.

14Question 12: What are the different types of assembly?Answer: An Assembly contains metadata and manifest information. The reason for theemergence of assembly concept was to overcome the common "DLL Hell" problem in COM. Theassembly contains all the code, resources, metadata and even version information. Metadatacontains the details of every "type" inside the assembly. In addition to metadata, assemblies alsohave a special file called Manifest. It contains information about the current version of theassembly, culture information, public key token if available and other related information.There are in all 3 different types of assemblies:1. Private Assembly2. Shared or Strong named assembly3. Satellite assemblyQuestion 13: What is a dynamic assembly?Answer: Technically, the act of loading external assemblies on demand is known as DynamicLoading. Using the Assembly class, we can dynamically load both private and shared assembliesfrom the local location to a remote location as well as, explore its properties.To illustrate dynamic loading, we are creating a console based application that loads an externalTestLib.dll assembly. During the execution, the application asks the user to specify the dynamicloading assembly name and that reference is passed to the helper method that is responsible forloading the assembly. 2016 C# CORNER.SHARE THIS DOCUMENT AS IT IS. PLEASE DO NOT REPRODUCE, REPUBLISH, CHANGE OR COPY.

Answer: The GAC is a shared location of computer where we can put an assembly so that it willbe accessible from many locations; I mean it is accessible from another project or application. It'salways a good practice to provide a strong name to a public assembly, I mean the assembly to beregistered in the GAC, and otherwise the DLL hell problem may occur.Problems that occurredI have seen DLLs added to the GAC that you can't remove - very frustrating. I have seenregistered DLLs into the cache - verified everything is there ok using ILDASM only to find theDLLs are no longer in the GACStrongly naming the assemblyWhen doing this make sure you get the directory slashes \\ correct within the assembly file(assembly.cs). - If not, you will get errors whilst the code is looking for the .snk file. If you geterrors which leave you scratching your head - best bet is to remove the .snk file and start over.Project ReferencesAlso be careful and watch where you build projects as the referenced DLLs can easily be built tothe development instead of the release folder - sometimes even when you specify the r