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
Registration & Breakfast
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
Managing Cloud Storage Accounts using Logic Apps
Viknaraj Manogararajah
Data visualization using Python
Sekhar Srinivasan
Going Cross platform with AR Foundation
Vivek Sharma
Keynote
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
Lunch
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
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
Tea Break
Introduction to PowerBI
Aakash Maurya
Build Advanced SPFx solutions with React and Graph API
Siddharth Vaghasia
Build Business Intelligence Analyst (BIA) Skills
Sundaram Subramanian
Deep dive of Power Platform – AI BUILDER
Prasham Sabadra
Panel 1
What's new in SharePoint development
Vipul Jain
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
Deploying serverless API's with .Net core 3.0 on AWS & Azure
Amey Vartak
Panel 3
Blockchain with .NET Core (Ark)
Anshu Kumari
Closing Note & Prize Distribution
Dev Track
Cloud Track
Architecture Track
Emerging Tech Track
Registration & Breakfast
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
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
Keynote
.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
Lunch
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
Speed up your .Net Core Website
Sourabh Somani
Azure
Magnus Mårtensson
Demystifying Open Distro for Elasticsearch
Suman Debnath
Future of Data
Shivam Ahuja
Tea Break
gRPC with C# and .Net Core
Mangesh Gaherwar
Panel 1
Essentials of Cloud security
Parveen Malik
Power platform and Dynamics 365
Deepesh Somani
Microservices - the gRPC Way
Viswanatha Swamy
Panel 2
Reserved
Reserved
Closing Note & Prize Distribution
Using gRPC for high-performance service communication in .NET
Across the three-day C# Corner Annual Conference 2020, .NET and Azure sessions show how cloud applications are moving from large monoliths to cooperating services. That makes using gRPC for high-performance service communication in .NET a practical topic for developers designing internal APIs, event-driven workflows and integrations where latency, contract discipline and predictable throughput matter.
gRPC provides a compact binary contract, multiplexed HTTP/2 connections and four calling styles: unary, server streaming, client streaming and bidirectional streaming. It is especially useful when .NET services exchange many small messages or need long-lived streams. It is not automatically faster, however. Protobuf encoding, network hops, database work and inefficient handlers still determine the result, so the design must be measured end to end.
Why gRPC changes .NET service communication
gRPC starts with an interface definition language, usually Protocol Buffers, that defines messages and services before code generation creates strongly typed contracts. ASP.NET Core hosts the server endpoint, while a .NET client uses a generated stub over an HTTP/2 channel. The same contract can span languages, which helps polyglot teams align on request shapes and error semantics.
The efficiency comes from several layers working together: compact wire encoding, fewer round trips through connection multiplexing, and streaming without a separate transport. The cost is tighter coupling to HTTP/2 and a less universally readable debugging experience. Browser tooling and public partner integrations often benefit more from JSON-based APIs.
| Decision point | gRPC | REST with JSON | GraphQL |
|---|---|---|---|
| Contract | Protobuf schema and generated code | Resource routes and schemas | GraphQL schema and queries |
| Transport | HTTP/2 | HTTP/1.1 or HTTP/2 | Usually HTTP/1.1 or HTTP/2 |
| Interaction | Unary and bidirectional streaming | Request-response; limited streaming | Queries, mutations and subscriptions |
| Best fit | Internal, typed service calls | Public APIs and simple integrations | Flexible client-specific queries |
| Main trade-off | HTTP/2 and tooling requirements | Larger payloads and repeated parsing | Query complexity and runtime overhead |
Designing contracts that remain compatible
Treat the .proto file as a published interface, not an implementation detail. Give every field a stable number, reserve removed identifiers and avoid reusing them for different meanings. Adding optional fields is usually safe; changing a field type, meaning or cardinality is not. Package names and service names become part of your organisational contract.
Generate clients and servers during the build with Grpc.Tools, then review generated code changes like any other production artefact. Centralising common messages can prevent duplication, but excessively shared schemas can turn a small service change into a fleet-wide release. Domain boundaries should usually own their contracts, with gateways translating where ownership differs.
Carry deadlines, cancellation and correlation identifiers through every call. A deadline bounds how long the caller should wait, while cancellation releases work on both sides. Put business identifiers in typed request messages rather than scattering them through metadata. Reserve metadata for transport concerns, authentication and tracing, and never place secrets or sensitive payloads in it.
Efficient implementation patterns for .NET
Use Grpc.AspNetCore for the server and Grpc.Net.Client for callers. Register generated service bases, map them with MapGrpcService, and create channels through HttpClientFactory so DNS refresh, connection lifetime and observability remain under application control. In Kubernetes or Azure deployments, confirm that ingress, service meshes and load balancers preserve HTTP/2, trailers and the gRPC content type.
Avoid allocating a channel for every request. Reuse channels, keep the server asynchronous and remove blocking calls from request paths. Benchmark representative payloads rather than tiny, artificial messages. The default receive limit protects the process from oversized requests, so raise it deliberately when the business requires larger messages and enforce the limit again downstream.
Streaming suits continuous updates, telemetry and interactive sessions, but it does not remove backpressure. Bound in-flight messages, apply flow control and make reconnection behaviour explicit. A client that reconnects must know whether the server may replay work; use idempotency keys for retried commands and resume tokens where ordered progress matters.
Resilience, observability and distributed operations
A remote call can fail after the remote service has completed it. Set a deadline on every request, retry only safe operations, and use exponential backoff with jitter to prevent retry storms. Circuit breakers can protect saturated dependencies, while bounded queues prevent overload from turning into unbounded latency. Cancellation tokens should flow into database and HTTP calls so abandoned work stops promptly.
Distributed tracing needs consistent propagation across service boundaries. OpenTelemetry activities, metrics and structured logs can expose queue time, handler time, response codes, stream duration and retry counts. Correlation identifiers help operators connect a user's request to downstream work. High-cardinality values should not become metric labels, and metadata must be filtered from logs because it often carries credentials.
Place instances close to their callers, but do not confuse regional placement with instant communication. Azure regions around Sydney and Melbourne suit many Australian workloads, yet a Perth office or a Pilbara site still faces a physical network path to the nearest region. Mining, logistics and agricultural deployments also encounter intermittent links; durable queues, resumable jobs and clear status endpoints may be safer than holding a stream open indefinitely.
Security and Australian enterprise requirements
Terminate TLS for public endpoints and use mutual TLS where service identities must be cryptographically verified. ASP.NET Core authentication can validate JWTs issued by an existing identity provider, while authorisation policies enforce permissions inside each service. Scope service accounts narrowly, rotate certificates and avoid granting one service blanket access to every downstream API.
Australian enterprises must also align transport choices with privacy, security and procurement controls. The Australian Signals Directorate's Essential Eight gives security teams a common language for risk management, while sector rules and customer contracts can require particular data to remain in Australia. For organisations already standardised on Microsoft identity and Azure, reusing those controls can shorten approval cycles. gRPC reduces the attack surface of some integrations, but it does not make data local merely because the endpoint is hosted in an Australian region.
Selecting the right interaction model
gRPC is strongest when both sides are controlled services, the contract is stable and performance is measured. REST remains a sound choice for public APIs, administrative tools, caches and partners that require conventional HTTP semantics. GraphQL fits clients that need flexible, query-oriented access to several resources, although it introduces schema resolution and data-fetching costs that a narrow gRPC contract may avoid.
Choose the API style per boundary instead of forcing one protocol across an estate. A browser may need REST or gRPC-Web through a compatible proxy; an ASP.NET Core backend can still use native gRPC internally. An API gateway can expose JSON while forwarding selected calls to gRPC services, but translation adds another failure point. Versioned contracts, health checks and rollback plans should be designed before traffic moves.
A production-focused adoption path
Start with one high-volume or latency-sensitive flow, such as an order service calling inventory, and record a baseline before changing protocols. Define success by end-to-end latency, throughput, error rate and resource use. Pilot in an environment that matches Azure networking and security controls so the test does not rely on a developer laptop's unusually fast loopback connection.
In Australian workplace conversations, a “fair go” for users means regional offices and field teams receive a dependable experience, not merely that head-office benchmarks look good. A rollout plan should therefore include local failure testing, support ownership and a simple explanation of what happens when a dependency is unavailable.
- Choose a bounded service boundary and define measurable latency and throughput targets.
- Publish reviewed
.protocontracts and preserve backward compatibility. - Reuse channels and tune message limits only from observed requirements.
- Propagate deadlines, cancellation and trace context on every request.
- Restrict retries to idempotent operations and apply backoff with jitter.
- Test through the real ingress, identity and observability path.
A disciplined rollout gives .NET teams the binary efficiency and streaming flexibility of gRPC without hiding operational costs. The result is a service layer that can serve Australian users across city networks and remote regions with clear performance targets, secure contracts and measurable failure behaviour.
1, CBD, Maharaj Surajmal Road, Near Yamuna Sports Complex, Delhi, 110032
GENERAL QUERIES
Manish Tewatia
manish@csharpcon.com
+91-9718-431-042
TICKET QUERIES
Atul Gupta
conference@csharpcon.com
+91-9910-125-804