Which one is best practice among creation of multiple properties in direct work page or create a page (Data class mapping) in the pyworkPage ? Here in our application everyone keeps adding the new fields directly in the workpage so I am thinking - would that hit any performance?
There will be no difference in performance. You are not having to loop through a pagelist, and there is no additional database hit. Once you fetch the BLOB, you have all properties, be it directly on work page or, on an embedded page.
The thing to consider here is not performance, but having a clean data model. If the data model is properly constructed, keeping in mind the business logic and possible future scopes, one should be able to group together similar data and then they may be clubbed together under an embedded page.
To give an example, Bad clipboard structure : .EmployeeName, EmployeeAdress, EmployeePhone, .SupervisorName,SupervisorAdress, .SupervisorPhone Good structure:
. Phone SupervisorInfo
Why the later is good? - because not only it groups together related information, but also you get to reuse the 'Name', 'address' etc properties.