For such a project you need a system that is acting as server for your data. That server must have a public address to be reached from the client (the Arduino system) and should be always online. For those reasons, other solutions often use a hosted web site.
If you want to use a dedicated system instead (a Windows desktop or notebook), you have to fulfill the requirements:
- The server must have a known public address. This might require DDNS (Dynamic DNS - Wikipedia[^]) and port forwarding (Port forwarding - Wikipedia[^]) to be configured on the server's gateway (router).
- The system must be always on, or you have to implement code on the Arduino which collects data and sends them when the server is online. However, the ability to react on non-responsive servers is always a good idea.
Because most examples use hosted HTTP services (web sites) you can run a web server on your system using similar data processing. Alternatively write a socket based application that accepts data send from the Arduino (Network socket - Wikipedia
How to store and display data on the server depends on your requirements. Common implementations use databases or data files for fixed time periods (e.g. plain text or XML files for each day/week/month).
The programming language does not really care. All VisualStudio languages provide support for sockets, databases, file IO, and XML.