Hai
Friends,
With
lot of encouragement and support, I am posting the Part II of the questions and
answers for 3-6 years experienced people. 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 and I will include them.C# / ASP.net/ .Net framework / other .Net related questions:
1. What is the difference between IEnumerable and IQueryable?
Ans. IEnumerable and IQueryable are used to query data from collections and database. 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.No | IEnumerable | IQueryable |
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 Object 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 IEnumerable, takes the functional objects
as the parameters.
|
The
extension methods which supports be IQueryable, takes the expression tree as the parameters.
|
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.
2. 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:
To prevent the cross-site attack, we can set the below attributes in web.config file:
3. 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.
4. 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.
5. Why to use design patterns?
5. 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
6. 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:
7. 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:
8. 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.
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.
9. 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 introduced in .Net 4.0). The tuple class can return
the object which can contain multiple values in it.
10. 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.
11. What is Expression Tree in C#? How to use Express Trees to create Dynamic LinQ queries?
Ans. Expression Tree is used to create Dynamic Linq query. Sometimes, when the specific criterias' can't be defined at compile time, Expression tree is useful to generate the Linq query at the runtime.
For E.g. In an application, the filter criteria is based on some user actions and is generated dynamically. In this case, we can use the Expression Tree which will generate the criteria at runtime and then we can use that criteria to filter the records from the IQueryable collection.
System.Linq.Expressions is the namespace required to work with the Expression Tree. Here we need to create the predicates using expressions, which will be used in the query.
For E.g. In an application, the filter criteria is based on some user actions and is generated dynamically. In this case, we can use the Expression Tree which will generate the criteria at runtime and then we can use that criteria to filter the records from the IQueryable collection.
System.Linq.Expressions is the namespace required to work with the Expression Tree. Here we need to create the predicates using expressions, which will be used in the query.
Hope these questions and answers will be helpful to you.
Thank You Sooooo Much...
ReplyDeleteIt's very useful to me, thanks for explaining in such a way one can easily understand.
Thank you once again
Nice question set with brief description.
ReplyDeleteThanks for adding.
Thank you so much for questions and answers. Learned 5 new questions in this page..
ReplyDeleteYou are awesome.
ReplyDeleteVery nice concept shared by u. Thank u so much. Please keep updating your knowledge, we r urs followers.
ReplyDeleteVery nice concept shared by u. Thank u so much. Please keep updating your knowledge, we r urs followers.
ReplyDeletethanks ,its really helpful
ReplyDeleteThank you so much for questions and answers. Learned many new questions from this page..
ReplyDelete