WCF synchronization between WPF client and server best practices - c#

I am new in sync-ing data between the server and the client, so I want to ask for your advise on how would be better to achieve it. (Best Practices).
I created WPF app, which will be getting data (via WCF) from Web Server and stored them in local database. In future I will sending new or edited data to server.
When I start up my app, I need get new data that I don't have, but it's on the server.
But getting all data every time is redundant, so I need to get only new data.
Also some data maybe changed on server, so I need to get these data as well. And so on.
Questions:
Could you please give me a guidance on how should I do that or any useful resource I can read and learn about it? Do I need to use some particular framework?

Take a look at SyncFramework.
Also, this section will be useful.

Related

Retrieve data from API of different source systems using C#

I am here for your help. First time handling a task about the API, SAP/SOAP, Web services. Sorry, as this is a long post. Let me explain the workflow.
XYZ Server calls the API Application (which I need to develop) to obtain the UserIDs.
These UserIDs will be used to retrieve the data from API of 3 different source systems (ABC, PGS, KGT). ABC and PGS are using RestAPI while the KGT is using SOAP.
The retrieved data will be stored in the In-Memory.
The API Application will insert all the APIs in the In-Memory to the XYZ server.
Here's my question:
Is it possible to use only the VS Code for the development?
There's no database provided. How am I able to store the retrieved data into the memory?
Based on the workflow, is it possible to develop the API application in just a week? Given that I am only a newbie?
I just need your ideas on how I am going to start the development. Currently, I already have a method to get the user ID and to insert the data back into the XYZ server.
Note: The API Application is a non-UI. It serves or acts as a middleman, to transfer data from other systems to XYZ system.
Appreciate your response.
I don't know if it helps but I will try to help you.
First, I think it i totally possible to only use VS Code as you are just coding an API.
Second, have you though about having an in-memory database like Redis?
Third, I think it depends. It is possible to do that in a week at least for more experienced people, but as a "newbie" as you said, I think maybe some more time might be needed.
Hope it helps ^^

Is there a simple way to give an application information, without making/hosting a database?

I'm relatively new to programming and wanted to ask, if i can communicate or send information to an C# application, without having a database.
I currently know nothing about databases.
Maybe with Google Sheets?
Yes, an application can get data from any source that you choose and have suitable access to and can code against. It could be a web-service, it could be a flat file on disk, it could be a custom socket server, it could be a database, it could be a no-sql store; it can be anything you can imagine. But implementing that: is your job.

Storing and Reporting on data retrieved from an API

I have a very high-level, generic question related to the retrieval of data with an API, the storage of that data, and the ability to report off of the data. My background is primarily on the database side with a specific focus on reporting out of Crystal. That being said, I'm fairly green when it comes to APIs, SDKs, .NET, and Visual Studio, so feel free to respond as if I'm 5.
I've attached a quick mock-up of the application architecture for context. The vendor we're working with touts their APIs as the best way to retrieve data for reporting purposes, but I'm struggling with visualizing the layer between raw API data retrieval and a reporting environment. Having not worked with API data retrieval in the past, can someone explain to me in layman's terms how this process would work?
1.) How would I go about retrieving data from the app server via the vendor's API? Is it as simple as creating a visual studio project and coding the API call?
2.) Let's say I'm able to retrieve the data with an API call, what is the best method for storing / reporting against that data? Is it possible to develop real-time reports out of visual studio with API call data?
3.) If #2 is not possible, the data pulled from the API calls will have to be stored somewhere. Is it possible to code the API calls to write results directly to a separate reporting datamart?
Again, I apologize if these questions are extremely elementary. I'm basically looking for context around the scenario to identify how close or rather far off I am in my understanding.
Any help is appreciated.
Thanks!
i´m going to try to answer each question as high level as possible:
1) Retrieving the data via the API is fairly simple, you need to code the call with a proper requerst and handle the response, for example if your API is exposed with a REST web service all you need to do is make an http call to the ws endpoint according to the service definition.
2) You said that the report requirement is probably a SSRS report. The way to proceed depends on how you want to handle this data. One approach culd be to store it in a database and then create a report server project that generates reports with this data.
3) Yes, according to the data format you can do whatever you want with it, from exporting a csv file to store it inside a dedicated database.
I hope this was useful in some way, as i´m not super experienced in report generation but have worked with different APIs handling data

Server Sent Events with SQL

I can't seem to find a way to do this, so I decided to ask here. I am making an asp.net site which uses data from a SQL Server database. I am using javascript to get the data and format it as I want.
The issue is that I want to use server sent events in order to get the new entry in my database and display it in the page of the site. So far the only examples I saw were with timers on the server side and on the period they send data to the javascript. But I can't seem to figure out how I should do it so that when a new row enters the database to fire the event.
That should be done on server side but I don't have a clue where to begin.
SqlDependency:
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldependency.aspx
http://dotnet.dzone.com/articles/c-sqldependency-monitoring
Using the SqlDependency Class is a good way to make your data driven application (whether it be Web or Windows Forms) more efficient by removing the need to constantly re-query your database checking for data changes.
That’s how you use the SqlDependency Class for monitoring data changes in your database without having to use something like a timer control to re-query at certain intervals.
Here is an old book mark:
http://rusanu.com/2006/06/17/the-mysterious-notification/

how to dynamically add a row in database through web service

I have two windows application in C# one user side and other admin side..When I run the windows application at the user side, it should make a web service call and through web service it should add a row into the database present at the admin side..Also the row that is to be added in the database should be containing the details entered by the user..can any1 please tel me whether this is possible or not and if yes then how??
Make a WebService method that takes values of the parameters you need to add to the database. You call this method from users application and pass all the needed information like to a normal method. Then implement the methods body to use this information to add a row in the db table. What exactly do you mean by how? Which part?
EDIT: If you are new to web services then this task may not be straight forward for you. I am a Java programmer so I won't help you with the coding in C#. You might want to read more on WCF which is an important API for a C# developer and might help you both with WebService and Database access. You can find lots of tutorials on the internet to implement both. You can also choose a different approach than WCF but i think its the best choice if you want to stick with C# for longer. This might be very helpful for you:
WCF, Web services or ADO.NET data services: What shall I use?

Categories