Xamarin + ASP WebAPI + ASP MVC - which architecture is best? [closed] - c#

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I'm not found answer for my question - and opened this topic.
So I want develop project.
Database:
Or Couchbase or SQL Server (right now it is not important, but I think it will be Couchbase)
Website:
Asp .NET MVC + Angular etc. - Simple Website
Web Api:
ASP .NET WebAPI
**Mobile Application (This is hard side for me)**
I'm a good C# developer - it's a reason why I want write Application by Xamarin.
If its bad idea - tell me (and tell me WHY IS BAD IDEA)
if is good framework, I have a few question:
1) How work with API
2) Or I need write for each platform(iOS, Android, WP) - service (like WCF) = (3 services?)
3) Which way better for Authentication (I want give to user option Registration by FB, Google, What's Up, etc...)
I dont know, maybe you can give me links for good topics, or same question here (I'm not found)
Or maybe you can give me a name of good course on Lynda or plularsight?
Thank you.

With ASP.NET Web API you can make a REST web service working through HTTP protocol. Any platform which supports HTTP protocol, can consume your web service.
You need only one web service for all platforms.
In current ASP.NET Web API version, you can use ASP.NET Identity which supports local account and external account through OAuth.
For example, this post shows how to consume a ASP.NET Web API in Android. And this one is about how to use external account for authentication. There're some more posts in that blog discussing about ASP.NET Web API, just spend some minutes flying over it, you'll find some useful infos.
I have no experience with Xamarin so I can't say anything about it. I write mobile app in their native platforms (Android with Java, IOS with Objective C++).

Related

What is the Difference Between Blazor.Server and Asp.Net Web API? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 2 years ago.
Improve this question
Blazor is one of those technologies that has me really excited to get started with. I am an experienced Asp.Net MVC and Web API (.Net Framework. not Core) developer. My first app that I am creating in Blazor is a PWA Web Assembly App with Individual User Accounts Hosted on Asp.Net Core using .Net 5.0. I've chosen to go the hosted route mainly because I want the Asp.Net Identity User Store functionality.
In my newly constructed Blazor Core Hosted Wasm PWA I have three projects.
App.Client
App.Server
App.Library
App.Server in many ways functions like an Api but it is different. One of those differences as far as I can tell is how it authenticates with App.Client. My question is two-fold in the fact that I want to know if other technologies/ clients like Xamarin.Forms can integrate with Blazor's App.Server... or can only Blazor Clients?
Second Question is that App.Server "seems" like an Api... but it is not. What are the differences specifically?
Blazor is designed to be used with html and create web content delivery applications. A Web API project has the similarities you've noted because they both exist as a content delivery service via web server. The difference is in the content you're delivering. Blazor is made for web pages, while an API project enables you to deliver data via REST endpoints.

What are the advantages of hosting your API(s) and IdentityServer4 host separately (C#, .NET CORE)? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
Perhaps the question I am about to ask is very obvious and simple, but as a beginner in IdentityServer4 and more or less in oAuth2, OpenID and API's in general, I find it quite hard to understand.
Our company's goal is to move to a more secure application building way (Visual Studio 2017, C#, .NET Core 2) using Authentication and Authorization. After some days of research I ended up with using IdentityServer4 (also because the documentation is really great).
After following the IdentityServer Documentation (https://media.readthedocs.org/pdf/identityserver4/release/identityserver4.pdf) up till chapter 7, I have one remaining.
I am trying to build a MVC application (web) with an API backend for retrieving / inserting the data so that I can later use the API for other applications, like a SPA / Xamarin application. For the IdentityServer host I went for IdentityServer with asp.net identity. I got it running and it all works great, however the following question remains:
What are the disadvantages of hosting my API, in which I want to handle Database operations, together with the IdentityServer host?
It doesn't seem logical to me to have so many different projects while (so far as I can tell) these 2 (the API and IdentityServer host) can be joined together perfectly fine.
In (almost) all the examples found of IdentityServer4 the IdentityServer host and API's are separate projects, what are the advantages of hosting the two as separate projects.
I would say Single Responsibility.
Treat it like this - Identity Server is a framework, that provides you the authentication against your clients/API's. That's it! (of course this is all done based on your rules, policies etc).
It is not Identity Servers' purpose to add/edit/delete users from your database. It is not Identity Servers' purpose to give roles to this users.
And most important - it is not Identity Servers' purpose to authorize this users.
All these must be done in your clients/api's.
In your case - you need a separate API that will take care for the users (and other data that you need), but I guess that you want this API to be protected by Identity Server.
This is where the separation comes and should be kept - Identity Server should not authenticate its own API against himself.
There is a reason that all the examples, articles and etc are with separated projects.
PS: Of course there are some examples of achieving this (damienbod's one is good).

How to integrate Quickbook web connector with Web API [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
I was told to integrate our application with QuickBook Desktop version. When i checked about that, Connecting via WebConnector seems promising. But all the documents and samples are created with WebService.
But i want to implement the functionalities with WebAPI. Is that possible and that will work without any issues (still in research, so i haven't tried it yet)? i have searched for reference but no help. May be i looked in wrong places.
Secondly, the webservice example uses qbXML to send and receive data with WebConnector. Is there any possibility that i can use Interop library QBFC ?
Any help appreciated thanks.
Note: I have referred the Samples and Docs that comes with SDK
But all the documents and samples are created with WebService.
You should use the Web Connector, which requires you to implement a SOAP web service.
But i want to implement the functionalities with WebAPI.
No, QuickBooks desktop does not support a REST API of any sort natively (though if you want to pay, Autofy http://www.propelware.com/ has a solution for you).
i have searched for reference but no help. May be i looked in wrong places.
You should probably start with Intuit's documentation. There's literally a 100+ page PDF on specifically the top of integrating via the Web Connector, and several hundred more pages on QuickBooks integration in general - install the SDK and look at the included PDF docs:
https://developer.intuit.com/docs/0200_quickbooks_desktop/0100_essentials/0000_overview
Is there any possibility that i can use Interop library QBFC ?
QBFC can generate qbXML requests. So you can use that to generate qbXML requests, yes.
You'll still have to implement some web service components though - you can't use QBFC to natively talk to QuickBooks desktop from a web app.

how to integrate angularjs with asp.net web api [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
I am new in angularjs and asp.net. I've searched a lot but did not get proper answer and more confused.
my problems are:
1) how to integrate angularjs application integrate with asp.net MVC web API using SQL server.
2) I got the solution for two projects like one is client second is a server so now first I starts server project as the startup project and then client project starts as the startup project and then performs API operation so my question is:
i) what happened when upload it to a global server.
ii) will I add both of projects one by one on server (server and client)?
my desire is to make it in one project and angular should be in html due to performance purpose so don't want to shifting as cshtml and also want some cshtml page for admin panel like (product upload etc)
I am looking for best approach kindly suggest me.
Dear Zeeshan it's not complicated.
As you mentioned angularjs manager client side of your project with MVC pattern and ASP.net web API makes your server side services as RESTFul. If you want develop both of server and client side it's up to you but Somehow you will get involved with both of them. In production you will have no problem with these, you must just deploy Asp.Net and angularjs play will play his role as a simple JavaScript library.
You can use this link as a sample.

WCF Service or Web API [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
I'm going to be working on a project that involves a number of elements:
ASP.NET MVC website
C# console application
iPhone App
To get all these separate applications talking to the database, my immediate thought was to use a WCF Service.
However, I now need to add an API to the site to allow third parties to select, insert and update records from their own applications.
In my mind, I would just create a separate RESTful service endpoint on my WCF Service which would be locked down using authentication and would only give access to certain methods.
However, I've been reading today about the Web API feature in MVC 4 which is meant to be the latest thing for RESTful APIs?
Should I be going along the line of using the Web API? or because my other applications need a web service, should I stick with a WCF Service?
If you intend to do RESTful development then you will definitely want to use the ASP.Net Web Api (which was originally called WCF Web Api and created with the goal of "Making REST a first class citizen in .NET".
Another thing to consider is that the WCF REST Starter kit is no longer supported.
Note that using Web Api doesn't mean you have to use ASP.Net MVC or IIS even as it can be self hosted.
For handling operations which are non-CRUD in nature I'd recommend Googling "REST non-CRUD". I found this blog post RESTful URLs for non-CRUD operations (and particularly the comments interesting). If you decide you NEED to have RPC calls then those may have to be done with WCF. That said since WCF REST is being killed off I'm not sure what the best solution is going to be. Having both is probably the best answer but at the same time it's not necessarily a good answer.
Another alternative would be a WCF OData Service but I'm not sure if that gets any support from an iPhone.
One last point to make (that can be deleted in the future as this is time sensitive)
Microsoft has provided a Go Live license with the beta which means that it is supported by Microsoft and you shouldn't have any problems upgrading to the file RTM.
Service Stack also looks like an option.
Demos, overview, examples is available here.
There's no right answer here. You can certainly do fairly well with a WCF RESTful service. Or you could use ASP.NET MVC. Both are perfectly valid, and both have strengths and weaknesses.
Ultimately, I'd suggest you go with whatever feels the most maintainable to you.
I would like to note that MVC 4 is in beta, so watch out for bugs and don't go live until it's out of beta.
Since you are going to create an ASP.NET MVC web site, it would be quite comfortable to use ASP.NET Web API also because programming model is very similar and those solutions are more or less integrated with each other.
I would be inlclined to look at what has the best support on all platforms that you are going to use, I suspect the iPhone app may end up driving your choices.
If it was pure .net I would still tend to lean toweards a SOAP service - it is not considered cool these days but it generally will do what you need on most platforms without having to roll custom solutions.
EDIT
ASP.NET Web API means that .NET now provides a great framework for developing a restful API, I revise my answer to say that I would now lean towards this - progress is great!
I have the same question.
In the MSDN site,
http://msdn.microsoft.com/en-us/library/jj823172(v=vs.110).aspx
Found a video tutorial where they said that for machine cosumption like iPhone or web app clients of JSON or xml, web API is recommended option. Its around the last part of the video.
While for more complex machine to machine communication WCF is prefereable.
http://channel9.msdn.com/Series/Building-Web-Apps-with-ASP-NET-Jump-Start/Building-Web-Apps-with-ASPNET-Jump-Start-04-Building-a-Service-Layer-with-ASPNET-Web-API
Here is a screenshot from their presentation.

Categories