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

Embedding Resources in NuGet Packages While Tracking Coverage With AxoCover

Packaging .NET libraries for distribution is one of those jobs that feels straightforward until the first request lands for a localised string, an icon, or a template file that must ship inside the assembly. For developers attending sessions at the C# Corner Annual Conference 2020, this scenario is more than theoretical. Many of the teams represented at the event build shared components that get reused across cloud services hosted in Azure's Sydney and Melbourne regions, and they regularly need to bundle binaries, satellite files, and content alongside compiled code.

NuGet already handles the heavy lifting of dependency resolution, versioning, and feed distribution, but embedding resources requires a few extra touches inside the project file. Pairing that workflow with AxoCover, a Visual Studio extension that runs unit tests and surfaces code coverage in a single pane, gives Australian teams a complete loop from authoring through verification. The combination works well whether the shop is in Brisbane, Perth, or Adelaide, because the tooling runs entirely on a developer's workstation before anything touches a build server.

This walkthrough covers creating a class library that ships embedded resources, packaging it as a NuGet, then configuring AxoCover so coverage reports show exactly which lines of packaged code were exercised. Along the way, the same script-based approach can be slotted into a continuous integration pipeline running in Azure Australia East, where latency to a developer's machine in Parramatta or North Sydney stays under thirty milliseconds.

By the end, a small team should have everything it needs to publish a private feed, consume it from another solution, and watch AxoCover highlight the branches that need more test attention, all without leaving Visual Studio.

Setting up a class library with embedded resources

The starting point is a class library targeting netstandard2.0, which remains the safest target for libraries consumed by both legacy .NET Framework apps and modern .NET workloads. After the project is created, any file that should travel inside the assembly is added through the Build Action dropdown in Visual Studio's Solution Explorer and set to Embedded Resource. The compiler then records that file in the assembly's resource manifest, where it can be reached at runtime through Assembly.GetManifestResourceStream.

For Australian teams working across distributed time zones, this pattern is handy for shipping region-specific templates. A library consumed by branches in AEST and AEDT can carry separate resource files for each locale, and the consumer code reads the right one based on CultureInfo.CurrentUICulture. Setting the build action is only half the work, however, because the default LogicalName follows the pattern <RootNamespace>.<Folder>.<File>, which is rarely what a public package should expose.

To rename the resource so callers can predict it, the .csproj file is edited directly. A <EmbeddedResource> element with an explicit LogicalName attribute makes the entry appear as something tidy like Acme.Templates.Welcome.txt rather than MyCompany.MyProject.Properties.Resources.Welcome.txt. That change is the difference between a clean public API and a maintenance headache, and it costs about thirty seconds in the editor.

Once the resource is wired in, a quick smoke test loads it through reflection and writes the contents to the debug output window. If the bytes appear, the assembly is ready to be packaged. From a desk in Melbourne's Docklands, this often takes a coffee break and a quick yarn with a colleague in the next pod about the arvo's standup.

Authoring the .nuspec and packing the NuGet

Most modern projects use the SDK-style project format, which generates a .nuspec automatically when dotnet pack runs. For embedded resources, however, manual control of the package sometimes pays off, especially when the library needs to declare content files or dependencies that the SDK cannot infer. In that case, a .nuspec file is hand-written and pointed to through the <NuspecFile> property in the project file.

Inside the .nuspec, the <metadata> block lists id, version, authors, and description. A useful touch for Australian consumers is filling the iconUrl with a hosted PNG and adding tags such as templates, embedded-resources, and australia so the package can be discovered on nuget.org. The <files> section explicitly enumerates the resources that should land under the lib folder, which prevents the SDK from guessing incorrectly.

Running nuget pack from the Package Manager Console produces a .nupkg that can be inspected with NuGet Package Explorer. That tool, which is itself a small .NET application, lets a developer open the package and confirm that Acme.Templates.Welcome.txt sits inside the assembly's resource manifest rather than as a loose file at the package root. Catching this mistake before the package reaches a feed in Azure Australia East saves a round trip with downstream consumers in Sydney or Canberra.

Versioning deserves a paragraph of its own. The standard practice is to align the assembly's AssemblyVersion with the NuGet version, while keeping AssemblyFileVersion slightly ahead so file properties in Windows Explorer show a useful build number. For teams in Perth who watch the working day slip into the evening, automating the version bump through a small MSBuild target tied to the date keeps the metadata honest without anyone remembering to edit a file.

Wiring up AxoCover for coverage reporting

AxoCover lives inside Visual Studio as an extension and acts as a friendly front end over test runners such as NUnit, MSTest, and xUnit. After installing it from the Visual Studio Marketplace, a new Test menu entry appears, and clicking it opens a panel that lists every test in the active solution. Running tests through AxoCover, rather than the stock Test Explorer, is what enables the coverage overlay that highlights executed and missed lines in the editor.

Configuration is stored in a small JSON file that AxoCover creates on first launch. The relevant settings include the runner type, the assemblies to instrument, and the output directory for the coverage report. For a solution that consumes the freshly built NuGet, the consuming test project is added to AxoCover's run list, and the library project itself is flagged for coverage so the test results reveal exactly which methods were reached.

Australian teams often find this layer particularly valuable during a refactor. A developer in Adelaide updating the public API of the packaged library can immediately see whether the existing unit tests still touch every branch, and the highlighted gaps show up in red on the screen. Combined with the embedded resources from earlier, it becomes possible to test the localisation code path that reads each resource without spinning up a full integration environment.

If a team prefers running tests from the command line, AxoCover also ships a small CLI called AxoCoverCmd. That binary accepts the same JSON configuration and emits a coverage report in Cobertura or XML format, which is perfect for a build pipeline that needs to fail when coverage drops below a threshold. From an office in Brisbane, the same report can be uploaded to Azure Pipelines as a build artefact and reviewed during the morning arvo coffee.

Publishing to a local feed or nuget.org

Before pushing a package publicly, most teams stand up a private feed to share the artefact with colleagues. Azure Artifacts offers a free tier for small groups and hosts feeds in the same region as the rest of the Azure estate, which for Australian customers usually means Sydney. Publishing is a single nuget push command, provided a personal access token is supplied, and the package becomes consumable by anyone in the organisation within a few seconds.

For external release, nuget.org remains the canonical home. The same push command works once a NuGet account is set up and an API key is generated. Australian maintainers should be aware that moderation queues for new publishers occasionally add a wait of several minutes to a few hours, so the first push of the day is best done before lunch rather than right before a release window. The team can keep moving with the local Azure Artifacts feed in the meantime, so no-one is blocked.

Integrating the build into CI and comparing tools

A short PowerShell or Bash script ties the steps together: restore, build, run AxoCoverCmd, pack, and push. Running the same script on a hosted agent in Azure Australia East produces a coverage report that matches what a developer saw on their machine, because AxoCover's CLI runs identically in both environments. The script can be wrapped in an Azure DevOps pipeline YAML file and triggered on every commit, with a gate that fails the build when coverage falls under a set percentage.

The table below compares AxoCover with two other popular coverage options for .NET, which helps decide which tool fits a particular team's habits and platform mix.

Feature AxoCover Coverlet JetBrains dotCover
Runs inside Visual Studio Yes, dedicated panel No, CLI and report based Yes, ReSharper integration
Command-line runner Yes, AxoCoverCmd Yes, dotnet test Yes, dotCover CLI
Supported test frameworks NUnit, MSTest, xUnit NUnit, MSTest, xUnit, TUnit NUnit, MSTest, xUnit
Report formats Cobertura, XML, HTML Cobertura, JSON, HTML HTML, XML, JSON
License Free, open source Free, open source Commercial, bundled with ReSharper
Best fit for Solo devs and small teams in Visual Studio Cross-platform pipelines and dotnet test Teams already paying for ReSharper

Once the pipeline is green and the package is in the feed, the same library that ships embedded resources can be referenced from another solution, consumed by Atlassian-style plugins running on Bamboo, or dropped into a small internal app at a Perth mining firm that needs templated reports. The combination of a clean .nuspec, a verified resource manifest, and an AxoCover coverage report makes the package trustworthy from the moment it lands in the feed, and the workflow scales from a single developer in a Surry Hills coworking space to a distributed team working across the country.

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