9 ms·
I’ve been a C# developer for two (almost) decades, how do people even keep up with these rapid changes in the post Core world and what/when to use them? This is
by moksly 6y ago
I’ve been a C# developer for two (almost) decades, how do people even keep up with these rapid changes in the post Core world and what/when to use them? This is a serious question by the way.
- po1nter 6y agoFor the new language feature is usually look them up when there's a new release and try to use them in any new code I write. And since I'm a resharper user, it usually suggests code rewrite using new language features.
- jimbob45 6y agoI don’t think anyone does. I think greenfield projects use the latest version but existing projects just stay where they are barring critical issues. I know my company is still on .NET 4.6 and has no plans to migrate to .NET Core 2 Duo.
- 0xcoffee 6y agoAsides from the obvious blog posts, Microsoft hosts many events such as Microsoft Ignite, where companies often send a couple of developers to get up-to-date with what is going on in the MS world, C# included.
- jiggawatts 6y agoI've honestly given up. The new "open" development style of .NET Core is not my cup of tea. It's now riddled with MVP features that are 80% complete, bug-ridden, and undocumented other than couple of blog articles. The compatibility break with the .NET Framework also removed the biggest advantage I saw in C#, which was that any code that I wrote would "just work". Now there's more frameworks, standards, cores, and build flags than I care to learn, and there are all too many scenarios where it's flat impossible to do something that was trivial before. This is the reason, for example, that PowerShell Core is past version 7 but is still missing many modules, including some key Microsoft ones. If they can't figure this out, what chance do I have? Why would I bother? Lastly, I got fed up with Microsoft releasing yet another half-baked GUI framework. What's the latest one? MAUI? It's yet another attempt at having one framework to rule them all, which means that it'll inevitably be the lowest common denominator and not good at anything. Microsoft won't actually bother making it good enough to write a flagship application in it, and they won't write any of their own apps with it. It'll be dropped on the floor and replaced by the next incomplete GUI framework within just a few years, mark my words. That's if it's ever finished!
- mariusmg 6y ago>The new "open" development style of .NET Core is not my cup of tea. It's now riddled with MVP features that are 80% complete, bug-ridden, and undocumented other than couple of blog articles. .NET Framework is a product, .NET Core is a OSS project. When .NET 5 will ship it will be even worse since .NET Framework people will just expect things to work.
- tonyedgecombe 6y agoI suspect a lot of people (myself included) will just stop at 4.8.
- jiggawatts 6y agoJust this week I wanted to spin up a minimalist ASP.NET page for "tyre-kicking" of new infra builds. You know, something that just coughs up a single page with some basic info, such as the regional options, time zone, current time, and the latency to the SQL Server. This checks that the infra guys did their job and that the AD accounts and firewall ports are in place. I wanted to write 1 page with just some dynamic labels, that's it. Nothing fancy. No MVC. No dependency injection. No JavaScript frameworks. No CSS. Just one ASPX or CSHTML page. Visual Studio 2019 no longer ships with a web project template that does that. Every single project type coughs up megabytes of crap and a bunch of scaffolding. After hours of clicking through every project type, I resorted to another hour of googling to discover that the "legacy" empty templates are still there, but only available as a hidden install option! It's madness.
- mariusmg 6y ago>No dependency injection. No JavaScript frameworks. >Visual Studio 2019 no longer ships with a web project template that does that. Every single project type coughs up megabytes of crap and a bunch of scaffolding. Yeah, the way depency injection and multiple JS frameworks are shoved down your throat in .NET Core is sooo annoying.
- pjmlp 6y agoBy spending part of my learning budget on MSDN blogs, Channel 9, MSBUILD and Ignite sessions.
- jmnicolas 6y agoEverything is optional, you can still code in C# like you did years ago and there's nothing wrong with it. I look at the new things and take what I like. For example I particularly dislike the async / await paradigm so I still use background workers (and they work absolutely fine for my needs). Linq is sublime (I know it's already "old") : I wasn't convinced at first but now I wonder how people in other languages manage without it ! Some things are just syntactic sugar but are very practical : the ?? and .? operators, new MyOjbect { Property1 = 15}; etc etc I'm sure there are a lot of things I don't know about the language but it's fine, i will find it when I need it. Last week I needed to define a method body at the creation of the object and not in the class. After some lengthy googling because I didn't know how to put words on what I was looking for, I found that C# had Func and it solved my problem beautifully.
- jeswin 6y agoThis is about being able to use the language/framework you already know to compile to pure native binaries (like Rust, but with GC). It's a big deal since it makes C# viable in places where it isn't currently, like a lot of Go's use cases. I had been away from C# for nearly 6 years, but was able to pick up Core in a couple of days. If anything, things have gotten simpler and there's fairly good cross platform support. What rapid changes are you referring to?
- tonyedgecombe 6y agoThat was a requirement twenty years ago when the framework wasn't bundled in the operating system and download speeds were much slower. It's really a non-issue now.
- pjmlp 6y agoThe whole point of .NET Core is to bundle the framework with the application.
- tonyedgecombe 6y agoI thought the whole point was to become cross platform. You can install the runtime on its own. Bundling an application and the framework isn't a requirement.
- pjmlp 6y agoSome .NET Framework libraries that were ported to .NET Core are never going to stop being Windows only. Being cross platform is an nice side effect of the whole rebooting process.
- svick 6y agoOr maybe there isn't a single "the whole point" and it can be useful for different reasons to different people?
- pjmlp 6y ago
- tonyedgecombe 6y agoYou probably shouldn't, your customers won't notice. Joel Spolsky wrote a brilliant essay on this: https://www.joelonsoftware.com/2002/01/06/fire-and-motion/ https://www.joelonsoftware.com/2002/01/06/fire-and-motion/
- kqr 6y agoAlthough I don't identify with the "fire" part of that analogy, I agree it seems excessive to keep up with all the fine technical details of new features. Programming language improvements can, at best, give us small decreases in accidental complexity. Good software engineering practises (ruthless prioritisation, proper modularisation, continuous integration) etc. can have huge effects on both inherent and accidental complexity. It is much more important to spend time on those things. They are independent of specific programming language features.
- panpanna 6y ago> how do people even keep up with these rapid changes Be happy you are not a Rust developer then ;)
- FridgeSeal 6y agoThe most difficult thing about keeping pace with dotnet world is the seemingly infinite variations and naming conventions.
- arethuza 6y agoMicrosoft do try and explain when to choose between .Net Framework and .Net Core for server side applications: https://docs.microsoft.com/en-us/dotnet/standard/choosing-core-framework-server https://docs.microsoft.com/en-us/dotnet/standard/choosing-co...
- D_Guidi 6y agoKeep in mind that, although I partially agree with you, other platforms are way-worse than .NET. think about nodejs mess and client-side ecosystem, where things break almost at any minor release. Dev world is going fast, and I think that the choice for .NET is to embrace change or die as an old platform. My2Cents.
- gureddio 6y agoYour comment about the JavaScript client side ecosystem is fair, and I could even provide numerous examples of libraries introducing breaking api changes in minor releases. However it is unfair and simply untrue to somehow also tar nodejs with that brush. Upgrading a nodejs project by a major version usually never needs any code changes
- SideburnsOfDoom 6y ago> how do people even keep up with these rapid changes in the post Core world and what/when to use them? You wished that the dev world moved slower. Sorry, things move fast nowadays. The .NET team decided to stay relevant, by moving fast to keep up. That's just how it is.
- alkonaut 6y agoAs a desktop developer I really miss the Big Bang releases and slow pace yes. We are doing a 2-year transition between 4.7.1 and 4.7.2 now! What goes on beyond that is just a fog. Some of our third party dependencies are probably never going to be ported core while many others are starting to lose maintenance on netfx. Being in the position of having to maintain a netfx desktop app for the coming 10-20 years is looking bleak.
- SideburnsOfDoom 6y agoThen stay on the LTS releases. They come roughly annually.
- svick 6y agoStarting with .Net 5, there will be one major release exactly once a year, and one LTS release exactly once every two years. (see https://devblogs.microsoft.com/dotnet/introducing-net-5/ https://devblogs.microsoft.com/dotnet/introducing-net-5/)
- alkonaut 6y ago.NET 5 is a no go for those of us who are stuck on netfx. There is no compatibility.
- SideburnsOfDoom 6y ago> There is no compatibility That's not true.
- wef32233ff 6y agoanother lazy "developer" who can't keep up with the newest trends. Real developers are working 365 days a year, around the clock, and don't waste time with girlfriends etc... You will never be one of them.
- NicoJuicy 6y agoEvery (halve? ) year I check the just c# release notes and create an application that incorporates the new things. C# 9 is next on the list.