I have learned some of Issuevision's characteristics. I have developed a lot of things for Issuevision for many things for Issuevision. It is Observer and Command. Two design patterns for more simple Command patterns. I implements the menu items, ToolbarButton, LinkLabel The Command mode is added in the middle of these events to implement the performance layer and the business logic implementation layer, which has reached a multi-purpose purpose, simplifies the code, clear the structure. For Observer mode, I am mainly for Mainform. A Subject then lets StaffPane and InfoPane subscribe to this subject to observer this Subject. To implement the flexibility of the interface display, I do what I do is to implement a function of serv-u. Of course, the most important data is only one is user information. If you use the database, you only need a USER table. I have thought about using an XML file, but because I got the libae, I was lazy, I used a codemaker to generate a MYLIB, then quote in the main project-myvision MYLIB, implements the next day you need to do next to the SQL Server database is to continue to study if it is not analyzed in IssueVision, but it is the place where he is alone, and then I want to use it, and I am the SERV-U locally. The machine (both the server is doing the client) test a little problem, but it is not possible to separate in two machines, where the control link has successfully established and successfully handled a part of the command, but it has not been successful for the data link. Once this question is solved, the entire Project has no deep technical problem.
Below is the features found online.
1. Web Service uses web.config to save the database connection string, which is to access the database on the server and provide services through the Web Service. Theoretically Web Service is a standard service, all offline processing and synchronization are executed in the client program.
Common: Public class, used for the access of the database connection string, and confirms whether to use a plaintext or encrypted string CredentialSoAPheader: SOAP information that needs to be passed when verifying, mainly including username / password eventloghelper: logging (there is also one in IssueVision) The same class, why there is no DLL alone, it may be because the file is prevented from being downloaded too large, that is, the client does not need a separate DLL.) IssueVisionService: The real web service provider, in the three ways It needs to be verified to use. Mainly to get a changed DataSetissue collection, then sync into the database, and return the latest list of databases, add changes to the log table IVData: Data Inventory Acquisition, Access to each table And the event is triggered when the event is triggered. The main method: getLookuptables (), populate staffers, and IssueTypes to DataSet SendreceSues (ChangeDissues, Lastaccessed) ivdataSet: An entity object, used to pass the object between the web, ie the client The object passed between the server is an XSD file that can be directly designed in the table structure, that is, the table object, XML syntax format. Objectspace may be used after VS.2005. (FAQ: Whether it is here Table objects must be consistent with DB?) SecurityHelper: A class for authentication, that is, according to the supplied CredentialSoAPheader, judge information from the database, if you want to use Windows integration or AD domain authentication mode, you need to modify this class. DataProtection: Data addresses.
Threadhelper.dll: Provides a screen SingletonApp unique program for thread-related components, the second instance does not move SafeLabel - Label BackgroundWorker Backstage, which can be safely operated under multi-thread, starting the background works of the DOWORKEVENTHANDLER background execution start event perform asynchronous tasks RunWorkerCompletedEventHandler the background end event ReportProgress () report background progress ProgressChangedEventHandler change event schedule for drawing a progress bar CancelAnsync () to cancel background tasks IssueVisionWeb: IssueVisionWebservices.asmx: IVData:.. dataadapter component calls for data operations, including business logic SecurityHelper : Encapsulates the safety certification operation Common: Read Configure EventLogHelper: Auxer EventLog IssueVision: WebServiceLayer: Provides a Method for WS access. URL reads from the configuration file. UserSettings: The current user's status and status of the status and status of the current user SERIALIZATIONHELPER: Data to file encryption data: Call Win32API implementation Loginform: Login. Calling by Mainform. Form fade out. IssueSubject: isubject Business Model Model SaveissueData () Save Business Data to Local File LoadissueData () Load Business Data AppUpdator: The key to smartclient. Automatically keep the version update. Data is saved and passed using DataSet, regardless of the client or the web server. Data Access uses automatically generated DataAdapter.
IssueSubject As the business model of the entire program, providing data, data time, storage, update, etc. The various display controls in the form monitors data change events, and adjust itself when there is change.
Conflict Detection: The client is submitted to the server from DataSet.getChanges (). Web services listen to the UpdateError event of the DataTadapter when the user is submitted, and the conflicting data is placed in the Conflict table to return to the client. In fact, the DataAdapter is used to detect the conflict detection.
Why: 1. Why didn't the client use ISOLATEDSTORAGEOBJECT to save temporary data? 2. Saving of conflict data is to use the new table conflict in DataSet. If there is N business tables that need to check concurrent conflicts, 2N tables are required in DS. Is it possible to put it in the original table, just set a ROWERROR? 3. Is the AppUpDater that can be registered in WindowsUpdate, is completed by the system? Repeat function, Bad Smell!
class