Difference between revisions of "Microsoft .Net Framework"

From Free Knowledge Base- The DUCK Project: information for everyone
Jump to: navigation, search
Line 20: Line 20:
  
 
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.   
 
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.   
 +
 +
Developing in .NET has advantages for the beginner.  It is very easy to learn for the fresh mind not having to cope with altering an entire programming philosophy.  With ease comes inefficiency.  Applications running in a managed environment such as the Microsoft framework's CLR or Java's JVM tend to require more system resources than functionally similar applications that access machine resources more directly.  Programs created in .NET are basically fat, and inefficient.
  
 
== Limited Options for Developers ==
 
== Limited Options for Developers ==
Line 33: Line 35:
 
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.   
 
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.   
  
 +
Businesses lose millions of dollars each year over software they exclusively own and distribute being reverse engineered and illegally distributed.  Microsoft .NET utilizes the Just in time (JIT) compilation.  Software compiled using JIT can be more easily reverse-engineered than native code to algorithms used by an application, raising the concern of possible loss of trade secrets and the bypassing of license control mechanisms.  It is easier to "crack" shareware developed in .NET.
 +
 +
== Anti Innovation ==
 +
 +
Microsoft is more interested in turning a profit rather than to create quality products.  Microsoft naturally is opposed to the Open Source community.  Furthermore, Microsoft is opposed to healthy competition in the technology marketplace. 
 +
 +
Microsoft applied for a multitude of extensive patents key parts of the .NET Framework.  At one time Microsoft and a competing, yet no longer industry relevant company, Novell, had an agreement to allow both use of parts of open source components of .NET, yet lock out the rest of the world programming community.  The agreement is in violation of the principles of giving equal rights to all users of a particular program.
  
 +
Microsoft .NET Framework was supposed to be inherently cross platform, as promoted by Microsoft at the end of the 1990's in an effort to gain developer interest.  However, more than a decade later we see the full implementation of .NET is only supported on Microsoft Windows. Although the platform offers limited .NET subsets for other platforms, the substituted implementations of CLR, base class libraries, and compilers are all that is present.  With some degree of standardization, all implementations remain with a variety of levels of completeness when compared to the full .NET version which Microsoft provides for Windows and are too often entirely incompatible.
  
  

Revision as of 14:50, 6 February 2014

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.

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.

Developing in .NET has advantages for the beginner. It is very easy to learn for the fresh mind not having to cope with altering an entire programming philosophy. With ease comes inefficiency. Applications running in a managed environment such as the Microsoft framework's CLR or Java's JVM tend to require more system resources than functionally similar applications that access machine resources more directly. Programs created in .NET are basically fat, and inefficient.

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.

Businesses lose millions of dollars each year over software they exclusively own and distribute being reverse engineered and illegally distributed. Microsoft .NET utilizes the Just in time (JIT) compilation. Software compiled using JIT can be more easily reverse-engineered than native code to algorithms used by an application, raising the concern of possible loss of trade secrets and the bypassing of license control mechanisms. It is easier to "crack" shareware developed in .NET.

Anti Innovation

Microsoft is more interested in turning a profit rather than to create quality products. Microsoft naturally is opposed to the Open Source community. Furthermore, Microsoft is opposed to healthy competition in the technology marketplace.

Microsoft applied for a multitude of extensive patents key parts of the .NET Framework. At one time Microsoft and a competing, yet no longer industry relevant company, Novell, had an agreement to allow both use of parts of open source components of .NET, yet lock out the rest of the world programming community. The agreement is in violation of the principles of giving equal rights to all users of a particular program.

Microsoft .NET Framework was supposed to be inherently cross platform, as promoted by Microsoft at the end of the 1990's in an effort to gain developer interest. However, more than a decade later we see the full implementation of .NET is only supported on Microsoft Windows. Although the platform offers limited .NET subsets for other platforms, the substituted implementations of CLR, base class libraries, and compilers are all that is present. With some degree of standardization, all implementations remain with a variety of levels of completeness when compared to the full .NET version which Microsoft provides for Windows and are too often entirely incompatible.