Thursday, January 31, 2008

Something about constructors

What is a constructor? Explain the New Keyword. What is a Private Constructor?
Constructor - A constructor is a function with the same name as that of the class. The Default Constructor of a class is without an argument. The default constructor ensures that every member data is initialized to a default value. Constructors provide a way for classes to initialize a state for their members. Note that constructors dont have a return type(not even void).
public SomeClass(){Console.Writeline("Vishal says, Default Constructor is called");}\public SomeClass(string str){Console.Writeline("Vishal says, Custom Constructor is called" + str);}
When a custom constructor is defined, the Default Constructor is not called. A constructor may also be overloaded.
New - This keyword may be used as a modifier and as an operator. When used as an operator, it creates an object on a heap to invoke constructors. When used an a modifier, it hides an inherited member from the base class member.
As an operator, it can be used to create an object and then to invoke the constructor of the class. See example below.
ExampleSomeClass objSomeClass = new SomeClass(); //Creating a class object and invoking its constructor
float amount = new float(); //Creating an object of the type, and invoking its constructor
As a modifier, it is used to explicitly hide a member from the base class. See example.
Examplepublic class MamaClass{public void SomeMethod() { ... }}
public class BabyClass : MamaClass{new public void SomeMethod() { .... }}
Private Constructor - When a constructor is created with a private specifier, it is not possible for other classes to derive from this class, neither is it possible to create an instance of this class. They are usually used in classes that contain static members only. It is also used to create Singleton classes.

Abstract clas Vs Interface

What is the difference between abstract class and interface?
If a class is to serve the purpose of providing common fields and members to all subclasses, we create an Abstract class. For creating an abstract class, we make use of the abstract keyword. Such a class cannot be instantiated. Syntax below:
abstract public class Vehicle { }
Above, an abstract class named Vehicle has been defined. We may use the fields, properties and member functions defined within this abstract class to create child classes like Car, Truck, Bike etc. that inherit the features defined within the abstract class. To prevent directly creating an instance of the class Vehicle, we make use of the abstract keyword. To use the definitions defined in the abstract class, the child class inherits from the abstract class, and then instances of the Child class may be easily created.Further, we may define abstract methods within an abstract class (analogous to C++ pure virtual functions) when we wish to define a method that does not have any default implementation. Its then in the hands of the descendant class to provide the details of the method. There may be any number of abstract methods in an abstract class. We define an abstract method using the abstract keyword. If we do not use the abstract keyword, and use the virtual keyword instead, we may provide an implementation of the method that can be used by the child class, but this is not an abstract method.Remember, abstract class can have an abstract method, that does not have any implementation, for which we use the abstract keyword, OR the abstract class may have a virtual method, that can have an implementation, and can be overriden in the child class as well, using the override keyword. Read example below
Example: Abstract Class with Abstract methodnamespace Automobiles{ public abstract class Vehicle { public abstract void Speed() //No Implementation here, only definition }}
Example: Abstract Class with Virtual methodnamespace Automobiles{ public abstract class Vehicle { public virtual void Speed() //Can have an implementation, that may be overriden in child class { ... } }
Public class Car : Vehicle{Public override void Speed() //Here, we override whatever implementation is there in the abstract class { ... //Child class implementation of the method Speed() }}}

An Interface is a collection of semantically related abstract members. An interface expresses through the members it defines, the behaviors that a class needs to support. An interface is defined using the keyword interface. The members defined in an interface contain only definition, no implementation. The members of an interface are all public by default, any other access specifier cannot be used. See code below:
Public interface IVehicle //As a convention, an interface is prefixed by letter I{ Boolean HasFourWheels()}

Time to discuss the Difference between Abstract Class and Interface
1) A class may inherit only one abstract class, but may implement multiple number of Interfaces. Say a class named Car needs to inherit some basic features of a vehicle, it may inherit from an Aabstract class named Vehicle. A car may be of any kind, it may be a vintage car, a sedan, a coupe, or a racing car. For these kind of requirements, say a car needs to have only two seats (means it is a coupe), then the class Car needs to implement a member field from an interface, that we make, say ICoupe.2) Members of an abstract class may have any access modifier, but members of an interface are public by default, and cant have any other access modifier.3) Abstract class methods may OR may not have an implementation, while methods in an Interface only have a definition, no implementation.


REFERENCES
http://www.dotnetuncle.com/Difference/4_abstract_class_interface.aspx

Sunday, January 27, 2008

Automatically connect to database

Code for enumerating Instances of SQL Server (ADO.NET)

The following console application retrieves information about all of the visible SQL Server instances and displays the information in the console window


using System.Data.Sql;

class Program
{
static void Main()
{
// Retrieve the enumerator instance and then the data.
SqlDataSourceEnumerator instance =
SqlDataSourceEnumerator.Instance;
System.Data.DataTable table = instance.GetDataSources();

// Display the contents of the table.
DisplayData(table);

Console.WriteLine("Press any key to continue.");
Console.ReadKey();
}

private static void DisplayData(System.Data.DataTable table)
{
foreach (System.Data.DataRow row in table.Rows)
{
foreach (System.Data.DataColumn col in table.Columns)
{
Console.WriteLine("{0} = {1}", col.ColumnName, row[col]);
}
Console.WriteLine("============================");
}
}
}

Multiple inhertence in .NET

1. Can you use multiple inheritance in .NET?
.NET supports only single inheritance. However the purpose is accomplished using multiple interfaces.

2. Why don’t we have multiple inheritance in .NET?

There are several reasons for this. In simple words, the efforts are more, benefits are less. Different languages have different implementation requirements of multiple inheritance. So in order to implement multiple inheritance, we need to study the implementation aspects of all the languages that are CLR compliant and then implement a common methodology of implementing it. This is too much of efforts. Moreover multiple interface inheritance very much covers the benefits that multiple inheritance has

Positive thinking Vs Negative thinking

This is one of the best and simple article that i have found in net.
Hope this article helps you always.

Positive thinking

Positive Thinking vs Negative Thinking

I want to dedicate this to my father who will turn 80 this year. He has been a
positive influence in my life and has helped my through adversity with his
positive attitude. He only had a eighth grade education but he rose to become a
regional vice president for a large retail corporation. I hope his words of wisdom
will help many of you.

From My Father



Are you the type of person who always thinks negative? Well let's change
the way you think right away. We must change the way you look at things, and add just a
few words in your vocabulary.



1. YES FOR NO

2. CAN FOR CANNOT

3. WILL FOR WILL NOT

4. ENCOURAGE FOR DISCOURAGE

5. LISTEN FOR TALKING

6. LOVE FOR HATE

7. TAKE A PROBLEM TURN IT INTO AN OPPORTUNITY

It seems that most negative thinking people think that everything is wrong,
it's the other persons fault, I can't get along with people, I have no friends,
I irritate people, I complain all the time, I can't get a promotion at work, my
boss doesn't like me. We can go on and on but nothing is going to change unless
you change it with a different outlook on the way that you think, and how you
present yourself to other people. Now reading about this you might think
whoever is writing this, is writing about me. This is true because all of us at
sometime or another lose focus on what we do and how we affect other people. It
really doesn't matter what kind of job that you have, or even if you are the
CEO, Manager of a baseball team, a team leader, you must be able to get along
with people. if you can't get along with people then you lose. You can't win
or put your point across because no one will respect you or anything that you say.
If you think that thinking positive is only for your work then you are wrong.
You must think positive at all times. Positive thinking turns people
on, negative thinking turns people off.





THINGS TO REMEMBER



1. NOTHING HAPPENS UNLESS YOU MAKE IT HAPPEN

2. BE A DOER NOT A WISHER

3. BE A LEADER NOT A FOLLOWER

4. LISTEN TO THE OTHER PERSON POINT OF VIEW

5 TAKE A PROBLEM TURN IT INTO AN OPPORTUNITY

6. BE OPEN MINDED

7. DON'T BE RIGID IN YOUR THINKING

8. THINK AND LISTEN BEFORE YOU TALK

9. LEARN AND PLAN AHEAD BECAUSE KNOWLEDGE IS POWER

References : http://www.resumewritersguide.com/resumepositive.htm
1. What are the new Navigation Controls in Asp.net 2.0?

The navigation controls provide common UI for navigating between pages in your site, such as treeview, menu, and sitemappath. These controls use the site navigation service in ASP.NET 2.0 to retrieve the custom structure you have defined for your site.

References: http://www.megasolutions.net/kb/Asp_Net_2_0_Interview_Questions.aspx

2. What are the new Login Controlsin Asp.net 2.0?

The new login controls provide the building blocks to add authentication and authorization-based UI to your site, such as login forms, create user forms, password retrieval, and custom UI for logged in users or roles. These controls use the built-in membership and role services in ASP.NET 2.0 to interact with the user and role information defined for your site.

References: http://www.megasolutions.net/kb/Asp_Net_2_0_Interview_Questions.aspx

3. Do I need IIS to run Web applications?

Ans:
If you are using Visual Studio, you can use the ASP.NET Development Server built into Visual Studio to test your pages. The server functions as a local Web server, running ASP.NET Web pages in a manner virtually identical to how they run in IIS. To deploy a Web application, you need to copy it to a computer running IIS version 5 or 6.

4. Can I hide the source code for my page?

Ans:
Server-side code is processed on the server and is not sent to the browser, so users cannot see it. However, client script is not protected; any client script that you add to your page, or that is injected into the page by server processing, is visible to users. If you are concerned about protecting your source code on the server, you can precompile your site and deploy the compiled version. For details, see Publishing Web Sites.


5. Do I have to use one programming language for all my Web pages?


No. Each page can be written in a different programming language if you want, even in the same application. If you are creating source code files and putting them in the \App_Code folder to be compiled at run time, all the code in must be in the same language. However, you can create subfolders in the \App_Code folder and use the subfolders to store components written in different programming languages.

General DotNet Faq's

1.Can Session state be shared between Classic ASP applications and ASP.NET applications?


References :


http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/converttoaspnet.asp?

frame=true


2.Can I run ASP.NET on Apache?

Ans:Yes


3.Do I have to use a single programming language for all the Web pages in my app?

Ans: No. Each page can be written in a different programming
language if you want, even in the same application.

If you are creating source code files and putting them in the \App_Code folder
to be compiled at run time, all the code in must be in the same language.

However, you can create subfolders in the \App_Code folder and use subfolders
to store components written in different programming languages.

Ref : http://www.aspnetfaq.com/default.aspx?FaqId=265&CategoryId=39
///
4. # List the various stages of Page-Load lifecycle.

* Init()
* Load()
* PreRender()
* Unload()
Ref: http://www.megasolutions.net/kb/ASP_Net_InterView_Questions_1a.aspx

5. What is DLL Hell?

DLL hell is the problem that occurs when an installation of a newer application might break or

hinder other applications as newer DLLs are copied into the system and the older applications do

not support or are not compatible with them. .NET overcomes this problem by supporting multiple

versions of an assembly at any given time. This is also called side-by-side component versioning.

Ref: http://www.megasolutions.net/kb/ASP_Net_InterView_Questions_1a.aspx

6. Explain the differences between server-side and client-side code?

Server side scripting means that all the script will be executed by the server and interpreted as needed. Client side scripting means that the script will be executed immediately in the browser such as form field validation, clock, email validation, etc. Client side scripting is usually done in VBScript or JavaScript. Since the code is included in the HTML page, anyone can see the code by viewing the page source. It also poses as a possible security hazard for the client computer.

Ref: http://www.megasolutions.net/kb/ASP_Net_InterView_Questions_1a.aspx

7. Different types of Directives.

* @ Page directive
* @ Import directive
* @ Implements directive
* @ Register directive
* @ Assembly directive
* @ OutputCache directive
* @ Reference directive

8. Describe the difference between inline and code behind.

Inline code is written along side the HTML in a page. There is no separate distinction between design code and logic code. Code-behind is code written in a separate file and referenced by the .aspx page.

9. What is the difference between Server.Transfer and Response.Redirect?

* Response.Redirect: This tells the browser that the requested page can be found at a new location. The browser then initiates another request to the new page loading its contents in the browser. This results in two requests by the browser.
* Server.Transfer: It transfers execution from the first page to the second page on the server. As far as the browser client is concerned, it made one request and the initial page is the one responding with content. The benefit of this approach is one less round trip to the server from the client browser. Also, any posted form variables and query string parameters are available to the second page as well.