Software engineer explains why he swore off .NET platform

Software engineer explains why he swore off .NET platform

Summary: Many open-source and cloud-based tools now offer a cheaper and more lightweight alternative to .NET, solutions provider says. However, are they ready for the enterprise?

SHARE:
51

In a new post, Ryan Bennett, corporate development consultant and founder of AtomicGarden, which provides software for web and mobile devices, says he is finding the Microsoft .NET framework too cumbersome and costly for his projects. 

Keyboard Photo by Joe McKendrick
Photo credit: Joe McKendrick

The .NET framework -- and associated Microsoft toolsets -- has been one of the leading choices within enterprises for well over a decade for web and service-oriented deployments. In various surveys I have been involved with, both the .NET framework and Java Platform, Enterprise Edition have dominated the enterprise scene.

However, Bennett says, many of the open-source and cloud-based tools now available offer a better and more lightweight alternative. Bennett's issues with .NET include "insane" licensing costs, "no focus on the user experience," and the fact that "ASP.NET platform features are always behind other platforms."

Even Mono -- the open-source implementation of .NET -- is falling behind the times, Bennett says. His rationale is summed up in his conclusion:

"I moved away from .NET primarily so I could use free and open platforms to rapidly develop, deploy, and market test products for myself and my clients. Modern open web platforms are easy to acquire, easy to configure, and easy to learn. They are on the leading edge of the web development industry and provide everything needed to create engaging user experiences on top of scalable and performant architectures. The largest web applications on the planet – Google, Facebook, Twitter – use free, open, non-Microsoft technology. And I do too."

Is Microsoft falling behind the open-source and cloud world in offering easy-to-deploy services and development environments?  Is the world moving beyond .NET? 

One respondent to Bennett's blog post already makes the point that "for every [ASP.NET Web Forms] abortion out there, there are equal amounts in PHP, Ruby and whatever else.... so now you’ve left .NET you’ll miss out on all the F# goodness that’s here and more coming. You’ll miss out on the innovations coming in Roslyn. You have to put up with laughably incomplete asynchrony stories in the stack you’ve adopted. You’ll have to put up with the hipster artsy fartsy community that don. Maybe that’s what you want though!"

Topic: Enterprise Software

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

51 comments
Log in or register to join the discussion
  • Ridiculous, in my opinion

    Other than Ruby on Rails there is nothing out there as modern and on the trendline as .NET.

    PHP is widely used because it is easy and flexible, but its development model more closely resembles asp.net's predecessor (active server pages), with a horrible kludge of code and presentation layer. There are some tacked on fixes for this paradigm, like Zend, of course, but PHP is and feels a bit antiquated.

    asp.net, however, retains cutting edge capabilities, with ever evolving SOA concepts, such as the new WebAPI, which makes REST based development fluid for back end programmers who have to interact with front end devs, without learning everything about front end dev.

    There is nothing like .NET for developer productivity, other than as noted earlier, Ruby. Anyone who is throwing out .NET for anything other than economic reasons is just limiting their own toolkit needlessly.
    Mac_PC_FenceSitter
    • asp and .net have other limitations

      they both need MS Windows OS and IIS. Those are not the MOST popular platforms currently used on the web.
      eulampius
      • No they don't

        asp.net runs perfectly well on Apache with Mod Mono.
        Mac_PC_FenceSitter
        • And if you don't like ASP.NET ...

          ... you can use Nancy, which is very Sinatra-esque - without Ruby's crappy performance. And it runs just fine on Windows, Linux, etc.
          bitcrazed
    • Re: Ridiculous, in my opinion

      Even Microsoft is abandoning Dotnet, together with its retarded nephew Silverlight, and promoting WinRT as its new unified API. So the smart ones already see the writing on the wall.
      ldo17
      • Microsoft is abandoning .NET??

        WinRT is exposed using API metadata (.winmd files), the same format used by the .NET framework (ECMA-335). The underlying binary contract makes it easy to access WinRT APIs directly in both static languages such as C#, (.NET) and dynamic languages such as JavaScript. IntelliSense is available in JavaScript, C#, Visual Basic, and C++.

        WinRT is the underlying platform that enables building apps in the "modern" (vs. desktop) style, it's completely compatible with .NET, and "ldo17" wouldn't be able to produce a source for "Microsoft is abandoning .NET" if he spent 8 years looking for it.
        List Walker
    • Your picture is incomplete...

      ...if all you are looking at is .NET, Ruby on Rails and PHP frameworks.

      The developer tool ecosystem on Python is very extensive and useful. Perhaps you should try Python based frameworks out like Django or Flask. I've written Python REST interfaces quite easily without the assistance of any formal "framewoark" at all which attests to the power of the language.

      Perl is derided as a "dying language" but it has the biggest library of code of any language out there (CPAN completely dwarfs all .NET resources)--it is still has an actvie developer community and keeps up with the times.

      There are countless other platforms and technologies for app development as well. Node.js has its fans and is apparently quite scalable. Erlang is also very scalable and built for concurrency.. Kepler is a framework for Lua, which is a language with a relatively flat learning curve. I've not done much with any of these but it helps to be aware of the alternatives.

      That is one habit I've had to fight against that seems to be human nature--to embrace one thing that you've gotten used to at the expense of looking at alternatives. I see it with .NET and PHP people a lot. I've seen people write contorted code to address shortcomings in MySQL when PostgreSQL's in'built capabilites would make the solution trivial. I know .NET people who will spend five figures on MSFT kit before tehy'd spend even minutes to look at any alternatives. I myself was used to developing in Perl since the mid 1990s and had to make myself spend the time to give Python and Ruby a chance.

      But I do have one thing to say against .NET (which I know quite well): of ALL the options out there it is the MOST LOCKED IN--even more so than Java. It is completely dominated by MSFT, and Mono is really second fiddle and lacks the large development community and full framework support. To make FULL use the "cutting edge capabilites" of .NET you MUST adopt the full MSFT stack--that means buying into Windows OS and MSFT all the way up. OTOH, all the others are much more multi-platform. You can stick with Windows or you can go to a Linux- or BSD-based OS, or Apple, or other commercial UNIX.

      The development environment and supporting tools and libraries for .NET are first rate I admit, but that large investment and the relatively insular dev community are is shortcomings.
      Mark Hayden
      • re: Your picture is incomplete...

        One thing that helps some folks buy into the "large investment and the relatively insular [.NET] dev community", besides the joy of using a state of the art development environment and supporting tools, ability to use Language-Integrated Query (LINQ), new innovations that make coding and debugging asynchronous code almost embarrassingly easy, is the fact that huge enterprises are all over this stuff, which leads to 6-figure starting salaries. Moving into the higher six figures really helps to ease that "large investment/insular dev community" pain.
        List Walker
      • nice rebuttal

        perl on bsd, lol!
        dstelow
  • .Net platform has been divorced.

    we also decided not to lose too much time and focus and money on .net platform.
    we have moved awayfrom it with PhP and RubyonRails.
    countless great work is readily available to develop within, no need to waste time re-inventing the wheels.
    bilal_mahmood@...
  • In a few words...

    Dude use .NET
    Google not use .NET
    Google cool.
    Dude not cool.
    Dude switch to "Modern open web platforms"
    Dude cool.
    Happy kitty.
    paul2011
    • Written by . . .

      Hello Kitty?
      rmark@...
      • Yes

        No, this is engrish. Why I am anonymous?
        paul2011
  • .Net was always a bad idea

    While it allowed lazy programmers to whip up stuff with little effort, it was essentially a throwback to the old QBasic interpreter, and it created programs that were essentially limited to the Windows platform (yeah, I know about Mono/Xamarin, but....I don't know of any relatively common app that uses either). Also I personally thought that .Net created an enhanced security risk -- you, or someone else, can create tiny network sniffers and such (I saw one just 23kb in size.)
    JustCallMeBC
    • I don't understand this complaint at all

      .NET bears no resemblance to qbasic whatsoever, other than the coincidental matter that one of .NET's supported languages shares an ancestral history with Qbasic's (VB.Net.)

      .NET runs MSIL, and any language that can compile to MSIL (C++, C#, F#, Eiffel) can create programs for it. I don't know what the "little effort" business pretends to be about, but .NET programs are HARDER to write, not easier, than .NET's predecessor technologies. The payoff wasn't "ease of programming", but better separation of the design/UI layer from the programming layer... initially through asp.net forms, and later through MVC patterns and Ajax.

      .NET in its essentials has basically the same benefits as Java, except that you're not married to any specific language syntax. Any language that can output MSIL is a .NET language.

      In short, it is about as much like qBasic as a hummingbird resembles a Pteranodon.

      I do have to ask - have you ever even used .NET? Your comment shows such little knowledge of it I do have to wonder.
      Mac_PC_FenceSitter
      • As to the nonsense about "no common apps" for Mono

        You do realize the odds are that just about any game you have on your phone is written in Mono, right? (Unity 3D is Mono based, and the leading game engine for mobile.)
        Mac_PC_FenceSitter
        • Point taken

          But I think I was pretty clearly referring to desktop apps.
          JustCallMeBC
      • I agree with you

        .Net is actually an amazing language. I was a Java dev for a number of years but switched to .Net because it was much faster, was innovating faster, had great tools, and was largely free to deploy. ASP.Net web sites don't really cost anything to deploy. All you need is a server, which is the same you need for Tomcat. Linux servers are not really any cheaper to run, to be honest. You might save $100, but mostly they are the same price. Your ASP.Net site can use cheap free databases if you want to go that route (I use Access data files for quick web sites that don't need to handle load). Just over all, I don't see any way in which your statement about .Net is true.
        A Gray
        • Re: .Net is actually an amazing language.

          Nonsense. .net is not language, but an runtime.

          The "bad" thing about this is you need to have the runtime installed and running. How many .net runtimes are currently in Windows? Yes, a whole lot! All different. You need all of them if you intend to run different generation .net applications and all this bloat increases your vulnerabilities surface.
          danbi
          • Not exactly

            You only have as many instances of the .NET CLR running as you have .NET applications running. If you do not having any .NET applications running then there would be no runtime running. Just because you have a certain version of .NET installed on your machine doesn't mean that you have a process running it. There are only potentially 5 .NET version 1.0, 1.0, 2.0, 3.0, 3.5 and 4.0. .NET version 4.5 is included with version 4.0. I'm not sure what you mean by different versions causing vulnerabilities, but I think backwards compatibility is a desirable trait in a framework.
            bmonsterman