Microsoft .Net Framework
Microsoft Dot Net Framework
On this wiki you will often see a warning for software that "Requires Microsoft .NET Framework." Knowing what Microsoft .NET Framework was supposed to be, as in, what Microsoft originally promised, as opposed to what it actually became is fundamental in understanding why we offer the warning.
Microsoft .NET Framework was supposed to be a cross-platform unified development solution for programmers to create software that can run on a variety of operating systems and can be created by using a unified set of widgets, tools, and techniques to make the world a better place for developers and end users alike. Microsoft .NET Framework, as promised by Microsoft, would take on Sun Microsystems' JAVA platform in the marketplace and dominate by doing more and being better.
The reality is that Microsoft .NET Framework is bloated, not backwards compatible, doesn't run on other platforms, and creates massive problems and headaches for end users. Microsoft .NET Framework runs primarily on Microsoft Windows and does offer language interoperability across several programming languages.
Microsoft recognized the power of Sun Microsystems Java too late in the game. If a developer creates software in Java, it can be made entirely cross platform. This means that the same program can run on, for example, Microsoft Windows XP and Redhat Linux XFree86. If a developer creates a handy program in Java and cross platform, a Macintosh user can enjoy using the same software that a Microsoft Window user has. Microsoft announced that Microsoft .NET would be the challenger to Java. All Visual BASIC and Microsoft C++ coders would have to migrate to the .NET Platform and learn to program in the Microsoft Object Oriented model.
Contents
Warning: Requires .NET Framework
Criticism of Microsoft .NET Framework from the developer's perspective differs form that of the end user. To the end user, it is an annoying thing that the end user ends up discovering he or she needs to have installed in order to get some program just downloaded to work. Then, the next time some software is installed requiring Microsoft .NET Framework, it needs yet a different version and that has to be installed. Eventually the end user has a sluggish running computer loaded up with multiple versions of .NET Framework in Windows, because each new release is NOT backwards compatible, and there are often internal conflicts caused by the existence of multiple versions of .NET Framework on the same machine.
It is for this reason it is recommended that end users avoid installing software which requires Microsoft .NET Framework. If there is a program that a user wishes to install, yet discovers it requires .NET Framework, the user will often find on deeper exploration, an alternative piece of software to accomplish the same task that doesn't require .NET Framework.
Several backward and forward incompatibilities exist between .NET 1.0, .NET 1.1, and .NET 2.0. These are well-documented and frustrate both end users and developers alike. Microsoft claims to resolve this by allowing the running of different versions side-by-side. Rather than making .NET fully backwards compatible, people just need to have EVERY VERSION of Microsoft .NET all installed at once.
Better quality software never requires Microsoft .NET Framework
Better quality software never requires Microsoft .NET Framework because the purpose of the Microsoft .NET developmental platform is to make writing software more easy. The easier it is to computer program, the more people are able to computer program. Less talented and less intelligent people, once unable to grasp the complexity of lower level languages, are now able to put fingers to keyboard and develop software. However, inferior minds create inferior software. Inferior minds frequently choose Microsoft .NET, typically Visual BASIC .NET, to quickly make programs that inevitably perform poorly and ultimately require end users to cope with the burden of dealing with Microsoft .NET Framework.
Limited Options for Developers
Using Microsoft Visual Studio 6.0 a software developer (computer programmer) could create a stand alone executable that could be distributed to end users without the end users needing to deal with installing a "framework" to run and use the software. Sure, there was libraries and components that sometimes needed to be installed along with the executable, however, this could be accomplished transparently though an installer, and is not out of the ordinary for software developed in any platform.
Java programs created for distribution require Java Virtual Machine, a special framework, in order to run on the end user computer. This can be a burden just like end users having to deal with Microsoft .NET Framework. However, there is a huge advantage that Java developers have over Microsoft .NET developers, JAVA can run on many platforms (Mac, PC, *NIX). This benefit provides an over-weighing factor tipping the scale in favor of Sun's JAVA - in other words, making it worth while to develop software in JAVA. Microsoft .NET developers are stuck with the whole framework crap and are still limited to Microsoft Windows end users only. What's the point of the .NET Platform besides a few shared libraries and the limited language interoperability it offers? Certainly not enough to tip the scale in favor of developing in the .NET Platform.
Furthermore, there is ZERO backwards compatibility. Microsoft loves to pull the rug out from under developers and end users alike. With the introduction of the .NET framework, the Visual Basic language was replaced by the Visual Basic .NET language. The replacement was not backwards compatible and forced programmers to relearn something. Not only did it force programmers to update their knowledge on use of the syntax, but their entire concept of programming had to be changed radically. Microsoft forced their aborted version of the Object Oriented programming model on developers.
Expensive for Businesses and Home Users
Succeeding versions of .NET lock out older operating systems. For example, .NET v.3.0 and above excludes Windows 2000 and prior versions, as well as XP SP1. This can be construed as a way by Microsoft to move away from previous versions, and force operating system purchases. The new model is extensively tied to the Microsoft Windows operating system.