Hello. I have a project. This is the client of the site, which stores the list of the series you have watched. Request your list from the site takes time, especially if the list is large. The smallest request slowed down the work of the program for 5 (!) Seconds. Without the list, the application does not make sense, and therefore can not start working.
In this regard, I thought to solve the problems as follows. Request a list from the site when you first start the program and authorize to the local database. Next, display information from it. Updating the database would be carried out only by data from the server by querying the list at a certain interval or when making changes to the list by the user.
Example. The user first launched the program. The program requested a username and password and remembered the user. Then sent a request to the server and received a list. The first launch in any case will be long. Further, these data would be stored in a local database. The user would already display a list from the database. In order to keep local database data up-to-date, once, for example, in 5 minutes, the program would send a new request to the server and update the data. Or when the user initiates changes in the software (adding viewed series or other things). This would be done in a separate thread.
On subsequent launches of the program, it would start instantly, displaying the list stored locally to the user, while initiating an update request in a separate thread.
Database Requirements
- Local The database with the list of serials should be stored on the user's computer in the program folder.
- Portable. The database should not require the user to install additional libraries on the user's computer, in addition to the .Net Framework, which the program itself will require. Unless it will be portable libraries which will be in the folder of the program itself.
- Not bulky. Since the database will be on the user's computer, I didn’t want the table of 10 fields with 1000 lines to weigh under a gigabyte.
- LINQ support. Nativno or by connecting third-party libraries, I would like to perform all queries through LINQ, and not SQLConnect.
Most likely, there will be one database and 4 tables in it. No complicated things like stored procedures or triggers are required of it. Only storage. All actions with it will be done directly through the program.
Considered as a variant sqlite, but not sure that it has good support for LINQ. And I decided to consult first. If you know a good way to make friends sqlite with LINQ or there is a solution for better, then I will be grateful for the help.