Abstraction is "the process of identifying common patterns that have systematic variations; an abstraction represents the common pattern and provides a means for specifying which variation to use"
An abstract class is a parent class that allows inheritance but can never be instantiated. Abstract classes contain one or more abstract methods that do not have implementation. Abstract classes allow specialization of inherited classes.
An interface is a collection of public methods and properties that are grouped together to encapsulate specific functionality. Once an interface is defined , you can implement in a class.
Interface can not exist on theirown. You can not instantiate an interface. Inaddition interface can not contain any code to implement its members. It just defines members.
A sealed class is a class that does not allow inheritance. Some object model designs need to allow the creation of new instances but not inheritance, if this is the case, the class should be declared as sealed.
To create a sealed class in VB.NET, the class declaration should be done as: NonInheritable Class Shape
Polymorphism allows objects to be represented in multiple forms. Even though classes are derived or inherited from the same parent class, each derived class will have its own behavior. Polymorphism is a concept linked to inheritance and assures that derived classes have the same functions even though each derived class performs different operations.
Virtual keyword : The virtual keyword allows polymorphism too.
To create a virtual member in VB.NET, use the Overridable keyword: Public Overridable Function Draw()
Web services are server side programs that listen for messages from client applications and return specific information. This information may come from web service itself, from other componemts in the same domain, or from other web services.
A web service is a collection of protocols and standards used for exchanging data between applications or systems. Web services provide a standard means of communication among different software applications, running on a variety of platforms and/or frameworks. Software applications written in various programming languages and running on various platforms can use web services to exchange data over computer networks like the Internet in a manner similar to inter-process communication on a single computer. This interoperability (e.g., between Java and Python, or Windows and Linux applications) is due to the use of open standards. So it is hetrogeneous.
To delete the rows stored within a table and free up the storage space that was occupied by these rows, use the Truncate Table command. While delete is used, storage space is not released.
(IL)Intermediate Language is also known as MSIL (Microsoft Intermediate Language) or CIL (Common Intermediate Language). All .NET source code is compiled to IL. This IL is then converted to machine code at the point where the software is installed, or at run-time by a Just-InTime (JIT) compiler.
Full form of CLR is Common Language Runtime and it forms the heart of the .NET framework. All Languages have runtime and its the responsibility of the runtime to take care of the code execution of the program. For example VC + + has MSCRT40.DLL, VB6 has MSVBVM60.DLL, Java has Java Virtual Machine etc. Similarly .NET has CLR. Following are the responsibilities of CLR
In order that two language communicate smoothly CLR has CTS (Common Type System). Example in VB you have “Integer” and in C++ you have “long” these datatypes are not compatible so the interfacing between them is very complicated. In order that two different languages can communicate, Microsoft introduced Common Type System. So “Integer” datatype in VB6 and “int” datatype in C++ will convert it to System.int32 which is datatype of CTS. CLS is subset of CTS.
This is a subset of the CTS which all .NET languages are expected to support. It was always a dream of microsoft to unite all different languages in to one umbrella and CLS is one step towards that. Microsoft has defined CLS which are nothing but guidelines that language to follow so that it can communicate with other .NET languages in a seamless manner.
Managed code runs inside the environment of CLR i.e. .NET runtime. In short all IL are managed code. But if you are using some third party software example VB6 or VC++ component they are unmanaged code as .NET runtime (CLR) does not have control over the source code execution of the language.
When it comes to understanding of internals nothing can beat ILDASM. ILDASM basically converts the whole exe or dll in to IL code. To run ILDASM you have to go to "C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin". Note that i had v1.1 you have to probably change it depending on the type of framework version you have.
If you run IDASM.EXE from the path you will be popped with the IDASM exe program as shown in figure ILDASM.Click on file and browse to the respective directory for the DLL whose assembly you want to view.After you select the DLL you will be popped with a tree view details of the DLL as shown in figure ILDASM.On double clicking on manifest you will be able to view details of assembly , internal IL code etc as shown in Figure Manifest View.
Note : The version number are in the manifest itself which is defined with the DLL or EXE thus making deployment much easier as compared to COM where the information was stored in registry.Note the version information in Figure Manifest view.
You can expand the tree for detail information regarding the DLL like methods etc.
Strong name is similar to GUID(It is supposed to be unique in space and time) in COM components.Strong Name is only needed when we need to deploy assembly in GAC.Strong Names helps GAC to differentiate between two versions.Strong names use public key cryptography (PKC) to ensure that no one can spoof it.PKC use public key and private key concept.
Following are the step to generate a strong name and sign a assembly :-Visual Basic
[C#] [assembly:AssemblyKeyFileAttribute("myKey.snk")] [assembly:AssemblyDelaySignAttribute(true)] The compiler inserts the public key into the assembly manifest and reserves space in the PE file for the full strong name signature. The real public key must be stored while the assembly is built so that other assemblies that reference this assembly can obtain the key to store in their own assembly reference.
Because the assembly does not have a valid strong name signature, the verification of that signature must be turned off. You can do this by using the -Vr option with the Strong Name tool. The following example turns off verification for an assembly called myAssembly.dll. Sn -Vr myAssembly.dll
Just before shipping, you submit the assembly to your organization's signing authority for the actual strong name signing using the -R option with the Strong Name tool.The following example signs an assembly called myAssembly.dll with a strong name using the sgKey.snk key pair. Sn -R myAssembly.dll sgKey.snk
All .NET assemblies have metadata information stored about the types defined in modules.This metadata information can be accessed by mechanism called as “Reflection”.System.Reflection can be used to browse through the metadata information.
Using reflection you can also dynamically invoke methods using System.Type.Invokemember. Below is sample source code
. 

Sample source code uses reflection to browse through “Button” class of “Windows.Forms”. If you compile and run the program following is output as shown in “Sample Reflection Display”. Using reflection you can also dynamically invoke a method using “System.Type.InvokeMember”.
Functions separate code that performs a single, well-defined task. This makes the code easier to read and allows you to reuse the code each time you need to perform the same task. A function is a self-contained module of code that prescribes a calling interface, performs some task, and optionally returns a result.
end