Hai Friends,
Below I am posting
the questions and answers for the short questions for 3-6 years experience
guys.
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.