New to site?


Lost password? (X)

Already have an account?


(X)

Presents

#CSHARPCON20

The C# Corner Annual Conference 2020 is a three-day annual event for software professionals and developers.

3
DAYS
72
SPEAKERS
65
SESSIONS

Magnus Mårtensson
Microsoft Regional Director, Azure MVP, CEO Loftysoft

Avirag Jain
Director & CTO R Systems

Mahesh Chand
Founder C# Corner, CEO Mindcracker

Chris Gali
CEO & Co-Founder Graphite

Subinder Khurana
Chief Architect StoryProcess, Founder NASSCOM DeepTech Club

Bryan Rishforth
Investor, Chairman Graphite

Bryn Everson
Director Biz Dev Graphite

Raj Tiwari
Digital Transformation Leader, Futurist and Visionary

Joseph Guadagno
Microsoft MVP, Lead Quicken Loans

Nikita Sachdev
Entrepreneur, Blockchain Enthusiast & Advisor, Social Media Influencer

Doug Wagner
COO & Founder Adapt Technical Group

Ritesh Modi
Architect, Senior Evangelist, Cloud Architect

Crystal Wenrick
Director Communications Mindcracker

Allen O’Neill
Microsoft MVP, Consulting Engineer/Architect

Praveen Kumar
CEO MCN Solutions

Chris Love
Founder Love2Dev, Microsoft MVP, Author

Sanjay Vyas
Microsoft Regional Director, Microsoft MVP, Founder & CEO SkillLabs Technologies

Veena Sarda
Deep Learning Consultant, Author

Sekhar Srinivasan
C# Corner MVP, Microsoft Certified Trainer, Pluralsight Author

Lalit Bansal
Founder & CEO - EIY SYS

Navdeep Garg
CEO Revinfotech

Prakash Tripathi
Tech Manager/Leader, Microsoft MVP, Blogger

Bhavna Jain
Breakthrough Consultant

Naveen Sharma
Enterprise Architect, Leadership Coach, Author

Vidya Vrat Agarwal
Principal Architect, Microsoft MVP, Author

Sheetal Agarwal
Founder Clownselors, Medical Clown, Trainer

Abhishek Kant
Founder GTM Catalyst

Vishnu Saran
Founder & CEO VoiceQube

Sandeep Soni
Founder & CEO Deccansoft, Microsoft Certified Trainer

Parveen Malik
AVP InfoSec & Vulnerability Management, Information Security Expert

Nitin Pandit
Microsoft MVP, Developer Evangelist, Author

Niloshima Srivastava
C# Corner MVP, Tech Architect, Trainer, Blogger

Bala Chirtsabesan
Senior Software Engineer at Microsoft, Author

Manoj Mittal
Sr. Technical Architect, C# Corner MVP, Author

Chandni Di
Co-Founder Voice of Slum

Vithal Wadje
Technical Lead, Microsoft MVP, Author

Shivam Ahuja
Founder SkillCircle, Business Mentor

Chervine Bhiwoo
Solution Architect, Microsoft MVP, Author

Saurabh Jain
Vice President Paytm, Founder Fun2Do Labs, Author

Vinay Solanki
Head IoT at Lenovo, Founder IoT-NCR

Anshu kumari
Founder Blockchainkids, Inventor, Trainer

Amit Singal
CEO Startup Buddy

Dev Pratap
Co-Founder & CEO Voice of Slum

Amey Vartak
Technology Consultant, Full Stack Developer, C# Corner MVP, Author

Viswanatha Swamy
Principal Software Engineer, C# Corner MVP, Author

Sanket Verma
Research Engineer @ Ballistics (Forensics) and Chair, PyData Delhi

Sourabh Somani
Lead Developer, Microsoft MVP, Author

Abhishek Mishra
Software Architect, C# Corner MVP, Author

Siddharth Vaghasia
Technical Consultant, C# Corner MVP, Blogger

Bassam Alugili
Senior Software Specialist, Database Expert

S Ravi Kumar
Solution Architect, C# Corner MVP, Author

Sundaram Subramanian
Full Stack Developer, C# Corner MVP, Speaker

Deepesh Somani
Solution Architect, Microsoft MVP, Author

Debasis Saha
Technical Project Manager, C# Corner MVP, Blogger, Author

Vipul Jain
Software Architect, C# Corner MVP, Author

Akshay Patel
Technical Architect, Microsoft Certified Trainer, C# Corner MVP, Author

Stephen Simon
RPA Developer, Evangelist, Author

Vivek Sharma
Founder Kingster636, AR/VR Specialist

Jeetendra Gund
Technical Lead, C# Corner MVP, Author

Sujal Beniwal
AI Enthusiast, Student

M Viknaraj
Microsoft MVP, Azure Architect, Author

Prasham Sabadra
Software Architect, C# Corner MVP, Trainer, Author

Aakash Maurya
Senior Developer, C# Corner MVP, Speaker

Ankit Sharma
Senior Software Engineer, C# Corner MVP, Author

Mangesh Gaherwar
Team Lead, C# Corner MVP, Author

Viral Jain
Technical Consultant, C# Corner MVP, Author

Bhasker Das
Solution Architect, Evangelist

Manish Dwivedi
Associate Project Manager

Ck Nitin
Programmer, Author

Rohit Gupta
Technical Trainer, Author

Manish Tewatia
Full-stack Marketer, UX Designer

Bhavya Gaur
Technical Illustrator

Rohit Tomar
SEO/SMO Expert

Web Track

Cloud & Data Track

Dev Track

8am-9am

Registration & Breakfast

9am-10am

Future of Desktop Apps with JS (ElectronJs)

Nitin Pandit

Building Serverless Microservices Using Microsoft Azure

Vithal Wadje

Innovating RPA: A Robot for Every Person

Stephen Simon

10am-11am

Managing Cloud Storage Accounts using Logic Apps

Viknaraj Manogararajah

Data visualization using Python

Sekhar Srinivasan

Going Cross platform with AR Foundation

Vivek Sharma

11am-12pm

Keynote

12pm-1pm

Managing your Azure dependencies in ASP.NET Core apps using VS

Bala Chirtsabesan

Securing Applications on Intelligent Azure

Abhishek Mishra

Getting started with Blazor the Framework of Future

S Ravi Kumar

1pm-2pm

Lunch

2pm-2:45pm

Build Progressive Web Apps using Angular 9

Debasis Saha

Build and deploy to any platform using Azure DevOps

Chervine Bhiwoo

Deep Dive in Azure Service Bus

Akshay Patel

2:45pm-3:45pm

Build a Native Mobile Application using React Native and JavaScript

Joseph Guadagno

Making sense of Web Job, Web Job SDK and Functions in Azure

Prakash Tripathi

CloudFront Distribution in AWS

Viral Jain

3:45pm-4pm

Tea Break

4pm-4:30pm

Introduction to PowerBI

Aakash Maurya

Build Advanced SPFx solutions with React and Graph API

Siddharth Vaghasia

Build Business Intelligence Analyst (BIA) Skills

Sundaram Subramanian

4:30pm-5pm

Deep dive of Power Platform – AI BUILDER

Prasham Sabadra

Panel 1

What's new in SharePoint development

Vipul Jain

5pm-5:30pm

Build a SSO (Single Sign On) based Native JavaScript application with Microsoft Identity within 10 minutes

Manoj Mittal

Panel 2

Applications and working of AI

Veena Sarda

5:30pm-6pm

Deploying serverless API's with .Net core 3.0 on AWS & Azure

Amey Vartak

Panel 3

Blockchain with .NET Core (Ark)

Anshu Kumari

6pm-6:30pm

Closing Note & Prize Distribution

Dev Track

Cloud Track

Architecture Track

Emerging Tech Track

8am-9am

Registration & Breakfast

9am-10am

Creating Full-Stack Web Apps Using Server-Side Blazor

Ankit Sharma

Real time face recognition with MS Cognitive Services

Niloshima Srivastava

Building Scalable APIs with GraphQL

Jeetendra Gund

Future of development with AI and Blockchain

Navdeep Garg

10am-11am

Debugging Tips and Tricks with Visual Studio 2019

Joseph Guadagno

Azure Containers

Abhishek Kant

Enterprise Architecture

Naveen Sharma

Bot Framework - learn it fast and look like a boss!

Allen O’Neill

11am-12:30pm

Keynote

12:30pm-1:30pm

.Net Core & C# 8 Performance

David McCarter

Working with Azure kubernetes services

Ritesh Modi

Becoming an Architect

Vidyavrat Agarwal

Why Techies Need to Learn Product Management

Saurabh Jain

1:30pm-2:30pm

Lunch

2:30pm-3:30pm

Build a rules engine in .Net Core

Sanjay Vyas

Building CI and CD Pipeline using Azure DevOps

Sandeep Soni

Entity Framework Core - Tips and Tricks, Performance Optimization, and Tuning

Bassam Alugili

Hacking your way into Data Science

Sanket Verma

3:30-4:15pm

Speed up your .Net Core Website

Sourabh Somani

Azure

Magnus Mårtensson

Demystifying Open Distro for Elasticsearch

Suman Debnath

Future of Data

Shivam Ahuja

4:15pm-4:30pm

Tea Break

4:30pm-5:15pm

gRPC with C# and .Net Core

Mangesh Gaherwar

Panel 1

Essentials of Cloud security

Parveen Malik

Power platform and Dynamics 365

Deepesh Somani

5:15pm-6pm

Microservices - the gRPC Way

Viswanatha Swamy

Panel 2

Reserved

Reserved

6pm-6:30pm

Closing Note & Prize Distribution

Building an API gateway with YARP and .NET 8

Modern applications rarely expose every service directly to clients. A browser, mobile app or partner integration usually needs one reliable entry point that can route requests, apply security policies, standardise responses and protect internal services. For teams building on ASP.NET Core, YARP provides a practical way to create that reverse proxy without introducing a separate gateway product.

YARP, or Yet Another Reverse Proxy, is a .NET library developed by Microsoft. Combined with .NET 8, it supports a flexible API gateway architecture with route matching, load balancing, health checks, transforms and middleware. This approach suits Australian development teams managing cloud workloads in Sydney or Melbourne, where latency, data residency and operational simplicity can influence gateway design.

Capability YARP with .NET 8 Managed API gateway Nginx or similar proxy Custom proxy
.NET integration Excellent Usually adapter-based External process Depends on implementation
Routing flexibility High High High Potentially high
Built-in cloud features Requires configuration Broad Requires additional services Must be developed
Operational control Full application-level control Provider-controlled Infrastructure-focused Full control
Best fit .NET microservices and tailored gateways Large enterprise platforms Standard reverse-proxy workloads Specialised protocols or policies

Why an API gateway belongs at the edge

An API gateway sits between external consumers and internal services. Instead of publishing separate endpoints for orders, accounts, payments and notifications, a client can call a consistent public host. The gateway forwards each request to the appropriate backend while keeping internal hostnames, ports and deployment details private.

This boundary is useful for more than routing. Authentication, request correlation, rate limiting, header normalisation, CORS, TLS termination and access logging can be handled centrally. A gateway can also shield older services from public exposure while a platform team gradually modernises them.

YARP is especially attractive when the delivery team already uses C#, ASP.NET Core dependency injection, Microsoft Entra ID and Azure. Developers can extend the proxy with normal .NET middleware and services rather than learning a separate scripting language. It remains important to keep the gateway focused: business rules and domain workflows belong in application services, not in route configuration.

For an Australian service, deployment location deserves early attention. Hosting the gateway and primary APIs in an Australian Azure region can reduce round-trip time for users in Sydney, Brisbane and Melbourne. It may also support contractual or regulatory expectations around where customer information is processed, although the gateway itself does not automatically guarantee compliance with the Privacy Act or Australian Privacy Principles.

Creating the .NET 8 gateway project

Start with a standard ASP.NET Core application and add the YARP package:

dotnet new web -n Gateway
cd Gateway
dotnet add package Yarp.ReverseProxy

A minimal Program.cs can load routes and clusters from configuration:

var builder = WebApplication.CreateBuilder(args);

builder.Services
    .AddReverseProxy()
    .LoadFromConfig(builder.Configuration.GetSection("ReverseProxy"));

var app = builder.Build();

app.UseHttpsRedirection();
app.MapReverseProxy();

app.Run();

The AddReverseProxy call registers YARP services, while LoadFromConfig reads the routing model from appsettings.json. MapReverseProxy adds the endpoint that receives matching requests and forwards them to a destination.

A basic configuration might look like this:

{
  "ReverseProxy": {
    "Routes": {
      "catalog-route": {
        "ClusterId": "catalog-cluster",
        "Match": {
          "Path": "/api/catalog/{**catch-all}"
        }
      }
    },
    "Clusters": {
      "catalog-cluster": {
        "Destinations": {
          "catalog-service": {
            "Address": "https://localhost:7001/"
          }
        }
      }
    }
  }
}

The route defines the public path, and the cluster defines one or more backend destinations. In a production environment, destination addresses should normally come from environment-specific configuration, service discovery or a managed platform rather than being hard-coded into source control.

Designing routes, clusters and transforms

YARP separates route matching from destination selection. This distinction makes the gateway easier to evolve. A route can match a path, HTTP method, host or header, while a cluster can contain several destinations and a load-balancing policy. Multiple public routes may therefore share the same backend cluster.

Path transforms are useful when public and internal URL structures differ. For example, clients might call /api/orders/123, while an internal service expects /orders/123. A transform can remove or add a path prefix before forwarding the request. Header transforms can add correlation identifiers, preserve the original host or remove headers that should never reach an internal service.

A route with a transform could be configured as follows:

{
  "Routes": {
    "orders-route": {
      "ClusterId": "orders-cluster",
      "Match": {
        "Path": "/api/orders/{**remainder}"
      },
      "Transforms": [
        { "PathRemovePrefix": "/api" },
        { "RequestHeader": "X-Gateway", "Set": "yarp" }
      ]
    }
  }
}

Use explicit route conventions. Keep public versioning such as /api/v1 stable, and avoid exposing internal service names in client-facing URLs. In a multi-team environment, consistent naming helps developers in Melbourne or Perth understand ownership when they inspect logs and deployment settings.

YARP also supports health checks and load balancing. A cluster can contain several instances of a service, allowing traffic to be distributed across containers, virtual machines or App Service deployments. Health monitoring should reflect actual service readiness rather than simply confirming that a process is running.

Adding authentication, authorisation and resilience

Authentication should be enforced at the correct boundary. A gateway can validate bearer tokens issued by Microsoft Entra ID or another identity provider before forwarding requests. ASP.NET Core authentication and authorisation middleware can protect all routes or selected route groups.

A typical setup registers JWT bearer authentication:

builder.Services.AddAuthentication("Bearer")
    .AddJwtBearer("Bearer", options =>
    {
        options.Authority = builder.Configuration["Identity:Authority"];
        options.Audience = "api";
    });

builder.Services.AddAuthorization();

var app = builder.Build();

app.UseAuthentication();
app.UseAuthorization();
app.MapReverseProxy();

The exact order and policy design should match the application’s security model. Some systems pass the original token to downstream services so each service can perform its own authorisation. Others exchange the external token for a narrower internal credential. Avoid treating authentication at the gateway as a substitute for service-level authorisation.

Resilience features require equal care. Timeouts prevent a slow dependency from consuming every gateway thread, while retries can help with short-lived network faults. Retrying non-idempotent operations such as payments or order creation can create duplicate actions, so retry policies should consider the HTTP method and business semantics.

Useful gateway controls include:

  • Request timeouts and cancellation propagation
  • Rate limits for public and partner-facing endpoints
  • Circuit breakers for failing downstream services
  • Maximum request and response sizes

For Australian consumer traffic, rate limiting can help absorb sudden demand from a campaign, sporting event or retail promotion. It should be paired with clear client responses such as HTTP 429 and useful retry guidance rather than silently dropping requests.

Observability and production operations

A gateway becomes a central diagnostic point, so its telemetry must be designed before launch. Record structured logs with a correlation ID, route name, destination, status code, duration and failure category. Do not log access tokens, passwords, payment details or unnecessary personal information.

OpenTelemetry integrates well with modern .NET applications and can export traces and metrics to Azure Monitor, Application Insights or another observability platform. Distributed tracing allows an engineer to follow a request from the gateway to an orders service, database and external provider. This is far more useful than a single “502 Bad Gateway” message.

Health endpoints should distinguish between process health and dependency readiness. A liveness check can confirm that the gateway is running, while a readiness check can indicate whether it can safely accept traffic. Kubernetes, Azure Container Apps and other hosting platforms use these signals to make deployment decisions.

Operational checks worth defining include:

  • Gateway latency by route and HTTP status
  • Upstream failures, timeouts and connection errors
  • Requests rejected by authentication or rate limits
  • Destination health and load distribution

In Australia, teams should verify that monitoring data is stored in an approved region and that retention settings match organisational policy. A company serving customers across New South Wales and Victoria may also need alert coverage outside standard office hours, especially when the gateway fronts payments, logistics or public-sector services.

Securing configuration and deployment

Configuration should be externalised across development, testing and production. Local developers can use user secrets or a development settings file, while production deployments can use Azure App Configuration, Key Vault, managed identities or environment variables. Never place client secrets, certificates or database credentials in appsettings.json committed to a repository.

TLS should terminate at a trusted edge such as Azure Front Door, Application Gateway or the hosting platform, depending on the network design. Encrypting the connection from the edge to YARP and from YARP to internal services provides stronger protection across the entire path. Internal services should still validate identity and apply their own authorisation rules.

A production pipeline should build, test and scan the gateway as an ordinary .NET 8 application. Include route tests, authentication tests, transform tests and failure scenarios. Contract tests can confirm that the gateway continues to produce the paths and headers expected by downstream services.

Blue-green or rolling deployments reduce risk when changing routes. A new route should first target a test destination or limited audience. Logs and metrics can then confirm that forwarding, latency and authentication behave as expected before traffic is expanded. This staged approach is valuable for teams supporting customers across Australian time zones, where a fault introduced during a late Sydney deployment may affect users nationwide.

Extending YARP without creating a bottleneck

YARP can be extended through custom transforms, destination resolvers, load-balancing policies and proxy middleware. These extension points are powerful, but every custom feature increases the gateway’s maintenance surface. Prefer built-in configuration where it expresses the requirement clearly, and add code only when a reusable policy cannot be configured.

A custom transform may add tenant context, rewrite a header or adapt a legacy backend. It should validate input and avoid trusting client-supplied identity headers. If a downstream service needs a tenant identifier, derive it from a verified token or trusted server-side lookup rather than accepting arbitrary values from the request.

The gateway should remain stateless wherever possible. Stateless instances can scale horizontally behind a load balancer and can be replaced during deployments without session migration. Shared state, such as throttling counters or temporary tokens, should be managed by a dedicated service with clear availability characteristics.

Before releasing a YARP gateway, check these implementation details:

  • Confirm every public route has an authentication and authorisation policy
  • Test unhealthy destinations and slow downstream responses
  • Verify forwarded headers and original client IP handling
  • Review sensitive data in logs, traces and error responses

A well-designed .NET 8 gateway gives developers a controlled edge for APIs while preserving the freedom to evolve internal services. YARP is most effective when paired with disciplined route ownership, secure configuration, meaningful telemetry and realistic load testing. That combination supports a maintainable platform for cloud-native applications, whether the workload serves a local Australian business or a distributed global customer base.

The Leela Ambience Convention Hotel

1, CBD, Maharaj Surajmal Road, Near Yamuna Sports Complex, Delhi, 110032

KNOW MORE

GENERAL QUERIES


Manish Tewatia

+91-9718-431-042

TICKET QUERIES


Atul Gupta

+91-9910-125-804