Sunday, May 31, 2009

.NET – Short interview Questions

Introduction
This article contains the short answer interview questions related to .NET, Mostly these questions are asked in the interviews so take a look of these, I am sure it will definitely help you.

Questions
Q1. Explain the differences between Server-side and Client-side code?
Ans. Server side code will execute at server end (where the website is hosted) and all the business logic will execute at server end where as Client side code will execute at client side (usually written in javascript, vbscript, jscript) at browser end.

Q2. What type of code (server or client) is found in a Code-Behind class?
Ans. Server side code.

Q3. How to make sure that value is entered in an asp:Textbox control?
Ans. Use a RequiredFieldValidator control.

Q4. Which property of a validation control is used to associate it with a server control on that page?
Ans. ControlToValidate property.

Q5. How would you implement inheritance using VB.NET & C#?
Ans. C# Derived Class : Baseclass
VB.NEt : Derived Class Inherits Baseclass

Q6. Which method is invoked on the DataAdapter control to load the generated dataset with data?
Ans. Fill() method.

Q7. What method is used to explicitly kill a user’s session?
Ans. Session.Abandon()

Q8. What property within the asp:gridview control is changed to bind columns manually?
Ans. Autogenerated columns is set to false

Q9. Which method is used to redirect the user to another page without performing a round trip to the client?
Ans. Server.Transfer method.

Q10. How do we use different versions of private assemblies in same application without re-build?
Ans.Inside the Assemblyinfo.cs or Assemblyinfo.vb file, we need to specify assembly version.
assembly: AssemblyVersion

Q11. Is it possible to debug java-script in .NET IDE? If yes, how?
Ans. Yes, simply write “debugger” statement at the point where the breakpoint needs to be set within the javascript code and also enable javascript debugging in the browser property settings.

Q12. How many ways can we maintain the state of a page?
Ans. 1. Client Side – Query string, hidden variables, viewstate, cookies
2. Server side – application , cache, context, session, database

Q13. What is the use of a multicast delegate?
Ans. A multicast delegate may be used to call more than one method.

Q14. What is the use of a private constructor?
Ans. A private constructor may be used to prevent the creation of an instance for a class.

Q15. What is the use of Singleton pattern?
Ans. A Singleton pattern .is used to make sure that only one instance of a class exists.

Q16. When do we use a DOM parser and when do we use a SAX parser?
Ans. The DOM Approach is useful for small documents in which the program needs to process a large portion of the document whereas the SAX approach is useful for large documents in which the program only needs to process a small portion of the document.

Q17. Will the finally block be executed if an exception has not occurred?
Ans.Yes it will execute.

Q18. What is a Dataset?
Ans. A dataset is an in memory database kindof object that can hold database information in a disconnected environment.

Q19. Is XML a case-sensitive markup language?
Ans. Yes.

Q20. What is an .ashx file?
Ans. It is a web handler file that produces output to be consumed by an xml consumer client (rather than a browser).

Q21. What is encapsulation?
Ans. Encapsulation is the process of hiding all of the details of an object that do not contribute to its essential characteristics.

Q22. What is Overloading?
Ans. Overloading enables method to be defined with the same name but with different parameters. In other words it allows you to have multiple implementations of a method.

Q23. What is Overriding?
Ans. Overriding is the capability of a class to override the characteristic of the parent class.

Q24. What is a Delegate?
Ans. A delegate is a strongly typed function pointer object that encapsulates a reference to a method, and so the function that needs to be invoked may be called at runtime.

Q25. Is String a Reference Type or Value Type in .NET?
Ans. String is a Reference Type object.

Q26. What is a Satellite Assembly?
Ans. Satellite assemblies contain resource files corresponding to a locale (Culture + Language) and these assemblies are used in deploying an application globally for different languages.

Q27. What are the different types of assemblies and what is their use?
Ans. Private, Public(also called shared) and Satellite Assemblies.

Q28. Are MSIL and CIL the same thing?
Ans. Yes, CIL is the new name for MSIL.

Q29. What is the base class of all web forms?
Ans. System.Web.UI.Page

Q30. How to add a client side event to a server control?
Ans. Example… BtnSubmit.Attributes.Add(”onclick”,”javascript:fnSomeFunctionInJavascript()”);

Q31. How to register a client side script from code-behind?
Ans. Use the Page.RegisterClientScriptBlock method in the server side code to register the script that may be built using a StringBuilder.

Q32. Can a single .NET DLL contain multiple classes?
Ans. Yes, a single .NET DLL may contain any number of classes within it.

Q33. What is DLL Hell?
Ans. DLL Hell is the name given to the problem of old unmanaged DLL’s due to which there was a possibility of version conflict among the DLLs.

Q34. can we put a break statement in a finally block?
Ans. The finally block cannot have the break, continue, return and goto statements.

Q35. What is a CompositeControl in .NET?
Ans. CompositeControl is an abstract class in .NET that is inherited by those web controls that contain child controls within them.

Q36. Which control in asp.net is used to display data from an xml file and then displayed using XSLT?
Ans. Use the asp:Xml control and set its DocumentSource property for associating an xml file, and set its TransformSource property to set the xml control’s xsl file for the XSLT transformation.

Q37. Can we run ASP.NET 1.1 application and ASP.NET 2.0 application on the same computer?
Ans. Yes, though changes in the IIS in the properties for the site have to be made during deployment of each.

Q38. What are the new features in .NET 2.0?
Ans. Plenty of new controls, Generics, anonymous methods, partial classes, iterators, property visibility (separate visibility for get and set) and static classes.

Q39. Can we pop a MessageBox in a web application?
Ans. Yes, though this is done clientside using an alert, prompt or confirm or by opening a new web page that looks like a messagebox.

Q40. What is managed data?
Ans. The data for which the memory management is taken care by .Net runtime’s garbage collector, and this includes tasks for allocation de-allocation.

Q41. How to instruct the garbage collector to collect unreferenced data?
Ans. We may call the garbage collector to collect unreferenced data by executing the System.GC.Collect() method.

Q42. How can we set the Focus on a control in ASP.NET?
Ans. txtBox123.Focus(); OR Page.SetFocus(NameOfControl);

Q43. What are Partial Classes in Asp.Net 2.0?
Ans. In .NET 2.0, a class definition may be split into multiple physical files but partial classes do not make any difference to the compiler as during compile time, the compiler groups all the partial classes and treats them as a single class.

Q44. How to set the default button on a Web Form?

Ans.

Q45.Can we force the garbage collector to run?
Ans. Yes, using the System.GC.Collect(), the garbage collector is forced to run in case required to do so.

Q46. What is Boxing and Unboxing?
Ans. Boxing is the process where any value type can be implicitly converted to a reference type object while Unboxing is the opposite of boxing process where the reference type is converted to a value type.

Q47. What is Code Access security? What is CAS in .NET?
Ans. CAS is the feature of the .NET security model that determines whether an application or a piece of code is permitted to run and decide the resources it can use while running.

Q48. What is Multi-tasking?
Ans. It is a feature of operating systems through which multiple programs may run on the operating system at the same time, just like a scenario where a Notepad, a Calculator and the Control Panel are open at the same time.

Q49. What is Multi-threading?
Ans. When an application performs different tasks at the same time, the application is said to exhibit multithreading as several threads of a process are running.2

Q50. What is a Thread?
Ans. A thread is an activity started by a process and its the basic unit to which an operating system allocates processor resources.

Q51. What does AddressOf in VB.NET operator do?
Ans. The AddressOf operator is used in VB.NET to create a delegate object to a method in order to point to it.

Q52. How to refer to the current thread of a method in .NET?
Ans. In order to refer to the current thread in .NET, the Thread.CurrentThread method can be used. It is a public static property.

Q53. How to pause the execution of a thread in .NET?
Ans. The thread execution can be paused by invoking the Thread.Sleep(IntegerValue) method where IntegerValue is an integer that determines the milliseconds time frame for which the thread in context has to sleep.

Q54. How can we force a thread to sleep for an infinite period?
Ans. Call the Thread.Interupt() method.

Q55. What is Suspend and Resume in .NET Threading?
Ans. Just like a song may be paused and played using a music player, a thread may be paused using Thread.Suspend method and may be started again using the Thread.Resume method. Note that sleep method immediately forces the thread to sleep whereas the suspend method waits for the thread to be in a persistable position before pausing its activity.

Q56. How can we prevent a deadlock in .Net threading?
Ans. Using methods like Monitoring, Interlocked classes, Wait handles, Event raising from between threads, using the ThreadState property.

Q57. What is Ajax?
Ans. Asyncronous Javascript and XML – Ajax is a combination of client side technologies that sets up asynchronous communication between the user interface and the web server so that partial page rendering occur instead of complete page postbacks.

Q58. What is XmlHttpRequest in Ajax?
Ans. It is an object in Javascript that allows the browser to communicate to a web server asynchronously without making a postback.

Q59. What are the different modes of storing an ASP.NET session?
Ans. InProc (the session state is stored in the memory space of the Aspnet_wp.exe process but the session information is lost when IIS reboots), StateServer (the Session state is serialized and stored in a separate process call Viewstate is an object in .NET that automatically persists control setting values across the multiple requests for the same page and it is internally maintained as a hidden field on the web page though its hashed for security reasons.

Q60. What is a delegate in .NET?
Ans. A delegate in .NET is a class that can have a reference to a method, and this class has a signature that can refer only those methods that have a signature which complies with the class.

Q61. Is a delegate a type-safe functions pointer?
Ans. Yes

Q62. What is the return type of an event in .NET?
Ans. There is No return type of an event in .NET.

Q63. Is it possible to specify an access specifier to an event in .NET?
Ans. Yes, though they are public by default.

Q64. Is it possible to create a shared event in .NET?
Ans. Yes, but shared events may only be raised by shared methods.

Q65. How to prevent overriding of a class in .NET?
Ans. Use the keyword NotOverridable in VB.NET and sealed in C#.

Q66. How to prevent inheritance of a class in .NET?
Ans. Use the keyword NotInheritable in VB.NET and sealed in C#.

Q67. What is the purpose of the MustInherit keyword in VB.NET?
Ans. MustInherit keyword in VB.NET is used to create an abstract class.

Q68. What is the access modifier of a member function of in an Interface created in .NET?
Ans. It is always public, we cant use any other modifier other than the public modifier for the member functions of an Interface.

Q69. What does the virtual keyword in C# mean?
Ans. The virtual keyword signifies that the method and property may be overridden.

Q70. How to create a new unique ID for a control?
Ans. ControlName.ID = “ControlName” + Guid.NewGuid().ToString(); //Make use of the Guid class

Q71. What is a HashTable in .NET?
Ans. A Hashtable is an object that implements the IDictionary interface, and can be used to store key value pairs. The key may be used as the index to access the values for that index.

Q71. What is an ArrayList in .NET?
Ans. Arraylist object is used to store a list of values in the form of a list, such that the size of the arraylist can be increased and decreased dynamically, and moreover, it may hold items of different types. Items in an arraylist may be accessed using an index.

Q72. What is the value of the first item in an Enum? 0 or 1?
Ans. 0

Q73. Can we achieve operator overloading in VB.NET?
Ans. Yes, it is supported in the .NET 2.0 version, the “operator” keyword is used.

Q74. What is the use of Finalize method in .NET?
Ans. .NET Garbage collector performs all the clean up activity of the managed objects, and so the finalize method is usually used to free up the unmanaged objects like File objects, Windows API objects, Database connection objects, COM objects etc.

Q75. How do you save all the data in a dataset in .NET?
Ans. Use the AcceptChanges method which commits all the changes made to the dataset since last time Acceptchanges was performed.

Q76. Is there a way to suppress the finalize process inside the garbage collector forcibly in .NET?
Ans. Use the GC.SuppressFinalize() method.

Q77. What is the use of the dispose() method in .NET?
Ans. The Dispose method in .NET belongs to IDisposable interface and it is best used to release unmanaged objects like File objects, Windows API objects, Database connection objects, COM objects etc from the memory. Its performance is better than the finalize() method.

Q78. Is it possible to have have different access modifiers on the get and set methods of a property in .NET?
Ans. No we can not have different modifiers of a common property, which means that if the access modifier of a property’s get method is protected, and it must be protected for the set method as well.

Q79. In .NET, is it possible for two catch blocks to be executed in one go?
Ans. This is NOT possible because once the correct catch block is executed then the code flow goes to the finally block.

Q80. Is there any difference between System.String and System.StringBuilder classes?
Ans. System.String is immutable by nature whereas System.StringBuilder can have a mutable string in which plenty of processes may be performed.

Q81. What technique is used to figure out that the page request is a postback?
Ans. The IsPostBack property of the page object may be used to check whether the page request is a postback or not. IsPostBack property is of the type Boolean.

Q82. Which event of the ASP.NET page life cycle completely loads all the controls on the web page?
Ans. The Page_load event of the ASP.NET page life cycle assures that all controls are completely loaded. Even though the controls are also accessible in Page_Init event but here, the viewstate is incomplete.

Q83. How is ViewState information persisted across postbacks in an ASP.NET webpage?
Ans. Using HTML Hidden Fields, ASP.NET creates a hidden field with an ID=”__VIEWSTATE” and the value of the page’s viewstate is encoded (hashed) for security.

Q84. What is the ValidationSummary control in ASP.NET used for?
Ans. The ValidationSummary control in ASP.NET displays summary of all the current validation errors.

Q85. What is AutoPostBack feature in ASP.NET?
Ans. In case it is required for a server side control to postback when any of its event is triggered, then the AutoPostBack property of this control is set to true.

Q86. What is the difference between Web.config and Machine.Config in .NET?
Ans. Web.config file is used to make the settings to a web application, whereas Machine.config file is used to make settings to all ASP.NET applications on a server(the server machine.

Q87. What is the difference between a session object and an application object?
Ans. A session object can persist information between HTTP requests for a particular user, whereas an application object can be used globally for all the users.

Q88. Which control has a faster performance, Repeater or Datalist?
Ans. Repeater.

Q89. Which control has a faster performance, Datagrid or Datalist?
Ans. Datalist.

Q90. How to we add customized columns in a Gridview in ASP.NET?
Ans. Make use of the TemplateField column.

Q91. Is it possible to stop the clientside validation of an entire page?
Ans. Set Page.Validate = false;

Q92. Is it possible to disable client side script in validators?
Ans. Yes. simply EnableClientScript = false.

Q93. How do we enable tracing in .NET applications?
Ans. <%@ Page Trace=”true” %>

Q94. How to kill a user session in ASP.NET?
Ans. Use the Session.abandon() method.

Q95. Is it possible to perform forms authentication with cookies disabled on a browser?
Ans. No, it is not possible.

Q96. What are the steps to use a checkbox in a gridview?
Ans.
OnCheckedChanged=”Check_Clicked”>


Q97. What are design patterns in .NET?
Ans. A Design pattern is a repeatitive solution to a repeatitive problem in the design of a software architecture.

Q98. What is difference between dataset and datareader in ADO.NET?
Ans. A DataReader provides a forward-only and read-only access to data, while the DataSet object can carry more than one table and at the same time hold the relationships between the tables. Also note that a DataReader is used in a connected architecture whereas a Dataset is used in a disconnected architecture.

Q99. Can connection strings be stored in web.config?
Ans. Yes, in fact this is the best place to store the connection string information.

Q100. Whats the difference between web.config and app.config?
Ans. Web.config is used for web based asp.net applications whereas app.config is used for windows based applications.

ASP.NET – Concept of Auto-Complete in Asp.Net

Introduction
This article will tell you about the concept of Auto-complete in ASP.NET.

What is Auto-Complete?
Auto-complete is a good and useful feature of popular browsers like Firefox and IE. You’ve seen this many times. You go to an online form and as you start to type in fields you get a drop-down showing values you’ve typed in that field before.Let’s take the simple and daily use example which I think every programmer will aware of, GOOGLE this is the name every person knows the internet will definitely know. Now here we’ll see the Auto-Complete using the google website. Whenever we type something in the google search box and click search it will display you the results related to that topic, now when again u type the same value it will display that word in the dropdown list below the search textbox automatically. See the following picture which will tell you this more clearly.Here in the below picture I am searching for “techAhead” (my blog), first time there is no dropdown list, when I click the search button it will display you the result related to techAhead. Here is nothing related to Auto-Complete topic but this is the origin of the concept, let’s move to the next picture and see the concept.



Now after seeing the results I closed my browser or clicks the back button or by any means I typed the techAhead again in the search box of google see the below picture which will displays a dropdown list this is the actual concept of Auto-Complete.



As you can see in the above picture that as I typed the “te” then it displays all the keyword or words that I have searched in the google’s search box earlier, So this is the actual Auto-Complete concept, this is not the case with only google’s search box it will be by default in all textboxes displayed on the websites until the Auto-Complete feature is not disabled for that textbox or it will not be enabled if it is a password textbox.

So “The Auto-Complete means a functionality provided by browsers which will automatically fills your textbox fields with the values that you have typed earlier in that same textbox, whenever you start typing with the same values in that textbox that you have entered earlier.”

Is Auto-Complete Useful?
In my point-of view its fifty-fifty (60%(YES) – 40%(NO)). That is 60% out of 100% it’s a useful feature but rest 40% this feature can create problems for you. How?

Advantages - Ok let’s take the positive (+ve) part first why it is useful. It is useful feature because it saves your time by filling your earlier values in the textbox automatically as you starts typing, whenever you starts typing the values it will display you the matches according to that values in the dropdown list, if you find that you need to type the value that is displayed in the dropdown then just select that value from either mouse or by arrow keys and click or press enter key, that value will be automatically filled in the textbox.
This feature is especially useful in case of Searching sites like google, at least I think this, because suppose you type something an searched in the google, then you got your result worked according to that finished your work and closed your system, then after sometime you think that you need the same result again but you don’t remember what you searched in the google then no worries because Auto-Complete is there for your help, just double click using mouse or just press the down-arrow keys twice in the textbox it will display you all the words that you searched for in the google. Same as google this feature is useful when you are filling some big and lengthy form again & again on website’s.

Disadvantages - Now we have discussed the advantage part of Auto-Complete but lets take a look of disadvantages.
This features help us lot but sometimes, it can harm you if it will not handled properly, Lets suppose someone has developed a site which takes your credit card details for transaction, and also you have no issue in giving the details to that website because it’s a SSL secured website, But In case they forget to disable the auto-complete feature for the credit card number textbox then What, that means if your in the cyber cafĂ© and you entered you credit card details, you closed the website and gone, after sometime another person sits on that computer and opens the same website then it may the case that he’ll be able to find out your credit card details using this Auto-Complete feature and can misuse your details. OR you typed your email address somewhere in the site and someone if able to know that using this feature can misuse your email address, so this type of risks contains the 40% risk factor about the Auto-complete.

Solution to cure the risk for Auto-Complete
As a programmer if you asked then the simple solution is that where you think that it’s a risk are someone can misuse the user’s information if he find out those using this feature then disable the auto-complete feature for that textbox. I’ll explain it that how to disable this later in this article.
But if you are a normal user then the best and easy way to take prevention from your side is clear the auto-complete data, it can be done by clearing you browsers history, but sometimes the value of auto-complete not gone by clearing the history, so the best and easy way is Double click on the textbox, the dropdown menu containing the values will be displayed if having the values, then move one by one value and delete it by using the Del key in the keyboard. It will permanently clear the values.

How to disable Auto-Complete programmatically
This feature is enabled by default in all browsers, the big deal is to disable this feature properly in all browsers lets look at this, I am a asp.net developer so first i am discussing about the asp.net that how to disable or enable this feature in asp.net, in asp.net textboxes having an attribute (property) that is “AutoCompleteType” when you type this property and the it will display all the types for which you can make enable this feature there are many that’s why I am not discussing all those, Now to disable this you having the values Disabled and None. See the below pictures you’ll understand.








Now you think that you have disabled this auto-complete and it will not work for that particular textbox now, But this is not true, I don’t know why but these None and Disabled only works with IE in Firefox it will not disable the auto-complete feature and it will display that auto-complete dropdown.
So how to disable this for all browsers, the above property and case will only work for asp.net.
But the below code will work for all the browsers and in all the language like in ASP.NET, PHP, HTML with all browsers IE, Firefox etc. The below code uses a property called “Autocomplete” and value for this is “off”.



the above code will disable this feature in all browsers, in asp.net it will display a green line below this property but its not a big deal it will not create any problem for you. It will work. Actually this Autocomplete is the attribute of HTML input field but as you know that asp:textboxes are rendered as HTML input boxes when in the running on the browser so it will work perfectly for asp textboxes.

So here is all about this Auto-Complete concept, may be I left something important related to this concept, if anyone knows such thing then please let me know I’ll include it in my article.
Thanks,