Web parts are ASP.NET controls that can be added to web part zones. They are generally distributed as WSP files. Pre-2013, they could be developed off the hosting server. With 2013, WebParts for the most part have to be developed the hosting server for proper library inclusion.
I'm prototyping the best way to dynamically connect web parts at runtime. Essentailly, the application will allow for several disparate application groups to create web parts that will be consumed ...