Resources  
  • Key Performance Tuning Techniques in Android Development (2025)Jul 01, 2025. Optimize Android app performance with innovative UI, memory management, threading, and modern tools like Jetpack Compose, Retrofit, Room, and Firebase to ensure smooth, fast, and reliable user experiences.
  • Mastering Connection Pooling with Dapper in ASP.NET Core Web APIJun 27, 2025. In modern web development, one of the key challenges when working with databases is efficiently managing database connections.
  • React useMemo vs useCallback: What's the Difference and When to Use Each?Jun 26, 2025. Confused between useMemo and useCallback in React? Learn the key differences, when to use each, and how they improve performance with real-world examples.
  • 🤔 What’s the Difference Between useState and useReducer in React?Jun 26, 2025. Learn the key differences between useState and useReducer in React. This guide explains when to use each hook with real-world examples, pros and cons, and best practices.
  • React Hooks Tutorial: Practical Guide with Real Examples for Beginners & DevelopersJun 27, 2025. This article explores React Hooks—functions that enable state, side effects, context, and more in functional components—covering built-in hooks, lifecycle replacements, custom hook creation, and common best practices.
  • Understanding useRef in React: When and How to Use It EffectivelyJun 26, 2025. Discover how to use useRef in React to access DOM elements, store mutable values, and optimize performance. Learn real-world examples and best practices.
  • Understanding SESSION_CONTEXT in SQL ServerJun 26, 2025. This article explains SQL Server's SESSION_CONTEXT, a session-scoped key-value store introduced in 2016, useful for securely passing metadata like User ID or flags between procedures, triggers, and applications.
  • Mastering LINQ in C#Jun 25, 2025. Language Integrated Query (LINQ) is a game-changer in C#. It brings SQL-like data querying capabilities directly into your C# code, making data manipulation more intuitive, type-safe, and readable.
  • Memory Leak Troubleshooting in .NET CoreJun 24, 2025. Memory leaks can silently degrade the performance of your .NET Core applications, leading to high memory consumption, sluggish performance, or even crashes. DotNET provides a rich set of tools to detect, analyze, and fix memory leaks effectively.
  • Coalesce vs Repartition in Apache SparkJun 24, 2025. Understand the key differences between coalesce() and repartition() in Apache Spark. Learn when to use each for optimizing performance, managing partitions, and reducing shuffle operations.
  • Basic SQL Queries for Database TestingJun 23, 2025. Learn essential SQL queries used in database testing. This guide covers SELECT, JOIN, WHERE, and more—ideal for QA testers and beginners ensuring data accuracy and integrity in applications.
  • Speed Up Docker Desktop: Latest Performance UpgradesJun 22, 2025. Discover how Docker Desktop boosts speed on Mac, Windows, and RHEL with new virtualization, file syncing, and real-world dev performance gains.
  • How to Collaboratively Work with SQL Server 2025, Visual Studio Code, and GitHub Copilot (Step-by-Step Guide)Jun 21, 2025. This article walks you through how to collaboratively work using SQL Server 2025, Visual Studio Code (VS Code), and GitHub Copilot. With clear steps and screenshots, this guide helps beginners and professionals enhance productivity and collaboration in database development.
  • Database Testing: A Complete GuideJun 19, 2025. Database Testing ensures data accuracy, integrity, and performance by validating schemas, procedures, and operations. This guide covers types, tools, scenarios, and best practices for robust, high-quality data-driven applications.
  • Understanding Select vs SelectMany in LINQJun 19, 2025. In this article, we are going to learn about the importance of LINQ features of select and SelectMany and the difference between them.
  • What is DBT (Data Build Tool)?Jun 19, 2025. Learn how DBT (Data Build Tool) transforms raw data using SQL, enabling version control, testing, and documentation to bring software engineering best practices into modern, scalable, and reliable data workflows.
  • Health Checks in .NET 8 Web API: A Comprehensive GuideJun 18, 2025. Ensure your ASP.NET Web API’s reliability with .NET 8 health checks—monitor SQL Server, external APIs, and network connectivity using JSON-formatted diagnostics for proactive monitoring, easier debugging, and improved application resilience.
  • FirstOrDefault vs. SingleOrDefault in LINQ: Key Differences and Use CasesJun 16, 2025. In this article, we'll dive into the key differences between FirstOrDefault and SingleOrDefault, examining their behaviours, ideal use cases, and guidance on when to use each one. By the end, you'll gain a better understanding of how to utilize these methods to optimize data queries in your C# applications.
  • SQL vs NoSQL: Making the Right Database Choice for Your ApplicationJun 12, 2025. Learn the core differences between SQL and NoSQL databases. Explore their advantages, disadvantages, top database options, and when to use each. A must-read for software developers and DBAs making architectural decisions.
  • On-Heap vs Off-Heap Memory Management in DatabricksJun 12, 2025. Memory management is a critical part of big data processing, and Databricks provides mechanisms to optimize how applications utilize system memory. Understanding the distinction between on-heap and off-heap memory management can impact the performance and reliability of your Spark applications running on Databricks.
  • Table Sharding in SQL: Types, Examples, and Best PracticesJun 10, 2025. Table sharding improves database scalability and performance by splitting large tables into smaller, distributed shards. It enhances speed, fault tolerance, and cost-efficiency—ideal for growing applications with heavy data loads.
  • Database Fragmentation: Understanding, Managing, and MitigatingJun 06, 2025. Learn how to detect, manage, and resolve SQL Server fragmentation with live examples. Improve query performance, reduce I/O overhead, and optimize indexes and heaps using proven best practices and tools.
  • Horizontal vs Vertical Partitioning in SQLJun 04, 2025. Horizontal and vertical partitioning are techniques in SQL to improve performance and manage large datasets. Learn how each method works, their use cases, and how they impact database design.
  • Transforming Data Insights with Snowflake's LLM Functions – PART 2Jun 04, 2025. Snowflake Cortex LLM functions like TRANSLATE and SUMMARIZE, enabling powerful in-database AI for multilingual translation and concise text summaries, thereby enhancing data analytics without the need for external tools or APIs.
  • Building a Clean ASP.NET Core API with C# 13, EF Core, and DDDJun 02, 2025. The guide is written by Ziggy Rafiq and follows real-world architecture and testing best practices to provide a clean, scalable REST API using ASP.NET Core, C# 13, EF Core, and MS SQL.
  • Understanding DBCC Commands in SQL Server: Use Cases and ImportanceMay 31, 2025. Learn the essentials of DBCC commands in SQL Server—powerful tools for monitoring, maintaining, and troubleshooting databases. Mastering them ensures performance optimization, deadlock resolution, and proactive database health checks.
  • SQL Server Transaction Locks: Identification & ResolutionMay 28, 2025. Learn how SQL Server transaction locks ensure data integrity, identify locking issues using DMVs and Activity Monitor, and explore strategies like query optimization, isolation levels, and deadlock resolution for better performance.
  • PLINQ vs LINQ: Use Cases, and Performance Insights in C#May 25, 2025. Discover the key differences between LINQ and PLINQ in C#, including their syntax, execution models, performance benchmarks, use cases, and when to choose parallelism for processing large datasets efficiently.
  • How to Install and Configure SQL Server 2025 in WindowsMay 22, 2025. This articlee walks you through installing SQL Server 2025 on Windows, from system requirements to setup and configuration. Learn how to enable features, set authentication modes, and ensure your server runs smoothly ideal for beginners and advanced users alike.
  • Creating a "Pooled" Dependency Injection Lifetime in C# 13May 19, 2025. Discover how Ziggy Rafiq demonstrates how to set up a custom "pooled" dependency injection lifetime in C# 13 using ObjectPool<t> with best practices, DI registration, and high-performance service examples.</t>
  • Event-Driven CQRS with C# 14 and the SQL Outbox PatternMay 15, 2025. Learn how to implement a reliable event-driven CQRS microservice using the SQL Outbox Pattern with C# 14. Ensure strong consistency, transactional event publishing, and fail-safe asynchronous processing for scalable distributed systems.
  • .NET Aspire Integrations (SQL Server Integration in Aspire Applications)May 14, 2025. In this chapter, you'll learn how to integrate SQL Server into your .NET Aspire applications with minimal configuration and maximum flexibility.
  • Real-Time Data Retrieval from APIs Using SSISMay 14, 2025. This article explains how to integrate APIs with SQL Server Integration Services (SSIS) to automate data retrieval using HTTP requests. It covers API setup, SSIS package creation, and script task configuration.
  • Microsoft Fabric Warehouse Integration in VS Code for DevsMay 13, 2025. Experience seamless development with Microsoft Fabric and VS Code integration. Write, debug, and manage SQL queries directly in your editor, connect to Fabric Warehouse, and boost productivity with real-time data access.
  • Advanced ETL from OLTP Databases to a Data Warehouse with C# 14May 12, 2025. Build scalable and efficient ETL pipelines using C# 14 and .NET 9. Leverage Dapper, SQL Server, Azure Synapse, and cloud integration for seamless data extraction, transformation, and loading to data warehouses and lakes.
  • What’s New in Grafana 12.0May 08, 2025. Explore Grafana 12.0's new features like Git Sync, dynamic dashboards, and enhanced drilldowns. Perfect for beginners seeking practical insights.
  • Build & Deploy Azure Function Using C# and Integration with Azure SQLMay 05, 2025. This article walks you through creating the function, connecting to SQL, and deploying it to Azure perfect for developers looking to build serverless apps with database support.
  • NoSQL vs. SQL: Which One to UseMay 02, 2025. Explore the key differences between SQL and NoSQL databases, including structure, scalability, use cases, and performance.
  • Vibe Coding with AI: Using Prompt Engineering to Build a Full C# Database SolutionMay 02, 2025. Discover how to harness the power of AI and prompt engineering to build a complete C# database solution.
  • Advanced C# Database Tricks for Power UsersMay 01, 2025. Explore advanced C# database techniques using ADO.NET, Entity Framework Core, and Dapper.
  • Artificial Intelligence and Education: Shaping the Future of LearningApr 28, 2025. Discover how Artificial Intelligence is transforming education by enabling personalized learning, smart classrooms, and intelligent tutoring.
  • How to Convert a DataTable to a List of Objects in C#Apr 27, 2025. Learn how to convert a DataTable to a List<T> in C#. Explore manual, reflection-based, and LINQ methods for better performance, type safety, and cleaner code. Improve maintainability in modern C# applications.
  • Advanced Database Programming with C# 14 and Microsoft SQL ServerApr 24, 2025. As of C# 14, Microsoft continues to evolve the language to provide more expressive, safe, and performant coding patterns.
  • SQL Server CLR Integration and SSIS Automation with C#Apr 24, 2025. Learn how to enhance SQL Server functionality using CLR integration and automate SSIS packages with C#.
  • Understanding Change Data Capture (CDC) and Its TypesApr 23, 2025. In this article we are going to learn about the CDC and types of CDC approaches. It helps keep data in sync without causing a heavy load on the database.
  • Order of Execution in LINQ QueriesApr 22, 2025. This article explains the difference between deferred and immediate execution, outlines the execution order, and shares best practices to write efficient and optimized LINQ queries for real-world applications.
  • Execution Process of SQL Queries vs Stored Procedures Apr 21, 2025. Dive deep into the internal execution process of SQL Server queries with this one-of-a-kind article comparing normal SQL queries and stored procedures.
  • Load Testing in Azure CloudApr 21, 2025. Load Testing in Azure Cloud is a fully managed service that supports end-to-end load and performance testing, allowing testing teams to generate highly scalable virtual user loads.
  • .NET 9 Apps Are Faster Than EverApr 19, 2025. Explore .NET 9’s impressive performance improvements! From faster JSON serialization, optimized JIT compiler, reduced memory usage, to enhanced HTTP/3 handling
  • LINQ in C# Tutorial for Beginners: 101 C# LINQ OperationsApr 17, 2025. Learn LINQ in C# with 101 essential operations for beginners. Simple examples of filtering, sorting, and joining data to make your code better and faster. Perfect for new C# developers.
  • Pro Tips For ServiceNow Performance OptimizationApr 16, 2025. Boost your ServiceNow instance with expert performance optimization tips. Learn how to fine-tune scripts, improve query efficiency, enhance UI responsiveness, and apply best practices to keep your workflows running smoothly and your users happy. Perfect for admins and developers alike.
  • Entity Framework Core - Deep Performance Optimization GuideApr 16, 2025. Optimize your Entity Framework Core apps with proven performance tips: use AsNoTracking, prevent N+1 issues, project only needed fields, leverage caching, compiled queries, and bulk operations for faster, memory-efficient data access.
  • .NET 8 - System.Linq.Dynamic.Core – using SQL LIKEApr 11, 2025. System.Linq.Dynamic.Core library does not support SQL LIKE, and I added support for it. Added SQL LIKE support to the System.Linq.Dynamic.Core in .NET 8 using a custom patch. Enables dynamic SQL pattern matching in EF8 projects where built-in LIKE functionality was missing.
  • Create Foreign Keys Dynamically in SQL Server DatabaseApr 10, 2025. Create the referential integrity constraint i.e. Foreign key dynamically in SQL Server database. This script dynamically adds foreign keys to all tables with a CompanyID column by scanning the database, ensuring they reference the Company table—ideal for retrofitting relational integrity.
  • Simple Best Practices for Code Quality and Performance in .NETApr 07, 2025. Let's break down some best practices for writing good and fast code in .NET, using simple examples and including important principles that anyone can understand.
  • Azure Synapse Analytics Serverless and Dedicated SQL PoolsApr 02, 2025. This article explains in detail about what Azure Synapse Analytics is and a brief comparison of the different SQL runtime environments it provisions.
  • Mitigate OWASP A03:2021 – Injection Web Security TipsApr 01, 2025. ?Injection attacks, such as SQL Injection and Cross-Site Scripting (XSS), exploit vulnerabilities where untrusted data is improperly handled, leading to unauthorized command execution or data access. Mitigation strategies include input validation, parameterized queries, and adhering to secure coding practices to enhance web application security.
  • Pooling with ObjectPool<T> in .NETMar 31, 2025. This article explores the benefits of object pooling, how to implement ObjectPool&lt;T&gt; from System.Buffers, and real-world use cases to reduce memory allocations and enhance application efficiency.
  • Memory Management in .NETMar 31, 2025. Memory management in .NET is handled by the Garbage Collector (GC), which automatically allocates and frees memory to optimize performance.
  • Profile-Guided Optimization (PGO) in C#Mar 31, 2025. Profile-Guided Optimization (PGO) in C# enhances performance by optimizing code based on real-world execution data. This technique helps the .NET runtime make smarter JIT compilation decisions, improving speed and efficiency.
  • Exploring PLINQ (Parallel LINQ) for Parallel ProcessingMar 29, 2025. PLINQ (Parallel LINQ) is a powerful feature in .NET that enables parallel processing of queries to improve performance on multi-core processors.
  • New LINQ Features in .NET 9Mar 29, 2025. Discover the latest LINQ features in .NET 9 that enhance query performance, simplify data manipulation, and introduce new methods for better efficiency.
  • Efficient Memory Access with CollectionsMarshal.AsSpan: in C# .NET Mar 28, 2025. Learn how to optimize memory access in C# .NET using CollectionsMarshal.AsSpan for high-performance scenarios. This API provides direct access to collection memory, reducing allocations and improving efficiency.
  • Understanding Span<T> & Memory<T> for Low-Level Memory EfficiencyMar 28, 2025. Span&lt;T&gt; and Memory&lt;T&gt; in C# provide efficient ways to handle memory without allocations, improving performance in .NET applications. Span&lt;T&gt; is stack-allocated for fast access, while Memory&lt;T&gt; supports heap-based scenarios.
  • Creating DataFrames in PySpark Using Fabric NotebookMar 27, 2025. This article walks through defining schemas, specifying column names, and using SQL-like DDL in a Fabric Notebook. Explore StructType, StructField, and various ways to display and verify DataFrame content efficiently.
  • Understanding Numeric Functions in SQLMar 27, 2025. SQL numeric functions simplify mathematical operations like rounding, power calculations, and random value generation. Functions like ABS(), CEILING(), FLOOR(), ROUND(), SQRT(), MOD(), and LOG() help with financial calculations, data analysis, and scientific computing.
  • Understanding Conversion Functions in SQLMar 27, 2025. SQL conversion functions like CAST(), CONVERT(), TRY_CAST(), TRY_CONVERT(), and FORMAT() help change data types, format values, and handle errors efficiently.
  • Explanation of Date and Time Functions in SQLMar 26, 2025. SQL date and time functions help efficiently manipulate and retrieve date-related information. Common functions include GETDATE() for the current timestamp, DATEADD() for adding time intervals, DATEDIFF() for date differences, FORMAT() for formatting, and EOMONTH() for month-end dates.
  • Mastering SQL String FunctionsMar 25, 2025. SQL string functions help manipulate and process text data efficiently. This guide covers key functions like UPPER(), LOWER(), LEN(), LEFT(), RIGHT(), SUBSTRING(), REPLACE(), CONCAT(), LTRIM(), RTRIM(), CHARINDEX(), REVERSE(), and FORMAT(), demonstrating their usage with examples to improve query performance and readability.
  • Understanding System-Versioned Tables in SQLMar 25, 2025. System-versioned tables in SQL automatically track data changes, maintaining historical records for auditing and recovery. They consist of a main table (current data) and a history table (past records).
  • Prevent Accidental Data Deletion with Two Simple StrategiesMar 25, 2025. Recently, I came across several discussions on Communities where users shared their experiences with accidental data deletion.
  • Understanding Parameter Sniffing in SQL ServerMar 24, 2025. In SQL Server and other relational database systems, query execution performance is critical for handling large datasets efficiently. One common yet sometimes problematic optimization technique is Parameter Sniffing. While it can improve query performance.
  • Automating SCD Type 4 in Azure SQL Database with Azure Data FactoryMar 24, 2025. Learn how to automate Slowly Changing Dimension (SCD) Type 4 implementation in Azure SQL Database using Azure Data Factory.
  • SQL Tag Library in Java Server PageMar 21, 2025. JSTL SQL tags are used to access databases and are designed for low-volume Web-based applications.? JSTL SQL tags facilitate database interactions in JSP pages, enabling data source setup, query execution, updates, and transactions through tags like &lt;sql:setDataSource&gt;, &lt;sql:query&gt;, &lt;sql:update&gt;, and &lt;sql: transaction&gt;
  • Understanding Aggregate Functions in SQLMar 21, 2025. SQL aggregate functions help perform calculations on multiple rows, returning a single result. This article covers COUNT(), SUM(), AVG(), MIN(), MAX(), and advanced uses like GROUP BY, HAVING, CASE, PARTITION BY, and DISTINCT.
  • Understanding Scalar Functions in SQLMar 21, 2025. This article explores common functions like LEN(), UPPER(), LOWER(), ROUND(), GETDATE(), ABS(), SQRT(), SUBSTRING(), and REPLACE(), along with advanced usage, computations, and custom scalar functions for efficient queries.
  • Understanding SQL Execution PlansMar 20, 2025. An SQL execution plan outlines how a database executes a query, detailing operations like table scans, index seeks, and joins. Analyzing these plans is essential for optimizing query performance.
  • Understanding SQL CTE (Common Table Expression)Mar 19, 2025. A Common Table Expression (CTE) in SQL is a temporary result set that improves query readability and performance. CTEs simplify complex queries, support recursive operations, and help with aggregation and multi-step calculations.
  • Understanding Expressions in C#: Dynamic Code and Query GenerationMar 19, 2025. Expressions in C# allow dynamic query generation, runtime compilation, and code transformation using Expression Trees. They are widely used in LINQ, ORM frameworks like Entity Framework, and reflection to optimize performance and enable flexible, data-driven logic.
  • How to Use Azure Monitor for Performance Tracking with Alerts using C# Mar 19, 2025. Learn how to use Azure Monitor with C# to track performance, collect telemetry, and set up real-time alerts.
  • Explicit Loading in ASP.NET Core Web APIMar 18, 2025. Explicit Loading in ASP.NET Core Web API is a technique used to manually retrieve related data from the database when needed, using LoadAsync() on navigation properties. Unlike eager loading (Include()) or lazy loading, explicit loading provides better control over database queries, improving performance and efficiency. It is useful when related data is conditionally required.
  • Learn C#: Refactor CodeMar 18, 2025. Refactoring in C# enhances code readability, maintainability, and performance by eliminating redundancy, utilizing LINQ, extracting methods, applying null-coalescing operators, and implementing async/await patterns.
  • Select vs SelectMany in C# LINQMar 17, 2025. In C# LINQ, Select transforms each element of a collection individually, maintaining the original structure, while SelectMany flattens nested collections into a single sequence, combining all sub-elements.
  • Implementing SCD Type 4 in Azure SQL Database: A Step-by-Step GuideMar 16, 2025. Learn how to implement SCD Type 4 in Azure SQL Database using a structured approach with staging, dimension, and history tables. This guide covers real-world use cases, SQL implementation, and execution scenarios for efficient historical data management.
  • Optimizing Azure Blob Performance with OpenReadAsync & Chunked DownloadMar 10, 2025. This article explores efficient ways to stream large files, reduce latency, and improve data retrieval speed in .NET applications. Enhance your cloud storage performance with best practices.
  • Keyset Pagination in Entity Framework Core for Efficient Data RetrievalMar 10, 2025. In this article, I will provide a comprehensive overview of Keyset Pagination in Entity Framework Core, highlighting its benefits, implementation strategies, and a performance comparison with traditional pagination methods
  • Arrow-Optimized Python UDFs in PySpark: Boosting PerformanceMar 09, 2025. Apache Arrow’s in-memory columnar format to speed up data transfer between Python and the JVM, reducing serialization/deserialization overhead.
  • High Performance of LoggerMessage in Microsoft.Extensions.LoggingMar 08, 2025. LoggerMessage in Microsoft.Extensions.Logging provides high-performance logging by reducing memory allocations and improving efficiency. Unlike traditional logging methods, it uses precompiled delegates to format log messages, making it faster.
  • Optimizing Performance in Blazor Server ApplicationsMar 04, 2025. Optimizing Blazor Server applications involves minimizing network traffic by reducing unnecessary component re-renders and implementing partial rendering. Efficient SignalR management and state management are crucial, alongside optimizing database queries and memory usage. Enhancing UI rendering, utilizing background processing, and employing profiling tools further boost performance.
  • Here's what's new in C# 14Mar 03, 2025. Learn about new syntax enhancements, performance improvements, and key language updates in this in-depth article by Ziggy Rafiq.
  • Setting Up Microsoft Entra Service Principal for Azure RBAC and Connecting to Fabric SQL DatabaseMar 03, 2025. This article explains creating a Service Principal, assigning role-based access, and securely authenticating to the database, ensuring seamless integration and enhanced security in your Azure environment.
  • Eliminating Unnecessary DELETE OperationsFeb 28, 2025. SQL Server performance issues often stem from easy fix bottle necks that can be fixed with the right tuning strategies. This short blog will focus on the DELETE statement.
  • Automate Email Sending Using SSIS Script TaskFeb 28, 2025. This article is about Automate Email Sending Using SSIS Script Task
  • Azure SQL Database: Scalable & Secure Cloud SolutionFeb 26, 2025. Azure SQL Database is a fully managed cloud database service by Microsoft, offering high availability, scalability, security, AI-driven performance tuning, automated backups, threat protection, and seamless integration with Azure services.
  • Boost SQL Server Performance with Memory-Optimized TablesFeb 25, 2025. Memory-optimized table variables in SQL Server provide a powerful way to enhance query performance by leveraging In-Memory OLTP. Unlike traditional table variables, they reduce disk I/O and improve execution speed.
  • Understanding Azure CosmosDB Failures and How to Fix ThemFeb 24, 2025. Azure CosmosDB failures can impact application performance. Learn how to identify, debug, and resolve common issues like duplicate keys (11000) and shard key violations (16500) for optimal database performance and reliability.
  • Getting Started with EF Core: Part 1Feb 24, 2025. Entity Framework Core (EF Core) is a powerful ORM for .NET applications, simplifying database interactions. In this comprehensive guide (Part 1), we’ll cover the basics, including setup, configuration, and the code-first approach.
  • How to Improve aync await PerformanceFeb 22, 2025. Optimize async/await in C# with best practices like avoiding blocking calls, using `ConfigureAwait(false)`, leveraging `ValueTask&lt;T&gt;`, parallel execution, and proper exception handling to enhance application performance and responsiveness.
  • Entity Framework Core 9: Ultimate Performance Tuning & Best PracticeFeb 21, 2025. Entity Framework is a versatile and powerful ORM, but its performance depends on how it’s used. By following these best practices and leveraging the new features in .NET 9, you can build high-performance applications that scale efficiently.
  • Various Methods to Count Occurrences of Each Number in Array or ListFeb 17, 2025. In this article, I&#39;ll show you different ways to count how often a number appears in C#. We&#39;ll look at methods like LINQ, Dictionary, GroupBy, and Parallel.ForEach, and see which ones work best for small and large datasets.