Dotnet Interview Questions For 3+ Years of Experiance

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

CLR and C#

1. Types of Authentication and Authorization in IIS.
A. Types of Authentication: Anonymous Authentication, Windows Authentication, Digest Authentication
Types of Authorization:- Anonymous

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. 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 checks for the syntax and semantics of the request and then the request goes to the ASPNet_ISAPI.dll which is the filter to filter the .aspx files. Here the URL request split in to 2 parts- virtual directory and webpage. Now 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 move to the HttpPipeline where the actual execution of the page happened by using the ProcessRequest method and creates the events of the page. After creation of event and execution of all the event, the HTML page gets 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. 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.
Reference types: This type doesn’t 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 type in to the Reference type is called as Boxing. Converting the Reference type data type and keep its value to stack is called as the reference type.
byte b= 45;
Object o = b.Tostring();
The Advantage of boxing and unboxing is that we can convert the type of the object in to another type. The disadvantage is that it requires lot of memory and CPU cycles to convert from one type to another type.
Object o=10;
Int i= Convert.ToInt32(o.ToString());

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 as:
SN -k fileName.dll
Now it will have the unique name. 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 HttpPipeline, 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. After Processing the request 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 current web page.

11. CLR and DLR?
A. CLR (Common Language Runtime) is the utility in the .Net framework to run the application. It is the run-time 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 version 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 but packed as a dll. So we can say that dll is the assembly.
There are 3 types of assemblies- Private Assembly, Shared Assembly, and Satellite Assembly.
GAC (Global Assembly Cache)- When the assembly is  required for 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. We can purchase the client certificate from the trusted providers and then we need to install that provider for our site. By implementing the HTTPS, all the data which is passing will be in encrypted format and will be more secure.

16. What are in-proc and out-proc? Where are data stored in these cases?
A. In-Proc and Out-Proc is the types of Sessions where the session data can be stored in the process memory of the server and in the separate state server.
When the session data is stored in the process memory of the server, the session is called as the In-Proc server. In this case when the server is restarted, the session data will be lost.
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 Out-Proc 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  in-Proc session state, the session data is stored in the Process memory of the Server where the application is running.
In the Out-proc 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 base 64 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 engines? How is it diff from ASP Engines?
A. RAZOR engine is the new concept in the MVC 3 which is mainly used to create the views in the MVC applications. It created the cshtml pages for the MVC application and cshtml pages can be generated automatically by using the Razor engine.ASP engine create the aspx pages while Razor engine creates the pages.

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 Synchronous JavaScript and XML which is used for the Asynchronous calls from the server. It uses internally the JavaScript 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 can JavaScript 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 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 user control, we can use the same control in the various pages. User controls can be created by combining more than one control. 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 need in each page where we want to use the user control. User controls can't be included in to the toolbox.
Server controls are those controls which can be found in the toolbox and can be directly drag to the application like textbox, button etc. For the 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 in 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 caste when required.
Like object mybject = "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;
Dynamic- It’s a keyword introduces with the .net 4.0 and used to keep the data similar to the var keyword. 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 are same. in general, we use method in .net but in scripting language we use function like JavaScript function.
Here the difference can be Function always returns a value which 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. Collection of the Abstract (Incomplete) and Concrete (complete) methods is called as the Abstract class. If there is at least one abstract method in a class, the class must be abstract class.
When there is the similar behavior, we can use the abstract class.
e.g. We want to calculate the area of few component. As this is not generic to the application. We have only few component- 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 member
}
Now in the child class, let’s say i have a circle class and want to calculate the area of the circle:
public class Cicle: MyAbstractClass
{
 public override void Area()
 {
  // calculate the area of the circle
 }
}
In the similar fashion, we can calcite the area of other shapes.
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 overrides in the child class.
e.g. Print functionality of the application can have an interface like:
interface Inf
{
 void Print();
}
Now as this is the generic functionality and can be implemented in any of the page so we have taken it as interface. Now we can implement this functionality in to any page like:
class MyClass:Inf
{
 public void print
 {
  // write details about the print
 }
// 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)
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 is same but they are implemented in the different class. We use virtual keyword in the base class method to be overrides in the child class using the override keyword.
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;
}
}
When the run-time (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 there prototypes (parameters) are different and it is implemented in the same class.
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 in the child class. So we don’t matter whatever is written in the base class. We only need to force the child class to implement my required functionality.
Abstract keyword is used to get the abstraction behavior.

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 text changed event.
We can get more details about the delegate and events from 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 work 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 express, you 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 process simultaneously 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 some data using View.
View doesn’t 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 which is created as a result of any sql statement to hold the intermediate values.
Views are used to format the rows individually. By using the views, 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 join 2 or more tables using some conditions. There are 3 types of Joins in SQL Server database-
a. Left Outer Join
b. Right Outer Join
c. Full Join
In order to extract the matched row from both the tables and unmatched row from the first table, left Outer join is used. The syntax for left outer join condition is:
T.Col1* = T2.Col1
In order to extract the matched row from both the tables and unmatched row from the second table, right Outer join is used. The syntax for right outer join condition is:
T.Col1 = *T2.Col1
In order to extract the matched row from both the tables and unmatched row from the first table and then unmatched row from the second table, full join is used. The syntax for full join condition is:
T.Col1* = *T2.Col1

37. Exception handling.
A. Exception Handling is the way to handle the unexpected error. 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 @@Error which is the global variable and used to get the error. RaiseError is another inbuilt method which is used to display the error.

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 so that we can achieve high response time to the front end. 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 is 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 second instance of the same table. So we 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 id is also an employee id. 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.  Indexes are one 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 doesn’t allow null value while the unique key allow. The limitation of the null in unique key is that it allows only one Null so in only 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 Date type. 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 an  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
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). 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 creeat  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 ca 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 stack panel 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 in to 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 in to 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 whoe 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 to get it.

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")

66. What is the difference between IEnumerable and IQueryable?
Ans. IEnumerable and IQuerable are used to query data from database and collections.  The IEnumerable is basically inherited from IQueryable, so it’s having all the features of the IQueryable in addition to its having additional own features.

S.NoIEnumerableIQueryable
1.
Exists in System.Collections Namespace
Exists in System.Linq Namespace
2.
Can move to forward only in the collection.
Can move to forward, backward or in between the items.
3.
Best for collection like List, Array or in-memory collection
Best for the collections which is out memory like services, remote databases etc
4.
Suitable for LINQ to Objet and Linq to XML queries.
Suitable for Linq to SQL queries
5.
It doesn’t supports custom query, Lazy loading so it’s not good for paging scenarios.
It supports custom query using CreateQuery and Execute methods. Also support lazy loading so good for the paging scenarios.
6.
The extension methods which supports be IEnumrable takes the functional objects as the parameters.
The extension methods which supports be IEnumrable takes the expression tree expressions as the parameters.




In the first example (By using the IEnumerable), the generated SQL is as below:

In the second example (By using the IQueryable), the generated SQL is as below:
We can see that by using the IQueryable, the performance will increase as it has the TOP clause in the query.

67. What is cross site scripting? (XSS)
Ans. Cross-site scripting is the way to attacks and insert the vulnerabilities in Web page. This attack is injected by client-side code. The script which is inject by the client can embed itself in response data. The response data which send back to the malicious user. The browser can’t recognize the scripts as it is responded from the trusted source.
The cross-site scripting attacks also work on the HTTP and HTTPS.
There are 2 ways to prevent the cross site scripting attack:
Constrain input- Validate the input length, type, formatting, range etc
Encode output- Send the input data with encode e.g. Encode to HTML
To prevent the cross-site attack, we can set the below attributes in web.config file: 
68. If I want to see my website similar in all the browsers then what I need to do for that?
Ans. If you want to see the website with the same look and feel then you need to write the common css style which should be same for all browsers. Actually every browser will not support every css elements so it is not possible to use the same css to support all the browsers. You need to write the common css elements in the file and then apply it across the website. Else you need to write the separate css file as per the browser.

69. If say 1 Lac users are using any particular website then what you will do to prevent crashing of server? Which care you will take at the time of coding?
Ans. There are the ways like we can have multiple servers to handle the requests from the users. In this, we can have the Web Gardening concept where we can have the multiple web servers and then one main server to handle the number of requests and switch the requests to other servers.

70. Why to use design patterns?
Ans. Design Pattern is the way to solve the recurring problems which occur during the designing of the applications. As the requirements increases, the projects becomes complex and due to the complexity, it’s difficult to maintain it.
With the help of design patterns, we can reduce the complexity and with the help of OOPs paradigm, we can make our applications more efficient in all the ways.
According to the GoF (Gang of Four) company, the Design Patterns can be classified to 3 ways:-
  • Creational Design Pattern
  • Behavioral Design Pattern
  • Structural Design pattern
71. If I have a class C and two interfaces I1 and I2 and I have add method inside I1 and I2 then how to specify which one has to be called?
Ans. By using the explicit implement interface, we can implement the same method which is defined in both the interfaces.
e.g.
The implementation will be as below:
72. Garbage collection uses which type of algorithm? How it will find which object is unused?
Ans. Mark-And-Release is the algorithm which the garbage collection uses to reclaim the memory of the unreferenced objects which are no longer used.
The algorithm Mark-and-Release work in 2 steps:-
a.    In the first steps, it marks all the accessible objects of the heap memory. This is called as mark phase.
b.    In the second step, scan the heap and reclaim all the unmarked objects by the Garbage Collection algorithm. This step is called as sweep phase.
Below are the algorithm steps:
For the detailed description, follow the below link:
73. What is the difference between out and ref?
Ans: Ref and Out are the parameters which are used in the methods  [ref] and [out] both allows the called method to modify a parameter. The difference between them is what happens before you make a call.
  • [ref] means that the parameter has a value on it before going into the function. The called function can read and or change the value any time. The parameter goes in, then comes out
  • [out] means that the parameter has no official value before going into the function. The called function must initialize it. The parameter only goes out.
So the main difference between the ref and out parameter is that the out parameter doesn't needs to be initialized while the ref parameter must be initialized before passing to the function.

74. Is it possible to use more than one out parameter?
Ans.  As we know that the method always returns a single value but by using the out parameter, we can return multiple values from the method or function.
In C# we can write the small code snippet which will describe to return the multiple values using the out parameters:
We can also use the struct which will contain the multiple values as the return:

There is another way to return multiple values like using Tuple class (newly introduces in .Net 4.0). The tuple class can return the object which can contain multiple values in it. 

75. Is it possible to use .js files used under script will be in body and not in header? Why?
Ans. The .js file is used in header because first the .js file should be loaded to the application and then rest of the content should be load.

Dotnet Interview Questions

1.) What is asp.net life cycle ? 
Life Cycle Events 

PreInit

The properties like IsPostBack have been set at this time.

This event will be used when we want to:
 
  1. Set master page dynamically.
  2. Set theme dynamically.
  3. Read or set profile property values.
  4. This event is also preferred if want to create any dynamic controls.
Init
  1. Raised after all the controls have been initialized with their default values and any skin settings have been applied.
  2. Fired for individual controls first and then for page.
LoadViewState
  1. Fires only if IsPostBack is true.
  2. Values stored in HiddenField with id as _ViewState decoded and stored into corresponding controls.
LoadPostData

Some controls like:

  1. Fires only if IsPostBack is true.
  2. Some controls like Textbox are implemented from IPostBackDataHandler and this fires only for such controls.
  3. In this event page processes postback data included in the request object pass it to the respective controls.
PreLoad
  • Used only if want to inject logic before actual page load starts.
Load
  • Used normally to perform tasks which are common to all requests, such as setting up a database query.
Control events
  1. This event is fired when IsPostBack is true.
  2. Use these events to handle specific control events, such as a Button control's Click event or a TextBox control's TextChanged event.
PreRenderRaised after the page object has created all the controls that are required for rendering which includes child controls and composite controls.
  1. Use the event to make final changes to the contents of the page or its controls before the values are stored into the viewstate and the rendering stage begins.
  2. Mainly used when we want to inject custom JavaScript logic.
SaveViewState
  • All the control values that support viewstate are encoded and stored into the viewstate.
RenderGenerates output (HTML) to be rendered at the client side.
  • We can add custom HTML to the output if we want here.
Unload
  1. Fired for individual controls first and then for page.
   2. Used to perform cleanup work like closing open files and database connections.  


2.) How the request is handled by IIS ?

We give an URL to an aspx page in the browser address bar and press enter. What happens next? We get the response in terms of rendered HTML but how?

  1. We are requesting something from the browser, which means indirectly we are requesting something from the Web Server, that means IIS. IIS, based on the file extension, decides which ISAPI extension can serve the request.

    And in case of ASP.Net (.aspx) it will be aspnet_isapi_dll so the request is passed to it for processing.
     
  2. When the first request comes to the website,

    an application domain is created by the ApplicationManager class where exactly the website runs, and which creates an isolation between 2 web applications.
    Within the application domain an instance of the HostingEnvironment class is created which provides access information about the application such as the name of the folder where the application is stored.
     
  3. Next ASP.Net creates core objects like HttpContext, HttpRequest,HttpResponse.
     
  4. Finally the application starts by creating an instance of the HttpApplication Class (which can be reused for multiple requests to maximize performance).
3.) What is Difference between Session and Cookies  ? 

The basic and main difference between cookie and session is that cookies are stored in the user's browser but sessions can't store in user's browser. This specifies which is best used for. 

• A cookie can keep all the information in the client's browser until deleted. If a person has a login and password, this can be set as a cookie in their browser so they do not have to re-login to your website every time they visit. You can store almost anything in a browser cookie. 

• Sessions are not reliant on the user allowing a cookie. They work like a token in the browser which allowing access and passing information while the user has opened his browser. The problem in sessions is when you close the browser the session will automatically lost. So, if you had a site requiring a login, this couldn't be saved as a session but it can be saved as a cookie, and the user has to re-login every time they visit.
cookies are nothing but a small piece of information on the client machine. before we create a cookies we should check whether the cookies are allowed at the browser side. They are limited in a size 4k.(they are 2 types of cookies peristant cookie , and session cookies) 

Sessions cookies are stored in a server memory during the client browser session.When the browser is closed the session cookies are lost. 



4.) Advantages and disadvantages of Session?
 
Following are the basic advantages and disadvantages of using session. I have describe in details with each type of session at later point of time.

Advantages:

  • It helps maintain user state and data all over the application.
  • It is easy to implement and we can store any kind of object.
  • Stores client data separately.
  • Session is secure and transparent from the user.

Disadvantages:

  • Performance overhead in case of large volumes of data/user, because session data is stored in server memory.
  • Overhead involved in serializing and de-serializing session data, because in the case of StateServerand SQLServer session modes, we need to serialize the objects before storing them.
Besides these, there are many advantages and disadvantages of session that are based on the session type. I have discussed all of them in the respective sections below.


5). What is state management?
Ans: State management is the process by which you maintain state and page information over multiple requests for the same or different pages. 

6). Http is stateless, What does this mean?
Ans: Stateless protocol is a communications protocol that treats each request as an independent transaction that is unrelated to any previous request so that the communication consists of independent pairs of requests and responses.

7). What is Session?
Ans: We know that Http is stateless, means when we open a webpage and fill some information and then move to next page then the data which we have entered will lost.
It happed do to Http protocol stateless nature. So here session come into existence, Session provide us the way of storing data in server memory. So you can store your page data into server
memory and retrieve it back during page postbacks.

8).  What are the Advantage and disadvantage of Session?
Ans: Advantages:
Session provide us the way of maintain user state/data.
It is very easy to implement.
One big advantage of session is that we can store any kind of object in it. :eg, datatabe, dataset.. etc
By using session we don't need to worry about data collesp, because it store every client data separately.
Session is secure and transparent from the user.
Disadvantages:
Performance overhead in case of large volumes of data/user, because session data is stored in server memory.
Overhead involved in serializing and de-serializing session data, because in the case of StateServer and SQLServer session modes, we need to serialize the objects before storing them.

9). What is Session ID in Asp.net?
Ans: Asp.Net use 120 bit identifier to track each session. This is secure enough and can't be reverse engineered. When client communicate with server, only session id is transmitted, between them. When client request for data, ASP.NET looks on to session ID and retrieves corresponding data.

10). By default where the sessions ID's are stored ?

Ans: By default, the unique identifier for a session is stored in a non-expiring session cookie in the browser. You can specify that session identifiers not be stored in a cookie by setting the cookieless attribute to true in the sessionState configuration element.
We can also configure our application to store it in the url by specifying a "cookieless" session
The ASP Session cookie has this format:-
ASPSESSIONIDACSSDCCC=APHELKLDMNKNIOJONJACDHFN


11). Where does session stored if cookie is disabled on client’s machine?
Ans: If you want to disable the use of cookies in your ASP.NET application and still make use of session state, you can configure your application to store the session identifier in the URL instead of a cookie by setting the cookieless attribute of the sessionState configuration element to true, or to UseUri, in the Web.config file for your application.
The following code example shows a Web.config file that configures session state to use cookieless session identifiers.

Code:
<configuration>
  <system.web>
    <sessionState 
      cookieless="true"
      regenerateExpiredSessionId="true"
      timeout="30" />
  </system.web>
</configuration>

12). Can you describe all the property set in web.config under session state?
Ans: 

Code:
<configuration>
  <sessionstate 
      mode="inproc"
      cookieless="false" 
      timeout="20" 
      sqlconnectionstring="data source=127.0.0.1;user id=<user id>;password=<password>"
      server="127.0.0.1" 
      port="42424" 
  />

</configuration>
Mode: The mode setting supports three options: inproc, sqlserver, and stateserver. As stated earlier, ASP.NET supports two modes: in process and out of process. There are also two options for out-of-process state management: memory based (stateserver), and SQL Server based (sqlserver). We'll discuss implementing these options shortly.
Cookieless: The cookieless option for ASP.NET is configured with this simple Boolean setting.
Timeout: This option controls the length of time a session is considered valid. The session timeout is a sliding value; on each request the timeout period is set to the current time plus the timeout value
Sqlconnectionstring: The sqlconnectionstring identifies the database connection string that names the database used for mode sqlserver.
Server: In the out-of-process mode stateserver, it names the server that is running the required Windows NT service: ASPState.
Port: The port setting, which accompanies the server setting, identifies the port number that corresponds to the server setting for mode stateserver.

13). What are Session Events?
Ans: There are two types of session events available in ASP.NET:
Session_Start
Session_End
You can handle both these events in the global.asax file of your web application. When a new session initiates, the session_start event is raised, and the Session_End event raised when a session is abandoned or expires.

14). How you can disable session?
Ans: If we set session Mode="off" in web.config, session will be disabled in the application. For this, we need to configure web.config the following way:

Code:
<configuration>
  <sessionstate  Mode="off"/>
</configuration>


15). If I have more than one version of one assemblies, then how will I use old version (how/where to specify version number?) in my application?

Ans.The version number is stored in the following format: …. The assembly manifest can then contain a reference to which version number we want to use.

16). How do you create threading in.NET? What is the namespace for that?
Ans.
System.Threading;

//create new thread using the thread class’s constructor

Thread myThread = new Thread(new ThreadStart (someFunction));

17). What do you mean by Serialize and MarshalByRef?

Serialization is the act of saving the state of an object so that it can be recreated (i.e deserialized) at a later date.
The MarshalByRef class is part of the System.Runtime.Remoting namespace and enables us to access and use objects that reside in different application 
domains. It is the base class for objects that need to communicate across application domains. MarshalByRef objects are accessed directly within their own 
application domain by using a proxy to communicate. With MarshalByValue the a copy of the entire object is passed across the application domain

 18). What is the difference between Array and LinkedList?
An array is a collection of the same type. The size of the array is fixed in its declaration.
A linked list is similar to an array but it doesn’t have a limited size.

19). What is Asynchronous call and how it can be implemented using delegates?

A synchronous call will wait for a method to complete before program flow is resumed. With an asynchronous call the program flow continues whilst the method executes.

//create object
SomeFunction objFunc = new SomeFunction();

//create delegate
SomeDelegate objDel = new SomeDelegate(objFunc.FunctionA);

//invoke the method asynchronously (use interface IAsyncResult)
IAsyncResult asynchCall = SomeDelegate.Invoke();

 20). How to create events for a control? What is custom events? How to create it?
Ans.
An event is a mechanism used in a class that can be used to provide a notification when something interesting happens. (typical evens in a windows application 
include: change text in textbox, double click or click a button, select an item in dropdown box). 
A custom event is an event created by the user that other developers can use. For example assuming that we have a CashTransaction class and we have a bank 
balance property in that class. We may want to set-up an event that provides a notification when the bank balance drops below a certain amount. In order to 
produce an event the process would be roughly as follows: 
Create the class for the event derived from EventArgs.
Create a delegate with a return type of void.
Create a class containing the method that will activate the event.
Create a class with methods to handle the event.

 21). If you want to write your own dot net language, what steps you will you take care?

We will need to ensure that the high level code is compiled to MSIL (Microsoft intermediate language) so that it can be interpreted by the CLR.

22). Describe the diffeerence between inline and code behind - which is best in a loosely coupled solution?

The term ‘code behind’ refers to application code that is not embedded within the ASPX page and is separated out into a separate file which is then referenced 
from the ASPX page. Inline code is the traditional ASP architectural model where business logic code was embedded within the ASP page. Separating the business 
logic code from the presentation layer offers several advantages: 
1) It allows graphic designers and web developers to work on the presentation layer whilst the application developers concentrate on the business logic.
2) The codebehind file is compiled as a single dll increasing the efficiency of the application,
3) The codebehind model offers a true OO development platform,
4) It speeds up development time as it allows developers to fully maximise the features of the .NET framework such as Cahing, ViewState, Session, Smart Navigation etc.
5) Code is much easier to maintain and susceptible for change.
6) The compiler and VS.NET provides much better support for error checking, intellisense and debugging when using the code behind model.

23). How dot net compiled code will become platform independent?

The raison d’etre for .NET was to cater for multiples languages on a single windows platform whereas the aim of Java was to be a single language on multiple 
platforms. The only way that .NET can be platform independent is if there is a version of the .NET framework installed on the target machine.

 24). Without modifying source code if we compile again, will it be generated MSIL again?

Ans.No.

25). How does you handle this COM components developed in other programming languages in.NET?


Ans.
use TlbImp.exe to import the COM types into your .NET project. If no type library for the COM component then use System.Runtime.InteropServices
use RegAsm.exe to call a .NET developed component in a COM application.

 26). How CCW (Com Callable Wrapper) and RCW (Runtime Callable Wrappers) works?

CCW: When a COM application calls a NET object the CLR creates the CCW as a proxy since the COM application is unable to directly access the .NET object.
RCW: When a .NET application calls a COM object the CLR creates the RCW as a proxy since the .NET application is unable to directly access the .COM object.

 27). What are the new thee features of COM+ services, which are not there in COM (MTS)?

Role based security.
Neutral apartment threading.
New environment called context which defines the execution environment

  28). What are the differences between COM architecture and.NET architecture?


.Net architecture has superseded the old COM architecture providing a flexible rapid application development environment which can be used to create windows, 
web and console applications and web services. .NET provides a powerful development environment that can be used to create objects in any .NET compliant language.
.NET addresses the previous problems of dll hell with COM by providing strongly named assemblies and side-by-side execution where two assemblies with the same name can run on the same box.

29). Can we copy a COM dll to GAC folder?


Ans.
No. It only stores .NET assemblies.

30). What is Shared and Repeatable Inheritance?


Shared Inheritance-: Shared Inheritance-: ITt is multiple times using same class. The mechanism of deriving a new class from an existing class is called inheritance. Shared inheritance introduces a new opportunity of ambiguity and additional implementation complexity. Assume D inherits from B and C, both of which inherits from A. Here A in shared. Single copy made from both derived classes is called shared inheritance.

  31). Can you explain what inheritance is and an example of when you might use it?
 
Ans
.
Inheritance is a fundamental feature of any OO language. It allows us to inherit the members and attributes from a base class to a new derived class. This 
leads to increased code reusability and also makes applications easier to develop, maintain and extend as the new derived class can contain new features not 
available in the base class whilst at the same time preserving the attributes inherited from the base class.

32). How can you write a class to restrict that only one object of this class can be created (Singleton class)?

Ans.

Use the singleton design pattern.
 public sealed class Singleton  
 {  
   static readonly Singleton Instance=new Singleton();  
      static Singleton()  
      {  
      }  
      Singleton()  
      {  
      }  
      public static Singleton Instance  
      {  
           get  
           {  
                return Instance;  
           }  
      }  
 }
 33). What are virtual destructures?


A constructor can not be virtual but a destructor may. Use virtual destructors when you want to implement polymorphic tearing down of an object.

  34). What is close method? How its different from Finalize and Dispose?
  
finalise is the process that allows the garbage collector to clean up any unmanaged resources before it is destroyed.
The finalise method can not be called directly; it is automatically called by the CLR. In order to allow more control over the release of unmanaged resources
the .NET framework provides a dispose method which unlike finalise can be called directly by code.
Close method is same as dispose. It was added as a convenience.

 35). What is Boxing and UnBoxing?


Ans.
Boxing is the process of converting a value type to a reference type. More specifically it involves encapsulating a copy of the object and moving it from
stack to heap. Unboxing is the reverse process.

  36). What is check/uncheck?


Ans.
checked: used to enable overflow checking for arithmetic and conversion functions.
unchecked: used to disable overflow checking for arithmetic and conversion functions 

  37). What is the use of base keyword? Tell me a practical example for base keyword’s usage?

Ans.
The base keyword is used to access members of the base class from within a derived class:
* Call a method on the base class that has been overridden by another method.
* Specify which base-class constructor should be called when creating instances of the derived class.

A base class access is permitted only in a constructor, an instance method, or an instance property accessor.
It is an error to use the base keyword from within a static method.
Example:In this example, both the base class, Person, and the derived class, Employee, have a method named Getinfo. By using the base keyword,
it is possible to call the Getinfo method on the base class, from within the derived class.
// keywords_base.cs
// Accessing base class members


 using System;  
 public class Person  
 {  
 protected string ssn = "444-55-6666";  
 protected string name = "John L. Malgraine";  
 public virtual void GetInfo()  
 {  
 Console.WriteLine("Name: {0}", name);  
 Console.WriteLine("SSN: {0}", ssn);  
 }  
 }  
 class Employee: Person  
 {  
 public string id = "ABC567EFG";  
 public override void GetInfo()  
 {  
 // Calling the base class GetInfo method:  
 base.GetInfo();  
 Console.WriteLine("Employee ID: {0}", id);  
 }  
 }  
 class TestClass {  
 public static void Main()  
 {  
 Employee E = new Employee();  
 E.GetInfo();  
 }  
 }  
 

38). Difference Between Query String and Session

 

QuerystringSession
Querystring is client side state management technique.Session is server side state management technique.
Querystring data is page specific i.e. can be accessed in that page only.Session data can be accessed throughout the session.
Querystring data is visible to user and can be seen in browser url.Session data is not visible to user.
Data is not secured and can be altered hence insensitive data is stored in querystring.Data is secured hence sensitive data such as user information is stored.
Querystring has constraint of Maxlength.Session does not have such constraint.

 

39). Difference between Query string and Cookies

cookies is a text file stored on client machine when we surf ant thing on internet by the server automatically we dont have to create it 

query string is used to transfer data from 1 page to anothe but this is not safe s it shows in url what data we r sending 
pen any site and see url after question mark tht is url

Cookies: - Cookies are little pieces of information that a server stores on a browser. They are of two types 
1. Temporary cookie 
2. Persistent cookie 

Temporary cookie: - They are also known as session cookies. These are volatile in nature. When the browser is shutdown they are erased. 

Persistent cookie:- These may be called as permanent cookies. These are especially saved in files. It may remain for a month or year. 
Properties of cookies 
Some properties of cookie 
Name: - represent the name of cookie. 
Name value: - represent a collection of key values of cookie 
Domain: - represent the domain associated with a specific cookie. 
Path: - the path associated with a cookie. 
Expires: - expired time of cookie. 
Hashkey: - identifies whether the cookie is a cookie dictionary. 
Secure: - specifies whether the cookie is to be sent in an encrypted connection or not
Query string is the limited way to pass information to the web server while Transferring from one page to another page. This information is passed in url of the request. see below the code sample 


Code Sample 

//Retrieving values from query string 
String name; 
//Retrieving from query string 
name = Request.Param["umar"].ToString(); 

But remember that many browsers impose a limit of 255 characters in query strings. You need to use HTTP-Get method to post a page to server otherwise query string values will not be available.
   

40). How can we identify that the Page is Post Back?

Page object has an "IsPostBack" property, which can be checked to know that is the page posted back.

41). What is the lifespan for items stored in ViewState?

PThe items stored in ViewState live until the lifetime of the current page expires including the postbacks to the same page

42). What is AutoPostBack?

If you want a control to postback automatically when an event is raised, you need to set the AutoPostBack property of the control to True

43). Why do you use the App_Code folder in ASP.NET?

The App_Code folder is automatically present in the project. It stores the files, such as classes, typed data set, text files, and reports. If this folder is not available in the application, you can add this folder. One of the important features of the App_Code folder is that only one dll is created for the complete folder, irrespective of how many files it contains.

44). In which event of page cycle is the ViewState available?


After the Init() and before the Page_Load().

45). How long the items in ViewState exists?

They exist for the life of the current page.

46). Where the viewstate is stored after the page postback?


ViewState is stored in a hidden field on the page at client side. ViewState is transported to the client and back to the server, and is not stored on the server or any other external source.

  47). What are the different Session state management options available in ASP.NET?


  1. In-Process
  2. Out-of-Process.
In-Process stores the session in memory on the web server.

Out-of-Process Session state management stores data in an external server.  The external server may be either a SQL Server or a State Server.  All objects stored in session are required to be serializable for Out-of-Process state management.

48). What is the difference between web config and machine config?

Web config file is specific to a web application where as machine config is specific to a machine or server. There can be multiple web config files into an application where as we can have only one machine config file on a server.

49). What are the different types of cookies in ASP.NET?

Session Cookie – Resides on the client machine for a single session until the user does not log out.
Persistent Cookie – Resides on a user’s machine for a period specified for its expiry, such as 10 days, one month, and never.

50). What is the difference between ExecuteScalar and ExecuteNonQuery?

ExecuteScalar returns output value where as ExecuteNonQuery does not return any value but the number of rows affected by the query. ExecuteScalar used for fetching a single value and ExecuteNonQuery used to execute Insert and Update statements.