Start with
Definition:
A Portable Area is a dll containing items that will usually be part of your solution. Portable areas contain views, controllers, models, even JS scripts, CSS files, and images.
Ideally, items in your portable area work together to create cohesive functionality. If not, you probably do not use the portable zone.
Benefit
I compare portable areas with Web Parts web forms because they both try to answer the question:
How to create reusable functionality?
You will use portable areas if you want to create functionality that will be used in several projects, or distribute it as functionality that will be used by third parties.
Inconvenience
Every time you make changes to any view, JS file, CSS file or image in your portable area, you will need to rebuild it. I emphasize these components because they usually do not need to be rebuilt during testing or development.
This can be a problem. If you set up CSS restructuring every time, 30 second changes become 2 minute changes. Make 30 of them, and you spent 15 minutes working for 2 hours.
Portable areas are designed for mature functionality that will be reused in several projects or solutions as is.
Dave alperovich
source share