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

Using Entity Framework Core with SQLite for offline desktop apps

Field teams across Australia regularly work beyond reliable mobile coverage. Surveyors in the Pilbara, farm advisers across regional Victoria and community health workers travelling through the Red Centre can spend hours or days without a dependable connection. An offline desktop application must keep working with local records instead of failing whenever a VPN or cloud service is unreachable.

Using Entity Framework Core with SQLite for offline desktop apps creates a local-first architecture: queries and writes target a database file on the device, while synchronisation remains a separate concern. This suits Australian organisations that need Windows applications for small teams, field operations and sites with intermittent links. It also gives developers familiar LINQ, change tracking and migrations without requiring a database server beside every workstation.

Why SQLite suits offline desktop applications

SQLite is an embedded relational engine that stores data in a file managed by the operating system. It supports transactions, foreign keys, indexes and concurrent reads, yet needs no separate service to remain available. A desktop build can therefore continue capturing inspections, orders or case notes while disconnected, then reconnect later without changing the primary user workflow.

Entity Framework Core sits between the application and SQLite, mapping database rows to C# objects and handling queries, writes and schema changes. The local file remains the source of truth for the running app; synchronisation must be designed explicitly rather than treated as an automatic feature of the provider.

Area Entity Framework Core with SQLite JSON or custom flat-file storage
Offline access Full relational queries and transactions against one local file Document retrieval is simple, but relationships and complex filters become difficult
C# integration Typed entities, LINQ and change tracking Manual mapping and custom search or serialisation code
Schema evolution Versioned migrations can update an existing database Application code must create, migrate and validate each document format
Consistency Transactional batches and database constraints Partial updates need application-level locking or atomic file replacement
Operational load One main file plus possible journal side-files during writes Often one file, but custom backup and corruption handling

Setting up the Entity Framework Core data layer

Create a dedicated data project and install the provider plus design package, keeping all Entity Framework Core packages on the same major version. The CLI commands are:

dotnet add package Microsoft.EntityFrameworkCore.Sqlite
dotnet add package Microsoft.EntityFrameworkCore.Design

Define one DbContext for the application and resolve the database path under Environment.SpecialFolder.LocalApplicationData, creating its directory at startup. Avoid the executable folder because it may be read-only after installation. Register the context through dependency injection for testability, with the essential configuration resembling:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    optionsBuilder.UseSqlite($"Data Source={databasePath};Foreign Keys=True");
}

Manage the schema with migrations. Run dotnet ef migrations add InitialCreate during development, include the generated migration files in the desktop build, and apply them through Database.Migrate() during a controlled startup. Do not combine EnsureCreated() with migrations, because that can leave an existing database without the migration history needed for later upgrades.

Modelling data for local-first work

Give entities stable identifiers, such as Guid values generated by the application, so records can be created offline without relying on a server sequence. Add local metadata such as CreatedAtUtc, LastModifiedUtc, a server version and a synchronisation state when records will be shared. Keep these values on the entity or in a focused synchronisation entity, and test them against the round-trip behaviour of your chosen API.

Choose SQLite mappings deliberately. The provider stores decimal values as text by default, so monetary or measurement fields may be better represented as scaled integers or documented as strings. SQLite also has limited ordering support for some decimal and offset-date comparisons; store DateTime values in UTC when ordering matters, retain an offset separately, and map DateTimeOffset only after testing the required queries. Explicit indexes should reflect real filters, while large related graphs can be loaded selectively to keep memory use low.

Practical safeguards for dependable operation

A controlled startup routine prevents version, locking and storage problems from reaching the main workflow.

  • Resolve the database location and ensure its directory exists.
  • Enable foreign keys and configure a sensible busy timeout for competing access.
  • Verify the schema against included migrations before allowing edits.
  • Run a small read-and-write check, then report a locked or corrupt file clearly.

During normal operation, preserve work even when the application closes unexpectedly.

  • Group related changes in a transaction so one failure cannot leave partial records.
  • Use Entity Framework’s async APIs, while remembering that SQLite performs much of its I/O synchronously.
  • Log operation, entity and error details without recording sensitive field values.

Synchronising local changes with a server

A local database does not remove the need to reconcile records created in different places. For teams working around Alice Springs, Broken Hill or isolated properties in western Queensland, the sync service should resume after connectivity returns, report its progress and remain independent of the desktop user interface. An ASP.NET Core API backed by Azure services is one option, but the transport and hosting choices should follow the organisation’s security and support needs.

Capture outbound changes in an outbox entity written during the same local transaction as the business change. Upload batches with an idempotency key so a timeout cannot create duplicate server records, and retain failed items locally for retry. Include tombstones for deletions, because a missing local row cannot otherwise tell the server that a record was intentionally removed.

Conflicts need domain-specific handling. Comparing the original client version with the current server version can detect competing edits; users may resolve material differences, while an agreed rule can merge low-risk fields. Blind last-write-wins is convenient but can discard a clinically significant note or a changed order, so each record type should have an explicit conflict policy and an audit trail.

Protecting performance and sensitive records

SQLite can handle a substantial desktop workload when queries are intentional. Add indexes for common filters and sort columns, use AsNoTracking() for read-only views, paginate long lists and avoid loading entire graphs for simple edits. Write-ahead logging can let readers work during a write, although the application should close connections cleanly and back up the database with SQLite-aware tooling rather than copying only the main file while write-ahead logging is active.

The local file is not automatically encrypted. Use operating-system controls such as BitLocker on Windows or encrypted Linux volumes, restrict file permissions, and keep credentials outside the database. If regulatory requirements demand encryption inside the file, evaluate SQLCipher or another supported encrypted format and test its provider and packaging path. Australian Privacy Principles, health-service requirements and organisational governance rules may all affect what can be synchronised, logged or retained; an Aboriginal community-controlled health service should also apply its own information-governance decisions.

Backups should preserve recoverable work without exposing another copy unnecessarily. Use a SQLite backup mechanism or a consistent snapshot, include the relevant journal files, encrypt the destination and test restoration on a separate machine. Monitor free disk space because a failed write can strand users on a remote site until an administrator supplies more capacity.

Testing, packaging and Australian field support

Automate tests against a temporary SQLite file so they exercise real transactions, migrations and locking behaviour. Include cases for interrupted synchronisation, duplicate delivery, a process closing during a write, a read-only location and a full disk. Seed representative Australian dates and time zones, and verify that a failed upload can be retried without creating a second record or losing its local audit history.

Package a signed Windows installer or MSIX where appropriate, then test installation, first launch, upgrades and uninstall on machines managed by Australian small and mid-sized organisations. These buyers often value a self-contained product, predictable licensing and access to a local support vendor more than an elaborate backend they must operate themselves. Keep the database in user data rather than the program folder so upgrades do not overwrite field records.

Support material should use plain Australian English and match how teams speak without becoming cryptic. A local run book might call an afternoon connectivity test an “arvo check”, while the application itself should still identify errors clearly. Store timestamps in UTC and convert them for the user’s location because Perth, Adelaide, Brisbane and Sydney operate on different offsets and daylight-saving rules. A well-tested local-first release then remains dependable from a city office to an isolated worksite, with recovery and synchronisation handled as part of normal operation.

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