A solution with a Web Part contains of several parts:
- A dll with the code for the web part
- A SafeControl entry
- A .webpart file with configuration for the web part
- A feature with a module element for the .webpart file
When you deploy the solution the following happens:
- The dll is installed in the GAC
- The SafeControl entry is added to web.config of the webapplication to which you deploy
This makes the Web Part usable in all Site Collections/Sites in the webapplication, but will not make it possible to add it to pages easily as it's not in the Web Part Gallary
To add the Web Part to the Gallary you need to activate the Feature on all site collections where you need it. This can be done:
- Manually
- Thought code
- In PowerShell
When added to the Web Part Gallary of the Site Collection it'll show up on all sites in that site Collection (But http://sharepoint/sites/[SITE]
is not a site in http://sharepoint
but a seperate Site Collection).
If you have a lot of Site Collections and want to have an "easy" way of adding webparts to all of them you might want to look at implementing a WebPartAdder see WebPartAdderExtension – a better way of deploying web parts