View is just front end that never directly communicate to Model. It always intrects with Controler.
The View is the front-end, yes. It should not alter the Model, but it needs to be aware of the model as it must get information from it. It receives the Model from the Controller, and it 'interacts' with a Controller by way of Links/forms it may contain.
Controller is a software component that will receive and respond to View and communicate to Model.
The Controller does not 'receive' the View, but it does receive requests which may have come from a View (not necessarily one of it's own views). So, it responds to Requests - not Views, per se. It retrieves the Model, and should handle calling Model methods to alter the model based on the Request ("communicate to model"). It then hands a Model off to the View to display.
Model will have all programming logic, validations, database communications, services etc.
Logic and services often may not be in the Model. Services should be separate (they aren't one of "M.V.C." at all), and Controllers are generally where your application-specific logic is contained. Validation might be defined in your Model (some purists don't like doing this), but displaying validation is done in the View. Database communications could be in your Model, or you might have Services which do that.
where will be POCO classess in model ?
POCO classes would be in your Model, yes. So would ViewModel classes (which are often POCO classes, themselves). The Model may have many classes which represent your data for different circumstances - including multiple ways to represent the same data, because of different places you are using them.
For example: You might have a "change password model" which represents some of the User object properties, and would be entirely different from, say, a "user profile display" Model.
Your Model objects that directly represent database items could be in their own Library, but your ViewModel objects would likely be in a separate library. Your Model should not be aware of your Controller or View. Although you will create ViewModel objects with your view in mind (only including properties that you need in the View), the ViewModel itself, even, should not have any code that ties it to your Views.