Nice question, let me try to answer it.
Component is a class library (a project having several class files) that is created to achieve a certain functionality. For example, you can create a component to communicate with any device, or a third party software or provide any services. Generally this is not a part of your application development but it is independent and you might call it from your application, however in certain case this might be a part of your application too.
There is very thin difference between Tier and Layer. Sometimes both Tier and Layer is called interchangeably by normal developers. However in a very specific term Layer is created inside a single solution to organize the code logically. For example, you might have a Presentation Layer that talks about presenting the data, Business Logic Layer that talks about business logic and Data Access Layer that talks about communication with database.
Tiers refers to the physical place where your code actually runs. For example you can deploy your Database or Data Access Layer on different machine altogether to achieve better performance of your application. In other words Tiers are physical deployment of your layers.
One common among them is, all are group of group of codes, however their purpose and functionality is different.
Hope this will help.
Ray.chayan, if this helps please login to Mark As Answer. | Alert Moderator