SharePoint Project Items (SPIs) are new to Visual Studio 2010.
Historically, organizing projects into folders containing files with a type affinity for one another was common. For example, developers often organize disparate CSS files into a styles folder; GIFs, JPGs, and PNGs into an images folder; and disparate JavaScript files into a scripts directory. The benefit is that, if another developer had to support someone else's work, he or she would be able to anticipate where assets of a common type would be found.
SPIs are effectively folders that hold a motley collection of files with a common purpose, rather than a common type. Each file may have a unique deployment location and a unique purpose, but they are organized into the SPI folder because they work together for a common purpose—typically to create some type of SharePoint platform extension. This would be akin to keeping the CSS, images, and JavaScript in a folder along with the .aspx page that consumes them. The SPI model definitely takes some getting used to, but it isn’t going to change any time soon—if ever. "Embrace and extend" is my motto.
The chart below lists all the SPIs along with the ways that they can be created. The first column shows the SPIs that can be created at the same time that a new SharePoint Project is created (along with the four SharePoint Projects that are not also SPIs). The second column shows the SPIs that can be added from the {ProjectRoot} of any SharePoint Project. The third column shows the SPIs that can be added from the context of another SPI; that doesn't imply that they will be created within the SPI folder, just that they are available in that context.
Enjoy!
<Todd />