Hacker News new | past | comments | ask | show | jobs | submit login

I've been through EVERY ASP.net update on every version of .net and every MVC update from CTP2 onwards, dealt with WWF being canned and rewritten, moved APIs between old SOAP stuff (asmx), WCF and WebAPI and rewritten swathes of ASP VBnand C++ COM code, ported EF stuff to later versions and worked around piles of framework bugs including the MS11-100 fiasco. That and been left royally in the shit with silverlight.

Not one of the above has actually improved the product we produce and are all reactionary "we might get left in the shit again" changes.

I'm really tired of it now.




Not one of the above has actually improved the product we produce

You didn't see an improvement from early versions of .NET to later versions? No improvement from WebForms to ASP.NET MVC? I have a very hard time believing that. The system is SO MUCH more mature than it used to be.


I think the point is the end user doesn't see any of the benefits when they are using your application.


The difference between webforms and MVC was huge... (no more postbacks)

But i think Microsoft is slowly finding the correct way of doing things and yes, there is a lot of influence of NodeJS (Owin) and RoR (Scaffolders). But it's easier to change between the same platform (and still using C#), then changing between web technologies.

The above user wasn't required to switch to Silverlight, some web applications in my company still use Asp.Net 1.0 and it still works (not my projects, thank god)


Good point, I'm thinking in terms of code quality, which can be seriously improved by using newer language features. I mean, you could write C# without using generics or LINQ or extension methods or a dozen other meaningful improvements, but I can't imagine someone doing so on purpose.


LINQ isn't a magic bullet.

   collection.Where(s=>s.Transaction.Amount < 100).OrderBy(s=>s.Name).Single();
I'll let you debug the intermittent NullReferenceException that threw in production with no PDBs...


You would get a null reference exception if you unrolled that into a loop, too. You should know what your data is going to look like and if any elements could be null or not. Don't blame LINQ for your lack of null checking.


Yep but you'd know which dereference it was if you unrolled it. Nulls happen unfortunately even with the best checking and intents.


Nulls happen, that's why you use the best checking. It's not the best checking if you get thrown NullReferenceExceptions


Definitely but that gurantee is thrown away the moment you pull a 3rd party black box in.

I'm suggesting it's feasible but not necessarily perfect and when it does go boom, which it does when you have 100 million HTTP hits a day, you need to be able to find out precisely where it went wrong. LINQ makes that damn hard:

   NullReferenceException
   Company.Product.Assembly.Namespace.Type.Method() +14
   ...
When line 14 has 22 dereferences then you have no idea why it broke.


But look at how concise and readable that is!


In my opinion, it's not really any different outside of the Microsoft bubble except outside you're dealing with different vendors. In the time that all these technology changes by Microsoft, node.js came out of nothing, PHP got namespaces and package management, Python 3 became a thing nobody uses, Rails has several high-profile security bugs, etc, etc, etc.

It's the nature of the industry; if you stop moving you'll be left behind.


You missed node.js for Visual Studio did you? Node.js is a part of Microsoft "bubble" for years now (Azure support etc.).


Interesting how different people have vastly different experiences. I've been using .NET since pre-release 1.0. Once I ran into my first reactionary "we might get left in the shit again" change I stopped using anything that wasn't in the core framework. I don't go near ORMs, and I don't touch LINQ either. I have code running in a project now that's 7 years old, and I cannot improve it, even after revisiting it many times. I love using Visual Studio, and I love writing .NET code. I try new things when I hear about them, but nothing has compelled me to change.


This reads like a standard list of a cocooned MS developer. With ServiceStack, NancyFX, NHibernate, Dapper, OrmLite, etc out there could you have just been making some bad choices?

And anyone who knew web, knew Silverlight didn't have a future from the very beginning.


The only bad choice was the foundation on which to build the product. The above technologies are pretty much a response to the world being better elsewhere. Unfortunately the responses are pretty immature, poorly documented with bad support reputations and virtually no backing.

I've used most of the above. ServiceStack was pretty good but nothing in comparison to Jasper which has much better documentation, a cleaner architecture, stable migration notes and better performance. Look: https://jersey.java.net/documentation/latest/index.html

NancyFX I haven't touched.

NHibernate is a buggy behemoth with a learning curve from hell. It doesn't scale well with project size (we have 2000 tables of which about 500 are NH mapped "model-first") and it stinks. The SQL generated is terrible, it's impossible to debug when it goes wrong other than sift through 50Mb of log4net DEBUG level logs. To add insult to injury, the LINQ provider is so buggy it's like programming with a hand grenade. I've used hibernate in java and NHibernate isn't even a tenth of the way to the maturity and reliability.

Dapper - I really like Dapper. I have used it for data transforms before. However it doesn't play well with low trust as it uses IL emit.

OrmLite - see ServiceStack.

Not bad choices - just choices I either regret or had to make because the whole ecosystem is amateurish outside of Microsoft and unstable inside of Microsoft. Sorry.


Have you tried LINQ to DB (not LINQ to SQL) the successor to BLToolkit? We've had good results with it, but we like to keep our queries and datalayer as simple and thin as possible.


> And anyone who knew web, knew Silverlight didn't have a future from the very beginning.

Totally agree. In 2006/7 jQuery effectively meant that Silverlight was DOA.


Why are you still using it?


As for the company, we've got over one million lines of c#. As new subsystems appear they are being moved to other technologies (Angular + Java + Jersey + maven + guice + Jetty + Redis + postgresql). This takes time. The amount of code is tiny compared to the old implementations and the time to market and reliability is awesome.

As for me, because I'm in charge of the migration. When its gone I'm not even going to go to the funeral.


Using Java after C#? I am so sorry for you :(. You could've at least chosen Scala.


I'm more sorry for those stuck on .NET + Windows stack.

Been there done that. Modern Java + its ecosystem blew .NET + Windows out of the water, the earth, the solar system pretty much.

PS: Language syntax is probably solving 1/10 of my day-to-day needs. That is to say while C# might have a nicer features in terms of the language, the rest (lib, jvm, tools for jvm, IDE, frameworks, portability) are way below Java.


This. Most of the code I write is gluing stuff together rather than inventing new things which is what I'm paid to do.

A lot of people say this stifles creativity and is boring but the productivity is off the scale. I've built things that would cost £50000+ in dev time and licenses and take 3 months in .net in a couple of days in Java without spending a penny (reporting, messaging, email processing, document scanning, parsing, bulk processing, ETL, matching, logging). This is because someone already did the leg work and released it with an open source license meaning no license cost. Not only that, the ecosystem, Unix based deployment platforms are all easy to automate so jobs only get done once and stay working. Sure you can throw out an ASP.Net MVC web app quickly but that's the easy bit.

We can put £500,000 a year back into open source projects through time investment and donations if we replace .Net and still do better than break even on the dev cost.


Why? We write less code in Java than we did in C#. To be fair NetBeans writes most of it.

I still write C and don't hang myself because it doesn't have generics!


Fair enough. :-)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: