DEV Community

Discussion on: What exit should a .NET developer take?

Collapse
 
kspeakman profile image
Kasey Speakman • Edited

I did Web Forms for many years, so I know that pain well. MVC is worlds better, but there is still a lot of framework knowledge involved, and I despise using attributes for things like validation and routing. Which is exemplified there.

I guess it depends on what kind of experience you are looking for. I went down the functional programming path, so for me the right mix in web has been to use browser-based front-ends in Elm. And back-ends in F#. I use as few "frameworks" as possible (not like .NET framework which is a misnomer for a platform, but more like ASP.NET MVC, Web API, React, Angular, etc.). Instead I am using functions as much as possible to limit how many non-portable abstractions I have to permanently remember. Elm and F# allow me to do that for the most part. (I still wish I could forget all that Web Forms Page Lifecycle stuff, as well as Angular 1 directives/services/etc.)

They currently don't offer any UI frameworks for .NET Core, so you can pretty much only use it on the back-end. For that purpose, I have found it basically the same to code against as Framework. Tooling is slightly different. (although if you use Visual Studio it is nearly the same, except F# support :/ . I use VS Code and the Ionide plugin for F# on core.) There can be some dependency issues if you want to use a library which has not ported to core. Most of the popular ones have migrated.

Addendum

Most of the web front-end action is in browser-based nowadays. It is a completely different (and markedly more complicated) development environment from Web Forms. It is not an easy transition. My recommendation is to use npm modules like Create ??? App to get started quicker. Where ??? might be Elm / Vue / React / Angular. Of course, I recommend Elm. It will bend your brain more (in a good way). The others will be more like what you are accustomed to, so quicker to pickup. Also, for styling business apps I use Semantic UI in CSS-only form. I have also used Bootstrap in the past.

The backend could be whatever. I stuck with .NET there because F# is a great language.