Working on greenfield projects withe the latest tech or maintaining legacy products
For example should I learn and master ASP.net completely and find jobs there or should I learn the latest javascript framework and find jobs there.
Which path would give more satisfaction and job security and money?
The bleeding edge is much more interesting but also carries much higher risk and potential reward. You may find yourself expert in something that was technically very interesting but the timing is wrong or the specific tech fades quickly. So failure mode has you learning and relearning the latest frameworks trying to stay hip and potentially changing jobs frequently. On the other hand, success out on the bleeding edge might but you in an equity position in a start-up that turns into a unicorn.
I gravitated more toward the fringe and have built some cool tech but the start-ups and projects never reached market success and so I often reflect that had I picked more standard problems and tech and become expert in those I would have very high consulting rates today and plenty of work. As it is I have moderately high rates but I don't quite fit into people's mold and it is somewhat harder to stay busy with billable hours.
In the end you also have to live with yourself intellectually and emotionally. So although my more fringe focus hasn't yielded the best economic ROI - I have mostly enjoyed the choices and outcomes for my own life.
The rest will follow.
I have a windows computer and visual studio seems like the best tool I can use , so simple to set up. I enjoy working with it, maybe I should take the risk and just dive into that technology.
Like we know what we actually enjoy for many years to come.
You know why "follow your heart" is such a terrible advice.
What a sad way to live, fulfilling other peoples needs in exchange for 0's, instead of trying to fulfil your needs for intellectual growth, joy, etc. while _also_ supplying an end product or service of some sort.
You realize you can enjoy what you do, love what you do even, and still exchange a product/service for money? In fact, you'll likely do better as people will sense your _passion_ about what you are selling, as opposed to seeing you chase the 0's
Personally, I think once you have enough experience you should be able to easily pick up new frameworks. I don't understand developers who try to define themselves by a single language or a single framework. You should be trying to pick the best tools available and learn as you go when required. You might be safe for a couple of years sticking to one thing but the industry is constantly changing so you should have a diverse skillset and always be learning.