===================== PluggableRepo ToDo: ===================== 10. MetaData - convert MetaData load and save to use handleInvoke 15. Review all Path.combine(...)s to ensure that FileSpecs are correct 16. Add simple authentication 17. Add communication channel for remote clients 19. Add staging area handling for multiple concurrent clients - may elect to send immediately, rather than stage, so this processing won't be needed 20. Add login and storage of credentials (no encryption) 21. make path to storage have user insert, e..g., ../../../userCred/Storage - that supports having both server repository (serverCred) and user repository on same machine 22. implement synchronization of user and server repositories using WCF channels 23. user specifies categories to synchronize - can't checkin to, or checkout from, non-synchronized categories - could specify synch categories with XML file that is read at start and written at shutdown - each closed checkin (send checkin to server) and checkout (get server files - see below) causes a resynch - has manual resynch on admin tab as well - add or remove synch categories on admin tab - starting client also triggers resynch - synch validation via byte comparison of files - synch sends from server any files user doesn't have and also all open checkin files - may want to allow open checkins only on the local storage, but not on the server ------------------------------------------------------------------------- Saving completed actions, below, illustrates how incremental development was implemented for this project. Deprecated items are parts of the concept that turned out, as the implementation progressed, to be: unnecessary, too complicated, or just bad ideas. ------------------------------------------------------------------------- 1. Move categories from Repo to Storage - done 2. Checkin component - metadata generator - done - doCheckin(category, mdFile) - done - addReference(category, mdFile) - done - testDoCheckin - done - testCheckinComp - done 4. Define FileName, FileRef, FileSpec as strings - done 6. Add Ownership component - done 9. TestUtilities - done - add verbose title vbtitle - displays only if verbose - done 11. Move Category modification to Admin Tab - done 13. Caching of versions, children, and parents - Fill dictionaries at startup - done - add to each on checkin - done 3. Define Result with bool success and string msg - deprecated 5. Checkin - add update - creates new metadata version with orig fileSpec, new deps - done - revise to use Result - deprecated 7. Checkout component - build metadata scanner - done 8. Browse component - build dependency iterator - deprecated 12. Relationships - use dictionaries to hold package childred and parents - done - use for Navigation and Checkout - done 14. Show FileSpecs in Navigation Files and Folders listbox - deprecated - will require fixup for Window1 view