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

How to handle time zones in C# with NodaTime in global apps

Global applications rarely fail because a developer cannot display a date. They fail when the system quietly confuses an instant, a calendar date, a local clock reading and a time-zone rule. A meeting booked in Sydney can appear on the previous day in London, while a recurring event in Brisbane follows different daylight-saving behaviour from one in Melbourne.

NodaTime gives C# teams a clearer model for these concepts. Its types make temporal intent visible in code, which is especially valuable for cloud services, distributed systems, APIs and applications used across Australia, Asia, Europe and North America. The result is software that handles daylight-saving changes, historical rules and user preferences with fewer hidden assumptions.

Why the standard DateTime model causes trouble

The .NET DateTime type can represent several different ideas, including a UTC value, a local machine value or an unspecified clock reading. The Kind property offers some guidance, but it does not identify a particular time zone such as Australia/Sydney or America/Los_Angeles. A value marked as local refers to the operating system’s zone, which may be a poor assumption for an application hosted in an Azure region.

A DateTime also does not explain whether 2026-10-04 02:30 is a valid time in Sydney. During a daylight-saving transition, some local times never occur, while others occur twice. If an application accepts that value without resolving the ambiguity, it may send a reminder at the wrong instant or create inconsistent records across services.

NodaTime separates these concepts through types such as Instant, LocalDateTime, ZonedDateTime, OffsetDateTime and LocalDate. This design makes a method’s contract easier to understand. A payment expiry can accept an Instant, while a store’s opening time may need a local time plus a zone identifier.

The temporal types that make intent explicit

An Instant represents an unambiguous point on the global timeline. It is a strong choice for audit events, message timestamps, password expiry moments and database values that must mean the same thing everywhere. An instant has no Australian or American display format until it is converted into a time zone.

A LocalDateTime is a calendar and clock reading with no offset or zone attached. It is useful when a user enters “9:00 am on 15 March”, but it is incomplete for scheduling a global event. The application still needs to know whether that time belongs to Perth, Adelaide or another location before it can calculate the corresponding instant.

A ZonedDateTime combines a local date and time with a time-zone definition and the resulting offset. For data that must preserve the original business context, store both the instant and the zone identifier. The instant supports reliable ordering, while the zone lets the application display the event according to the rules selected by the user.

An OffsetDateTime records a date, time and numeric offset, such as +10:00. It is useful when the offset itself is part of a message or protocol, but it does not preserve the full rule set behind a zone. +10:00 cannot tell you whether the original location was Brisbane, Port Moresby or a temporary offset created by a historical rule.

Converting local times safely

Install the NodaTime package through NuGet and use the IANA time-zone database supplied by DateTimeZoneProviders.Tzdb. Australian zones include Australia/Sydney, Australia/Melbourne, Australia/Adelaide, Australia/Brisbane, Australia/Perth and Australia/Darwin. They are not interchangeable: Brisbane does not observe daylight saving, while Sydney and Melbourne do.

using NodaTime;

var provider = DateTimeZoneProviders.Tzdb;
var sydney = provider["Australia/Sydney"];

var local = new LocalDateTime(2026, 7, 15, 9, 30);
var zoned = sydney.AtStrictly(local);
Instant instant = zoned.ToInstant();

AtStrictly is deliberately strict. It throws when a local time is skipped or occurs twice, forcing the application to deal with an invalid or ambiguous booking. That is often the right behaviour for financial transactions or appointments where silently choosing an interpretation would be dangerous.

For user-facing scheduling, use MapLocal when you need to inspect the result and present a deliberate policy. NodaTime also provides AtLeniently, which shifts a skipped time forward and chooses an offset for an ambiguous time. That convenience can be suitable for a casual reminder, but it should be a documented business decision rather than an accidental default.

Designing storage and APIs for international users

Store instants in UTC-oriented form for events that describe something that happened or will happen at a definite moment. NodaTime’s Instant maps naturally to this idea. A database schema can retain an instant, the user’s IANA zone ID and, when relevant, the original local date and time entered by the user.

Recurring events need different treatment. A weekly webinar scheduled for 10:00 am in Melbourne should continue to mean 10:00 am in Melbourne after the daylight-saving transition. Storing only the first UTC occurrence will cause later sessions to drift by an hour. Store the recurrence rule, local time and zone, then calculate each occurrence against current time-zone data.

This matters for Australian customers who work across Melbourne, Brisbane and Perth. A support roster that starts at 8:00 am local time should not be generated from a fixed offset shared by every state. The same principle applies to public holidays, school schedules, retail trading windows and services used during the Sydney–Melbourne business day.

At API boundaries, use ISO 8601 formats and state the meaning of every field. An instant might be sent as 2026-07-15T23:30:00Z, while a scheduled local value might be sent with its zone ID in a separate property. Avoid ambiguous strings such as 15/07/2026 9:30, especially when clients include systems from the United States or Europe.

Handling daylight saving and changing time-zone rules

Daylight saving is a rule change, not a simple offset conversion. In New South Wales, Victoria, Tasmania and the Australian Capital Territory, the clock changes seasonally; Queensland, Western Australia and the Northern Territory generally do not. Lord Howe Island has a 30-minute daylight-saving shift, a useful reminder that code should not assume changes are always one hour.

Time-zone databases are updated when governments alter legislation. A global application should keep its NodaTime package and time-zone data current, then test how updates affect future schedules. Historical appointments may need to retain the original zone and resolved instant so that later rule changes do not rewrite what actually occurred.

A practical rule is to distinguish “the event happened at this instant” from “the business wants this local time in this place”. The first should be rendered from an instant. The second should be resolved using the zone’s rules every time a future occurrence is generated. Mixing these cases is a common source of calendar defects.

Automated tests should cover normal dates, daylight-saving boundaries, ambiguous times and zones without seasonal changes. Include Sydney, Brisbane, Perth and a non-Australian zone in the test suite. If a service runs asynchronously, temporal bugs may surface far from the original conversion; techniques for debugging async code can help trace the request, queue message and scheduled callback together.

Building reliable user experiences

A user should usually choose a time zone through a searchable location or profile setting rather than a raw UTC offset. “UTC+10” does not identify Sydney, Brisbane or Vladivostok, and it cannot express future daylight-saving changes. Store the selected IANA identifier, then display a friendly city label in the interface.

The interface should make the interpretation visible before a user confirms an important event. For example, show “10:00 am, Tuesday 6 October, Melbourne time” and, where useful, show the equivalent time for attendees. This is particularly helpful for Australian teams coordinating with Singapore, London or California, where the relative difference changes during daylight-saving periods.

Be careful with date-only values. A birthday, invoice due date or Australian public holiday is often a LocalDate, not midnight UTC. Converting it through UTC can move it to the previous day for users in Los Angeles or the next day for users in parts of Asia. Preserve date-only business data as date-only data.

For web and mobile clients, keep the server authoritative for booking and conflict checks. The browser can offer a convenient preview, but the server should resolve the selected local time using its trusted time-zone data. Log the input local value, zone ID, resolved instant and rule version where auditability matters.

Implementation checks for production systems

  • Use Instant for unambiguous moments and audit timestamps.
  • Store IANA zone IDs rather than fixed UTC offsets.
  • Treat recurring schedules as local time plus zone and recurrence rules.
  • Test skipped, repeated and non-daylight-saving local times.

User-facing checks for Australian deployments

  • Distinguish Sydney or Melbourne time from Brisbane and Perth time.
  • Show the zone or city beside important appointment times.
  • Keep birthdays, due dates and holidays as LocalDate values.
  • Recheck future schedules when time-zone data or legislation changes.

Integrating NodaTime across a C# application

Keep temporal conversion near application boundaries. A controller can convert an incoming ISO value into a NodaTime type, while domain services work with Instant, LocalDate or ZonedDateTime instead of passing loosely defined strings. This reduces repeated parsing logic and makes validation consistent across web, mobile and background-processing paths.

For JSON, configure the relevant NodaTime serializers in the API stack and document whether a property is an instant, an offset date-time or a local value. In a message-driven system, include the zone ID for future schedules. Consumers should not infer a user’s zone from the server location, browser locale or Azure hosting region.

Database integration deserves the same discipline. A timestamp column may lose the distinction between UTC and local time if mappings are implicit. Review ORM conversions, precision, null handling and round-trip tests. Verify that a value saved in Sydney and read by a service hosted in Melbourne remains the same instant.

Monitoring can expose temporal defects early. Log ISO 8601 values with offsets, the selected zone ID and a correlation ID. Avoid relying on server-local log formats, because a production incident spanning Sydney, Perth and London becomes much harder to reconstruct when each service writes a different unqualified clock time.

NodaTime does not remove the need for good product decisions, but it makes those decisions explicit in code. Once an application separates instants, local values, offsets and time-zone rules, scheduling becomes easier to test and explain. That foundation supports dependable global features, from Australian customer portals to cloud services serving users across every time zone.

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