SlideShare a Scribd company logo
1 of 33
How to become an Expert at Debugging .Net
Application
Karthikeyan VK
Karthik_3030@yahoo.com
@karthik3030
https://blogs.karthikeyanvk.in
Enter Text
Why Should you be better @ debugging?
Life is stress free, when we know why the issue occurs.
Life is better, when we know what is causing the issue.
Life becomes easier, when we know how to reproduce the issue.
Good Debugging skills helps us with all the above.
https://blogs.karthikeyanvk.in
Enter Text
Mindset of great Debugger
Open Mindset.
Thinking small
Marathon.
Back to Square one - Anytime
Walking Away
https://blogs.karthikeyanvk.in
Enter Text
Open Mindset
If your mind is empty, it is always ready for anything, it is open to
everything.
In the beginner's mind there are many possibilities, but in the
expert's mind there are few.
https://blogs.karthikeyanvk.in
Enter Text
Open Mindset
No conceived notion.
Leave all your previous knowledge and just approach every
problem as a new problem
Listen to anyone, who has already investigated, don’t reject.
https://blogs.karthikeyanvk.in
Enter Text
Thinking Small - Mindset
Try to divide the changes that caused into chunks, in your mind
Divide the problem into smaller junks in your mind.
Brainstorm the smaller junks with your colleague, especially non-
technical person.
https://blogs.karthikeyanvk.in
Enter Text
Marathon Mindset
It’s a marathon, Not a sprint.
Specifying any time constraint will only hinder the possibilities
Don’t run into the debugger.
Try to talk through the problem
Read & analyze the code that may have caused the problem
https://blogs.karthikeyanvk.in
Enter Text
Marathon Mindset
Make sure you understood the problem before debugging.
If any stakeholder(s) pressures you, try to work out of their sight.
Don’t commit anytime.
https://blogs.karthikeyanvk.in
Enter Text
Back to square one -Mindset
Always be ready to ditch all your current investigation.
Learn to start from the scratch, anytime.
Never get into a rabbit hole, always be ready to climb up at any
time.
Make sure your tools helps you go back to square one at any
point of time.
https://blogs.karthikeyanvk.in
Enter Text
Walkaway - Mindset
Learn to walk away from debugging.
It can be walking to water cooler for a break.
Going home and having a nice sleep.
Not touching the issue for a day or so.
https://blogs.karthikeyanvk.in
Enter Text
Tools for Debugging
Visual Studio – Who can beat this !!
Resharper.
RevDebug.
dotPeek.
dotTrace.
https://blogs.karthikeyanvk.in
Enter Text
Why Logging
Good logs helps to travel in time.
Good Logs helps to see the past.
Helps in troubleshooting problem.
Identify infrastructure problem.
Verify our application is working.
https://blogs.karthikeyanvk.in
Enter Text
Best Practices - Logging
Don’t reinvent the wheel. Use any logging framework.
Log at proper level – Trace, Debug, Error.
Implement Correlation-id
Easy to read and understand.
Also Write it in a way machine can understand.
User plays: {'user':1334563, 'card':'4 of spade', 'game':23425656}
https://blogs.karthikeyanvk.in
Enter Text
Best Practices - Logging
Avoid Vendor Lock-in – Abstract your logging code.
Use side care pattern for logging.
Also think Logging for auditing, statistics and profiling
Never log sensitive data like password etc.
https://blogs.karthikeyanvk.in
Enter Text
Why Application Insights
Used to monitor your live applications.
It will automatically detect performance anomalies, and includes
powerful analytics tools to help you diagnose issues and to
understand what users actually do with your app
https://blogs.karthikeyanvk.in
Enter Text
Why Application Insights ?
Works for apps on a wide variety of platforms including .NET,
Node.js and Java EE, hosted on-premises, hybrid, or any public
cloud.
Integrates with your DevOps process
https://blogs.karthikeyanvk.in
Enter Text
What is Application Insights ?
Application Insights is an extensible Application Performance
Management (APM) service for developers and DevOps
professionals.
https://blogs.karthikeyanvk.in
Enter Text
What is Application Insights ?
https://blogs.karthikeyanvk.in
Enter Text
What does app insight monitor?
https://blogs.karthikeyanvk.in
Request rates, response times, and failure rates
Dependency rates, response times, and failure rates
Exceptions
Page views and load performance
Custom events and metrics
….
Enter Text
@karthik3030
DEMO
APPINSIGHTS
https://blogs.karthikeyanvk.in
Enter Text
Why KQL ?
KQL helps in data-flow model designed to make the syntax easy
to read, author, and automate.
Used to query logs in application insights.
The query uses schema entities that are organized in a hierarchy
similar to SQL's: databases, tables, and columns.
https://blogs.karthikeyanvk.in
Enter Text
What is KQL ?
A Kusto query is a read-only request to process data and return
results.
https://blogs.karthikeyanvk.in
Enter Text
@karthik3030
DEMO
KQL
https://blogs.karthikeyanvk.in
Enter Text
Why Snapshot Debugger ?
When exception happens snapshot shows the state of source
code and variables at the moment the exception was thrown.
Snapshot Debugger in Azure Application Insights monitors
exception telemetry from your web app / Function app.
https://blogs.karthikeyanvk.in
Enter Text
Why Snapshot Debugger ?
It collects snapshots on your top-throwing exceptions so that you
have the information you need to diagnose issues in production.
You can view debug snapshots in the portal to see the call stack
and inspect variables at each call stack frame.
Get access to the variable
https://blogs.karthikeyanvk.in
Enter Text
What is Snapshot Debugger ?
Snapshot debugger helps in debugging your application with the
state of source code and variables at the moment the exception
was thrown.
Takes a quick fork and get the copy of process page table.
Will not slow your production while debug.
https://blogs.karthikeyanvk.in
Enter Text
@karthik3030
DEMO
Snapshot Debugger
https://blogs.karthikeyanvk.in
Enter Text
Settings to remember
Visual studio 2017 and above
.NET Framework and ASP.NET applications running .NET
Framework 4.5 or later.
.NET Core 2.0 and ASP.NET Core 2.0 applications running on
Windows.
Linux app not supported yet.
https://blogs.karthikeyanvk.in
Enter Text
Settings to remember
Access to snapshots is protected by role-based access control
(RBAC). To inspect a snapshot, you must first be added to the
necessary role by a subscription owner.
Make sure you install the extension for Snapshot Debugger
Function app, enable snapshot debugger in host.json
https://blogs.karthikeyanvk.in
Enter Text
@karthik3030
DEMO
Snapshot
Debugger
https://blogs.karthikeyanvk.in
Enter Text
References
@karthik3030
• https://www.amazon.in/Zen-Mind-Beginners-Shunryu-Suzuki/dp/1590308492
• https://www.jetbrains.com/resharper/features/debugging_assistance.htm
• https://www.scalyr.com/blog/the-10-commandments-of-logging/
• https://docs.microsoft.com/en-us/azure/azure-monitor/app/snapshot-debugger
• https://marketplace.visualstudio.com/items?itemName=ms-
appinsights.appinsightsreleaseannotations
• https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/sqlcheatsheet
https://blogs.karthikeyanvk.in
Enter Text
Networking and more
@karthik3030
• https://www.facebook.com/aspiringDotnetArchitects/
• https://www.meetup.com/Chennai-Microsoft-Azure-User-Group/
• https://www.youtube.com/channel/UCJxa58lDcDj4tYQIHh7ORxA
https://blogs.karthikeyanvk.in
Enter Text
@karthik3030
Thank you
/Q&A
https://blogs.karthikeyanvk.in

More Related Content

What's hot

Improving Code Quality Through Effective Review Process
Improving Code Quality Through Effective  Review ProcessImproving Code Quality Through Effective  Review Process
Improving Code Quality Through Effective Review ProcessDr. Syed Hassan Amin
 
Code Review: How and When
Code Review: How and WhenCode Review: How and When
Code Review: How and WhenPaul Gower
 
Abstraction Layers Test Management Summit Faciliated Session 2014
Abstraction Layers Test Management Summit Faciliated Session 2014Abstraction Layers Test Management Summit Faciliated Session 2014
Abstraction Layers Test Management Summit Faciliated Session 2014Alan Richardson
 
Rewrite vs Refactor (AgileIndia 2021)
Rewrite vs Refactor (AgileIndia 2021)Rewrite vs Refactor (AgileIndia 2021)
Rewrite vs Refactor (AgileIndia 2021)Anand Bagmar
 
Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...
Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...
Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...Alan Richardson
 
If you want to automate, you learn to code
If you want to automate, you learn to codeIf you want to automate, you learn to code
If you want to automate, you learn to codeAlan Richardson
 
5 levels of api test automation
5 levels of api test automation5 levels of api test automation
5 levels of api test automationShekharRamphal
 
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...Alan Richardson
 
Insprint automation, build the culture
Insprint automation, build the cultureInsprint automation, build the culture
Insprint automation, build the cultureShekharRamphal
 
Automating good coding practices
Automating good coding practicesAutomating good coding practices
Automating good coding practicesKevin Peterson
 
Automating Tactically vs Strategically SauceCon 2020
Automating Tactically vs Strategically SauceCon 2020Automating Tactically vs Strategically SauceCon 2020
Automating Tactically vs Strategically SauceCon 2020Alan Richardson
 
Automating Strategically or Tactically when Testing
Automating Strategically or Tactically when TestingAutomating Strategically or Tactically when Testing
Automating Strategically or Tactically when TestingAlan Richardson
 
Code Review
Code ReviewCode Review
Code Reviewrantav
 
The Future of Testing Webinar
The Future of Testing WebinarThe Future of Testing Webinar
The Future of Testing WebinarAlan Richardson
 
TestWorksConf: Exploratory Testing an API in Mob
TestWorksConf: Exploratory Testing an API in Mob TestWorksConf: Exploratory Testing an API in Mob
TestWorksConf: Exploratory Testing an API in Mob Maaret Pyhäjärvi
 
Odinstar 2017 - Real World Automating to Support Testing
Odinstar 2017 - Real World Automating to Support TestingOdinstar 2017 - Real World Automating to Support Testing
Odinstar 2017 - Real World Automating to Support TestingAlan Richardson
 
The PHP Way Of TDD - Think First, Code Later
The PHP Way Of TDD - Think First, Code LaterThe PHP Way Of TDD - Think First, Code Later
The PHP Way Of TDD - Think First, Code LaterHiraq Citra M
 
Concurrency Errors in Java
Concurrency Errors in JavaConcurrency Errors in Java
Concurrency Errors in JavaCoverity
 

What's hot (20)

Improving Code Quality Through Effective Review Process
Improving Code Quality Through Effective  Review ProcessImproving Code Quality Through Effective  Review Process
Improving Code Quality Through Effective Review Process
 
Code Review: How and When
Code Review: How and WhenCode Review: How and When
Code Review: How and When
 
Php tests tips
Php tests tipsPhp tests tips
Php tests tips
 
Abstraction Layers Test Management Summit Faciliated Session 2014
Abstraction Layers Test Management Summit Faciliated Session 2014Abstraction Layers Test Management Summit Faciliated Session 2014
Abstraction Layers Test Management Summit Faciliated Session 2014
 
Automated tests
Automated testsAutomated tests
Automated tests
 
Rewrite vs Refactor (AgileIndia 2021)
Rewrite vs Refactor (AgileIndia 2021)Rewrite vs Refactor (AgileIndia 2021)
Rewrite vs Refactor (AgileIndia 2021)
 
Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...
Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...
Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...
 
If you want to automate, you learn to code
If you want to automate, you learn to codeIf you want to automate, you learn to code
If you want to automate, you learn to code
 
5 levels of api test automation
5 levels of api test automation5 levels of api test automation
5 levels of api test automation
 
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
 
Insprint automation, build the culture
Insprint automation, build the cultureInsprint automation, build the culture
Insprint automation, build the culture
 
Automating good coding practices
Automating good coding practicesAutomating good coding practices
Automating good coding practices
 
Automating Tactically vs Strategically SauceCon 2020
Automating Tactically vs Strategically SauceCon 2020Automating Tactically vs Strategically SauceCon 2020
Automating Tactically vs Strategically SauceCon 2020
 
Automating Strategically or Tactically when Testing
Automating Strategically or Tactically when TestingAutomating Strategically or Tactically when Testing
Automating Strategically or Tactically when Testing
 
Code Review
Code ReviewCode Review
Code Review
 
The Future of Testing Webinar
The Future of Testing WebinarThe Future of Testing Webinar
The Future of Testing Webinar
 
TestWorksConf: Exploratory Testing an API in Mob
TestWorksConf: Exploratory Testing an API in Mob TestWorksConf: Exploratory Testing an API in Mob
TestWorksConf: Exploratory Testing an API in Mob
 
Odinstar 2017 - Real World Automating to Support Testing
Odinstar 2017 - Real World Automating to Support TestingOdinstar 2017 - Real World Automating to Support Testing
Odinstar 2017 - Real World Automating to Support Testing
 
The PHP Way Of TDD - Think First, Code Later
The PHP Way Of TDD - Think First, Code LaterThe PHP Way Of TDD - Think First, Code Later
The PHP Way Of TDD - Think First, Code Later
 
Concurrency Errors in Java
Concurrency Errors in JavaConcurrency Errors in Java
Concurrency Errors in Java
 

Similar to How to be an expert in Debugging .Net Applications

You shouldneverdo
You shouldneverdoYou shouldneverdo
You shouldneverdodaniil3
 
How to ace your .NET technical interview :: .Net Technical Check Tuneup
How to ace your .NET technical interview :: .Net Technical Check TuneupHow to ace your .NET technical interview :: .Net Technical Check Tuneup
How to ace your .NET technical interview :: .Net Technical Check TuneupBala Subra
 
Browser Automated Testing Frameworks - Nightwatch.js
Browser Automated Testing Frameworks - Nightwatch.jsBrowser Automated Testing Frameworks - Nightwatch.js
Browser Automated Testing Frameworks - Nightwatch.jsLuís Bastião Silva
 
Code Camp Applying Modern Software Development Techniques To Ui Testing
Code Camp  Applying Modern Software Development Techniques To Ui TestingCode Camp  Applying Modern Software Development Techniques To Ui Testing
Code Camp Applying Modern Software Development Techniques To Ui TestingChristopherGTaylor
 
Cloud design pattern using azure
Cloud design pattern using azureCloud design pattern using azure
Cloud design pattern using azureKarthikeyan VK
 
The Testing Planet Issue 2
The Testing Planet Issue 2The Testing Planet Issue 2
The Testing Planet Issue 2Rosie Sherry
 
Introduction to Behavior Driven Development
Introduction to Behavior Driven Development Introduction to Behavior Driven Development
Introduction to Behavior Driven Development Robin O'Brien
 
Gits class #22: [ONLINE] Analyze Your User's Activities Using BigQuery and Da...
Gits class #22: [ONLINE] Analyze Your User's Activities Using BigQuery and Da...Gits class #22: [ONLINE] Analyze Your User's Activities Using BigQuery and Da...
Gits class #22: [ONLINE] Analyze Your User's Activities Using BigQuery and Da...GITS Indonesia
 
Bridging the communication Gap & Continuous Delivery
Bridging the communication Gap & Continuous DeliveryBridging the communication Gap & Continuous Delivery
Bridging the communication Gap & Continuous Deliverymasoodjan
 
What Are We Still Doing Wrong
What Are We Still Doing WrongWhat Are We Still Doing Wrong
What Are We Still Doing Wrongafa reg
 
Don't RTFM, WTFM - Open Source Documentation - German Perl Workshop 2010
Don't RTFM, WTFM - Open Source Documentation - German Perl Workshop 2010Don't RTFM, WTFM - Open Source Documentation - German Perl Workshop 2010
Don't RTFM, WTFM - Open Source Documentation - German Perl Workshop 2010singingfish
 
Testing Experience - Evolution of Test Automation Frameworks
Testing Experience - Evolution of Test Automation FrameworksTesting Experience - Evolution of Test Automation Frameworks
Testing Experience - Evolution of Test Automation FrameworksŁukasz Morawski
 
PVS-Studio and CppCat: An Interview with Andrey Karpov, the Project CTO and D...
PVS-Studio and CppCat: An Interview with Andrey Karpov, the Project CTO and D...PVS-Studio and CppCat: An Interview with Andrey Karpov, the Project CTO and D...
PVS-Studio and CppCat: An Interview with Andrey Karpov, the Project CTO and D...Andrey Karpov
 
Code igniter unittest-part1
Code igniter unittest-part1Code igniter unittest-part1
Code igniter unittest-part1Albert Rosa
 
Continues Deployment - Tech Talk week
Continues Deployment - Tech Talk weekContinues Deployment - Tech Talk week
Continues Deployment - Tech Talk weekrantav
 
Spec flow – functional testing made easy
Spec flow – functional testing made easySpec flow – functional testing made easy
Spec flow – functional testing made easyPaul Stack
 
BDD with SpecFlow and Selenium
BDD with SpecFlow and SeleniumBDD with SpecFlow and Selenium
BDD with SpecFlow and SeleniumLiraz Shay
 
Execute Automation Testing in 3 Steps
Execute Automation Testing in 3 StepsExecute Automation Testing in 3 Steps
Execute Automation Testing in 3 StepsExecuteAutomation
 

Similar to How to be an expert in Debugging .Net Applications (20)

You shouldneverdo
You shouldneverdoYou shouldneverdo
You shouldneverdo
 
Cloud Design Patterns
Cloud Design PatternsCloud Design Patterns
Cloud Design Patterns
 
How to ace your .NET technical interview :: .Net Technical Check Tuneup
How to ace your .NET technical interview :: .Net Technical Check TuneupHow to ace your .NET technical interview :: .Net Technical Check Tuneup
How to ace your .NET technical interview :: .Net Technical Check Tuneup
 
Browser Automated Testing Frameworks - Nightwatch.js
Browser Automated Testing Frameworks - Nightwatch.jsBrowser Automated Testing Frameworks - Nightwatch.js
Browser Automated Testing Frameworks - Nightwatch.js
 
Code Camp Applying Modern Software Development Techniques To Ui Testing
Code Camp  Applying Modern Software Development Techniques To Ui TestingCode Camp  Applying Modern Software Development Techniques To Ui Testing
Code Camp Applying Modern Software Development Techniques To Ui Testing
 
Cloud design pattern using azure
Cloud design pattern using azureCloud design pattern using azure
Cloud design pattern using azure
 
The Testing Planet Issue 2
The Testing Planet Issue 2The Testing Planet Issue 2
The Testing Planet Issue 2
 
Introduction to Behavior Driven Development
Introduction to Behavior Driven Development Introduction to Behavior Driven Development
Introduction to Behavior Driven Development
 
Gits class #22: [ONLINE] Analyze Your User's Activities Using BigQuery and Da...
Gits class #22: [ONLINE] Analyze Your User's Activities Using BigQuery and Da...Gits class #22: [ONLINE] Analyze Your User's Activities Using BigQuery and Da...
Gits class #22: [ONLINE] Analyze Your User's Activities Using BigQuery and Da...
 
Bridging the communication Gap & Continuous Delivery
Bridging the communication Gap & Continuous DeliveryBridging the communication Gap & Continuous Delivery
Bridging the communication Gap & Continuous Delivery
 
What Are We Still Doing Wrong
What Are We Still Doing WrongWhat Are We Still Doing Wrong
What Are We Still Doing Wrong
 
Don't RTFM, WTFM - Open Source Documentation - German Perl Workshop 2010
Don't RTFM, WTFM - Open Source Documentation - German Perl Workshop 2010Don't RTFM, WTFM - Open Source Documentation - German Perl Workshop 2010
Don't RTFM, WTFM - Open Source Documentation - German Perl Workshop 2010
 
Testing Experience - Evolution of Test Automation Frameworks
Testing Experience - Evolution of Test Automation FrameworksTesting Experience - Evolution of Test Automation Frameworks
Testing Experience - Evolution of Test Automation Frameworks
 
PVS-Studio and CppCat: An Interview with Andrey Karpov, the Project CTO and D...
PVS-Studio and CppCat: An Interview with Andrey Karpov, the Project CTO and D...PVS-Studio and CppCat: An Interview with Andrey Karpov, the Project CTO and D...
PVS-Studio and CppCat: An Interview with Andrey Karpov, the Project CTO and D...
 
Code igniter unittest-part1
Code igniter unittest-part1Code igniter unittest-part1
Code igniter unittest-part1
 
Continues Deployment - Tech Talk week
Continues Deployment - Tech Talk weekContinues Deployment - Tech Talk week
Continues Deployment - Tech Talk week
 
Spec flow – functional testing made easy
Spec flow – functional testing made easySpec flow – functional testing made easy
Spec flow – functional testing made easy
 
Building Web Hack Interfaces
Building Web Hack InterfacesBuilding Web Hack Interfaces
Building Web Hack Interfaces
 
BDD with SpecFlow and Selenium
BDD with SpecFlow and SeleniumBDD with SpecFlow and Selenium
BDD with SpecFlow and Selenium
 
Execute Automation Testing in 3 Steps
Execute Automation Testing in 3 StepsExecute Automation Testing in 3 Steps
Execute Automation Testing in 3 Steps
 

More from Karthikeyan VK

How to become a Software Architect.pptx
How to become a Software Architect.pptxHow to become a Software Architect.pptx
How to become a Software Architect.pptxKarthikeyan VK
 
Blockchain workshop 101
Blockchain workshop 101Blockchain workshop 101
Blockchain workshop 101Karthikeyan VK
 
Event Streaming Architecture - Deep Dive
Event Streaming Architecture - Deep DiveEvent Streaming Architecture - Deep Dive
Event Streaming Architecture - Deep DiveKarthikeyan VK
 
Tips & Tricks to build software architecture document
Tips & Tricks to build software architecture documentTips & Tricks to build software architecture document
Tips & Tricks to build software architecture documentKarthikeyan VK
 
How to double your productivity as a developer
How to double your productivity as a developerHow to double your productivity as a developer
How to double your productivity as a developerKarthikeyan VK
 
Pillars of great Azure Architecture
Pillars of great Azure ArchitecturePillars of great Azure Architecture
Pillars of great Azure ArchitectureKarthikeyan VK
 
Monolithic to Microservices - Handson
Monolithic to Microservices - HandsonMonolithic to Microservices - Handson
Monolithic to Microservices - HandsonKarthikeyan VK
 
Enterprise security kubernetes
Enterprise security kubernetesEnterprise security kubernetes
Enterprise security kubernetesKarthikeyan VK
 
Machine Learning Basics using Azure ML
Machine Learning Basics using Azure MLMachine Learning Basics using Azure ML
Machine Learning Basics using Azure MLKarthikeyan VK
 
Convert monolithic .Net Applications to microservices With Principles
Convert monolithic .Net Applications to microservices With PrinciplesConvert monolithic .Net Applications to microservices With Principles
Convert monolithic .Net Applications to microservices With PrinciplesKarthikeyan VK
 
Cognitive Intelligence using azure search
Cognitive Intelligence using azure searchCognitive Intelligence using azure search
Cognitive Intelligence using azure searchKarthikeyan VK
 
Convert monolithic .Net Applications to microservices
Convert monolithic .Net Applications to microservicesConvert monolithic .Net Applications to microservices
Convert monolithic .Net Applications to microservicesKarthikeyan VK
 

More from Karthikeyan VK (20)

GCD ChatGPT.pptx
GCD ChatGPT.pptxGCD ChatGPT.pptx
GCD ChatGPT.pptx
 
DataScience-101
DataScience-101DataScience-101
DataScience-101
 
How to become a Software Architect.pptx
How to become a Software Architect.pptxHow to become a Software Architect.pptx
How to become a Software Architect.pptx
 
Blockchain workshop 101
Blockchain workshop 101Blockchain workshop 101
Blockchain workshop 101
 
Event Streaming Architecture - Deep Dive
Event Streaming Architecture - Deep DiveEvent Streaming Architecture - Deep Dive
Event Streaming Architecture - Deep Dive
 
Anti patterns
Anti patternsAnti patterns
Anti patterns
 
Tips & Tricks to build software architecture document
Tips & Tricks to build software architecture documentTips & Tricks to build software architecture document
Tips & Tricks to build software architecture document
 
How to double your productivity as a developer
How to double your productivity as a developerHow to double your productivity as a developer
How to double your productivity as a developer
 
Pillars of great Azure Architecture
Pillars of great Azure ArchitecturePillars of great Azure Architecture
Pillars of great Azure Architecture
 
Monolithic to Microservices - Handson
Monolithic to Microservices - HandsonMonolithic to Microservices - Handson
Monolithic to Microservices - Handson
 
Chat bot LUIS
Chat bot LUISChat bot LUIS
Chat bot LUIS
 
Enterprise security kubernetes
Enterprise security kubernetesEnterprise security kubernetes
Enterprise security kubernetes
 
Save Azure Cost
Save Azure CostSave Azure Cost
Save Azure Cost
 
Learning graphql .Net
Learning graphql .NetLearning graphql .Net
Learning graphql .Net
 
Azure devspaces
Azure devspacesAzure devspaces
Azure devspaces
 
Azure Event Grid
Azure Event Grid Azure Event Grid
Azure Event Grid
 
Machine Learning Basics using Azure ML
Machine Learning Basics using Azure MLMachine Learning Basics using Azure ML
Machine Learning Basics using Azure ML
 
Convert monolithic .Net Applications to microservices With Principles
Convert monolithic .Net Applications to microservices With PrinciplesConvert monolithic .Net Applications to microservices With Principles
Convert monolithic .Net Applications to microservices With Principles
 
Cognitive Intelligence using azure search
Cognitive Intelligence using azure searchCognitive Intelligence using azure search
Cognitive Intelligence using azure search
 
Convert monolithic .Net Applications to microservices
Convert monolithic .Net Applications to microservicesConvert monolithic .Net Applications to microservices
Convert monolithic .Net Applications to microservices
 

Recently uploaded

How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfdanishmna97
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAnitaRaj43
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...caitlingebhard1
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaWSO2
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....rightmanforbloodline
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityVictorSzoltysek
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 

Recently uploaded (20)

How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 

How to be an expert in Debugging .Net Applications

  • 1. How to become an Expert at Debugging .Net Application Karthikeyan VK Karthik_3030@yahoo.com @karthik3030 https://blogs.karthikeyanvk.in
  • 2. Enter Text Why Should you be better @ debugging? Life is stress free, when we know why the issue occurs. Life is better, when we know what is causing the issue. Life becomes easier, when we know how to reproduce the issue. Good Debugging skills helps us with all the above. https://blogs.karthikeyanvk.in
  • 3. Enter Text Mindset of great Debugger Open Mindset. Thinking small Marathon. Back to Square one - Anytime Walking Away https://blogs.karthikeyanvk.in
  • 4. Enter Text Open Mindset If your mind is empty, it is always ready for anything, it is open to everything. In the beginner's mind there are many possibilities, but in the expert's mind there are few. https://blogs.karthikeyanvk.in
  • 5. Enter Text Open Mindset No conceived notion. Leave all your previous knowledge and just approach every problem as a new problem Listen to anyone, who has already investigated, don’t reject. https://blogs.karthikeyanvk.in
  • 6. Enter Text Thinking Small - Mindset Try to divide the changes that caused into chunks, in your mind Divide the problem into smaller junks in your mind. Brainstorm the smaller junks with your colleague, especially non- technical person. https://blogs.karthikeyanvk.in
  • 7. Enter Text Marathon Mindset It’s a marathon, Not a sprint. Specifying any time constraint will only hinder the possibilities Don’t run into the debugger. Try to talk through the problem Read & analyze the code that may have caused the problem https://blogs.karthikeyanvk.in
  • 8. Enter Text Marathon Mindset Make sure you understood the problem before debugging. If any stakeholder(s) pressures you, try to work out of their sight. Don’t commit anytime. https://blogs.karthikeyanvk.in
  • 9. Enter Text Back to square one -Mindset Always be ready to ditch all your current investigation. Learn to start from the scratch, anytime. Never get into a rabbit hole, always be ready to climb up at any time. Make sure your tools helps you go back to square one at any point of time. https://blogs.karthikeyanvk.in
  • 10. Enter Text Walkaway - Mindset Learn to walk away from debugging. It can be walking to water cooler for a break. Going home and having a nice sleep. Not touching the issue for a day or so. https://blogs.karthikeyanvk.in
  • 11. Enter Text Tools for Debugging Visual Studio – Who can beat this !! Resharper. RevDebug. dotPeek. dotTrace. https://blogs.karthikeyanvk.in
  • 12. Enter Text Why Logging Good logs helps to travel in time. Good Logs helps to see the past. Helps in troubleshooting problem. Identify infrastructure problem. Verify our application is working. https://blogs.karthikeyanvk.in
  • 13. Enter Text Best Practices - Logging Don’t reinvent the wheel. Use any logging framework. Log at proper level – Trace, Debug, Error. Implement Correlation-id Easy to read and understand. Also Write it in a way machine can understand. User plays: {'user':1334563, 'card':'4 of spade', 'game':23425656} https://blogs.karthikeyanvk.in
  • 14. Enter Text Best Practices - Logging Avoid Vendor Lock-in – Abstract your logging code. Use side care pattern for logging. Also think Logging for auditing, statistics and profiling Never log sensitive data like password etc. https://blogs.karthikeyanvk.in
  • 15. Enter Text Why Application Insights Used to monitor your live applications. It will automatically detect performance anomalies, and includes powerful analytics tools to help you diagnose issues and to understand what users actually do with your app https://blogs.karthikeyanvk.in
  • 16. Enter Text Why Application Insights ? Works for apps on a wide variety of platforms including .NET, Node.js and Java EE, hosted on-premises, hybrid, or any public cloud. Integrates with your DevOps process https://blogs.karthikeyanvk.in
  • 17. Enter Text What is Application Insights ? Application Insights is an extensible Application Performance Management (APM) service for developers and DevOps professionals. https://blogs.karthikeyanvk.in
  • 18. Enter Text What is Application Insights ? https://blogs.karthikeyanvk.in
  • 19. Enter Text What does app insight monitor? https://blogs.karthikeyanvk.in Request rates, response times, and failure rates Dependency rates, response times, and failure rates Exceptions Page views and load performance Custom events and metrics ….
  • 21. Enter Text Why KQL ? KQL helps in data-flow model designed to make the syntax easy to read, author, and automate. Used to query logs in application insights. The query uses schema entities that are organized in a hierarchy similar to SQL's: databases, tables, and columns. https://blogs.karthikeyanvk.in
  • 22. Enter Text What is KQL ? A Kusto query is a read-only request to process data and return results. https://blogs.karthikeyanvk.in
  • 24. Enter Text Why Snapshot Debugger ? When exception happens snapshot shows the state of source code and variables at the moment the exception was thrown. Snapshot Debugger in Azure Application Insights monitors exception telemetry from your web app / Function app. https://blogs.karthikeyanvk.in
  • 25. Enter Text Why Snapshot Debugger ? It collects snapshots on your top-throwing exceptions so that you have the information you need to diagnose issues in production. You can view debug snapshots in the portal to see the call stack and inspect variables at each call stack frame. Get access to the variable https://blogs.karthikeyanvk.in
  • 26. Enter Text What is Snapshot Debugger ? Snapshot debugger helps in debugging your application with the state of source code and variables at the moment the exception was thrown. Takes a quick fork and get the copy of process page table. Will not slow your production while debug. https://blogs.karthikeyanvk.in
  • 28. Enter Text Settings to remember Visual studio 2017 and above .NET Framework and ASP.NET applications running .NET Framework 4.5 or later. .NET Core 2.0 and ASP.NET Core 2.0 applications running on Windows. Linux app not supported yet. https://blogs.karthikeyanvk.in
  • 29. Enter Text Settings to remember Access to snapshots is protected by role-based access control (RBAC). To inspect a snapshot, you must first be added to the necessary role by a subscription owner. Make sure you install the extension for Snapshot Debugger Function app, enable snapshot debugger in host.json https://blogs.karthikeyanvk.in
  • 31. Enter Text References @karthik3030 • https://www.amazon.in/Zen-Mind-Beginners-Shunryu-Suzuki/dp/1590308492 • https://www.jetbrains.com/resharper/features/debugging_assistance.htm • https://www.scalyr.com/blog/the-10-commandments-of-logging/ • https://docs.microsoft.com/en-us/azure/azure-monitor/app/snapshot-debugger • https://marketplace.visualstudio.com/items?itemName=ms- appinsights.appinsightsreleaseannotations • https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/sqlcheatsheet https://blogs.karthikeyanvk.in
  • 32. Enter Text Networking and more @karthik3030 • https://www.facebook.com/aspiringDotnetArchitects/ • https://www.meetup.com/Chennai-Microsoft-Azure-User-Group/ • https://www.youtube.com/channel/UCJxa58lDcDj4tYQIHh7ORxA https://blogs.karthikeyanvk.in

Editor's Notes

  1. Smart detection and manual alerts Application map Profiler Usage analysis
  2. Query visualize