API Resources for C# Developers
C# is a general programming language created by Microsoft, introduced in 2000. Being popular in enterprise environments, it’s language features are similar to Java and has a similar vm to convert bytecode to machine code called the Common Language Runtime (CLR). C# as a language can be considered more elegant and advanced relative to Java. C# native async/await feature make implementing asynchronous, non-blocking method calls a breeze and is now being borrowed by other languages. C# also has LINQ and Parallel LINQ, which also adds convenience to creating fluent-style query expressions to query and manipulate data in databases and in memory.
While OSX and Linux support is increasing, much of the higher level .NET framework is still heavily tied to the Windows ecosystem and has tight coupling to IIS similar to enterprise Java being coupled to Tomcat and Java Servlets. The ecosystem is also less open source friendly relative to some other modern languages. At the same time, the backing of a major company like Microsoft provides some excellent documentation around the language and .NET framework.
C# Background
Tutorials on Creating Restful API
Most RESTful APIs are created using a framework, but in the C# world, the only viable one is .NET from Microsoft.
Tutorials for Creating GraphQL APIs
- GraphQL with ASP.NET Core
- A GraphQL server example on .NET
- Walkthrough creating a GraphQL service on ASP.NET CORE 2.0
- Get-started guide of graphql-dotnet
Deploying .Net APIs
-
Heroku
-
AWS
-
Azure
-
Google App Engine
Useful Libraries or Packages
C# libraries are managed by NuGet.
-
Documentation
-
Authentication
-
CORS
-
JSON
-
Utilities
-
Databases, Query Builder and ORMs
-
Testing
-
GraphQL
- GraphQL-dotnet
- GraphQL
- GraphQL.Net
- GraphQLRethinkDbHttp
- Dataloader, re-implementation of Facebook’s dataloader in C#
-
WebSockets
- ASP.NET SignalR - Incredibly simple real-time web for .NET.
- WebSocketListener - Lightweight and highly scalable asynchronous WebSocket server for .NET/Mono.
- websocket-rpc - WebSocket RPC library for .NET with auto JavaScript client code generation, supporting ASP.NET Core.