1. Introduction<br />Visual Basic (VB) is a programming language based on the original DOS language called BASIC (Beginners' All-purpose Symbolic Instruction Code). VB.NET 2005, an offshoot of Visual Basic, is an object-oriented programming language based on VB that is implemented using the Microsoft .NET framework. The basic syntax of the Visual Basic language remains unchanged in VB.NET 2005, but includes additional features such as structured exception handling and short circuited expressions to enhance the infrastructure of the programming language. Developers have found VB.NET to be controversial as some of the software and developmental changes clash with the original language within VB and have caused compatibility issues. Visual Studio .NET is the predominant integrated development environment (IDE) that VB.NET developers employ. <br />Visual Basic programmers supporting VB.NET indicate that language constructs and user interface features in the newer system have caused programming issues within the original VB system. Developers using VB.NET recognize that the upgraded VB system incorporates contemporary object oriented programming paradigms in a more stable environment than was originally thought possible. <br />Visual Basic .NET is a programming language that can be used to create winforms or webapp applications and create programming based in any object-oriented programming language (OOP), ADO.NET, Multithreading or Windows Services. VB.NET programming utilizes concepts connected to string encryption, forms inheritance, regular expressions and deployment<br />The common type system defines how types are declared, used, and managed in the runtime, and is also an important part of the runtime's support for cross-language integration. The common type system performs the following functions: <br />Establishes a framework that helps enable cross-language integration, type safety, and high performance code execution.<br />Provides an object-oriented model that supports the complete implementation of many programming languages.<br />Defines rules that languages must follow, which helps ensure that objects written in different languages can interact with each other.<br />Functions of the Common Type System<br />To establish a framework that helps enable cross-language integration, type safety, and high performance code execution .<br />To provide an object-oriented model that supports the complete implementation of many programming languages.<br />To define rules that languages must follow, which helps ensure that objects written in different languages can interact with each other.<br />The CTS also defines the rules that ensures that the data types of objects written in various languages are able to interact with each other.<br />The CTS also specifies the rules for type visibility and access to the members of a type, i.e. the CTS establishes the rules by which assemblies form scope for a type, and the Common Language Runtime enforces the visibility rules.<br />The CTS defines the rules governing type inheritance, virtual methods and object lifetime.<br />Languages supported by .NET can implement all or some common data types<br />When rounding fractional values, the halfway-to-even (quot;
banker'squot;
) method is used by default, throughout the Framework. Since version 2, quot;
Symmetric Arithmetic Roundingquot;
(round halves away from zero) is also available by programmer's option.[1]<br />it is used to communicate with other languages<br />CLR - CTS - CLS<br />The .NET Framework provides a runtime environment called the Common Language Runtime or CLR (similar to the Java Virtual Machine or JVM in Java), which handles the execution of code and provides useful services for the implementation of the program.<br />The Common Language Runtime is the underpinning of the .NET Framework. CLR takes care of code management at program execution and provides various beneficial services such as memory management, thread management, security management, code verification, compilation, and other system services. The managed code that targets CLR benefits from useful features such as cross-language integration, cross-language exception handling, versioning, enhanced security, deployment support, and debugging.<br />Common Type System (CTS) describes how types are declared, used and managed in the runtime and facilitates cross-language integration, type safety, and high performance code execution.<br />The Common Language Specification (CLS) is an agreement among language designers and class library designers to use a common subset of basic language features that all languages have to follow.<br />VB.NET Advantages<br />Support for optional parameters - very handy for some COM interoperability<br />Support for late binding with Option Strict off - type safety at compile time goes out of the window, but legacy libraries which don't have strongly typed interfaces become easier to use. <br />Support for named indexers (aka properties with parameters). <br />Various legacy VB functions (provided in the Microsoft.VisualBasic namespace, and can be used by other languages with a reference to the Microsoft.VisualBasic.dll). Many of these can be harmful to performance if used unwisely, however, and many people believe they should be avoided for the most part. <br />The with construct: it's a matter of debate as to whether this is an advantage or not, but it's certainly a difference. <br />Simpler (in expression - perhaps more complicated in understanding) event handling, where a method can declare that it handles an event, rather than the handler having to be set up in code. <br />The ability to implement interfaces with methods of different names. (Arguably this makes it harder to find the implementation of an interface, however.) <br />Catch ... When ... clauses, which allow exceptions to be filtered based on runtime expressions rather than just by type. <br />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. <br />Advantages of COM <br />1. COM promotes component-based software development - before component-based development came, software programs have been coded using procedural programming paradigm, which supports linear form of program execution. But component-based program development comes with a number of advantages, such as the ability to use pre-packaged components and tools from third party vendors into an application and support for code reusability in other parts of the same application. <br />2. COM promotes code reusability - standard classes are normally reused in the same application but not to be used easily in other applications. But COM components are designed to separate themselves from single applications and hence can be accessed and used by several different applications without any hassle. <br />3. COM promotes Object-oriented programming (OOP) - The primary characteristics of OOP are encapsulation, which allows the implementation details of an object to be hidden, polymorphism, which is the ability to exhibit multiple behaviors, and inheritance, which allows for the reuse of existing classes in order to design new and more specialized classes. Among these, encapsulation is one of COM's most important characteristics. Encapsulation helps to hide how an object has implemented a method internally. This ultimately helps to incorporate more vigorously implemented or advanced implementation into an object at later time without affecting the client which uses it. <br />4. COM comprises the necessary mechanisms for COM components to communicate with each other - In the normal case, two components coded using two different programming languages can not communicate with each other. But COM can make it possible for different language components, which adhere to the COM specification, to interact with each other and hence COM is language-independent. <br />5. COM helps to access components loaded in different machines on the network - COM component can reside anywhere on our computer or even on another computer connected to a network. That is, applications using COM can access and share COM components regardless of their locations. Thus COM abstracts away the nitty-gritty of clients to locate COM components anywhere in the network. Thus COM provides location transparency and COM components are location independent<br />IDE<br />