Web site - 4 CHAPTER 1 THE PHILOSOPHY OF .NET
4 CHAPTER 1 THE PHILOSOPHY OF .NET approach (can anyone say spaghetti code?) When you combine the thousands of global functions and data types defined by the Win32 API to an already formidable language, it is little wonder that there are so many buggy applications floating around today. Life As a C++/MFC Programmer One vast improvement over raw C/API development is the use of the C++ programming language. In many ways, C++ can be thought of as an object-oriented layer on top of C. Thus, even though C++ programmers benefit from the famed pillars of OOP (encapsulation, inheritance, and polymorphism), they are still at the mercy of the painful aspects of the C language (e.g., manual memory management, ugly pointer arithmetic, and ugly syntactical constructs). Despite its complexity, many C++ frameworks exist today. For example, the Microsoft Foundation Classes (MFC) provides the developer with a set of C++ classes that facilitate the construction of Win32 applications. The main role of MFC is to wrap a sane subset of the raw Win32 API behind a number of classes, magic macros, and numerous code-generation tools (aka wizards). Regardless of the helpful assistance offered by the MFC framework (as well as many other C++-based windowing toolkits), the fact of the matter is that C++ programming remains a difficult and error-prone experience, given its historical roots in C. Life As aVisual Basic 6.0 Programmer Due to a heartfelt desire to enjoy a simpler lifestyle, many programmers have shifted away from the world of C(++)-based frameworks to kinder, gentler languages such as Visual Basic 6.0 (VB6). VB6 is popular due to its ability to build complex user interfaces, code libraries (e.g., COM servers), and data access logic with minimal fuss and bother. Even more than MFC, VB6 hides the complexities of the raw Win32 API from view using a number of integrated code wizards, intrinsic data types, classes, and VB-specific functions. The major downfall of VB6 (which has been rectified given the advent of Visual Basic .NET) is that it is not a fully object-oriented language; rather, it is object aware. For example, VB6 does not allow the programmer to establish is-a relationships between types (i.e., no classical inheritance) and has no intrinsic support for parameterized class construction. Moreover, VB6 doesn t provide the ability to build multithreaded applications unless you are willing to drop down to low-level Win32 API calls (which is complex at best and dangerous at worst). Life As a Java/J2EE Programmer Enter Java. The Java programming language is (almost) completely object oriented and has its syntactic roots in C++. As many of you are aware, Java s strengths are far greater than its support for platform independence. Java (as a language) cleans up many unsavory syntactical aspects of C++. Java (as a platform) provides programmers with a large number of predefined packages that contain various type definitions. Using these types, Java programmers are able to build 100% Pure Java applications complete with database connectivity, messaging support, web-enabled front ends, and a rich user interface. Although Java is a very elegant language, one potential problem is that using Java typically means that you must use Java front-to-back during the development cycle. In effect, Java offers little hope of language integration, as this goes against the grain of Java s primary goal (a single programming language for every need). In reality, however, there are millions of lines of existing code out there in the world that would ideally like to commingle with newer Java code. Sadly, Java makes this task problematic. Pure Java is simply not appropriate for many graphically or numerically intensive applications (in these cases, you may find Java s execution speed leaves something to be desired). A better
You need excellent and relaible webhost company to host your web applications? Then pay a visit to Inexpensive Web Hosting services.