🚀 𝗧𝗼𝗱𝗮𝘆’𝘀 𝗗𝗲𝗯𝘂𝗴𝗴𝗶𝗻𝗴 𝗝𝗼𝘂𝗿𝗻𝗲𝘆 𝗶𝗻 𝗠𝘆 𝗖𝗮𝗿 𝗥𝗲𝗻𝘁𝗮𝗹 𝗣𝗿𝗼𝗷𝗲𝗰𝘁! Today, I dove deep into debugging both the 𝗙𝗿𝗼𝗻𝘁𝗲𝗻𝗱 and 𝗯𝗮𝗰𝗸𝗲𝗻𝗱 𝗼𝗳 𝗺𝘆 𝗖𝗮𝗿 𝗥𝗲𝗻𝘁𝗮𝗹 𝗔𝗽𝗽𝗹𝗶𝗰𝗮𝘁𝗶𝗼𝗻, and it turned into a great learning experience for any .𝗡𝗘𝗧 and 𝗔𝗻𝗴𝘂𝗹𝗮𝗿 developer out there! 💻 On the frontend, I was handling 𝗶𝗺𝗮𝗴𝗲 𝘂𝗽𝗹𝗼𝗮𝗱𝘀, 𝗿𝗲𝗮𝗰𝘁𝗶𝘃𝗲 𝗳𝗼𝗿𝗺𝘀, 𝗮𝗻𝗱 𝗻𝗮𝘃𝗶𝗴𝗮𝘁𝗶𝗼𝗻 𝘀𝘁𝗮𝘁𝗲 in Angular — making sure that when a user edits their profile, all data (including uploaded images) flows perfectly into the update form. ⚙️ On the 𝗯𝗮𝗰𝗸𝗲𝗻𝗱 (.𝗡𝗘𝗧 𝗖𝗼𝗿𝗲) side, I debugged an issue where the 𝗔𝗣𝗜 𝗲𝗻𝗱𝗽𝗼𝗶𝗻𝘁 𝗿𝗲𝘁𝘂𝗿𝗻𝗲𝗱 𝗮 𝟰𝟬𝟰 (𝗡𝗼𝘁 𝗙𝗼𝘂𝗻𝗱) even though everything seemed fine in Swagger. The culprit? A 𝗿𝗼𝘂𝘁𝗲 𝗺𝗶𝘀𝗺𝗮𝘁𝗰𝗵 between Angular and the controller route in C#. Once aligned, everything synced beautifully — data flowed smoothly and updates started working perfectly! 🔍 This journey reminded me that debugging isn’t just fixing errors — it’s about 𝘂𝗻𝗱𝗲𝗿𝘀𝘁𝗮𝗻𝗱𝗶𝗻𝗴 𝗵𝗼𝘄 𝗲𝗮𝗰𝗵 𝗹𝗮𝘆𝗲𝗿 𝗰𝗼𝗺𝗺𝘂𝗻𝗶𝗰𝗮𝘁𝗲𝘀, from 𝗔𝗻𝗴𝘂𝗹𝗮𝗿 𝘀𝗲𝗿𝘃𝗶𝗰𝗲𝘀 → 𝗔𝗣𝗜 𝗿𝗼𝘂𝘁𝗲𝘀 → 𝗗𝗧𝗢𝘀 → 𝗱𝗮𝘁𝗮𝗯𝗮𝘀𝗲. When these layers align, even the toughest bugs melt away. 💡 𝗣𝗿𝗼 𝗧𝗶𝗽 𝗳𝗼𝗿 𝗗𝗲𝘃𝗲𝗹𝗼𝗽𝗲𝗿𝘀: Always verify your 𝗔𝗣𝗜 𝗿𝗼𝘂𝘁𝗲𝘀, 𝗛𝗧𝗧𝗣 𝘃𝗲𝗿𝗯𝘀 (𝗣𝗢𝗦𝗧, 𝗣𝗨𝗧, 𝗲𝘁𝗰.), and 𝗙𝗼𝗿𝗺𝗗𝗮𝘁𝗮 𝗳𝗶𝗲𝗹𝗱 𝗻𝗮𝗺𝗲𝘀. 90% of “mystery bugs” hide in small mismatches. 👨💻 Whether you’re a .𝗡𝗘𝗧 𝗹𝗲𝗮𝗿𝗻𝗲𝗿, 𝗮 𝗳𝗿𝗼𝗻𝘁-𝗲𝗻𝗱 𝗱𝗲𝘃𝗲𝗹𝗼𝗽𝗲𝗿, an 𝗜𝗧 𝗰𝗼𝗻𝘀𝘂𝗹𝘁𝗮𝗻𝘁, or an 𝗛𝗥 𝗽𝗿𝗼𝗳𝗲𝘀𝘀𝗶𝗼𝗻𝗮𝗹 exploring project workflows — debugging teaches teamwork between code and logic! #️⃣ #DotNet #Angular #Debugging #FullStackDevelopment #WebDevelopment #LearningInPublic #CSharp #SoftwareEngineering #CodeJourney #DeveloperCommunity #ProblemSolving #CarRentalApp
Debugging Journey in Car Rental App: Frontend and Backend Issues
More Relevant Posts
-
⚙️ 𝗔𝘀𝘆𝗻𝗰, 𝗔𝘄𝗮𝗶𝘁, 𝗧𝗮𝘀𝗸, 𝗮𝗻𝗱 𝗧𝗵𝗿𝗲𝗮𝗱 𝗶𝗻 .𝗡𝗘𝗧 — 𝗧𝗵𝗲 𝗦𝗶𝗺𝗽𝗹𝗲 𝗧𝗿𝘂𝘁𝗵 𝗕𝗲𝗵𝗶𝗻𝗱 𝘁𝗵𝗲 𝗠𝗮𝗴𝗶𝗰 🚀 Like many developers starting with .NET Core, I assumed: “Async means multi–threading, right?” 🤔 Turns out… 𝗻𝗼𝘁 𝗾𝘂𝗶𝘁𝗲. Once I truly understood how async, await, Task, and Thread fit together, async programming suddenly became clear and beautiful. 💡 🚀 𝗔𝘀𝘆𝗻𝗰 & 𝗔𝘄𝗮𝗶𝘁 — 𝗟𝗼𝗼𝗸𝘀 𝗦𝘆𝗻𝗰𝗵𝗿𝗼𝗻𝗼𝘂𝘀, 𝗪𝗼𝗿𝗸𝘀 𝗔𝘀𝘆𝗻𝗰𝗵𝗿𝗼𝗻𝗼𝘂𝘀 𝗮𝘀𝘆𝗻𝗰 and 𝗮𝘄𝗮𝗶𝘁 aren’t magic keywords — they simply make asynchronous code look synchronous. When your app waits for something slow — like an API call or file read — await tells .NET: “Pause this task, let the thread do other work, and come back when it’s done.” Your 𝗰𝗼𝗱𝗲 𝘄𝗮𝗶𝘁𝘀, but your 𝘁𝗵𝗿𝗲𝗮𝗱 𝗱𝗼𝗲𝘀𝗻’𝘁. That’s how async makes your app faster, smoother, and scalable — no thread blocking. ⚡ 🧩 𝗧𝗮𝘀𝗸 𝘃𝘀 𝗧𝗵𝗿𝗲𝗮𝗱 — 𝗪𝗵𝗮𝘁’𝘀 𝘁𝗵𝗲 𝗗𝗶𝗳𝗳𝗲𝗿𝗲𝗻𝗰𝗲? Here’s the easiest way to see it 👇 𝗧𝗵𝗿𝗲𝗮𝗱 → The worker who does the actual job 🧑🏭 𝗧𝗮𝘀𝗸 → The manager who assigns work to the best available worker 🧑💼 Creating a Thread means handling everything yourself — start, stop, cleanup. Creating a Task lets .NET’s ThreadPool manage that for you efficiently. So, 𝗧𝗮𝘀𝗸 is a 𝘀𝗺𝗮𝗿𝘁 𝘄𝗿𝗮𝗽𝗽𝗲𝗿 𝗮𝗿𝗼𝘂𝗻𝗱 𝘁𝗵𝗿𝗲𝗮𝗱𝘀, adding support for state, continuations, exceptions, and cancellation. In modern .NET, you rarely need to create raw threads — use 𝗧𝗮𝘀𝗸 or 𝗮𝘀𝘆𝗻𝗰/𝗮𝘄𝗮𝗶𝘁 instead, and let the framework handle the heavy lifting. 💪 💭 Quick Tips ✅ async/await ≠ multi-threading → 𝗶𝘁’𝘀 𝗻𝗼𝗻-𝗯𝗹𝗼𝗰𝗸𝗶𝗻𝗴 𝗜/𝗢. ✅ Avoid .Result, .Wait(), and async void → can cause 𝗱𝗲𝗮𝗱𝗹𝗼𝗰𝗸𝘀 𝗼𝗿 𝗹𝗼𝘀𝘁 𝗲𝘅𝗰𝗲𝗽𝘁𝗶𝗼𝗻𝘀. ✅ Prefer 𝗧𝗮𝘀𝗸 over 𝗧𝗵𝗿𝗲𝗮𝗱 for cleaner, faster, safer code. ✅ Remember: 𝗮𝘀𝘆𝗻𝗰/𝗮𝘄𝗮𝗶𝘁 is built on top of Tasks — not Threads. 🧠 In Short 🧩 Threads = muscle (do the work) ⚙️ Tasks = management (assign the work) 💃 Async/Await = choreography (make it seamless) #dotnet #csharp #asyncawait #softwaredevelopment #multithreading #programming #dotnetcore #learncoding
To view or add a comment, sign in
-
🧱 Good Projects Don’t Start With Code… They Start With Structure One of the most overlooked skills in software development is how you organize your project. A clean structure makes your application easier to scale, debug, and collaborate on — especially as it grows. Recently, I refined my Frontend + Backend project architecture to ensure: Clear separation of concerns Better readability Maintainability over the long term Smooth onboarding for teammates 🎯 Frontend Structure Focuses On: Keeping components, pages, and routes logically isolated Centralizing validators, utility functions, and shared logic Maintaining clarity between templates, themes, and assets ⚙️ Backend Structure Focuses On: A clean request flow using controllers → services → database layer Organized middlewares for cross-cutting logic Validators to ensure data safety Config & helpers isolated for reuse and clarity A well-organized architecture doesn’t just look good — it reduces bugs, saves development time, and improves code quality. Your structure either: ✔️ Scales with you or ❌ Holds you back later #JavaScript #TypeScript #Angular #React #NodeJS #NestJs #FullStackDeveloper #WebDevelopment #CleanArchitecture #SoftwareEngineering #ProgrammingTips #OpenToWork #LearningInPublic #Developers #WebDevelopment #SoftwareEngineering #CleanArchitecture #CodingBestPractices #LearningInPublic #DeveloperCommunity #TechCareer #BuildInPublic
To view or add a comment, sign in
-
-
Learned this the hard way: Why backend validation isn't optional 🤦♂️ So I was building the registration flow for EduChat and thought I was being smart... I had all the validation on the frontend - checking for username, email format, required fields, everything. Looked good, worked perfectly in the UI. Then I started testing the backend API directly. Forgot to send the username field in one test request. The API just... accepted it. Created the user with a blank username. Checked the database later and saw multiple records with empty usernames staring back at me 😅 (I did have email duplicate validation working though, so at least there's that) What I learned: Frontend validation = Good UX Instant feedback to users Catches mistakes before submission Feels responsive and professional Backend validation = Actual security Frontend can be bypassed (inspect element, API calls, etc.) Someone can hit your endpoints directly Your database doesn't care about your nice UI validations The reality check: Frontend validation is for the user. Backend validation is for your data. You need both. Always. Now my backend validates everything: # FastAPI endpoint now looks like this @app.post("/register") async def register(user: UserCreate): if not user.username or len(user.username) < 3: raise HTTPException(400, "Username required (min 3 chars)") if not user.email or "@" not in user.email: raise HTTPException(400, "Valid email required") # ... rest of validation The lesson: Never trust data coming from the client. Ever. Even if you wrote the client yourself. Anyone else learned this the hard way? Or am I the only one who had to clean up a database full of blank usernames? 😂 #webdevelopment #backend #frontend #security #validation #fastapi #python #react #javascript #nodejs #api #restapi #coding #programming #softwaredevelopment #webdev #developer #backend #fullstack #mernstack #datavalidation #apidevelopment #cleancode #bestpractices #lessonslearned #buildinginpublic #devlife #coding #tech #softwaredeveloper #webdeveloper #programming #code #debugging
To view or add a comment, sign in
-
🚀 Choosing Your Tech Path? Let’s Decode It! 💻🤖 Whether you’re building stunning websites, robust software, or intelligent machines — every developer’s journey begins with the right skills & mindset. Here’s a quick breakdown to guide you: 👇 💡 🌐 Web Developer Crafting interactive and responsive experiences for users! 🧩 Key Skills: 🔹 HTML 🔹 CSS 🔹 JavaScript 🔹 PHP 🔹 ASP.NET 🔹 Python 🔹 Java 🔹 Ruby 🔹 SQL 🔹 XML 💡 💻 Software Developer Designing powerful and efficient applications that make systems come alive! 🧠 Key Skills: 🔹 C 🔹 C++ 🔹 C# 🔹 Java 🔹 Ruby 🔹 VB Script 🔹 Python 🔹 SQL 💡 🤖 Machine Learning Engineer Building smart systems that learn, predict & evolve! 🧬 Key Skills: 🔹 Python 🔹 C++ 🔹 JavaScript 🔹 Java 🔹 C# 🔹 Alaa 🔹 Julia 🔹 Shell 🔹 R 🔹 TypeScript 🔹 Scala ✨ No matter which path you choose — consistency, curiosity, and creativity will set you apart. 🔁 Keep learning. Keep building. Keep growing. 💪 #WebDevelopment #SoftwareDevelopment #MachineLearning #Coding #Python #JavaScript #Developers #TechCareer #LinkedInTech
To view or add a comment, sign in
-
-
SK — createAsyncThunk (Async Calls) 💡 Explanation: createAsyncThunk helps handle async logic like API calls and automatically manages pending, fulfilled, and rejected states. 🧩 Example import { createAsyncThunk } from "@reduxjs/toolkit"; export const fetchProducts = createAsyncThunk( "products/fetch", async () => { const res = await fetch("https://lnkd.in/g6BEwS7k"); return res.json(); } ); 💬 Question: Do you manage loading & error states manually or rely on createAsyncThunk lifecycle actions? 📌 Follow Sasikumar S for daily React reflections, dev career insights & coding inspiration. 🤝 Connect Now: sasiias2024@gmail.com 💟 Visit: sk-techland.web.app ❤️ Follow our LinkedIn Page for more React, JavaScript & software engineering growth. #ReactJS #WebDevelopment #FrontendDeveloper #JavaScript #SystemDesign #CodingJourney #SoftwareEngineering #ErrorHandling #GitFlow #ReactProjectStructure #CareerGrowth #MockInterview #TechLearning #ProblemSolving #DeveloperMindset #redux
To view or add a comment, sign in
-
-
Mastering JavaScript requires a deep understanding of its core concepts. Here’s a concise breakdown of the most important topics every developer should know — especially for interviews, real-world projects, and advanced problem-solving: ✅ Variables, Data Types & Scope Understanding how data is stored, accessed, and managed. ✅ Hoisting & Execution Context How JavaScript reads code before execution and how functions/variables are initialized. ✅ The this Keyword How context works in functions, objects, event handlers, and classes. ✅ Closures The foundation of data privacy, callbacks, and advanced functions. ✅ Promises & Async/Await Modern asynchronous programming for handling APIs, delays, and background tasks. ✅ Event Loop & Call Stack How JavaScript executes tasks, manages concurrency, and handles async operations. ✅ Arrow Functions Cleaner syntax, lexical this, and modern functional patterns. ✅ Destructuring, Spread & Rest Operators Efficient ways to handle arrays, objects, and flexible function arguments. ✅ map(), filter(), reduce() Essential functional programming tools for clean and scalable code. 👉 Follow Awdhesh Kumar for insightful content on Web Development & Programming languages. ❤️ Like 🔁 Repost 💬 Comment your thoughts. 🚀 Start learning JavaScript and Web Development from top platforms: W3Schools.com • GeeksforGeeks • JavaScript Mastery. #javascript #webdevelopment #learnjavascript #codinglife #frontenddevelopment #developers #techskills #interviewpreparation #mernstack #programming #softwareengineering #javascript #webdevelopment #frontenddevelopment #fullstackdeveloper #programming #softwareengineering #developers #codinglife #learnjavascript #codingcommunity #programmer #techskills #interviewpreparation #computerscience #mernstack #jsdeveloper #webdevcommunity #techlearning #upskilling #careerbuilding
To view or add a comment, sign in
-
Day 17/100 Day 8 of JavaScript Understanding Anonymous Functions in JavaScript In JavaScript, anonymous functions are functions without a name — they are often used when you need a quick, one-time function without the need to reuse it elsewhere. They’re super handy in callbacks, event handlers, and functional programming (like in map(), filter(), forEach(), etc.). Syntax: function () { // code to execute } Note: Since it has no name, you can’t call it directly — it must be assigned or passed as a value. Example: Using an Anonymous Function with setTimeout() setTimeout(function() { console.log("Hello, World! 👋"); }, 2000); Here, the anonymous function runs after 2 seconds. No need to name it — it’s only used once! Another Example: With Array map() const numbers = [1, 2, 3, 4]; const doubled = numbers.map(function(num) { return num * 2; }); console.log(doubled); // [2, 4, 6, 8] The anonymous function is passed as a callback — clean and concise! Pro Tip: You can simplify anonymous functions even more using Arrow Functions: const doubled = numbers.map(num => num * 2); Shorter, modern, and easier to read. 😎 In short: Anonymous functions make your code more flexible and concise, especially when you don’t need to reuse the same function elsewhere. #10000coders
To view or add a comment, sign in
-
Mastering JavaScript requires a deep understanding of its core concepts. Here’s a concise breakdown of the most important topics every developer should know — especially for interviews, real-world projects, and advanced problem-solving: ✅ Variables, Data Types & Scope Understanding how data is stored, accessed, and managed. ✅ Hoisting & Execution Context How JavaScript reads code before execution and how functions/variables are initialized. ✅ The this Keyword How context works in functions, objects, event handlers, and classes. ✅ Closures The foundation of data privacy, callbacks, and advanced functions. ✅ Promises & Async/Await Modern asynchronous programming for handling APIs, delays, and background tasks. ✅ Event Loop & Call Stack How JavaScript executes tasks, manages concurrency, and handles async operations. ✅ Arrow Functions Cleaner syntax, lexical this, and modern functional patterns. ✅ Destructuring, Spread & Rest Operators Efficient ways to handle arrays, objects, and flexible function arguments. ✅ map(), filter(), reduce() Essential functional programming tools for clean and scalable code. ❤️ Like 🔁 Repost 💬 Comment your thoughts. 🚀 Start learning JavaScript and Web Development from top platforms: W3Schools.com • GeeksforGeeks • JavaScript Mastery. #javascript #webdevelopment #learnjavascript #codinglife #frontenddevelopment #developers #techskills #interviewpreparation #mernstack #programming #softwareengineering #javascript #webdevelopment #frontenddevelopment #fullstackdeveloper #programming #softwareengineering #developers #codinglife #learnjavascript #codingcommunity #programmer #techskills #interviewpreparation #computerscience #mernstack #jsdeveloper #webdevcommunity #techlearning #upskilling #careerbuilding
To view or add a comment, sign in
-
𝗥𝗲𝗰𝘂𝗿𝘀𝗶𝗼𝗻 𝗶𝗻 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 #webdev #beginners #programming Today, we'll talk about recursion in JavaScript, a powerful tool in your coding arsenal. You'll learn how to implement it through clear, practical examples. Understanding recursion is crucial for JavaScript developers. It simplifies complex problems, improves readability, and is often a preferred solution in interviews and real-world coding challenges. Many developers struggle with recursion due to its abstract concept and potential for errors like infinite loops. But, with the right approach, it can be learned effectively. 𝗥𝗲𝗰𝘂𝗿𝘀𝗶𝗼𝗻 𝗶𝘀 𝗻𝗼𝘁 𝗷𝘂𝘀𝘁 𝗮 𝘁𝗲𝗰𝗵𝗻𝗶𝗾𝘂𝗲 𝗯𝘂𝘁 𝗮 𝗻𝗲𝘄 𝘄𝗮𝘆 𝗼𝗳 𝘁𝗵𝗶𝗻𝗸𝗶𝗻𝗴. Recursion involves a function calling itself until it reaches a base condition. This approach is beneficial for tasks like traversing trees or solving algorithms that require backtracking, such as searching or sorting. Here are 4 takeaways: • Recursion simplifies complex problems by breaking them into smaller, manageable parts. • It's essential to define a clear base case to prevent infinite loops. • Recursion can lead to more readable and elegant code than iterative solutions. • Understanding stack overflow and how JavaScript manages memory in recursive calls is crucial.. 𝗖𝗼𝗺𝗺𝗼𝗻 𝗣𝗶𝘁𝗳𝗮𝗹𝗹𝘀 1. Stack Overflow: In JavaScript, each recursive call adds a frame to the call stack. If you recursion is too deep (i.e., too many calls without reaching the base case), you can exhaust the stack memory, leading to a "stack Overflow" error. This often happens if the base case is not correctly defined or the recursion is not converging towards it. 2. Lack of Base Case: The base case is what stops the recursion. Without a proper base case, your function will keep calling itself indefinitely, leading to infinite recursion and, eventually, a stack overflow error. 3. Large Memory Consumption: Each recursive call uses memory to maintain its executi context. Inefficient recursion, especially with many levels, can consume significant memory, leading to performance issues.
To view or add a comment, sign in
-
-
⚙️ 𝗦𝘆𝗻𝗰𝗵𝗿𝗼𝗻𝗼𝘂𝘀 𝘃𝘀 𝗔𝘀𝘆𝗻𝗰 𝘃𝘀 𝗪𝗮𝗶𝘁𝗔𝗹𝗹 𝘃𝘀 𝗪𝗵𝗲𝗻𝗔𝗹𝗹 𝗶𝗻 𝗖# Let’s talk about one of the most common misconceptions in async programming “𝗨𝘀𝗶𝗻𝗴 𝗮𝘀𝘆𝗻𝗰 𝗮𝘂𝘁𝗼𝗺𝗮𝘁𝗶𝗰𝗮𝗹𝗹𝘆 𝗺𝗮𝗸𝗲𝘀 𝘆𝗼𝘂𝗿 𝗰𝗼𝗱𝗲 𝗰𝗼𝗻𝗰𝘂𝗿𝗿𝗲𝗻𝘁.” Spoiler: it doesn’t. 👇 🧱 𝗦𝘆𝗻𝗰𝗵𝗿𝗼𝗻𝗼𝘂𝘀 𝗘𝘅𝗲𝗰𝘂𝘁𝗶𝗼𝗻 𝘋𝘰𝘛𝘢𝘴𝘬1(); // 3sec 𝘋𝘰𝘛𝘢𝘴𝘬2(); // 2sec 𝘋𝘰𝘛𝘢𝘴𝘬3(); //1sec Each task waits for the previous one. 🕒 Total time = 3s + 2s + 1s = 𝟲 𝘀𝗲𝗰𝗼𝗻𝗱𝘀 ⏳ 𝗔𝘀𝘆𝗻𝗰 + 𝗔𝘄𝗮𝗶𝘁 (𝗦𝗲𝗾𝘂𝗲𝗻𝘁𝗶𝗮𝗹) 𝘢𝘸𝘢𝘪𝘵 𝘋𝘰𝘛𝘢𝘴𝘬1𝘈𝘴𝘺𝘯𝘤(); 𝘢𝘸𝘢𝘪𝘵 𝘋𝘰𝘛𝘢𝘴𝘬2𝘈𝘴𝘺𝘯𝘤(); 𝘢𝘸𝘢𝘪𝘵 𝘋𝘰𝘛𝘢𝘴𝘬3𝘈𝘴𝘺𝘯𝘤(); Even though it’s async, each task still runs one after another. 🕒 Total time ≈ 𝟲 𝘀𝗲𝗰𝗼𝗻𝗱𝘀 🧵 𝗧𝗮𝘀𝗸.𝗪𝗮𝗶𝘁𝗔𝗹𝗹 (𝗖𝗼𝗻𝗰𝘂𝗿𝗿𝗲𝗻𝘁 𝗯𝘂𝘁 𝗕𝗹𝗼𝗰𝗸𝗶𝗻𝗴) 𝘷𝘢𝘳 𝘵1 = 𝘋𝘰𝘛𝘢𝘴𝘬1𝘈𝘴𝘺𝘯𝘤(); 𝘷𝘢𝘳 𝘵2 = 𝘋𝘰𝘛𝘢𝘴𝘬2𝘈𝘴𝘺𝘯𝘤(); 𝘷𝘢𝘳 𝘵3 = 𝘋𝘰𝘛𝘢𝘴𝘬3𝘈𝘴𝘺𝘯𝘤(); Task.WaitAll(t1, t2, t3); All tasks run in parallel, but W𝗮𝗶𝘁𝗔𝗹𝗹 𝗯𝗹𝗼𝗰𝗸𝘀 𝘁𝗵𝗲 𝘁𝗵𝗿𝗲𝗮𝗱, not ideal for ASP.NET or scalable apps. 🕒 Total time ≈ 𝟯 𝘀𝗲𝗰𝗼𝗻𝗱𝘀, 𝗯𝘂𝘁 𝘁𝗵𝗿𝗲𝗮𝗱 𝗯𝗹𝗼𝗰𝗸𝗲𝗱 ❌ ⚡ 𝗧𝗮𝘀𝗸.𝗪𝗵𝗲𝗻𝗔𝗹𝗹 (𝗖𝗼𝗻𝗰𝘂𝗿𝗿𝗲𝗻𝘁 𝗮𝗻𝗱 𝗡𝗼𝗻-𝗕𝗹𝗼𝗰𝗸𝗶𝗻𝗴) 𝘷𝘢𝘳 𝘵1 = 𝘋𝘰𝘛𝘢𝘴𝘬1𝘈𝘴𝘺𝘯𝘤(); 𝘷𝘢𝘳 𝘵2 = 𝘋𝘰𝘛𝘢𝘴𝘬2𝘈𝘴𝘺𝘯𝘤(); 𝘷𝘢𝘳 𝘵3 = 𝘋𝘰𝘛𝘢𝘴𝘬3𝘈𝘴𝘺𝘯𝘤(); 𝘢𝘸𝘢𝘪𝘵 𝘛𝘢𝘴𝘬.𝘞𝘩𝘦𝘯𝘈𝘭𝘭(𝘵1, 𝘵2, 𝘵3); All tasks run concurrently without blocking the thread, this is the right way to do async concurrency. 🕒 Total time ≈ 𝟯 𝘀𝗲𝗰𝗼𝗻𝗱𝘀, 𝗻𝗼𝗻-𝗯𝗹𝗼𝗰𝗸𝗶𝗻𝗴 ✅ 📌 𝗥𝘂𝗹𝗲 𝗼𝗳 𝗧𝗵𝘂𝗺𝗯 • 🧱 Use Synchronous when performance isn’t critical or dependencies are blocking anyway • ⏳ Use Async/Await for cleaner non-blocking flow • ⚡ Use WhenAll for independent tasks to run concurrently • ❌ Avoid WaitAll in ASP.NET, it blocks threads and kills scalability #dotnet #csharp #asyncawait #taskwhenall #concurrency #cleancode #softwaredevelopment
To view or add a comment, sign in
Explore related topics
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development
Have you seen how tricky fromform and from body is . Most especially when you are uploading files .