Search This Blog

Tuesday, December 28, 2010

Difference between VB.NET and C#.NET

Its a subjective matter which language is best. Some like VB.NET’s
natural style and some like professional and terse C# syntaxes. Both
use the same framework and speed is also very much equivalents. But
still let’s list down some major differences between them :-

Advantages VB.NET :-

  • Has support for optional parameters which makes COM interoperability much easy.
  • With Option Strict off late binding is supported.Legacy VB functionalities can be used by using Microsoft.VisualBasic namespace.
  • Has the WITH construct which is not in C#.
  • The VB.NET part of Visual Studio .NET compiles your code in the background. While this is considered an advantage for small projects, people creating very large projects have found that the IDE slows down considerably as the project gets larger.
Advantages of C# :-

  • XML documentation is generated from source code but this is now been incorporated in Whidbey
  • Operator overloading which is not in current VB.NET but is been introduced in Whidbey.
  • Use of this statement makes unmanaged resource disposal simple.
  • Access to Unsafe code. This allows pointer arithmetic etc, and can improve performance in some situations. However, it is not to be used lightly, as a lot of the normal safety of C# is lost (as the name implies). This is the major difference that you can access unmanaged code in C# and not in VB.NET.

Monday, December 27, 2010

Common Language Runtime ( CLR )

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 Java has Java Virtual Machine etc. Similarly .NET has CLR. Following are the responsibilities of CLR :
  • Garbage Collection :- CLR automatically manages memory allocation thus eliminating memory leaks. When objects are not referred Garbage Collector automatically releases those memories thus providing efficient memory management.
  • Code Access Security :- CAS grants rights to program depending on the security configuration of the machine. Example the program has rights to edit or create a new file but the security configuration of machine does not allow the program to delete a file. CAS will take care that the code runs under the environment of machines security configuration.
  • Code Verification :- This ensures proper code execution and type safety while the code runs. It prevents the source code to perform illegal operation such as accessing invalid memory locations etc.
  • IL( Intermediate language )-to-native translators and optimizer’s :- CLR uses JIT(Just In Time) and compiles the IL code to machine code and then executes. CLR also determines depending on platform what is optimized way of running the IL code.