6 ms·
Why I Moved Away From Microsoft ASP.NET
- chollida1 13y ago> The vast majority of .NET projects involve working with giant, monolithic, boring, poorly written, legacy “enterprise” products. These products always seem to be 4-8 years old and 2-3 major platform releases behind the current .NET framework To be fair this can be said for pretty much any project written in pretty much any language or framework.
- quaffapint 13y agoIt's also called job security - there's a lot of old crap to clean up no matter what the language.
- josefresco 13y agoCouldn't agree more. If you want to develop in cutting edge technologies for your weeks-old startup then code away and enjoy living on the edge (with all of it's pros and cons). But almost everything else (not just enterprise) lags behind and for good (many) reason(s). I work for clients and while I'm tempted to offer new technologies, I'm aware that this client will be using this tool for years, most likely as-is. Stability, maintainability and long term investment is many time more important than gee-whiz tech.
- kaolinite 13y agoThere's a difference between using a brand-new Node.JS framework that's barely out of alpha and using Rails/Django/etc which whilst fairly new are proven to be stable and reliable, and are in use at big organisations.
- josefresco 13y agoI agree, however there is no defining line for the non-tech savvy that determines what is bleeding edge, and what isn't. Is Ruby going to be around in 5 years? If Ruby is around, will I be able to hire developers easily and for a reasonable price? These are concerns that drive businesses for whom tech is a necessity but not the core of their business. So the business owner relies on the tech provider who hopefully isn't in a full on romance with the newest framework/language just because it's new.
- airwot4 13y agoSo often the line is when the business owner has spent enough money to feel more comfortable with their technology choice.
- gizzlon 13y agoIs Ruby going to be around in 5 years? Ruby (the language) and rails (the web-framework) are not the latest fads to come out. Rails hit 1.0 in 2005, a.k.a. almost 8 years ago, ruby is much older. Although there can be good reasons to choose something new, I agree with your overall sentiment. But we seem to have extremely different views on what constitutes "new"(node might qualify :)
- josefresco 13y agoI wasn't specifically using Ruby as an example of new/unstable tech. My point was that your average business owner doesn't know Ruby from ASP from Perl. It becomes the job of the tech provider to implement technology that not only serves the need now, but also the need years down the road.
- 300bps 13y agoStability, maintainability and long term investment is many time more important than gee-whiz tech. I'll add one more: Googlibility. I don't like to use bleeding edge technology because when I google error messages I get nothing back.
- robodale 13y agoRe-read what josefresco said - because this is the reality.
- scrabble 13y ago"Boring" is pretty safe when it comes to quality and maintainability.
- weblivz 13y agoI completely agree with you. One could interpret that line as a "scalable", "proven" and "stable" technology framework. People should focus on integration between components - the argument between language and frameworks died many years ago.
- untog 13y agoI miss C# something rotten. It's such a great language, and I miss being able to use stuff like LINQ every day. But the community just isn't here - everyone is working on huge-scale corporate projects, and comparatively few are working on great stuff like Nancy.fx (a lightweight web MVC framework). That said, I bought a license for MonoTouch, and I'm hoping that I'll be able to use C# for cool stuff in the future. Just with as little of the ASP.NET stuff as possible.
- rip747 13y agothis is the same thing in almost any community. You have a handful of people who are dedicated to the open source movement of the language and the reset just sit by the sidelines. There's nothing wrong with this though. Not everyone has spare time in their lives to dedicate to open source.
- untog 13y agoI think it's different when the language has open source roots. A ton of ASP.NET libraries are paid products, and support for them comes at a premium. You don't see that anywhere near as much in Ruby or Node.
- ehmuidifici 13y agoA few years ago, I participated on a interview for a job (in a startup) which requires some skills in ASP.NET. When I started talking to company owner and I said to him that I knew PHP (and ASP.NET too, of course), he started to say that ASP.NET is better because it's paid, expensive and it has a great support from Microsoft... That's all he said about it. Later on, I discovered that almost 7/10 of big companies' IT managers think the same, that's why ASP.NET still has its audience. The same goes on with Oracle.
- untog 13y agoThey're not wrong, though. It's all about priorities. With an MS product you do get good support, and someone to shout at if something is not behaving as expected. With open source tech you can submit a patch to fix it yourself.
- factorialboy 13y ago> Why I Moved Away From Microsoft ASP.NET Because its almost 2014?
- sz4kerto 13y agoThat's the common reason people* move to/away from various technologies. * under 25
- josefresco 13y agoWhile it's fun to make fun of a 25 year's seemingly rash decisions, sometimes those youngsters' rush to embrace a new language or tech actually does move business forward where before it would not have.
- sjwright 13y agoAnd it's one of the top three reasons for people over 25.
- Touche 13y agoCached version: http://webcache.googleusercontent.com/search?q=cache:http://www.ryanbennett.com/general/why-i-moved-away-from-microsoft-asp-net/&strip=1 http://webcache.googleusercontent.com/search?q=cache:http://...
- RustyBus 13y agoHmm, a few visitors and Ryan's blog has crashed. What non-Microsoft tools & hosting do you think he used?
- 300bps 13y agoIt's hosted with Wordpress on Linode so you are correctly spotting a huge dose of irony.
- corresation 13y agoI run Wordpress on an Amazon micro instance and have easily handled enormous runs without the server breaking a sweat or failing to serve a request. http://wordpress.org/plugins/w3-total-cache/ http://wordpress.org/plugins/w3-total-cache/ The simplest thing in the world.
- rnbennett 13y agoIt's kinda what I get for running Wordpress on Linode. I'll have to checkout AWS.
- rnbennett 13y agoIrony Indeed! Never see traffic like this usually.
- LukaszB 13y agoX-Powered-By:PHP/5.3.2-1ubuntu4.19
- quaffapint 13y ago.NET certainly gets the brunt of the "it's not hip" posts. Yea, there's a lotta junk programs, because they make it easy for people to use in an enterprise. There's also a lot of junk java, etc. That's why you play around on the side with all the new stuff. Using ASP.NET MVC lets you write much leaner html, without the need for all those controls, et al. They're releasing a lot of cool tools if you follow the blogs, and you can now just as easily create a clean bootstrapped page as you would in other offerings.
- swalsh 13y agoOne of the first tasks the new CEO will have when Ballmer leaves is the job of convincing Enterprise customers that Microsoft is still here to fill their needs. That said, the conclusions the author came to may very well be true for classic "Web Forms" projects, and though he noted MVC... i don't feel like he gave it the proper time it deserves. In fact, I find almost the opposite of his sentiments to be true. MVC is a refined platform, and the .NET framework is a joy to work with (personal opinion). Poorly written frameworks exist in any language, but there's also a lot of GREAT code written in .net too. The platform is expensive, and that sucks... but we sell the product for 100k a pop... so frankly neither our customers or ourselves care about the cost. Developing quickly, and with the best quality possible is more important.
- untog 13y agoOne of the first tasks the new CEO will have when Ballmer leaves is the job of convincing Enterprise customers that Microsoft is still here to fill their needs I don't think that Enterprise customers are the problem- they already use MS all the time. It's the small to medium size companies that aren't using it - and as they become larger companies it will become a problem for MS.
- swalsh 13y ago> they already use MS all the time Exactly, we've been the bread and butter for Microsoft for a long time. Yet with Windows 8, we're starting to feel like that's just not true... at least that's the sentiment when I talk to some of my colleagues. For instance We built our main product using WPF, today WPF is all but discontinued. XAML is bigger then ever, but only if you want to make a windows store app. If I leave .NET it's not going to be because some hipster writes an article about python, and how .NET is written by children writing kludge. I know that's not true. It'll be because Microsoft stopped doing the things that made me keep using them.
- nmeofthestate 13y ago"today WPF is all but discontinued" This is an interesting claim - WPF is still the main UI framework for writing Desktop apps, right? I don't know of any replacement framework that is preferred by MS for authoring desktop apps (I never use any WinStore apps on my Windows 8 devices).
- bluedino 13y agoJeff Atwood talks about moving from .NET to Ruby for Discourse in 'Why Ruby?' http://www.codinghorror.com/blog/2013/03/why-ruby.html http://www.codinghorror.com/blog/2013/03/why-ruby.html Boiled down to the licensing of the requirements to run the stack, and the whole open-sourceness of it all.
- bigdubs 13y agoI would love to run mono in production, it's just so slow and buggy that this isn't possible. The simple fact is that server is not a priority for xamarin; mobile is. And this is probably a valid optimization. BizSpark helps though, as far as licensing issues goes.
- asdf3 13y ago> I would love to run mono in production, it's just so slow and buggy that this isn't possible. Is that the general opinion? I've never seen a consensus on mono for MVC.
- qas1981 13y agoASP.NET is a great tool. If you were to walk into a gig that has a large amount of apps running VS, IIS and SQL Server, its no way you'd even suggest full blown open source. If things were reversed and all they had was Django, Apache and MySQL then of course you'd be a unwise to suggest moving to ASP.NET. I think as programmers we forget we must constantly use the information presented to make the best decision on which tool to use. IMHO - Your article should read more like your customer base has changed, thus your tools have changed.
- hhandoko 13y agoI'm coming from a classic ASP background as well, and jumped straight to MVC (skipping Web Form entirely). Only later when I did some WPF project, when Web Forms made some sense. I think the whole toolset is basically trying to lure / accommodate the old Win Forms developer to switch to the web (and in this sense, it's a great success). These days, I'm trying to run even leaner by using ServiceStack.Razor, as most of the stuff I do is service-oriented SPAs.
- SideburnsOfDoom 13y ago> I think the whole (webforms) toolset is basically trying to lure / accommodate the old Win Forms developer to switch to the web Correct, that was the driver behind webforms. Don't forget that the first version of ASP came out in 1996. Bill Gates' "Internet Tidal Wave" memo was in May 1995. At the time, Microsoft wanted a way to VB programmers onto the web, and still using familiar, easy tools. And staying inside the Microsoft mothership, of course. ASP grew into ASP.NET Webforms. (.Net 1.0 launched in 2002) If one was familiar with VB or .Net and winforms, ASP and webforms wasn't too much of a leap. But the abstraction was slow and leaky to work with, and the rendered html contained huge hidden state fields and other oddities. So a new generation of devs who grew up with the web generally greeted it with "WTF!". That's where ASP MVC comes in. IMHO the wheel has turned far since then; On windows 8, JavaScript is a language for developing desktop apps, so that web developers can try their hand at desktop - the reverse of the situation that Webforms set out to address.
- bhouston 13y agoI moved to C# from Java back in 2001 for the RAD projects I had (still using C++ a lot when necessary though.) C# was a great language and it was faster than Java back then. But for the last couple of years all my RAD projects are now in JavaScript and it wouldn't go back. JavaScript frees me up, where as with C# I feel like I am in a straightjacket where I am forced to write a lot of boilerplate code just to do something quick (a simple Main requires a class to exist!)
- weblivz 13y agoIt's the right tool for the right job. C# is second to none for server side work and JavaScript is great for the client side stuff. Node makes it interesting but i'd imagine the [server side] debugging support is a while from being at the level C# offers.
- edwinnathaniel 13y agoSubstitute C# with Java and your statement is correct ;)
- weblivz 13y agoMaybe need to move back to ASP.NET to get his site up again ;-) I was going to disagree with the entirety of his post but seems there is no need.
- rnbennett 13y agoThat's what I get for being cheap. :)
- YummyTempura 13y agoi think the "server down" message on your website right now probably speaks as loudly to the topic at hand as any comment here. More importantly I feel like this story has been told already a hundred times. Im more compelled by the reasons people either stick with or move to ASP.NET. I would agree that for a great many use cases there are potentially better and less costly tools than this stack, and as a .Net contractor by trade I'm (privately) one of its biggest critics. But big (non-tech) businesses love Microsoft (rightly or wrongly), and as a result, in my local market i can provide for my family a lot better by staying put. I appreciate the benefits of being at the cutting edge, but I feel there are hidden costs for some that aren't obvious.
- redact207 13y agoTried reading this but the site was down... ironically. I've been developing the .NET stack for 10 years now and would have to say straight ASP.NET is the easiest way to add the most horrible amount of bloat to your pages and bring about horrible performance. My gut feel is that it was made to allow application developers to build intranet sites without having to worry about the stateless nature of HTTP. The result was a woeful viewstate that got slugged between the server and client, plus all the woeful bloated libraries that came along with it. I moved to MVC as soon as it was released and have never looked back. My new project ( www.entomic.com ) is in MVC4 with AngularJS, Coffeescript and Scss and it's absolute gravy. Need to expose some DB objects to the client? Two clicks and I have a full set of REST apis for it. Add to that the LINQ javascript library and the whole thing's a cinch.
- jf22 13y agoNitpicker: MVC is part of ASP.NET. You probably meant ASP.NET Webforms in your first paragraph. ;)
- redact207 13y agocertainly did, thanks
- 300bps 13y agoI'm with you. I think it's funny how people put down a technology (ASP.NET) that was released in January of 2002 because it's not up to snuff with 2013 web development tools. I also made the switch to ASP.NET MVC and can't imagine ever going back to ASP.NET. The unbelievable clean HTML you get, full control over rendering and rapid development is just phenomenal. Most of the anti-Microsoft comments I see on HN are of the "but VB6 is terrible!" and "ASP.NET stinks!" variety from people that stopped looking at Microsoft development tools over a decade ago and are still comparing those old tools to their modern competitors.
- untog 13y agoI think it's funny how people put down a technology (ASP.NET) that was released in January of 2002 Because it is still overwhelmingly used today. MS themselves admit that MVC is a tiny proportion of ASP.NET deployments.
- NKCSS 13y agoHis thoughts on ASP.NET WebForms are just; it's a piece of crap trying to make websites have state and you should stay away from it as far as possible. I am a .NET developer like the poster, also been with the framework since the first beta (doing not just web, but also windows development), and I've had my share of frustrations with ASP.NET WebForms as well, but I quickly noticed that I could use Generic handlers (.ashx) to have a stateless experience, unlike the normal pages, which allowed me to add AJAX Handlers that did not suffer all the drawbacks. I just made simple HTML, added my own Ajax Requests (before jQuery) and had a blazing fast web app without all the fake 'state' that ASP.NET WebForms added. Once MVC came around the corner, you basically get the Generic Hander + a way to properly structure your code. Once the Razor view engine came to be, there was also a way to maintain proper templates. All in all, ASP.NET MVC has been great; you get all your .NET code for the back end, just HTML5, CSS3 and JavaScript on the front end, and no more fake 'state'.
- twistedpair 13y agoWas accessing a very slow HMO site yesterday. Peeked at the source and most of the wait was for the 800K ViewState string. Wasn't that hard to decrypt either. I think that is the source of most anti-ASP.Net sentiment.
- NKCSS 13y agoThe ViewState should be encrypted with the MachineKey[1] of the server and shouldn't allow you to decrypt it if they store sensitive data in it, but at least one control needs to request for the encryption or have the encryption set to always [2] [1] http://msdn.microsoft.com/en-us/library/w8h3skw9(v=vs.85).aspx http://msdn.microsoft.com/en-us/library/w8h3skw9(v=vs.85).as... [2] http://msdn.microsoft.com/en-us/library/aa479501.aspx http://msdn.microsoft.com/en-us/library/aa479501.aspx
- spongle 13y agoThe first outsourcing disaster I experienced was view state related. Back in 2003, a membership management app I inherited managed to hang of view state. Each page would throw 2.5Mb across a LAN. It sucked. It also had numerous bad patterns like UI driven SELECT N+1 hell. This is the norm for your average cheap custom build asp.net app. We rewrote the entire thing in php (nice php!!) in three days and it's still used to this day without modification (even managed to get through a couple of security audits unmodified).
- hudo 13y agoStrange post, now when ASP.NET looks better than ever: MVC, WebAPI, ServiceStack, Nancy and all other micro frameworks, SignalR, OWIN/Katana middleware, whole SPA story, decent ORM (EF v5/6), small ORMs like Massive, Dapper, SimpleData ... Which means that author really doesn't know whats going on in .net web ecosystem, works in big old company that still uses Cobol, or has just have a head stuck in the sand. Sure, big companies still uses WebForms, but what should they to after investing years and years into developing application? Rewrite everything every few years when some new shinny toy comes out?
- rnbennett 13y agoWhile I've been out of the .NET game for a year or so, I'm aware of the ecosystem. There's a lot of great libraries out there, that make the experience considerably better. Companies on the Microsoft stack tend to be extremely conservative. I hardly ever see anyone using these ORMs - I see LINQ-to-SQL or EF, or just as often, inline SQL using DataSets in codebehinds. I don't think that companies should immediately jump on the next great technology, however there are plenty of companies sitting around on WebForms based on .NET 2.0 (2005) and .NET 3.5 (2007), and a few still on .NET 1.1 (2003). The only reason these companies have not moved onto ASP.NET MVC (or anything else) is because of the sheer cost of doing so. With that comes all of the negatives discussed in the post.
- benmorris 13y agoC#, Linq, MVC, Web Api, reasons I still use the platform. I did web forms for a few years and there is no way I would be using it today. Thankfully MVC came around.
- UK-AL 13y agoThe modern Microsoft stack is pretty good. MVC + Razor, Entity Framework + Linq. It compares very well to modern web stacks like rails, or django and then some. And then you get use tools around MSSQL like any business intelligence tools. The VS MVC templates in vs 2013, come with bootstrap preinstalled which shows the general direction they're going in now.
- j_juggernaut 13y agoMost of the time the top article goes down. However there is always gooogle cache: http://webcache.googleusercontent.com/search?q=cache:U8pNBnRiHTkJ:www.ryanbennett.com/general/why-i-moved-away-from-microsoft-asp-net/&hl=en&gl=us&strip=1 http://webcache.googleusercontent.com/search?q=cache:U8pNBnR...
- daigoba66 13y agoThe only decent argument against anything in the Microsoft stack, in my opinion, is the licensing costs. You pretty much need to develop on Windows using Visual Studio. And for ASP.NET you pretty much need to deploy to IIS on Windows Server. Though at scale the OS and MSDN licensing costs can be just a drop in the bucket. That is until you decide to use SQL Server on the backend. It's a great product but the licensing costs can make you go broke. If I started a new product or company and used .NET and needed an relational database I would seriously consider PostgreSQL.
- hhandoko 13y agoIt's a good thing that we can use ORM libraries to implement different database backends ;) In all seriousness, it really depends on a lot of things. We've pretty much crossed Oracle from the list because it's just way too expensive, but it's mainly the availability of experts and the ecosystem around SQL Server that makes it an 'easy' choice for most shops in my area.
- EnderMB 13y agoI'm a .NET developer by day, and I'm definitely a fan. C# is a great language, I've worked on many fun projects, and I've even worked in a .NET startup environment. Many of my experiences do not echo that of the author. Perhaps I'm lucky, but a legacy project for me is a project running .NET 2 and an older CMS version, and compared to Java I'd still pick it. I've used .NET in a number of agencies too, and I'd preferred using it to using PHP. We've even taken a number of failed WordPress projects and have taken them over to Umbraco, and the clients couldn't be happier. That being said, I consciously made a decision a few years ago to force myself to develop with different tools for personal projets. While I think ASP.NET is a great platform, I've worked in enough .NET shops to see that many .NET devs tend to "just" write C#. They're more than happy to dedicate their entire career to Microsoft, and to disregard any progress made on other platforms. The biggest blocker for me is using Windows to develop applications. I'm also a big fan of Python, but I'd be lying if I said that I haven't struggled with the transition to using Linux to develop. The terminal is just so powerful, and even though Powershell has made Windows a much better platform to script on, I really don't think it can ever match the terminal. Perhaps I'm alone in this, but I would like to be comfortable with the knowledge that if I lost my job, .NET were to stagnate/fall apart, or if I were offered a great job using Python, that I'd be fully capable of putting my .NET hat down and moving into a mid-level role writing Python on a Linux-based environment. My problem with .NET isn't really a problem. It's a worry that the the Windows platform could alienate me from progress made elsewhere.
- giulianob 13y agoASP.NET MVC is fairly solid but the problem is not so much the framework but having to run on Windows. Managing windows server is a horrible experience compared to Linux. The automation tooling for Linux is just far better.
- teh_klev 13y agoManaging windows server isn't that horrible if you have a decent grasp of PowerShell. Most people can't be bothered learning how to manage Windows (or Unix) servers properly, much in the same way they don't spend time learning Javascript properly.
- dep_b 13y agoI think if you would look around for alternatives for WebForms around the day it came out it was better than most things at the time. Java had a few horrible frameworks as well and PHP was still in it's phase of stuffing markup, database and logic in one ginormous SQL injection friendly file. The thing that was flawed about it that it was meant to work like a desktop app in WinForms style, yet the HTTP protocol isn't stateful so as soon as you would start to nest controls and route clicks, you were up for some pretty messy wiring up during different phases of loading the page. I had an introductory course of one hour on Microsoft MVC and the next day I created and deployed a small website from scratch with it. I always basically tell people that are still on WebForms that they don't need to learn something new when they switch to MVC, they just need to forget a lot of the crap they needed to know to work on WebForms. Every day still on WebForms is a wasted day. The writer seems to have moved from strong typed languages to loosely typed languages. It's pretty unclear to me why he quit using Django and went for JavaScript instead, but the path is pretty clear. I used and use a lot of programming languages and frameworks and I pick whatever seems the most appropriate for the job. - WordPress for dead easy websites only doing basic stuff - PHP/SLIM/MySQL for very simple webservices - Django whenever I want to do a lot of custom views - Microsoft MVC for larger web projects with a lot of business rules Statically typed code works better in an IDE as it is easier to predict what code will do (this is one of the reasons Visual Studio with ReSharper is so effective in compile time and pre compile time error checking and refactoring). I am not sure if I want to maintain all those Node.JS / Ruby / flavor of the month frameworks in eight years either.....probably we will curse it by then too.
- shaydoc 13y agoASP.NET WebForms was a tragedy of a grand scale. Its bloatedness and obfuscation of the web was truly horrific. I can say this because I am a WebForm veteran. I used it from beta in my 2nd job & even back then I found it incredibly obtuse and uninuitive, especially because I understood the stateless nature of the web and it just kinda flew in the face of that ( probably to appease VB programmers coming to the web ). Like many people, I was also looking to get rid of all the bloat, fortunately now ASP.NET MVC and WebAPI are proper development solutions that play nicely with the web. In fact there's alot to admire about the new ASP.NET and how it embraces the web. My web latest app stack is now a Single Page App of HTML/CSS/JS talking to Restful Services (ASP.NET Web API), just beautiful to work with!
- SonicSoul 13y agoASP.NET is a decade+ old technology. It made lots of sense when it came out (state management across postbacks, flexible caching, full base class library, completely extensible object model). combined with early ajax frameworks, we did some great things with it back then (like in browser live stock trading apps before GMail was out) with relative ease.. now there are lots of alternatives.. this is equivalent to writing a post about "why i got off windows 98"..
- chris57334 13y agoNot that you can't get most of this stuff in other platforms or editors, but I'm encouraged that the features they seem to be adding are actually useful as opposed to new ways to drag-drop a table onto a webpage. http://www.hanselman.com/blog/VisualStudio2013RCForWebDevelopersOneASPNETBrowserLinkAndOurDirection.aspx http://www.hanselman.com/blog/VisualStudio2013RCForWebDevelo...
- adamconroy 13y agoThe only thing I took from this article is that ASP.NET is expensive. The rest could apply to any other platform.
- adamconroy 13y agoThis is a well worn path. HN user creates a blog post with minimal substance that has a criticism of Microsoft in the title. Then self posts it to HN. Click bait, glory hunting.