Debugging Strategies for Smooth ASP.NET Development Workflows
Introduction: Begin by highlighting the significance of effective debugging in the development process. Discuss the common challenges developers face and the impact of efficient debugging on overall workflow and code quality.
1. Utilizing Visual Studio Debugger: Detail the powerful debugging features provided by Visual Studio for ASP.NET development. Cover topics such as setting breakpoints, inspecting variables, and using the Immediate Window to execute commands during debugging.
2. Logging and Tracing Techniques: Discuss the importance of logging in identifying issues and tracing the flow of an application. Explore how logging frameworks like Serilog or log4net can be integrated into ASP.NET projects to capture valuable information.
3. Browser Developer Tools for Client-Side Debugging: Highlight the use of browser developer tools for debugging client-side code in ASP.NET applications. Cover techniques for inspecting and debugging JavaScript, CSS, and network requests directly from the browser.
4. Remote Debugging in ASP.NET: Explain the concept of remote debugging and how it can be utilized to troubleshoot issues that occur in production or on remote servers. Provide step-by-step guidance on setting up and using remote debugging in ASP.NET.
5. Profiling Tools for Performance Debugging: Introduce profiling tools that help identify performance bottlenecks in ASP.NET applications. Discuss the use of profilers to analyze memory usage, CPU time, and other performance metrics during development.
6. Unit Testing and Test-Driven Development (TDD): Emphasize the role of unit tests in the debugging process and how adopting a test-driven development approach can lead to more maintainable and debuggable code. Share tips on debugging within the context of unit tests.
7. Handling Exceptions and Errors: Provide best practices for handling exceptions and errors in ASP.NET applications. Discuss the use of try-catch blocks, global error handling, and custom error pages to improve the user experience and simplify debugging.
8. Debugging Third-Party Components: Address strategies for debugging issues related to third-party libraries or components integrated into ASP.NET projects. Discuss techniques for isolating and troubleshooting problems within external dependencies.
Conclusion: Summarize key debugging strategies discussed in the post and emphasize their collective impact on creating a smooth ASP.NET development workflow. Encourage developers to adopt a proactive approach to debugging for faster issue resolution and improved code quality.
1 note
·
View note
75 моментів, які ви маєте врахувати перед запуском сайту
Не можна просто так взяти і викласти сайт в світ! Навіть модні CMS не врятують. Ми зібрали ключові особливості запуску нового ресурсу.
Зовнішній вигляд і користувачі
Пам'ятай, що браузери працюють по-різному, і відповідно, показувати інфу вони ��еж будуть по-своєму. Перевір, як себе веде сайт в існуючих браузерах/движках: Firefox / Gecko, Safari / WebKit, Chrome, IE, Opera і (якщо це можливо) в деяких мобільних браузерах. Можна перевірити, як сайт відображається на різних ОС.
Враховуй той факт, що люди можуть юзати сайт на кноппкових телефонах, читалках і інших дивних девайсах. Існують стандарти доступності інтернет-додатків для людей з обмеженими можливостями, які теж треба б застосовувати. Почитай мануал по WAI і прийми до відома.
Розгортання оновлень непомітне для користувачів. Буде здорово, якщо у тебе з'явиться можливість тестувати продукт на проміжному хос��ингу з виходом в мережу (не на локальній машині з трьома віртуалками) і т.д. Це дозволить перевірити "підгрузку" модулів, реалізацію змін в архітектурі і коді, і інші важливі штуки, здатні налякати юзера на старті. Найбільш ефективне поєднання системи контролю версій (git, Subversion і ін.) І механізму автозборки (Ant, NAnt і ін.).
Повідключати всі костилі, створені для дебага. Ці інструменти виводять службовіповідомлення, про існування яких користувачеві знати необов'язково.
Якщо є які-небудь форми, захисти їх капчами.
Вивчи теорію прогресивного вдосконалення.
Всі дані користувача/для користувача (пошта, телефон) потрібно приховувати - спамери і краулери не дрімають.
Використовуй з розумом атрибут " nofollow ". Почитай про нього окремо.
На сайті не повинно бути таких сторінок, які б при старті оновлювалися кілька разів або довго довантажували вміст.
Перенаправляє всіх після POST-a, якщо він був успішним, щоб не допустити дублюючої відправки чого-небудь на сервер (це може бути як дублюючий запис в базу, так і крута ін'єкція, від якої потім будуть проблеми).
Безпека
Вивчи гайд по OWASP , що охоплює всі тонкощі безпеки сайту.
Дізнайся все про ін'єкції (особливо SQL) і про те, як їх не пропустити.
Всі поля введення повинні бути захищені горою перевірок, валідацій і інших механізмів. Не вір нікому!
Використовуй "міцні" алгоритми хешування паролів для їх надійного зберігання.
Не винаходь велосипед, намагаючись придумати свою систему аутентифікації. Все вже готово! А якщо ти випустиш щось незначне або НЕ врахуєш - тобі на це вкаже хакер з вимогою певної суми.
Якщо на сайті використовується платіжна система - гарненько вивчи це питання.
На будь-яких сайтах, де вводиться конфіденційна інфа (облікові дані, особиста інформація, дані кредитної картки), юзай SSL/TLS/HTTPS. Let's Encrypt - ось безкоштовний центр сертифікації, який може допомогти.
Запобігай можливим викраданням сесії.
Уникай міжсайтового скриптингу (XSS).
Стережися підробок міжсайтових запитів (CSRF).
Захисти ресурс від Clickjacking.
Підтримуй систему завжди в оновленому стані.
Не зберігай файл з даними для підключення до БД "на видному місці".
Прочитай хендбук з безпеки від Google .
Допиши rel= "noopener noreferrer"до всіх посилань з target="_blank", щоб запобігти JavaScript-перенаправленню з головної сторінки на підроблену.
Розглянь можливість використання Content Security Policy.
Продуктивність
Обов'язково реалізуй кешування. Тільки реалізуй правильно, бо можна налаштувати так, що користувач не побачить оновлення протягом трьох діб.
Якщо контент довго завантажується (більше 2-3 секунд), прироби прелоадер.
Оптимізуй всі картинки. Google радить використовувати якісні та релевантні зображення без тексту.
Для перевірки загального стану ресурсу юзай крутий інструмент (знову від Google). Існує ще кілька варіантів - від Yahoo і набір тулз YSlow.
Використовуй стиснення вмісту brotli , gzip / deflate .
Прагни до об'єднання кількох CSS-таблиць або декількох JS-файлів, щоб зменшити кількість з'єднань і поліпшити продуктивність gzip.
Застосовуй svg, де це можливо. Почитай рекомендації для веб-девелоперів, щоб краще розбиратися в темі.
Якщо ресурс високонавантажених, використовуй принцип паралельного завантаження - розділи статичний і динамічний вміст між доменами.
Статичний контент (зображення, CSS, JavaScript і контент, який не потребує доступів до куків) повинен відправлятися в окремий домен, який не використовує файли cookie. Це все для того, щоб при кожному зверненні до домену та піддомену гора куків не навантажувала з'єднання. Юзай CDN.
Максимально скороти загальну кількість HTTP-запитів, які потрібні для відображення сторінки.
Почитай, що таке таск-раннери і для чого вони потрібні. Вибери будь-який: Gulp , Grunt , Brocolli або Brunch і прикрути обов'язково до сайту.
Уважно поставтеся до такого "маловажливого" моменту, як фавікон. Він повинен бути в корені сайту, /favicon.ico. Браузери автоматично запросять його, навіть якщо значок взагалі не згадується в коді. Якщо у тебе його немає - настав час його додати.
Найголовніше правило для цього пункту - роби сайти для людей, а не для пошукових систем. З кожним роком сеошні алгоритми змінюються, але концепція залишається незмінною.
Використовуй "зрозумілі" URL. Посилань виду: https://proglib.io/rr6r7f734Xf3w444 бути не повинно.
Подбай про те, щоб основні теги ( title, descriptionі т.д.) були заповнені коректної інфою.
Можна погратися з Open Graph мітками.
Можна юзати crawl для динамічного контенту. Це дозволить пошуковим роботам краще, а головне, швидше індексувати сторінки.
Візьми за правило - посилання типу: "тиць", "сюди", "Click here" не принесуть користь твоєму SEO. Посилання має нести сенс. Людина і бот повинні розуміти, куди веде анкор.
Відшукай всі неіснуючі сторінки і видали все сміття. Посилання, що ведуть на неіснуючу сторінку, повинні повертати красиву заглушку 404, а не "Сторінку не знайдено".
Дивний файлик sitemap.xml повинен бути в корені, і не вір тому, хто говорить інакше!
Вивчи, що таке <link rel="canonical" ... />, і застосовуй.
Для успішного моніторингу SEO, отримання будь-якої аналітики і не тільки використовуй Google Webmaster Tools і Bing Webmaster Tools.
Почитай, як robots.txt допомагає пошуковим павукам працювати краще.
Завжди використовуй 301 Moved Permanently, наприклад, після зміни www.example.com на example.com(або навпаки).
Функціонал
Такі речі, як HTTP, GET, POST, сесії, куки повинні "відлітати від зубів".
Пиши XHTML / HTML і CSS у відповідності зі специфікаціями W3C і переконайся, що вони проходять валідацію. Це необхідно, щоб зробити роботу з нетрадиційними браузерами, читалками і т.д. простіше і ефективніше.
Розберися, як підгружается JavaScript, таблиці стилів і інші ресурси, що використовуються на сторінці під час її завантаження, і як вони впливають на продуктивність. Перемісти всі скрипти в нижню частину сторінки.
Якщо збираєшся використовувати iframes, розберися, як працює JavaScript sandbox.
Пам'ятай, що NoScript стає все більш популярним, а з ним мобільні девайси можуть працювати не так, як очікувалося. Коли-небудь Google проіндексує сайт, і частина JS перестане запускатися.
Розберися в різниці між редіректом 301 і 302.
Розглянь можливість використання нормалізації CSS.
Існують фреймворки такі, як jQuery, MooTools, Prototype, Dojo і YUI 3, які згладжують більшість відмінностей між браузерами при маніпуляції DOM.
Перевір адмінку на предмет залиття файлів і працездатності навігації.
Поміняй дефолтні логін / пароль на щось своє!
Для оптимізації продуктивності різних фреймворків використовуй Google Libraries API, щоб запобігти марній дублюючій підгрузці.
Пошук і виправлення помилок
Ти будеш витрачати 20% свого часу на кодинг і 80% на його підтримку, тому створюй код відповідно.
Якщо сайт крутиться на WP, то для вмикання / вимикання дебага константа WP_DEBUG повинна бути true/false відповідно. Якщо движок інший, то напиши в .htaccess для директив php_flag display_errors, php_flag display_startup_errors, php_flag html_errors значення on або off.
Прикрути до сайту систему, завдяки якій користувачі зможуть повідомляти про можливі проблеми.
Добре документуй код і функціонал продукту, щоб в майбутньому тобі (і, можливо, іншим колегам) було простіше виконувати технічне обслуговування.
Регулярно роби резервні копії і переконайся, що резервування працює, щоб потім не було нестерпно боляче.
Обов'язково юзай систему контролю версій: Subversion , Mercurial або Git.
Перед запуском не забудь провести тестування. Selenium тобі в допомогу. Якщо ж ти хочеш автоматизувати цей процес, то дивись в сторону CI інструментів, наприклад, Jenkins .
Логування ніхто не відміняв. У цьому тобі можуть допомогти log4j , log4net або log4r .
Записуй в журнал всі події і всі оброблені / необроблені виключення. Аналіз таких даних допоможе виявити ключові проблеми.
0 notes