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 Scalable Multi-Tenant Systems with Azure SQL

Multi-tenant applications serve multiple customer organizations from a shared software platform. This model helps teams release features faster and control infrastructure costs, but it also introduces difficult database questions. Each tenant may have different traffic patterns, storage needs, compliance requirements, and expectations for performance.

Azure SQL Database Elastic Pools provide a practical way to manage these demands. Instead of assigning a dedicated database tier to every customer, an application can place multiple databases inside a shared pool of compute and storage resources. This allows capacity to be distributed across tenants as demand changes.

The approach is especially useful for SaaS platforms built with Microsoft technologies. It combines the managed operations of Azure SQL Database with flexible database placement, automated scaling, and familiar tools for monitoring security and performance. The design decisions still matter, however: a pool must be sized correctly, noisy neighbors must be controlled, and tenant growth must be tracked over time.

Understanding Elastic Pool Architecture

An elastic pool is a shared performance boundary for multiple Azure SQL databases. The pool has a defined amount of compute, measured through DTUs or vCores, and the databases inside it draw from that capacity as needed. A quiet tenant consumes little of the shared budget, leaving resources available for tenants experiencing a busy period.

This differs from provisioning an independent service tier for every database. With individual databases, each tenant receives a fixed allocation whether the application uses it or not. Elastic pooling turns that unused capacity into a shared resource, which can significantly improve utilization in workloads where customer activity peaks at different times.

The databases remain logically separate even though they share infrastructure. This separation supports tenant-specific schema objects, backup settings, and lifecycle operations. An application can also move a database between pools or remove it from a pool when a customer requires dedicated performance or a different compliance arrangement.

Choosing A Tenant Isolation Model

The first architectural decision is how tenant data will be organized. A database-per-tenant model places each customer in a separate Azure SQL database, making isolation, backup restoration, and tenant-level administration straightforward. Elastic pools are particularly well suited to this model because many small or moderately active databases can share a common resource budget.

A shared database with tenant identifiers uses one schema for multiple customers. This can reduce operational overhead and simplify cross-tenant reporting, but every query must enforce tenant boundaries correctly. Row-level security, careful indexing, and application-level authorization become essential. A mistake in filtering can expose one customer’s records to another.

Some applications use a hybrid strategy. Smaller tenants may share a database while large or regulated customers receive dedicated databases. The application should hide these differences behind a tenant-aware data access layer so that routing logic does not spread throughout the codebase. A hybrid design also makes it easier to offer premium service tiers without rebuilding the platform.

Design concern Database per tenant Shared database Hybrid deployment
Data isolation Strong logical separation Requires strict filtering and security policies Varies by tenant segment
Operational effort More databases to monitor Fewer databases and simpler inventory Moderate complexity
Elastic pool fit Excellent for many small databases Pool applies to the shared database Useful for standard-tier tenants
Noisy-neighbor control Easier to identify and isolate Requires workload governance Dedicated treatment for high-volume tenants
Customization High tenant-level flexibility Limited by shared schema Balanced flexibility
Migration complexity Tenant databases can move independently Schema changes affect many customers Requires routing and migration rules

Sizing Capacity For Variable Workloads

Pool sizing should begin with workload measurements rather than database count alone. Important signals include average CPU, data IO, log IO, storage growth, concurrent sessions, query duration, and the frequency of short traffic spikes. A pool containing hundreds of inactive databases may need less capacity than a pool containing a few tenants with constant transaction volume.

Azure SQL elastic pools provide minimum and maximum resource settings for individual databases. These limits help prevent one tenant from consuming the entire pool during a sudden workload surge. The minimum protects baseline responsiveness, while the maximum establishes a ceiling for burst usage. Limits should reflect service-level commitments instead of being copied uniformly across every tenant.

Capacity planning also needs a growth model. A new SaaS product may have many small customers at launch, followed by a handful of high-volume accounts later. Regularly review pool utilization and database-level metrics to identify when a pool should be resized, split by workload type, or combined with another pool. Separating reporting-heavy tenants from transactional tenants often produces more predictable performance.

A useful operating goal is to maintain enough headroom for routine spikes without paying for idle capacity. This requires testing realistic concurrency and batch behavior. Synthetic tests that measure only a single request path can miss contention caused by background jobs, imports, scheduled reports, or index maintenance.

Managing Performance And Noisy Neighbors

Shared capacity creates an efficiency advantage, but it can also allow one tenant to affect others. A customer running a large export, inefficient query, or bulk update may increase CPU and IO pressure throughout the pool. The impact depends on workload intensity, resource limits, indexing quality, and the pool’s available headroom.

Query Store, Azure Monitor, and SQL performance insights can help identify the source of contention. Track metrics at both pool and database levels so that an overall average does not hide a struggling tenant. Alerts should cover sustained CPU pressure, high data IO, failed connections, deadlocks, long-running queries, and storage thresholds.

Application controls are equally important. Use asynchronous processing for expensive exports, throttle bulk operations, paginate large result sets, and schedule maintenance jobs during predictable low-demand periods. Connection pooling should be configured carefully, since an excessive number of connections can create pressure even when query volume appears moderate.

When a tenant consistently needs more resources than the shared model can provide, moving it to a dedicated database or separate elastic pool may be the right answer. This is a commercial and technical decision: premium customers may receive isolation as part of their plan, while unusually demanding workloads may require a pricing review.

Automating Provisioning And Tenant Lifecycle

A multi-tenant platform needs repeatable processes for creating databases, assigning them to pools, applying schema changes, configuring identities, and registering connection information. Manual provisioning becomes unreliable as tenant count increases. Infrastructure as code allows development and operations teams to review these changes, test them, and reproduce environments consistently.

Azure Resource Manager templates and Bicep can define SQL servers, databases, elastic pools, firewall rules, private endpoints, diagnostic settings, and role assignments. Teams exploring ARM and Bicep automation can use those practices to make infrastructure changes more visible and repeatable across development, staging, and production environments.

Resource deployment should be separated from tenant onboarding logic where appropriate. A deployment pipeline can create the shared platform, while an application workflow provisions a customer database and applies the correct schema version. This avoids redeploying the entire environment whenever a new tenant signs up.

Database migrations require particular discipline. Every schema change should be backward compatible when possible, allowing old and new application versions to coexist during a rolling release. Migration status should be recorded per tenant, and failed changes should produce actionable alerts rather than leaving the platform in an uncertain state.

Protecting Data And Meeting Compliance Needs

Azure SQL Database includes encryption at rest, auditing, threat detection, identity integration, and network security features that support a strong baseline. Private endpoints can keep database traffic on private network paths, while Microsoft Entra authentication reduces reliance on shared SQL credentials. Access should follow least-privilege principles and be separated between applications, deployment tools, and administrators.

Tenant isolation must be demonstrated through tests, not assumed from the architecture. Verify that tenant identifiers are enforced in every data access path, including background workers, administrative endpoints, exports, and reporting services. For shared schemas, row-level security can provide an additional database-level control, but it must be designed and tested alongside application authorization.

Backups and restore procedures should be evaluated from a tenant perspective. A database-per-tenant model can make targeted restoration simpler, while a shared database may require point-in-time recovery followed by careful data extraction. Define recovery point and recovery time objectives for each service tier, and test restoration before an incident occurs.

Data residency and retention requirements may affect pool placement. Some tenants may need a specific Azure region or a controlled retention period. Keep tenant metadata separate from connection details so that routing decisions can be changed without hard-coding infrastructure assumptions throughout the application.

Operating The Platform At Scale

A reliable service needs an operational model that covers onboarding, upgrades, incident response, and tenant offboarding. Maintain an inventory containing each tenant’s database, pool, region, service tier, schema version, storage usage, and lifecycle state. This information makes capacity planning and support investigations much faster.

Automation should handle routine actions such as pausing nonproduction databases, moving a database between pools, applying standard diagnostic settings, and notifying teams about threshold breaches. Human approval may still be appropriate for destructive operations, production migrations, and changes involving regulated customer data.

Use the following practices to keep the platform manageable:

  • Group tenants by workload profile rather than placing every database in one large pool.
  • Set database-level minimum and maximum limits to contain noisy-neighbor behavior.
  • Monitor pool-level consumption together with tenant-specific CPU, IO, storage, and query metrics.
  • Test tenant provisioning, schema upgrades, failover, backup restoration, and offboarding as automated workflows.
  • Review pool utilization and tenant growth regularly before capacity becomes a production incident.

Azure SQL Database Elastic Pools work best when treated as part of a broader SaaS architecture rather than as an isolated cost-saving feature. The application must understand tenant placement, the data layer must enforce isolation, and the operations team must have clear signals for scaling and remediation. With those foundations in place, a shared pool can deliver efficient resource usage while preserving a path toward dedicated infrastructure for demanding customers.

For developers and architects exploring cloud databases, Azure design patterns, and platform automation, the C# Corner Annual Conference 2020 sessions provide a useful technology context across Azure, data, DevOps, and application engineering. Apply these principles to a representative multi-tenant workload, measure the results, and turn the findings into an architecture that can grow with every new customer.

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