I've been having a question a while ago and I think it may even be a common question. I'm not sure how to put the question, but I'll try. When I started programming I dealt with languages like PHP, C, C ++. What I used most in practice was PHP. Basically I had to develop everything , the codes for authentication / authorization and security, codes for interaction with MySQL, etc.
After 3 years working with PHP I learned C # and started working with the .NET framework since then. I like the functionality of the framework and the language too, which is "more" object oriented than PHP, as well as being strongly typed and so on.
The problem is that all this time I have a pretty big question. As there is a whole framework available, many things are ready. So if I need databases, I already have EF or NHibernate, if I need to use REST services I already have the WebAPI, if I need authentication / authorization in web applications I already have ASP.NET Identity.
And when I read about how to use these technologies, I basically all find tutorials and articles saying "do it" and then it's always the way things work out. This all leaves a question like, "having done thing ready and everything already explained exactly how to use, what do I really have to program?"
And this question is very strange, because after all, if I'm working on the project I should know what I need to program. But with so much available I usually lose myself and when I see I'm simply replicating codes I read about how to apply certain technologies.
I know that there is a domain model to be developed. But is that all? When we deal with frameworks like .NET we only develop the domain model and integrate it into technology the way it is explained in tutorials and so on? How do you deal with this type of situation?