Ask LH: What Is The .NET Framework, And Why Do I Need It?

Dear Lifehacker, What is the "Microsoft .NET Framework" and why do I need it? I've been trying to install BlackBerry Desktop, but it fails and states I'm missing the Framework. For some reason I can't download it from Microsoft. What could I do?

Sincerely, Needing .NETDear Needing,

In a perfect world, you wouldn't need .NET Framework. The makers of all your crucial applications would have the time and resources to fully patch together their applications into self-contained packages, because developing for Windows would be an intuitive, mostly high-level process that independent developers could nail down in fairly quick order. So nobody besides developers would need a package like .NET, which provides applications with an orderly way to access databases, web services, and other communication tools.

But you don't live in that world, and we certainly don't write in it. Lifehacker has often recommended applications, usually from small and independent developers, that require some version of the .NET Framework to be installed to function. It's often a big download, and sometimes prone to errors, as you've seen — less so in Windows 7, but any big software patch has the potential for error. BlackBerry's need for the Framework is a bit unusual for a large-scale effort, but not entirely unheard of.

Most times, applications will ask for a particular version of the framework to be installed. We'd recommend avoiding installing that particular version, and trying instead to install the most up-to-date version of .NET, assuming your Windows OS supports it. Most .NET packages have backwards compatibility, so an app asking for the 2.0 framework can usually get by with what's packaged into the latest version: .NET Framework 4. Be sure, too, that you're kept up on your Windows Update requests, as there may be relevant system patches that need installing before .NET will fit comfortably on your system.

One problem .NET installations often run into is a need for space, even if your system might not make that explicit. The 4.0 version of .NET for standard 32-bit Windows systems requires 850 MB of free space on your primary Windows drive; a 64-bit Windows system needs 2GB free, and Windows usually won't ask you if you have space on another partition to spare. If your free space is smaller than these amounts, you'll need to look at your hard drive and free up some space.

Another common problem involves older versions of .NET and, perhaps, their misbehaviour on your system. Head into your Add/Remove Programs section in Control Panel (or "Uninstall Programs" in newer Windows setups) and search for any installations related to ".NET Framework", or something very similar. Try removing them from here, through the standard uninstall procedure, then try installing your newer .NET framework again. If that still fails, it's time to turn to the .NET Framework Cleanup Tool, which was made by Microsoft itself to tidy up and set things straight following tricky .NET installations.

Beyond those two run-of-the-mill issues, you'll want to watch to see if any particular error message, or error code, is given out during installation. Copy that message down — on paper, if selecting and hitting Control+C seems out of reach — and search the web with it in quotes, along with ".NET framework". From what we've seen, nearly every potential issue involving .NET has been posted to a tech support forum somewhere, and an answer often follows.

Here's hoping you and .NET can co-exist inside your Windows system soon, so your BlackBerry can start hanging out and making use of your cool stuff there, too.

Cheers Lifehacker

Got any other advice about .NET Framework and its ins and outs? Drop them in the comments to help out a fellow reader, now and into the future.


Comments

    Please ignore all the upsides of .net.

    Like managed memory, dedicated libraries common across Windows with proper dependency management, powerful functionality for building GUIs, and lastly that it allows you to build an app and access libraries on XP and Windows 7 without the need for version specific code.

    Oh and the debugging, the ability to step through active code on crashes, proper logging functionality inside of Windows..

    I'm getting bored, and although you were addressing the issue with the OS, it was perhaps worth mentioning WHY he needed it and the advantages of using it :)

      .NET is for lazy programmers who haven't got the time to do it all themselves. I personally think it's a dead end, unless you're happy in pidgeon holing yourself to the MS bandwagon.

      Basically .NET is meant to be a common application environment that is supposed to be platform agnostic, though to date, MS has only provided it on Windows. Also, it is more than you said, it is also runtime environment.

      Oh ... I program exclusively for Windows. I eschew .NET because I don't like the extra layer of fat. My programs don't have issues with working with either XP or 7 and I learnt how to debug before Windows even came out and don't need the training wheels.

      The biggest benefit of .NET is purely to benefit Microsoft, as it ties the developer to MS. It is rare to see good commercial applications that rely on it, however it is very popular in the public service and used in-house by many IT departments in commercial enterprise.

        Um what about the mono project? That lets you, wait for it... run .net apps on linux or osx.

        Also you can code in .net for micro controllers, Windows 7 phone, etc. There is even a port of mono being worked on so you can develop .net apps for android and other platforms.

        I am guessing from your comments you are not actually a programmer. It isn't anything to do with being lazy it is using the right tool for the right job. Why write a simple gui app in c++ which can introduce lots of memory leaks, increase production time just for the sake of "not being lazy".

        .NET isn't that large a download. Just look at iTunes or any adobe update. They make you download larger packages constantly.

    For weeks I haven't been able to use Media Center on my XP. After searching posts I found out the reason was .NET 4. After uninstalling it, Media Center works beautifully. Now I'll have to wait and see what turns up not to work beause I uninstalled .NET4.

    Well it seems that we have a stack of .Net haters. Have you guys even tried using it or do you just bitch about how you don't need it, wah wah wah.

    Guys, What language do you program in? Because if you say C++, someone will say C is better and faster. Then someone will say Assembly is better. Wait hang on, lets all program in binary.

    Your arguements are flawed. Use the right tool for the job. If you need instant processing where every second counts, use Assembly. If you need something that will run on Linux, Windows, etc, etc, etc, use Java. If you want a library that provides a stable base for developing Windows Applications, use .Net.

    Don't use a hammer for every screw, nail, bolt and hinge. As a new developer, all I can say is that every system I have ever had to integrate, has been horrible in it's data storage, access, business logic and UI. I can tell you this, .Net is a fantasic tool for integration, might not be the best for UI or web, but give credit where it is rightfully due.

    I don't know about the rest of you guys, but as a developer I have used VB, Perl, Java, AS400 RPG, C, C++, Fortran and a others people have used. All have strengths, all have weaknesses.

    Use the right tool and you will be rewarded. If you're a newbie developer, don't listen to the cranks above and choose the right dev tool for the job, be it .Net, Java or something else.

    And to you guys above. Go take a look in the mirror. True developers live to learn new challenges and like living on the edge of tech, they upgrade their skills, and should objectivitely measure the merit of something before deriding it for what they think it does. If you don't, prepare to be the latest addition to the collection COBAL and PASCAL programmers who couldn't take a hint.

    Stewy

    One correction you might want to make to the article is about downloading newer versions of .net. This is one thing MS screwed up badly and confused lots of people.

    You can actually have different versions installed at the same time and actually need to do this to run applications that use different versions of the framework.

    There are basically 3 versions of the framework you need installed:

    1.1 - For .net 1 applications.
    3.5 - This includes 2.0, 3.0 and 3.5 (3.5/3.0 is basically just an extension of 2.0).
    4.0 - is stand alone again.

    Also some people may have noticed that installing 4.0 fixes lots of issues. This is because of an issue that used to exist where you couldn't have an application that used 1.1 components and 2.0/3.0/3.5 components at the same time. If you tried the application would crash. In .Net 4.0 Microsoft has since fixed this so you can run any .net components as part of the same application regardless of the version.

    If you are running Windows 7 you only need to install .net 4.0 as 1.1 and 3.5 are actually installed as part of windows.

    .NET exists so crap prgrammers can write crap programs quickly without having to think. lol @ "it manages dependency" argument - by creating another dependency on a depedency on a depedency etc.... and you wonder why so many programs crash, hang and have exploitable backdoors.

Join the discussion!