What Sitecore standard copy functionality does:
- Copies the whole item tree under the selected item
- Copies all item versions (if you have more)
- All references (included the datasources in your components) remain the same
So in some cases it is good but especially when you have pages with local component datasources the standard copy function does not really for you.
During my investigation of Sitecore xDB I tried several things and I found out that I want to increase a the value of a profile key programmatically. This question was helpful but it did not provide the whole solution. In some cases maybe you need this. It has been tested on Sitecore 8.2 update 3.
Today I created a rendering component which has around 10 fields but the whole component is not editable in Experience Editor. I decided to use Edit Frame from Glass Mapper. The BeginEditFrame wants all the editable fields as a parameter. But for around 10 fields not that comfortable.
The following code snippet creates an Edit Frame only with 1 field.