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
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.
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