Showing posts with label Interview Questions. Show all posts
Showing posts with label Interview Questions. Show all posts

Tuesday, 5 April 2016

.NET Framework



In this article, I have explained basic .Net interview questions and answers will help to build your technical skill set and can help you in your interview.





  1. What is .NET Framework?

    .NET Framework is a foundation on which developers can develop, run, and deploy the following applications:

    • Console applications

    • Web applications (ASP.NET applications)

    • Windows Forms applications

    • Windows Presentation Foundation (WPF) applications

    • Windows services

    • Web services

    • Service-oriented applications using Windows Communication Foundation (WCF)

    • Workflow-enabled applications using Windows Workflow Foundation (WF)

    .NET Framework also enables a developer to create sharable components to be used in distributed computing architecture. NET Framework supports the object-oriented programming model for multiple languages, such as VB, C#, and C++. .NET Framework supports multiple programming languages in a manner that allows language interoperability which implies that each language can use the code written in some other language.


  2. What are the main components of .NET Framework?

    These are the key components of .NET Framework:

    • .NET Framework Class Library

    • Common Language Runtime

    • Dynamic Language Runtimes (DLR)

    • Application Domains

    • Runtime Host

    • Common Type System

    • Metadata and Self-Describing Components

    • Cross-Language Interoperability

    • .NET Framework Security

    • Profiling

    • Side-by-Side Execution


  3. What is an IL?

    Intermediate Language is also known as MSIL (Microsoft Intermediate Language) or CIL (Common Intermediate Language). All .NET source code is compiled to IL. IL is then converted to machine code at the point where the software is installed, or at run-time by a Just-In-Time (JIT) compiler.

    MSIL contains metadata that is the key to cross language interoperability. Since this metadata is standardized across all .NET languages, a program written in one language can understand the metadata written in a different language. MSIL includes instructions for loading, storing, initializing, and calling methods on objects, as well as instructions for arithmetic and logical operations, control flow, direct memory access, exception handling, and other operations.


  4. What is CLR (Common Language Runtime)?

    CLR is the heart of .Net Framework. CLR provides an environment to execute .NET applications on target machines. CLR can be compared to the Java Virtual Machine (JVM) in Java.

    CLR also provides various services to execute processes, such as memory management service and security services. CLR performs various tasks to manage the execution process of .NET applications. These are the responsibilities of CLR:

    • Automatic memory management

    • Garbage Collection

    • Code Access Security

    • Code verification

    • JIT compilation of .NET code


  5. What is CTS (Common Type System)?

    CTS is the component of CLR through which .NET Framework provides support for multiple languages because it contains a type system that is common across all the languages. CTS defines how data types are declared, used and managed in the code at run time. Two CTS-compliant languages do not require type conversion when calling the code written in one language from within the code written in another language.

    CTS provide a base set of data types for all the languages supported by .NET Framework. For Example, in VB we have “Integer” and in C# we have “int”, these datatypes are not compatible so the interfacing between them is very complicated. But these two different languages can communicate through Common Type System. “Integer” data type in VB6 and “int” data type in C# will convert to System.Int32, which is data type of CTS. The size is also same for both these data types.


  6. What is CLS (Common Language Specification)?

    CLS is a subset of CTS. CLS is set of basic rules/guidelines, which must be followed by each .NET language to be a .NET- compliant language. CLS enables an object or application to interact with the objects of applications of other languages. The classes that follow the rules specified by CLS are termed as CLS-compliant classes.


  7. What is portable executable (PE)?

    PE is the file format defining the structure that all executable files (EXE) and Dynamic Link Libraries (DLL) must use to allow them to be loaded and executed by Windows. PE is derived from the Microsoft Common Object File Format (COFF). The EXE and DLL files created using the .NET Framework obey the PE/COFF formats and also add additional header and data sections to the files that are only used by the CLR.


  8. What is Ilasm.exe?

    Ilasm.exe is a tool that generates PE files from MSIL code. You can run the resulting executable to determine whether the MSIL code performs as expected.


  9. What is Managed Code?

    Managed code is the code that is executed directly by the CLR instead of the operating system. The code compiler first compiles the managed code to intermediate language (IL) code, also called as MSIL code. This code doesn't depend on machine configurations and can be executed on different machines. In managed code, since the execution of the code is done by CLR, the runtime provides different services, such as garbage collection, type checking, exception handling, and security support. These services help provide uniformity in platform and language-independent behavior of managed code applications.

    However, if you are using some third party software example VB6 or VC++ component they are unmanaged code, as .NET runtime (CLR) does not have control over the source code execution of these languages.


  10. What is Assembly?

    An assembly is a single deployable unit that contains all the information about the implementation of classes, structures and interfaces. The assembly stores all the information about itself. This information is called metadata and includes the name and version number of the assembly, security information, information about the dependencies and a list of the files that constitute the assembly. Assemblies include both executable application files that you can run directly from Windows without the need for any other programs (these have a .exe file extension), and libraries (which have a .dll extension) for use by other applications.


  11. What are the different types of assembly?

    There are two kinds of assemblies in .NET:

    • Private Assembly:
      A private assembly is used by a single application, and is stored in the application's directory, or a sub-directory

    • Shared Assembly:
      A shared assembly is stored in the global assembly cache (GAC), which is a repository of assemblies maintained by the .NET runtime. Shared assemblies are also called strong named assemblies and shared by multiple applications. Each shared assembly has a four part name including its face name, version, public key token and culture information. The public key token and version information makes it almost impossible for two different assemblies with the same name or for two similar assemblies with different version to mix with each other.


  12. What is Manifest?

    Assembly metadata is stored in Manifest. Manifest contains all the metadata needed to do the following things:

    • Version of assembly

    • Security identity

    • Scope of the assembly

    • Resolve references to resources and classes

    The assembly manifest can be stored in a PE file either an .exe or .dll with Microsoft intermediate language (MSIL) code or in a stand-alone PE file, that contains only assembly manifest information.


  13. Where is version information stored of an assembly?

    Version information is stored in assembly inside the manifest.


  14. How to view a Assembly information?

    Assembly information can be viewed by using Ildasm.exe. ILDASM is a tool that converts the whole "exe" or "dll" in to IL code. It takes a PE file containing the MSIL code as a parameter and creates a text file that contains managed code.


  15. What is GAC?

    GAC (Global Assembly Cache) stores assemblies specifically designated to be shared by several applications on the computer. GAC is used in the following situations:-

    • If application is needed to be shared among several application.

    • If the assembly has some special security requirements like only specific person (administrators) can remove the assembly. If the assembly is private then a simple delete will remove the assembly.


  16. How to add and remove an assembly from GAC?


    • To Install assembly in Cache use Gacutil. Go to "Visual Studio Command Prompt" and type "gacutil -i <assembly_name>", where (assembly_name) is the DLL name of the project.

    • To Uninstall assembly, type gacutil –u <assembly_name> in Visual Studio Command Prompt.


  17. Is versioning applicable to private assemblies?

    Private assembly lie in their individual folders so versioning concept is only applicable to global assembly cache (GAC) but you can still version it to have better version control on the project.


  18. What is the concept of strong names?

    While using shared assemblies, in order to avoid name collisions strong names are used. Strong Names helps GAC to differentiate between two versions. Strong Name is only needed when we need to deploy assembly in GAC. It is similar to GUID in COM components.

    A strong name consists of a name that consists of an assembly's identity (text name, version number, and culture information), a public key and a digital signature generated over the assembly. The .NET Framework provides a tool called the Strong Name Tool (Sn.exe), which allows verification and key pair and signature generation.


  19. What is Namespace?

    Namespace is a logical grouping of related classes and types. Namespaces allow you to organize your classes so that they can be easily accessed in other applications. Namespaces can be used to avoid any naming conflicts between classes, which have the same names. For example, you can use two classes with the same name in an application provided they belong to different namespaces.


  20. What is Difference between Namespace and Assembly?

    Following are the differences between namespace and assembly:

    • Namespace is logical grouping of classes and types. Namespace can span multiple assemblies.

    • Assembly is physical grouping of logical units.


  21. What is Delay signing?

    While doing development, you will have to share strong name keys with developer. But it is not a good practice from security point of view. The solution of this problem is that you can assign the key later on and during development you can use delay signing.

    To create a strong named assembly and to be used by someone else, we partially build this assembly by providing a Public Key. We write this Public Key in the AssemblyInfo.vb OR .cs file. We also add an attribute by the named <assembly:assemblydelaysignattribute(true)> to the assembly info file. This makes it sure that when we build the assembly, It would be containing the information only about the public key before we deliver it to our client. This is a partial strong named assembly that we have created, and hence it is called Delayed Assembly.


  22. What is Garbage Collection?

    Garbage collection prevents memory leaks during execution of programs. While coding, many programmers forget to release objects. Garbage collector is a low-priority process that manages the allocation and deallocation of memory for your application. It checks for the unreferenced variables and objects. If GC finds any object that is no longer used by the application, it frees up the memory from that object. It runs on non-deterministic as it is not possible to determine that when garbage collector will run.


  23. Can we force garbage collector to run?

    Yes, we can force garbage collector to run by System.GC.Collect() method. This is not recommended but can be used if really needed.


  24. What is the difference between Dispose() and Finalize()?

    CLR uses Dispose and Finalize methods to perform garbage collection of run-time objects of .NET applications.

    Finalize method is called automatically by the runtime. CLR has a garbage collector (GC), which periodically checks for objects in heap that are no longer referenced by any object or program. It calls the Finalize method to free the memory used by such objects.

    Dispose method is called by the programmer. Dispose is another method to release the memory used by an object. The Dispose method needs to be explicitly called in code to dereference an object from the heap. The Dispose method can be invoked only by the classes that implement the IDisposable interface.


  25. Can we suppress the finalize process inside the garbage collector forcefully in .NET?

    By using GC.SuppressFinalize() method we can suppress the finalize process inside the garbage collector forcefully in .NET.


  26. How many types of generations are there in a garbage collector?

    Generations are the division of objects on the managed heap used by the garbage collector. This mechanism allows the garbage collector to perform highly optimized garbage collection. There are the three types of generations in a garbage collector:

    • Generation 0: When an object is initialized, it is said to be in generation 0.

    • Generation 1: The objects that are under garbage collection process are considered to be in generation 1.

    • Generation 2: Whenever new objects are created and added to the memory, they are added to generation 0 and the old objects in generation 1 are considered to be in generation 2.


  27. What is Reflection?

    Reflection is used in the process of obtaining type information at runtime. Reflection is generally used for the following tasks:

    • Viewing metadata: Allows viewing attribute information from the code at runtime.

    • Performing type discovery: Allows examining the various types in an assembly and instantiate those types.

    • Late binding to methods and properties: Allows the developer to call properties and methods on dynamically instantiated objects using type discovery.

    • Reflection emit: Allows you to create new types at runtime and then to use those types to perform tasks.


  28. What are different types of JIT?

    There are three types of JIT compilers:

    • Pre-JIT: Pre-JIT compiles complete source code into native code in a single compilation cycle. This is done at the time of deployment of the application.

    • Econo-JIT: Econo-JIT compiles only those methods that are called at runtime. However, these compiled methods are removed when they are not required.

    • Normal-JIT: Normal-JIT compiles only those methods that are called at runtime. These methods are compiled the first time they are called, and then they are stored in cache. When the same methods are called again, the compiled code from cache is used for execution.


  29. What are Value types and Reference Types?

    Value types directly contain their data that are either allocated on the stack or allocated in-line in a structure. So value types are actual data.

    Reference types store a reference of value's memory address, and are allocated on the heap.

    Variables that are value types each have their own copy of the data, and therefore operations on one variable do not affect other variables. Variables that are reference types can refer to the same object; therefore, operations on one variable can affect the same object referred to by another variable.


  30. What is concept of Boxing and Unboxing?


    • Boxing: Converting a value type to reference type is called Boxing.

    • Unboxing: Converting a reference type to value type is called Unboxing.

    int i = 1;
    object obj = i;      // boxing
    int j = (int) obj;   // unboxing


  31. What is the difference between System exceptions and Application exceptions?

    Exceptions can be generated programmatically or can be generated by system. All exceptions are derived fromSystem.Exception class.

    • System Exception: System.SystemException acts as a base class for all the predefined system exceptions.

    • Application Exception: System.ApplicationException acts as a base class for all user-defined exceptions.



  32. What is CODE Access Security?

    CAS is part of .NET security model lets us grant or deny execution permissions to an assembly. It determines whether a piece of code is allowed to run and what resources it can use while running. For Example: CAS will allow an application to read but not to write and delete a file or a resource from a folder.


  33. What is Satellite Assembly?

    Satellite assembly is used when multilingual (UI) application is created. Satellite assembly is a compiled library that contains localized resources which provides us with the capability of designing and deploying solutions to multiple cultures, rather than hard coding texts, bitmaps etc.


  34. How to prevent .NET DLL to be decompiled?

    Any one can easily decompile your DLL back using tools like ILDASM or Reflector. It means any one can easily look in to your assemblies and reverse engineer them back in to actual source code and understand some real good logic, which can make it easy to crack your application.

    But we can prevent .NET DLL to be decompiled by obfuscation.


  35. What is Native Image Generator (Ngen.exe)?

    Ngen.exe creates compiled processor-specific machine code called native images, which are files and installs them into the native image cache on the local computer. The runtime will use native images from the cache rather than using the JIT compiler to compile the original assembly. Running Ngen.exe on an assembly potentially allows the assembly to load and execute faster, because it restores code and data structures from the native image cache rather than generating them dynamically.


  36. What is Code Document Object Model (CodeDom)?

    Code Document Object Model are code generators which are used to minimize repetitive coding tasks, and to minimize the number of human-generated source code lines.

Saturday, 2 April 2016

Interview Questions For DotNet Professionals

In this article I am going to share my interview experience with Infosys as a dot net developer. This post covers most of the interview questions asked by the interviewer. If you are going to attend any dot net interview, I recommend you to go through this article. It covers the basic dot net interview questions too. I hope someone found this post useful.

Background

On August 18, 2014 I attended an interview with Infosys, Chennai. When I entered the compound, there were very many candidates. The atmosphere and culture in Infosys was very nice. I have attended many interviews in my life. But the interview with Infosys was something different. I thought to share that experience with you all.

Points to be remember

(There are some mistakes I made in the interview. I don’t want you to do the same :) )



  • Please ensure that you are maintaining eye contact with the interviewer.

  • Be confident of what you say. Don’t change your answer if the interviewer tries to make you do so.

  • Please avoid the unwanted examples.

  • Please never use any other technical terms that may provoke the interviewer into asking questions about it.

  • If you don’t know the answer, please say “I don’t know”. It is always better to say so instead of going with the wrong answer.



You can find more tips here: How to Prepare for a Job Interview

Questions asked and answers

(Here I am giving the answers that I answered .)

1. Tell me about yourself?

A. You can find many answers to this question in the internet. Please see the following link:

Tell me about yourself

2. What is your role in your project? What is the team size?

A. I said “My main role is coding, unit testing, big fixing and maintenance. My team size is 7”.

3. What is the hierarchy of your team?

A. First I was confused by this question. Then I answered “Project Manager, Team Leader, Software Engineers, Trainees”.

4. Describe the projects that you have worked on?

A. I described them. Please include the technologies you used in your projects and what kind of architecture (for example: 3-tire, n- tier) you used.

5. What is the employee size in your company? You don’t need to be accurate. You can provide the approximate value.

A. I said “150 to 200”.

Then he moved to the programming section.

6. Write an algorithm and program to determine whether or not a word is a palindrome.

We can do it in either of the following two ways:

a) Using a built-in function as in the following:










1

2

3

4

5

6

7

8

9

10

11

12

13

14

15


string strRev,strReal = null

Console.WriteLine("Enter the string.."); 

strReal = Console.ReadLine(); 

char[] tmpChar = strReal.ToCharArray(); 

Array.Reverse(tmpChar); 

strRev=new string(tmpChar); 

if(strReal.Equals(strRev, StringComparison.OrdinalIgnoreCase)) 


    Console.WriteLine("The string is pallindrome"); 


else


    Console.WriteLine("The string is not pallindrome"); 


    Console.ReadLine(); 




Ref: To check string is palindrome or not in .NET (C#)

b) Without using a built-in function.

When I wrote the first program, the interviewer asked me to write the same without using a built-in function.










1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26


private static bool chkPallindrome(string strVal) 

       

           try

           

               int min = 0; 

               int max = strVal.Length - 1; 

               while (true

               

                   if (min > max) 

                       return true

                   char minChar = strVal[min]; 

                   char maxChar = strVal[max]; 

                   if (char.ToLower(minChar) != char.ToLower(maxChar)) 

                   

                       return false

                   

                   min++; 

                   max--; 

               

           

           catch (Exception) 

           

                 

               throw

           

       




Ref: You can find more here: C# Palindrome

7. Write a program to determine the count of a specific character in a string.

A.










1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23


using System; 

using System.Collections.Generic; 

using System.Linq; 

using System.Text; 

  

namespace FindCountCharOccurance 


    class Program 

    

        static void Main(string[] args) 

        

            string strOccur,strChar = null

            Console.WriteLine("Enter the string in which you need to find the count of a char occurance"); 

            strOccur = Console.ReadLine(); 

              

            Console.WriteLine("Enter the char to be searched.."); 

            strChar = Console.ReadLine(); 

            int intCnt =strOccur.Length- strOccur.Replace(strChar, string.Empty).Length; 

            Console.WriteLine("Count of occurance is "+intCnt); 

            Console.ReadLine(); 

        

    





Please see this for more suggestions: count the number of characters in a string.

8. Next he gave me a program like the following and asked me what the output of this will be.










1

2

3

4

5

6

7


public class

    

        public int A() 

        

            Console.WriteLine("Hi you are in class A"); 

        

    




A. I said “Here we have a constructor A; a constructor should not have a return type. So the code above will throw a compilation error.”

9. What may be the output of the following program?










1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32


using System; 

using System.Collections.Generic; 

using System.Linq; 

using System.Text; 

  

namespace RefClass 


    class Program 

    

        static void Main(string[] args) 

        

            B bObj= new B(); 

            Console.ReadLine(); 

  

        

    

    public class

    

        public  A() 

        

            Console.WriteLine("Hi you are in class A"); 

        

    

  

    public class B:A 

    

        public B() 

        

            Console.WriteLine("Hi you are in class B"); 

        

    





A. I said the output will be:

Hi you are in class A

Hi you are in class B

Even though you are creating an object of the derived class, it will invoke the base class first.

10. Write the output of the following program.










1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29


class Program 

    

        static void Main(string[] args) 

        

            B bObj= new B(2); 

            Console.ReadLine(); 

  

        

    

    public class

    

        public  A() 

        

            Console.WriteLine("Hi you are in class A"); 

        

  

        public A(int x) 

        

              

        

    

  

    public class B:A 

    

        public B() 

        

            Console.WriteLine("Hi you are in class B"); 

        

    




A. It will throw a compilation error.

B does not contain a constructor that takes 1 argument. If you want to make this program run, you must create a parameterized constructor for class B also.

11. Abstract and interface real time examples

B.Please read it here: Real time example of interface

12. Describe authentication, types, differences?

A. Forms, Windows, Passport. Please read more here: ASP.NET authentication and authorization

13. Why DBMS? Why don’t we save data in separate files?

A. I didn’t know what exactly he meant, I got stuck there for a while. Finally I came up with the answer that “Normalization” is the main advantage of a DBMS.

Read more here: Why use a DBMS?

14. What is the differences between a Primary key and a Unique key?

A. Primary key doesn’t allow NULL, a unique key does.

15. What exactly is happening when we make a field a primary key?

A. A clustered index will be created for that specific field.

16. How may clustered index we can create in table?

A. Basically we can create only one clustered index, but there is a way to have more. Please read here:Only one clustered index can be created on table . (Visual Database Tools)

17. What is the difference between a clustered and a non-clustered index?

A. I explained, please read here: Clustered and Non-Clustered Index in SQL 2005

18. What is a Distributed System?

A. A collection of autonomous computers. Find out morehttp://www.csc.villanova.edu/~schragge/CSC8530/Intro.html



Image Courtesy : http://msdn.microsoft.com/en-us/library/cc239737.aspx

19. What will be the output for the below mentioned lines in JQuery?










1

2

3

4


alert('5' + 5 + 5); 

alert(5 + 5 + '5'); 

alert(5 + '5' + '5'); 

alert(5 + '5' ); 




That was little tricky at that time. For a while I thought, and I just wrote the question to a paper, and replied.










1

2

3

4


alert('5' + 5 + 5);    Output= 555 

alert(5 + 5 + '5');    Output=105 

alert(5 + '5' + '5');  Output=555 

alert(5 + '5' );       Output=55 




Hmmm finally he said “You are selected for the next round” :)

Next was the direct HR round. That was a simple round. He just asked me to fill in some forms.

Finally they sent me an Offer Letter :)

Conclusion

Did I miss anything that you may think which is needed? Could you find this post as useful? I hope you liked this article. Please share me your valuable suggestions and feedback. The questions and answers mentioned may or may not ask in your interview. So please refer all the interview questions and answers from all the experts :). Be prepared. I wish you Good Luck .

Friday, 1 April 2016

3-6 yr Experience Interview Questions in .Net Technologies

Hi Friends,
Below I am posting the questions and answers for the short questions for 3-6 years experience guys. These questions will be helpful for those who are either preparing for the interview or attending the interviews. This will also be helpful for the last minute preparation in quickest way.
If anyone has better answers, please reply to this post and I will include the better answer to the post as it will be helpful for all of us.

CLR and C#

1. Types of Authentication IIS.
A. Authentication is the process which helps web server(IIS) to check and confirm the identity of the client who request to access the website.
Types of Authentication:
a. Http Authentication: Basic Authentication, Digest Authentication
b. Integrated Windows Authentication: NTLM(Network Lan Manager), Kerberos
c. Client Certificates Access
d. Anonymous and UnAuthenticated Access
e. Logon-Redirection based: Form Authentication(IIS 7.0)

2. Types of Authentication and Authorization in ASP.Net.
A. Types of Authentication: Windows Authentication, Forms Authentication
Types of Authorization:- File Authorization and URL Authorization

3. ASP.Net Life cycle.
A. In ASP.Net, the request starts with the client and processed through IIS.  In IIS, there are 2 utilities- INetInfo.exe and ASPNet_ISAPI.dll.
The InetInfo.exe hosts the worker process and checks for the syntax and semantics of the request, while ASPNet_ISAPI.dll is used to filter the .aspx files(based on the extension). After the URL request split into 2 parts-
Virtual directory name and Web Page name.
The worker process which is nothing but the application factory basically contains all the virtual directories and checks for the current virtual directory. If this is first request, then there will be no Virtual directory available. Now the worker process (W3wp.exe) creates a memory area called as AppDomain to check for the current page. As AppDomain is the Page Handler factory so it contains all the processes pages. If this is the new page then it will not find here. The request further moves to the HttpPipeline where the actual execution of the page happens by using the ProcessRequest method and creates the events(init, load, render, unload) of the page. After creation of event and execution of all the event, the HTML page returned back to the user.

4. ASP.Net Page Life Cycle.
A. There are few events which gets generated during the page execution like: Page_BeginRequest, Page_Init, Page_Load, Page_Prerender, Page_Render, Page_Unload etc
For the details of the page life cycle, you can follow the previous question.

5. What are types: Value Type and Reference Type?
A. DataType specifies Type of the data as well as Size of the data. There are 2 type of DataTypes in C#:
a. Value Type: Value type holds data directly, Value type stored in the stack memory, we can get the direct value of the value types. Value type data type can’t be null.
b. Reference types: This type does not hold the data directly. They hold the address on which the actual data present. They stored in heap memory, Can have default values.
We can make and work with null reference type.

6. Boxing and Unboxing: Terminology, Advantages and Disadvantages.
A. Converting the Value type data into the Reference type is called as Boxing.
byte b= 45;
Object o = b.Tostring();
Converting the Reference type data and keep its value to stack is called as the Unboxing.
Object o=10;
Int i= Convert.ToInt32(o.ToString());
The Advantage of boxing and unboxing is that we can convert one type of the object to another type. The disadvantage is that it requires lot of memory and CPU cycles to convert from one type to another type.

7. What is Type Safety?
A. TypeSafe is a way through which the application or framework that the memory will not be leaked to outside environment. E.g. C# is the type safe language where you must have to assign any object before using it. In VB.Net it will take the default value. So C# is the type safe language while VB.Net is not.

8. What is Strong Name?
A. Strong Name (SN) is used to make the dll as the unique not by its name but by its version as:
SN -k fileName.dll
Now it will have the unique name with respect to the version. This assembly when placed in the GAC, it will treat as the unique with its version number and other details. 2 assemblies with the same name can exist in the GAC but both will have different version. The CLR takes the latest version assembly while running the application.

9. What are Extensions, modules and handlers?
A. HttpModule and HttpHandler are the utilities which are used in the HttpPipeline under the ASP.Net page life cycle. When the request received to Http Pipeline, the HttpModule checks for the Authentication of the request and then it route the request to the respective handler. After that HttpHandler takes that request and process it. Once the request is processed through handler, again the HttpModule takes the response and send it back to the worker process and finally to the user.

10. What is worker process?
A. Worker process (w3wp.exe) is an executable which is also called as the Application Factory. This is used for the execution of the request and handling of the request for the web pages.

11. CLR and DLR?
A. CLR (Common Language Runtime) is the utility in the .Net framework to run the application. It is the runtime engine which actually executes the application with many responsibilities like taking care of memory management, versioning, CasPol etc.
DLR is new with .Net 4.0 which is the Dynamic Language Runtime and used to run the application on the fly wherever required. CLR runs as statically while DLR runs dynamically.

12. In case more than one dll versions of an installable is installed, which version is invoked by default?
A. By default the CLR will take and invoke the latest version of the dll and execute it accordingly. There could be the same name assemblies exists in the GAC but they will have different versions altogether for their uniqueness.
So while running the application, CLR takes the latest version assembly and use in the application.

13. What are Globalization and localization? How to implement them?
A. Globalization is the concept of developing the application in more than one language while the Localization is used for a particular language. Like if we develop the application in more than one language we need to create the resource files (.resx) by using System. Globalization and when we open the application in a particular language, then the localizations used to convert that application to the selected language.

14. What is assembly, GAC? Where they are physically located?
A. Assembly is the collection of classes, namespaces, methods, properties which may be developed in different language and packed as a dll. So we can say that dll is also called as assembly.
There are 3 types of assemblies-
- Private Assembly, Shared Assembly, and Satellite Assembly.
GAC (Global Assembly Cache)- When the assembly is  required by more than one project or application, we need to make the assembly with strong name and keep it in GAC or in Assembly folder by installing the assembly with the GACUtil command.
To make the assembly with strong name:
SN -k MyDll.dll
And to install it in GAC:
GacUtil -i MyDll.dll
GAC assemblies are physically stored in Assembly folder in the system.

15. How to configure HTTPS for a web application?
A. To configure the HTTPS (HTTP with Secure) for the web application, we need to have a client certificate. The client certificates can be purchased from the trusted providers and then we need to install that certificate for our site. By implementing the HTTPS, all the data which is passing will be in encrypted format, while makes the website more secure.

16. What are Inproc and Outproc in session? Where are session data stores in these cases?
A. Inproc and Outproc is the types of Sessions where the session data can be stored in the process memory of the application server(IIS) and in the separate state server.
When the session data is stored in the process memory(AppDomain) of the server(IIS), the session is called as the Inproc server. In this case when the server is restarted, the session data will be lost. So In the Inproc session mode, the session data stores in the memory object in AppDomain in Application Worker Process(AspNet_wp.exe)
When the session data is stored in the separate server like in state server or in Sql Server, the type of session is called as the Outproc session. In this case, if the server where the application is running is restarted, the session will be still remain in the separate servers.
So in the  inproc session state, the session data is stored in the Process memory of the Server where the application is running.
In the Outproc session state, the session data is stored in the separate server- may be state server or in sql server.

17. When the View state is saved, and when is it loaded? How to enable/ disable View states?
A. View State data is stored in the current page in base64 encoded format. It gets loaded with the page and displays the values to the controls after the decoded. Internally it actually saves the check-sum of all the control data where the view state is enabled.so that when the page gets loaded due to any post back, it again finds the check-sum and then decodes the Base64 encoded string and gets back the same data to the controls. We can see the view state base64 encoded string in View Source of the page. It will be like _VIEWETATE="DSDSDF8DGDGDFGFD5FDGGDJFF23BNN457M9UJOG"this.

View state won't take the client or server memory to keep the view state data.

18. Difference between GET and POST. Which one is more secure?
A. GET and POST methods are used for the data transfer between the web pages. GET mainly used for small data which is not secure because in case of GET method, the data which we are passing will be visible in the url so we can't keep the secure data which will be visible in the url. There is also limited data which can be passed in case of GET method (max 255 character).
POST is used for transferring the huge data between the pages where we can keep the secure data and can transfer it. In case of using the POST method, the data which is transferring between the pages will not be visible so it is more secure than the GET method. Also there is no limit for POST method to post the data to the next page.
POST is more secure.

19. What are Razor engine? How is it different from ASPX Engines?
A. Razor engine is the new execution engine in the ASP.Net MVC 3 which is mainly used to convert the rezor syntax views to HTML page in the MVC applications. It takes the cshtml pages as the input for the ASP.Net MVC application and then render to the HTML as the output. The ASPX engine takes the aspx code and then renders to the HTML.

20. Pros and cons of JavaScript and AJAX.
A. JavaScript is a scripting language and mainly used for client side validation. We can validate the client side data before sending to the server. So by this we can improve the performance of the application.
Ajax is Asynchronous JavaScript and XML which is used for the Asynchronous calls to the server. It uses the JavaScript/JQuery for making the call and use XML for the Data Transfer. It basically uses the XmlHttpRequest for the asynchronous calls to the server and communicates with the XML data which is platform independent. So Ajax can be used with any technology.

21. In how many different ways JavaScript code can be used/called in an application?
A. JavaScript can be used for Client Side validation, can also be used for calling of server side methods and functions, can be used for calling the web services, WCF service, Web API's, Calling the Controller and Action methods in ASP.Net MVC etc.

22. What needs to be done to call a JavaScript function from code behind?
A. If we want to call the JavaScript function from the code behind, we need to attach the JavaScript to the events in the page_load event as:
protected void btnSave_cliekc9object sender, EventArgs e)
{
btnSave.Attributes.Add("onclick,"JavaScript: retrun Validatedata();");
}
Here ValidateData is the JavaScript function which can be used to validate the page data and if validation fails, it will return and will not execute the server side btnSave_click event.

23. Difference between Server Controls and User controls?
A. User controls are used for the re-usability for the controls in the application. By using the Web User Control template, we create the new user controls and then we can use the same control in the various pages. User controls can be created by combining more than one control to extend the functionality of the existing controls. To use the user controls, first we need to register them in the web page where we want to use that control. A separate copy is needed in each page where we want to use the user control. User controls can't be included into the toolbox.
Web Server controls are those controls which can be found in the toolbox and can be directly drag to the application like other controls textbox, button etc. For the web server control, only 1 copy of the control is needed irrespective of the number of web pages. If we want 10 text-boxes to be added in our web page, we need only 1 copy of the textbox in the toolbox and can be dragged 10 times.

24. Difference between Var, object and Dynamic types.
A. var is the keyword introduced with .Net 3.5 and used to store any kind of data like data-set, data table, int, float, char etc. We can keep any kind of data into the var variable.
var myVar = new String[] {"hello", "world!!"} ;
Here the myVar is the var type variable which is used to store the string array. Like this we can store any type of data into the var.
Object is the type which is used to store the objects of any kind. These objects need to be type cast when used.
Like object myObject = "Hello"
Here the myObject variable of object type is used to keep the string variable. Now when we want this variable value, we need to typecast it like
string strvar= (string) myobject;
Var is the compile time where the type of the var variable gets defined at the compilation of the program. Once we define the type during compilation, we cant make the changes of the type during run time or at the later stages.
Let's say, if we define like
var myVar = new String[] {"hello", "world!!"} ;
so here myVar variable will be of string array. Now after this, I can;t make it like:
var myVar = 10 ;
If we do this, it will throw error.
Dynamic- It’s a keyword introduces with the .Net 4.0 and used to keep the data similar to the var keyword. The type of Dynamic type can be changed even at run time.
So if we define like:
dynamic myVar = new String[] {"hello", "world!!"} ;
Then the myVar is of type string array. Now if we do like:
dynamic myVar = "Hello" ;
Now the myVar type will be used as string type. So we can change the type in case of dynamic.
The difference between the var and dynamic is that the dynamic variable uses the same memory location to store the object and not changes throughout the application.

25. Difference between Functions and methods.
A. In.Net terminology, both function and method are same. In general, we use method in server side code of .Net but in scripting language we use function like JavaScript function.
Here the difference can be function always returns a value whereas method may or may not. It depends upon the return type of the method.

26. Difference between Abstract classes and Interface. Explain with scenario where to implement one?
A. Abstract Class: Collection of the Abstract (Incomplete) and Concrete (complete) members is called as the Abstract class. If there is at least one abstract member in a class, the class must be declared as abstract class.
When there is the similar behavior, we can use the abstract class.
e.g. We want to calculate the area of few shapes. As this is not generic to the application. We have few shapes - like Circle, Ellipse, Parabola, Hyperbola, Triangle etc.
So we can create an abstract class and implement it like below:
public abstract class MyAbstractClass
{
// some other concrete members
public abstract void Area();// abstract method
}
Now in the child class, let’s say i have a circle class and want to calculate the area of the circle:
public class Circle: MyAbstractClass
{
public override void Area()
{
// calculate the area of the circle
}
}
In the similar fashion, we can calculate the area of other shapes.
Interface: Collection of abstract members is called as the Interface. When the behavior is not similar, we need to use the interface. All the members of the interface
must be overridden in the child classes.
e.g. Print functionality of the application can have an interface method like:
interface Inf
{
void Print();
}
Now as this is the generic functionality and can be implemented in any of the class so we have taken it as interface. We can implement this functionality into any page like:
class MyClass: System.Web.UI.Page, Inf
{
public void Print()
{
// implement details about the Print method
}
// Here we can implement any kind of print-like print to excel, xml, word all depends on the our decision.
}

27. Different forms of Polymorphism. Differences between Abstraction and Polymorphism.
A. Polymorphism is to use the same function in many forms. The polymorphism is of 2 types-
a. Classical polymorphism (Overloading)
b. AdHoc polymorphism (Overriding)
Polymorphism = Poly(many) + Morphism(Forms)
Overloading: When the runtime (CLR) find the behavior of class members at the compilation of the program, it is called as the Classical polymorphism or Overloading. In this, the method name is same but prototypes (method + parameters) are different and it is implemented in the same class.

e.g.
public class MyClass
{
public int  Add(int a, int b)
{
return a+b;
}
public int  Add(int a, int b, int c)
{
return a+b+c;
}
}
Overriding: When the runtime (CLR) find the behavior of class members at the runtime of the program, it is called as the AdHoc polymorphism or Overriding. In this, the method name as well as the prototype (method + parameters) is same but they are implemented in the different class. We use virtual keyword in the base class method to override in the child class using the override keyword.
e.g.
public class MyBaseClass
{
public virtual void Show(string  message)
{
Console.WriteLine(“Your message is : ”+ message);
}
}
public class MyChildClass: MyBaseClass
{
public override void Show(string message)
{
Console.WriteLine(“Your new message is : ”+ message);
}
}
Abstraction is the behavior to get the required functionality. To implement the abstraction, we use access specifiers where if we declare the members as private, it means they will be available only to the current class and if we make them as public, the other classes can also use them. So Abstraction is used to show only the essential features It is also used to hide the unnecessary data which is not relevant but present.

Abstract keyword is also used to get the abstraction behavior. We can use Abstract Class and Interface to implement Abstraction.

28. What are Delegates and Events?
A.  A Delegate is an object, which points to another method in the application. Delegate holds- name of the method, arguments of the method (if any) and the return type of the method.
See the below points regarding the Delegate:-
·          delegate keyword is sealed type in System. Multicast namespace.
·          Delegate works like a function pointer in C language.
·          Delegate holds the address of the function.
·          Delegate hides the actual information which is written inside the method definition.
·          A delegate can hold address of a single function as well as the address of multiple functions.
·          There are 2 types of delegate-
- Single cast delegate (hold single function) and
- Multicast delegate(hold multiple functions).
·          Addition and subtraction are allowed for the delegates but NOT multiplication and division. It means, we can add delegates, subtract delegates etc.
e.g. To create a single cast delegate, first we can create a class with a method as:
public class DelegateDemo
{
public void Show(string msg)
{
Console.WriteLine(msg);
}
}
Now we can call the method Show using the delegate as:
public  delegate void MyDelegate(string message); //declare delegate
now we need to create the object of the delegate with the address of the method as:
DelegateDemo obj = new DelegateDemo();//class object
MyDelegate md= new MyDelegate(obj.Show(“Hello World!!”));
md(); // call the delegate
We can create the events and event handler by using delegate with the below syntax:
public delegate void textChangedEventHandler(Object sender, TextEventArgs e);
This event handler will be used to handle the textbox textchanged event.
More details about the delegate and events can be found at the below link:
http://msdn.microsoft.com/en-in/library/orm-9780596521066-01-17.aspx

29. Covariance and Contra-variance.
A.  covariance and contravariance are the new features added with the .Net 4.0. They are basically used for the implicit reference conversion for different .Net types like array, delegate, and generic etc.
You can go to the below link for more details with the examples that how we can use the covariance and contrvariance to implicate reference conversion:
http://blogs.msdn.com/b/csharpfaq/archive/2010/02/16/covariance-and-contravariance-faq.aspx

30. What are Extension methods?
A. Extension methods are special types of methods which are static methods but called as the instance methods.  The extension methods are added with the .Net framework 3.5 and with the Visual Studio 2008.
These methods won’t affect the existing class and the label. These methods are used for the extra behavior which the calls can provide. There is no need to build the class again if we add any extension method to the class.
There are various inbuilt methods added in .Net 3.5 with the introduction of LINQ. We can see the extension methods like Order By when we use the Linq as:
e.g.
int[] numbers = { 10, 45, 15, 39, 21, 26 };
var orderedNumbers = numbers.OrderBy(a => a);

31. What are Anonymous methods and Lambda Expression?
A.  Anonymous methods are those methods which does not have the name. As they don’t have the name, so there is no way to call these methods. These methods are created by using the delegate as below:
button1.Click += delegate{listBox1.Items.Add(textBox1.Text)};
Lambda Expression: It’s an easy way to create anonymous functions. It is also an anonymous function which has the capability to contain expressions and statements. We can create the delegate and expression tree types using the lambda expression.
For more details regarding the anonymous method and lambda expression, we can go through the below link:
http://www.codeproject.com/Articles/47887/C-Delegates-Anonymous-Methods-and-Lambda-Expression

32. Multithreading. How to implement Multithreading?
A. Executing more than one processes simultaneously is called as multithreading. To implement the multithreading concept, we need to use the System. Threading .dll assembly and the System. Threading namespace.
To write the thread program, we need to create a class with the method. Now we can create the thread object and then pass the method by using the class object to the method.
After that we need to create the ThreadStart delegate which will call the actual method of the class.
You can go through below link for more explanation and other details regarding the implementation and the code snippet:
http://www.codeproject.com/Articles/1083/Multithreaded-Programming-Using-C

33. Which interface is used to-
a. Convert Boolean values to Visibility values?
b. Compare two integer values?
c. Compare String values?
A. Check the below interfaces which are used in these scenarios:
a. Convert Boolean values to Visibility values?
b. Compare two integer values?-  IComparable interface
c. Compare String values? IComparer interface

SQL Server

34. What is the difference between a View and a Cursor?
A. View: It is one of the database object which is also called as virtual table. We can also say that it is a window through which we can see some part of database. View is also called as stored query because we are going to fetch data using View.
View does not contain any data. It’s just a virtual table which is used to get the records from the base table for which the view is created. View is faster than ad hoc queries because when we create the view and execute it once. Next time onwards it will be available as the compiled format. So whenever the view is called, it will just execute rather than compiling.
Cursor: Cursor is a database object which is also the buffer area and created as a result of any sql statement to hold the intermediate values.
Cursor is used to format the rows individually. By using the cursor, we can process the individual rows. There are 4 types of cursors in Sql Server-
a. Static Cursor
b. Dynamic Cursor
c. Key set cursor
d. Read-only cursor

35. How to execute multiple update on different conditions in a single query?
A. To execute multiple update using a single Sql update statement is the new feature available with the SQL Server 2008. In this, we can update multiple rows using a single update command.

36. Left outer joins and Right Outer joins
A. Joins are used to retrieve data from more than 1 tables using some conditions. There are 3 types of outer joins in SQL Server database-
a. Left Outer Join
b. Right Outer Join
c. Full Join
In order to extract the matched rows from both the tables and unmatched rows from the first table, left Outer join is used. The syntax for left outer join condition is:
T1.Col1* = T2.Col1
In order to extract the matched rows from both the tables and unmatched rows from the second table, right Outer join is used. The syntax for right outer join condition is:
T1.Col1 = *T2.Col1
In order to extract the matched rows from both the tables and unmatched rows from the first table and then unmatched row from the second table, full join is used. The syntax for full join condition is:
T1.Col1* = *T2.Col1

37. Exception handling.
A. Exception Handling is the way to handle the unexpected error at runtime of the application. From the SQL Server 2005 version, try…catch block is also supported to catch the exceptions in SQL Server database. There is various other ways to catch the error like using Global temporary variables @@Error, inbuilt method RaiseError etc.

38. What is Performance Tuning? How do you implement it.
A. Performance Tuning is the process through which we can optimize the SQL Server objects like functions, triggers, stored procedure to achieve high response time to the front end applications. In the performance tuning process we generally check for the below point and optimize the objects processing:
a.  Through Query Execution plan, check for the processing time of the query execution.
b. Check the join conditions and break all the condition for executions of the queries individually.
c. Check for the error prone process, conditions in the queries.
d. Check for the loops whether they are terminated if any error occurs.
e. Check for the processes which are taking more time in execution and how to reduce the response time.

39. Difference between Having and Where clauses.
A.  When the 'where' clause is not able to evaluate the condition which consists of group functions, Having clause is used. Having clause is always followed by the Group By clause.
'Where' clause is used to filter the records based on the conditions. If there is the requirement to get the group data in the select statement and where clause is not able to get it, we can use the Having clause.
e.g. Display DeptNo, No.of Employees in the department for all the departments where more than 3 employees are working
SELECT DEPTNO, COUNT(*) AS TOTAL_EMPLOYEE
FROM EMP
GROUP BY DEPTNO HAVING COUNT(*) >3

40. Difference between Temp tables and Tables variables?
A. Temp Table in SQL Server:
a. Temp table are the special type of tables which are used to store the intermediate data of the actual table.
b. Temp tables are only visible to the current sessions of the sql server instance. When the session end, these table data automatically drops.
c. We can’t join the temp tables as they don’t allow the foreign key constraints.
d. Temp tables are created in TempDB database.
e. We can use the same temp table name for the different user sessions.
f. Mostly used in stored procedure to handle the intermediate data.

41. What does @ and @@ suffixed by property names specify?
A. @- This is used for the variable declaration
e.g. @name varchar2(50)
@@- This is used for the Global variable declaration
e.g. @@Error=0

42. Self-join queries.
A. Self-Join is a type of join which is used to join the same table by creating the multiple instances of the same table. So we can join 2 instances of the same table in case of self-join. This type of join is used when there is the requirement to get the referenced data which is available in the same table.
e.g. A table contains EmpId, Ename and ManagerId
As the manager is also an employee. Now if we want that who is the manager of which employee. In this situation, we need to create the instance of the same table and get the required data as:
SELECT EMPID, ENAME, ENAME AS [MANAGER NAME]
FROM EMP E1, EMP E2
WHERE E1.EMPID= E2.MANAGERID

43. Types of Index.
A.  Index is one of the database objects which is used to improve the performance of the database queries. It reduces the table scan while retrieving the data from the database and the search gets fast-
There are 2 types of indexes used in the SQL server:
a. Clustered index
b. Non clustered index
There are 3 more types of index but those comes under the above two-
a. Unique index
b. Composite Index
c. XML Index-added in SQL Server 2005
The index basically works on searching like binary tree where the root value is the finding value and it will be compared with the partitioned value of the tree.

44. Difference between Primary key, Unique key and Candidate key?
A. Primary Key- It is a key to make the unique identification of the row in a table. It doesn't allow null values in the primary key column. We can create the lookup columns based on the primary key. One table allows maximum of 1 primary key and in 1 table, we can create the primary key column by using 16 columns. Due to one of the normalization rule, we have to create primary key for the table to make the rows unique.
Unique Key:- (Primary Key + Not null) is called as unique key. Unique key is also used to make the rows as unique in a table. The only difference between primary key and unique key is that primary key does not allow null value while the unique key allow. The limitation of the null in unique key is that it allows only one Null value. So only in one row, we can make the key as null for the unique key.
Candidate key- The key other than primary key, to make the rows as unique is called as candidate key. In candidate key, we take the columns which are not in the primary key and make the key for uniqueness of the row.

45. What is the default value for Datetime. What are Min and Max values for Date in 2008.
A.  The default value of Date is CURRENT_TIMESTAMP
Below are the new date and time values in Sql Server 2008:
In SQL Server 2008:
1. DateTime2
Min Value: 0001-01-01 00:00:00.0000000
Max Value: 9999-12-31 23:59:59.9999999
2. Date
Min Value: 0001-01-01
Max Value: 9999-12-31

You can go through the below link for couple of work around:
http://dhaneenja.blogspot.in/2008/06/minimum-year-value-in-sql-server.html

WCF

46. What is WCF also known as?
A.  WCF (Windows Communication Foundation) is also know as  Indigo by its code name.

47. Difference between WCF and Web Services?
A. Below are the main differences between the WCF and Web Service:
Web Service:
a. Can be hosted in IIS only
b. Only two types of operations affects- One-Way, Request-Response
c. To serialize the data use System.Xml.Serialization
d. To encode the data use- XML 1.0, MTOM, DIME, Custom
e. Web Service can be accessed through HTTP channel.
WCF service:
a. Can be hosted in IIS, Self Hosting, WAS, Windows Services etc
b. Three types of operations affects- One-Way, Request-Response and Duplex
c. To serialize the data use System.Runtimel.Serialization
d. To encode the data use- XML 1.0, MTOM,Binary, Custom
e. WCF Service can be accessed through HTTP, TCP, Named pipes, MSMQ,P2P etc.

48. What are Endpoints?
A. The collection of Address, Binding and Contract is called as End Point. In Sort,
EndPoint = A+B+C
Address (Where)-  It means where the service is hosted. URL of the service shows the address.
Binding (How)- How to connect to the service, is defined by the Binding. It basically has the definition of the communication channel to communicate to the WCF service
Contract (what)- It means what the service contains for the client. What all the methods are implemented in the WCF service is implemented in the Contract.

49. What are Behavior and Bindings?
A. Binding mainly describes about the communication of the client and service. For this, there are protocols corresponding to the binding behavior which will take care of the communication channel. There are different protocols which we use for the different types of bindings. E.g. HTTP, TCP, MSMQ, Named Pipes etc.
Behavior is used for the common configurations that could be for endpoints. When we use the common behavior, they affect to all the end points. Adding the service behavior affect the service related stuff while the endpoint related behavior affects the end points. Also operations level behavior affects the operations.

50. What are different types of Contracts supported?
A. There are mainly 5 type of contracts used in WCF service:
a. Service Contract
b. Operation Contract
c. Data Contract
d. Message Contract
e. Fault Contract

51. What is the difference between Transport and Message Security mode?
A. WCF supports 2 types of security- Transport Level Security and Message Level Security
Transport Level Security- In this type of security, we make the transport channel as secure so that the data flows in that channel will be automatically secured. For HTTP channel, we use the client certificate for the security of the web address. SSL is used for the HTTP channel security. As we don’t need to secure each of the messages which are floating between the client and the service, the speed is faster as direct message is going to the client from the service.
Message level security- This type of security in WCF is used where we don't have the fixed transport medium and we need to secure each message which is floating between the server and the client. In this type of security we use certain algorithms for making the message as secure message. We use some extra bits and send with the message. We also use some encryption techniques like SHA1 or MD5 which make the proper security for our message. As each message needs to be secured, this type of security makes some delay in the process of sending and receiving the messages.

52. How to configure WCF security to support Windows authentication?
A. To support the WCF security in Windows Authentication, we need to add the ClientCredetialType attribute to “Windows” under the security tab element:
transport clientCredentialType="Windows"

53. How to use Fault Contract?
A.  Fault Contract is mainly used for viewing and displaying the errors which occurred in the service. So it basically documents the error and the error message can be shown to the user in the understandable way. We can’t use here the try….catch block for the error handling because the try…catch is the technology specific (.Net Technology). If we use the try...catch block for handling the errors, the error will not be reached to the client who is consuming the service. Because this error will not be included in the message. So we use the Fault contract for the error handling.
e.g. To use the Fault contract, we can simply write like the below:
public  int Add(int number1,int number2)
{
// write some implementation
throw new FaultException (“Error while adding data..”);
}
Here the fault Exception method is the inbuilt method which will throw the exception and display the message . We can use the custom class so that the message can be customized and the customized message can be sent to the client.
So we can create  a clss like:
public Class CustomException
{
public int ID {get;set;}
public string Message {get;set;}
public string Type{get;set;}
}
Now this custom type we can use with the Operation Contract as:
[ServiceContract]
public interface IMyInterface
{
[OperationContract]
[FaultContract(typeOf(CustomException))]
int Add(int num1,int num2);
}
Now while implementation of the Add method, we can assign the class properties.

WPF

54. Diff between XML and XAML.
A. XAML is the declarative XML based language which is used to define the objects and properties. XAML document is loaded by XAML parser. So XAML Parser initiates the objects and set those properties. XAML is mainly used in creating the objects in WPF and Silverlight applications.
For more detailed explanation, you can go through the below link:
http://www.differencebetween.net/technology/software-technology/difference-between-xml-and-xaml/

55. Stack Panel and Wrap Panel.
A. StackPanel is one of layout control in WPF. We can place the child controls inside the stackpanel either horizontally or vertically. So it provides two types of orientations- Horizontal Orientation and Vertical orientation.
You can go through the below link for more detailed explanation and the code snippet:
http://wpftutorial.net/StackPanel.html

Wrap panel is another layout control which is similar to the StackPanel. Wrap panel not only keep the control in horizontal and vertical orientation but also wrap them into new line if there is no space. Here also the orientation can be set as Horizontal or Vertical. Its main use is to arrange the tabs in the tab control, menu control or in toolbar items.
You can go through the below link for more details:
http://wpftutorial.net/WrapPanel.html

56. Hierarchical Data Template.
A. Hierarchical Data Template is a type of data template which is used to bind the controls which  supports HeaderedItemsControl, like  TreeViewItem or MenuItem
We can bind those controls items using the Hierarchical Data Template. It displayed the data into Hierarchical structure in the tree structure. It could be in the left to right or top to bottom.
You can go through the below link for more details:
http://msdn.microsoft.com/en-us/library/system.windows.hierarchicaldatatemplate.aspx

57. Virtualization.
A. This is the feature in WPF which increases the efficiency of the programs when there are the large data objects. If the WPF ItemsControl is bound with the large collection data source object and we enabled the virtualization, then the controls will show only the data which is in the visual container for those items which are visible currently. This visual data is only the small part of the large data object. Now when the user will scroll down or up, the rest of the data will be visible and previous data will be hidden again. So this is increase the efficiency of the program from the UI prospective.

58. Events and Routed Events.
A.  Routed event is special type of event which can invoke and handle multiple events from different objects rather than the event which is coming from one object. So it generally handles the object from the element tree. So whatever the elements inside the element tree and if they generate the event-may be multiple events, the routed event is capable of handling those events.
The routed event can be invoked in both the directions but in general it comes from the source element and then bubbled up in the element tree until the root element.

59. Bubbling and Tunneling.
A. Bubbling: When the events are raised form the innermost element in the visual tree and comes up towards the root element, is called as bubbling.
Tunneling: It is the opposite process of Bubbling where the events fired by the root element goes down towards the last child element control.
Please go through the below link for more details:
http://www.dotnetspider.com/forum/130497-event-bubbling-event-tunneling.aspx

60. Resource Dictionary, Static Resources and Dynamic Resources.
A. Static and Dynamic resources are used for binding the resources to the control objects.
The main difference between StaticResource and DynamicResource is that how the resource is retrieved elements. If the resource is StaticResource, it will be retrieved only once by the element who is referencing it  and it will be used for all the resources. While the DynamicResource gets its value each time they reference to the objects. So StaticResource is faster than the DynamicResource , because StaticResource needs to get the value only once while the DynamicResource needs each time.

61. What is Prism?
A. Prism is the framework or the set of guidelines which is used to develop the WPF desktop application as well as the Silverlight Rich Internet applications. So it’s a kind of Design pattern to Develop the XMAL based application. It also used to develop the Windows 7 applications. Prism mainly helps to design the loosely coupled components which can be easily integrated with the other components of the overall application. Prism mainly used to build the composite applications which need various other components to be integrated.
Prism mainly guides of creating the applications using the Model-View-ViewModel (MVVM) model, Managed Extensibility Framework (MEF), and navigation in the application.
To use the Prism framework, we need to use their library called as Prism Library. So prism Library is the inbuilt set of components which can be used in developing the WPF and Silverlight applications.
You can go through the below link for more details and the use of the components of the Prism framework:
http://msdn.microsoft.com/en-us/library/ff648465.aspx

62. Dependency Injection, Event Aggregator.
A. For the details about the dependency injection, you can follow the below link:
http://wpftutorial.net/ReferenceArchitecture.html
EventAggregator : It is the utility service which contains the events and allows the decouple the publisher and subscriber so that they can be buildup independently. Decouple is primarily useful when a new module needs to be added or removed or modified. The new module can be added as per the event fired and defined in the shell.
For more details about the Event Aggregator, you can follow the below link:
http://msdn.microsoft.com/en-us/library/ff921122(v=pandp.20).aspx

63. Shell, Bootstrapper and Region Managers
A. Bootstrapper:- An utility in WPF engine which is mainly responsible for the initialization of the application by using the composite application library. By using the bootstrapper we can find out how the components of the application are wired up in the composite application library. The bootstrapper responsibility to create the Shell or main window. Composite application library has the default abstract class UnityBootstrapper which actually handles the initialization.
You can go through the below link for more details about the bootstrapper:
http://msdn.microsoft.com/en-us/library/ff921139(v=pandp.20).aspx
Region and Region Managers: This is concept of Prism framework. We define the region through XAML code and once a region is defined, automatically it will be registered with the RegionManager. Actually the Bootstrapper registers a service called the RegionManager at run time. RegionManager is a dictionary where the key is name of the region. The value of the key is the reference of the IRegion interface. RegionAdapter is used to create the instance reference of the IRegion interface.
You can go through the below link for more details about the Region and Region Manager:
http://msdn.microsoft.com/en-us/magazine/cc785479.aspx#id0090091

64. What are MEF and Unity?
A.  The MEF (Managed Extensibility Framework) is the new concept in .Net 4.0. It is used to create the lightweight and extensible applications to create Managed Extensibility Framework. It is not only allows the extension but also reused within the application. Extension can be easily encapsulating the code using the MEF.
For more details, you can go through the below link:
http://msdn.microsoft.com/en-us/library/dd460648.aspx

65. How to navigate to another page?
A. There is a class NavigationService which can be used for navigation of the WPF window:
this.NavigationService.GoForward();
//or
this.NavigationService.Navigate("MysecondPage.xaml")

Hope the answer will be helpful to all the members.