Automated statistics gathering from C# applications - c#

I have made a C# application , now I want to create custom survey (actually sending data automatically to me, about - crashes , usage duration etc.) to enhance my application .
How can I do it ?

You may do this:
Host a REST service at your server, the common way is to add a WebAPI controller in ASP.NET MVC project.
On the client application create a System.Threading.Timer instance and set desired schedule to send the statistics. Or just send them each time user starts your application.
Send statistics to your REST service using WebClient/HttpClient.
Tutorials:
Get Started with ASP.NET Web API 2 (C#)
Call a Web API From a .NET Client (C#)

Sorry for the rough reception you received with that one comment. Many of us understood you weren't asking for us to write code for you, and I think you had a legit question.
You might want to also look at the .Net Trace capabilities. While you won't get data sent to you automatically, there's a built-in, easy-to-use framework that's unobtrusive and let's you gather statistics. Here are some links to check out:
The Trace Class
How to Add Trace Statements to Code
See also
Trace Listeners
So there you go. Another possible way to approach this.

Related

Get notification in view when a web API called from an external system in c# MVC

I'm developing a website in C# MVC including WEB API. When an API URL in my project is called from an external system, I want to show a message (not a push message, only show a text in a div) in one of my view that the API function is executing.Is this possible?
First Of All its possible yes,
you need To use SignalR To notify the Views:
YouTube totrual Here
Github : Here
Then You use the Signal R to push a Notification when a cross origin request happen
using action filters
the signalR subscribers can be view pages using Jquery.
SignalR on Client
full exmaple :here
Yes it is posssible. One (pretty easy) way is to use the awesome SignalR or SignalR core framework. Check this for differences. Real-time web functionality enables server-side code to push content to clients instantly.
Basically you will create a Hub on the server that clients connect to. In your WebApi method, you can then call the client method. Then in the client you will use javascript to respond to the server call and then you will set the div content from this method.
See the docs.
Hope it helps!
I think Signal R is best choise too. But maybe you want to another alternative. You can look at Node Js.
Node js.org
General Tutorial
General Tutorial 2
For .NET Tutorial

Creating a server and site with ASP.NET

following my previous post about my game server, I've decided that I want to create a web-based server, and not a WPF one.
Currently, the server is a console application. I run the server, it has a TcpListener, and I interact with TcpClients, and the only real console-y thing I have, is a bunch of Console.WriteLines that I intend to get rid of. The server itself is part of a class library, which contains all the server logic, so that it'll be easy to wrap it in whatever platform I need.
Say I have a library with all my server-side logic, and I want the GUI of the server to be a web client, while still having a server that runs in the background and keeps the game running - How do I do that with ASP.NET?
Since all my code is C#, it's natural that I would pick ASP.NET, and use MVC with Razor, allowing me to use my original classes as data in the website.
I can handle the website part of the ASP.NET, but what I need advice with is how I create a server that acts like my previous one (runs in the background, has some sort of GUI, for input, commands and etc), and also has a website as the GUI.
Thanks in advance!
for reference, all my ConsoleApplication code is here, showing just how little the platform that runs the server has to do.
And regardless, this is the link to my game code, if anyone is interested. I'm always interested in opinions and constructive criticism!
This is an article about self hosting webapi and static files in a console application using Owin, no support for MVC. Asp.Net Core has a similar work flow (though it's not called Owin anymore), and MVC is available. Asp.Net Core apps are actually self hosted in a console application using Kestrel. When you host asp.net core in IIS all IIS does is act as a proxy.

Receiving webhook from GitHub from C# Console App

I'd like to capture webhooks from GitHub (for various events, like commits, etc), from my C# console application. I figured I could "listen" to an endpoint and webhooks would be thrown there, but it seems that perhaps github is actually sending webhooks to endpoints that you need to setup and listen from.
If the latter is this case, then I suppose I'll need to setup a web server to capture the webhooks. If the former is the case, then I'm not finding in the docs how I can listen for webhooks from GitHub?
Your question isn't very clear, but I think you're on the right track vis-a-vis implementing a web server. So, my answer to your question is: you need to implement a web server to receive the webhook requests.
Edit
At the bottom of this document, you will find instructions on how to implement a very simple web server (in Ruby) to receive GitLab webhook requests. I know this isn't a turnkey solution for you, but hopefully it will help get you going.

How to consume RESTFULFatSecret Api

Hey I'm looking for some tutorials on how to consume an external Web API in ASP.NET MVC or if someone could explain briefly on how to go about it,specifically the https://platform.fatsecret.com/api/
You should check out RestSharp . It makes it very easy to consume an external API in your .NET application, since you can control how the API-response (JSON or XML) is deserialized to your model classes.
You can refer to the websites REST API Documentation on everything you need to include in your requests to their server. Here is an example of a method https://platform.fatsecret.com/api/Default.aspx?screen=rapiref&method=food.get
It breaks it down into what is required to be in your request and what you are to expect to see returned.
As for actual code, you have a few options. You can refer to Microsoft Docs in order to learn how to actually craft, send and receive requests to a REST API. The example shown uses the asp.net client Nuget package. It provides an object which allows you to easily create and receive requests.
Personaly, I like to practice with Postman for Chrome first. It allows you to easily create and receive REST data and even has an option to create template code from your request into multiple languages!

Implementing custom logging of WCF messages client-side

A collegue of mine needs to implement custom logging of WCF messages, for debugging purposes, but also for traceability (logged data will be saved for future reference and verification).
Examples like this one, Capture XML In WCF Service, shows how to do this for the host, but he needs it for the client application.
Can anyone help me/him with some pointers to what to look for, or where to start?
Since we need to talk to a database to log the data, a simple configuration change to log to a file on disk, like this MSDN example, Configure Message Logging, is not enough for our needs.
This is a C# 3.0 application for .NET 3.5.
The example you cited: it is very similar/dual for the client. Instead of IDispatchMessageInspector, there's IClientMessageInspector. Instead of IServiceBehavior, use IEndpointBehavior, etc. The OM will steer you in the right direction.

Categories

Resources