>> 2) As for the partial classes this was a feature requested by another of our users - Isotope (I think) and it's not a bad idea, that way you can add methods and extend your proxies and not worry about losing those methods when regenerating. I'm not sure what harm having them be partial causes but let's get to the other issues.
Its not a "bad idea", but for a new user like me it makes me suspect another partial class is already implmented 'somwhere' and then I start searching for it.. I suspose if I knew i could opt out of generating a partial class, I would know there aren't any oother matching partial classes to worry about unless I create them. To me its a form of helpful documentation. However, its not a big deal, just a thought now that I do know.
>> On the property changing events the only thing I see here is your turning the proxies into more full featured objects such as the full blown ES objects. Are you actually binding to them?
Yes, that is the idea. However, the extensions on the client are simply different than the service. The client needs properties related to data binding ,CRUD operations, etc. In some sense, the client-side objects are UI aware. This allows for a data manager class to take certain types (any proxy stub) and handle all the behavior thats repeated for each form. Each form then requires very little code.
>> Just curious, also, have you got your code now working between client/server using our WCF proxies?
Well, yes and no. I can easily transfer the objects (which btw is very hard with most other ORMS) and that part is working well, but I also have an existing framework where I am trying to simply replace my old DTOs with ES DTOs (proxy stubs). My framework is designed with a library of custom user controls, and " data managers" for building the menus, buttons, etc. as nearly automatic as possible. Hence, I have many extended properties and methods and need to get those implemented before I can plug them in. I also need to override certain features such as BeginEdit, CancelEdit, and EndEdit. IMO some less than experienced programmer with lofty ideas at Microsoft made the decision for some controls - primarily grids and data navigators - to auto-call these methods. Unfortunately, I don't know of a single application where the default behavior is acceptable. It would have been far easier if MS simply left it up to each respective developer to decide when and where these methods are called and never called them automatically; however, since they did and since their logic sucks (IMO), I MUST override these methods and implement my own version.
Personally, I am quite happy with proxy stubs being as bare as possible. I do suggest calling a base class for property changes and doing the exact same thing as the server-side where there is an option for users to generate a custom base class and implement custom behavior within those custom base classes. I do not see a reason for generating custom classes for every type of client proxy stub, only bases classes.