Two way web service communication in wpf - c#

I have a WPF application that needs to send and fetch data to and from a web application. Web application is built using ruby on rails.
What's confusing me at the moment is does the WPF application need to have a web/wcf service on it's own to talk to the rails web application web service. If not how can i fetch and send data to and from the rails web application web service.
Please note that I have done some digging around google and here but am still confused since most of talk of creating a asp.net application first. A step by step best guess scenario/example would really be helpful.

Related

Building a REST API for mobile apps(Android & iOS) for an C# asp.net ecommerce website

I am new to APIs development and have to start building a REST API for the e-commerce website to be built and can be used by 3rd party: mobile app development company.
The eCommerce site is written in C#, ASP.net.
I have read about SOAP, REST, RESTFul on google.
My doubts are :
Where do I start? I have never created any API's before. Please mention the steps to start over.
The REST API is to be used with both Android and iOS mobile app. So, do we have to create a different client application for both?
Do we use some frameworks? If yes, then which frameworks to use?
As the website is written in dot net. Do we use Java or dotnet for REST API development?
What is the best way to create the REST API for mobile apps?
Please help me with my doubts.
Thanks in advance.
Here is Tutorial to build RESTFUL API in .NET.
My knowledge is in ASP.NET so I leave the Java guide for experts in that field.
RESTful API provided by Microsoft - which is called Web API - is a part of ASP.NET MVC, so you should start learning ASP.NET MVC, it's pretty easy for ASP.NET guys to learn ASP.NET MVC.
No, when you developed your Web Service, both iOS and Android would be able to communicate with your Web Service.
For Authentication, you gonna need libraries like Owin.
Since your main website is in .NET and not MVC, you should keep the Web Service files separate, for this, you can put Web Service file in a separate folder on the same host which the main website is, then create a sub domain to access the Web Service. By the way, you can create your Web Service using Java too, since it is separate from the main website, it makes no difference which technology you use.
The best way to create a REST API for a mobile app is if it is done by an expert! ;) There are many tools and frameworks out there that can be used to create RESTful Web Services, each one of them has some pros and cons, I prefer to use the one I know the best, which is Microsoft ASP.NET Web API, you should choose based on your current expertise.
P.S. If you gonna start learning ASP.NET MVC, I recommend to learn ASP.NET Core, which is the latest version of ASP.NET MVC, and is the future of this technology.

Web API self-host vs. Web API wrapped around Windows service

I'm building a messaging application that needs to receive messages from the web. Originally I was going to run this application as a Windows service and have a web wrapper using ASP.NET MVC that could be accessed by clients to send messages to the application. But I am now learning about the Web API which is much better suited for this task but the question remains whether it makes more sense to include the base application as part of the Web API self-host framework or if I should leave it as a Windows service and wrap a Web API application around it.
Is there really a difference? Was the Web API designed to combine the concept of a service layer and a web interface into a single framework? I'm not sure how scalable/robust a self-hosted application can be compared to a Windows service. Will the Web API self-host method limit me in any way that the service method won't? What about a Web API application hosted inside IIS such that my base application will be running inside IIS? I'm not sure of the specifics of performance that I need (such as memory or CPU) at this point so would it be easier to start with IIS and then if needed, convert it into a self-hosted/windows service if the need be? I hope these questions make sense (although I'm not sure if they do).
I'm new to Web API so I'm just trying to wrap my head around these concepts.

Looking to create a webservice for client authentication and need some advice

I am developing an android application to accommodate some desktop software that I created. I would like for the user of the mobile app to have to verify their identity through authentication. Basically the web service will have to act as a central hub to both authenticate and hold information that the android app will need. The way I think it should work is to
-Set up a central web service
-Allow user to create account from desktop client using email/password
-The desktop client will send the information to the webservice that the android app will need.
-when android app is authenticated it will then retrieve the data it needs that was posted from the client.
So basically the service will need to be able to send and receive data.
I will only be using .net (either C# or vb.net ) for the service, so this leads me to a couple of questions:
Should I be using WCF for this? If so should I create a WCF Service library or WCF Service application?
Should I be using the Sign Sign on service approach?
The web service doesn't need to be fancy it just needs to get the job done. Is their any boilerplate project templates or projects out their I could use to help build a foundation?
I recently discovered SudzC.com which generates classes and methods for Objective-C from the wsdl data of a .net web service, and I'm fairly sure it also does Android.
I have a huge catalog of fairly 'old' web services which pre-date WCF and they are currently working perfectly.
I should point out though that the SudzC service only shows you what it can do for you for free - to get the code you have to pay ~£20 for a one year pass.
We had something similar where I worked. We had to put together an Android app for the company. If you are on .net 4.0 or newer, you can take advantage of theWebApi. It can return json or xml. So, that means any platform can utilize it (desktiop, android, etc...). I found it extremely easy to use, with very little overhead.

Kendo + Web Api vs. MVC vs. Web Service Where to go?

I'm just starting a project where I would like to use Kendo UI (based on jquery) with C#. A few weeks ago I was successful in handling requests using Web Services (asmx), was pleased with the results and performance, and was able to create forms quickly.
Since this is a new project, I thought I could look into different concepts such as MVC and WebApi. I found MVC to be the most complicaded so I went for WebApi and started playing with controllers and requests. So far what I'm finding (don't judge me, I'm new to these new concepts), is that Web Service seems to be simpler and more flexible.
So I guess what I'm looking for is... what are the main advantages of using MVC vs WebApi and even vs Web Services. Are there any downsides to Web Services? Would it be a bad practice to have my data layer controlled by Entity Framework, all models defined, and my requests handled by Web Services?
Any clarifications are welcome. Thank you.
In a broader sense, Web API is used to create Web Services ! It uses HTTP as its standard for creating services (instead of SOAP like in asmx) as its more open and any type of client like a mobile app, desktop app, web app etc will understand HTTP protocol. Another advantage is that u can easily use JavaScript/jQuery to communicate with your Web API. With SOAP web services, its a nightmare!
Kendo UI and Web API is a great combination. We have recently created a mobile iPad app using this combination and it worked like a charm. We also used Entity Framework with oracle as back end DB and it never gave any issues.
Webservices are nice if you have the need for it. A need as in needing that logic/data in more than one different type of application (such as web, and a mobile app, and a desktop app). (Or if you want to sell the service you're providing)
Using a webservice for ONLY a website which you don't except to expand to other things is complete overkill.
Furthermore, the MVC framework and the Web Api framework are pretty similar except web api is used exclusively for webservices. Coding in both of them will be the difference between white bread and wheat bread.

Move UI of Windows Forms .NET application to web

I have written a windows forms (.NET C#) application that encodes video and is essentially a GUI for ffmpeg.
The requirement has changed, and we now want to move the UI to a web page and have the encoding done as a windows service.
The following requirements also apply:
Two-way communication between browser's web page and service (i.e. start encoding using web interface and have service notify progress back to web page)
Service should be ported to Mac OS X too
UI should be a standard webpage (should consist of HTML/CSS/JavaScript/Flash etc...)
I was thinking of WCF for the windows service, but I have zero WCF experience.
Will WCF provide a good basis for 2 way communication between the web page and the service?
Also, I need to think about porting the service to Mac OS X, and I noticed that WCF is only partially implemented in Mono (see http://www.mono-project.com/WCF_Development).
Will this be an issue? Does anyone have any experience with WCF development in Mono?
What would be the best route to meeting the requirements above?
I would love to hear any suggestions...
EDIT
I should clarify - this is not a web application, it will run entirely on client side.
Service should run client side and interact with a webpage inside a browser (which is also client side).
If you want a UI in HTML – which is what a "UI to a web page" would mean to most – then WCF is the wrong approach. WCF is for creating highly interoperable (WS-* standards) clients and/or servers; not for web pages.
Better looking at ASP.NET MVC. This is a very different model to WinForms,1 but allows easy moving from from rendering a UI into HTML to generating XML or JSON for a Web API (behind AJAX from a Web UI or a native client).
As I understand it ASP.NET MVC is substantially supported on Mono; and this should become easier with much of ASP.NET being open source now.
See also this answer from yesterday.
1 WinForms would be less of a move, but it would then be harder to do the API side without another technology shift (albeit ASP.NET WebForms and MVC can be easily mixed in one Web App).

Categories