این دوره به شما میآموزد که چگونه با بررسی بهترین روشها و اجتناب از دامهای رایج با حل مشکلات سرگرم کننده و چالش برانگیز، به طور کامل از قدرت LINQ استفاده کنید.
آنچه خواهید آموخت:
در این دوره آموزشی , LINQ Best Practices، شما یاد خواهید گرفت که از قدرت LINQ در برنامههای #C خود استفاده کنید. ابتدا، یاد خواهید گرفت که چگونه موقعیتهایی را که در آن LINQ میتواند بیان و خوانایی کد شما را بهبود بخشد، تشخیص دهید. در مرحله بعد، نحوه ترکیب عملگرهای LINQ را در pipelinها و گسترش آنها با قابلیتهای تبلیغاتی کشف خواهید کرد. در نهایت، نحوه اطمینان از عملکرد خود را خواهید آموخت. وقتی این دوره را به پایان رساندید، مهارتها و دانش LINQ مورد نیاز برای کار موثر با توالی دادهها را خواهید داشت.
نمونه ویدیوی آموزشی ( زیرنویسها جدا از ویدیو است و میتوانید آنرا نمایش ندهید ) :
[ENGLISH]
01 Course Overview [2mins]
01-01 Course Overview [2mins]
02 Discovering the Power of LINQ [22mins]
02-01 Course Introduction [1mins]
02-02 Why LINQ Is Awesome [2mins]
02-03 Lambda Expressions [1mins]
02-04 Extension Methods [3mins]
02-05 Anonymous Types [3mins]
02-06 Query Expression Syntax [2mins]
02-07 Generics and the Yield Keyword [3mins]
02-08 Collections are Everywhere [2mins]
02-09 Introducing LINQPad [2mins]
02-10 Module Summary [3mins]
03 Thinking in Patterns [33mins]
03-01 Module Introduction [2mins]
03-02 LINQ Challenge 1- Motorsport Scores [4mins]
03-03 Pro Tip- Know The Enumerable Extensions [3mins]
03-04 Spot the Pattern 1- Filtering [2mins]
03-05 Spot the Pattern 2- Finding One Item [3mins]
03-06 Spot the Pattern 3- True For Everything [3mins]
03-07 Spot the Pattern 4- Transforming Objects [4mins]
03-08 Spot the Pattern 5- How Many Like This [2mins]
03-09 Spot the Pattern 6- Grouping Things [3mins]
03-10 Pro Tip- Use Productivity Tools [2mins]
03-11 LINQ Challenge Solution- Motorsport Scores [4mins]
03-12 Module Summary [1mins]
04 Unleashing the Power of Pipelines [35mins]
04-01 Module Introduction [1mins]
04-02 Transforming Elements [1mins]
04-03 Filtering Elements [3mins]
04-04 Reducing Sequences [2mins]
04-05 Generating Sequences [1mins]
04-06 Expanding Sequences [1mins]
04-07 Reordering Sequences [2mins]
04-08 The Power of Pipelines [1mins]
04-09 LINQ Challenge- Album Duration [4mins]
04-10 LINQ Challenge- Range Expansion [7mins]
04-11 Real World LINQ- Find in Files [4mins]
04-12 Real World LINQ- Parsing Log Files [4mins]
04-13 Real World LINQ- Validating Enums [2mins]
04-14 Module Summary [2mins]
05 Writing Clean and Readable Code [32mins]
05-01 Module Introduction [1mins]
05-02 Why Clean Code Matters [4mins]
05-03 LINQ Challenge- Sort by Age [5mins]
05-04 Demo- Cleaning Sort by Age [2mins]
05-05 LINQ Challenge- Bishop Moves [6mins]
05-06 Demo- Cleaning Bishop Moves [4mins]
05-07 Using the LINQ Query Expression Syntax [2mins]
05-08 LINQ Challenge- Longest Book [5mins]
05-09 Module Summary [3mins]
06 Extending LINQ [32mins]
06-01 Extending LINQ [1mins]
06-02 Demo- Creating an Extension Method [5mins]
06-03 Demo- Concatenating Strings [4mins]
06-04 LINQ Challenge- Counting Pets [6mins]
06-05 Introducing MoreLINQ- CountBy [3mins]
06-06 LINQ Challenge- Swim Length Times [6mins]
06-07 Demo- Using MoreLINQs Batch Method [2mins]
06-08 LINQ Challenge- Counting Consecutive Sales [3mins]
06-09 Module Summary [2mins]
07 Avoiding Unnecessary Work with Laziness [37mins]
07-01 Module Introduction [2mins]
07-02 Deferred Execution [5mins]
07-03 Demo- RSS Downloader [7mins]
07-04 Breaking out Early [2mins]
07-05 Avoiding Multiple Enumeration [6mins]
07-06 Multiple Enumeration and Databases [4mins]
07-07 Multiple Enumeration and Correctness [4mins]
07-08 Returning IEnumerable Sequences [5mins]
07-09 Module Summary [2mins]
08 Optimizing Performance [34mins]
08-01 Optimizing Performance [4mins]
08-02 When Should You Optimize [3mins]
08-03 Is LINQ Always the Right Choice [3mins]
08-04 Speeding up LINQ with PLINQ [3mins]
08-05 Understanding the Implementation [5mins]
08-06 Viewing LINQ Operator Source Code [2mins]
08-07 Optimizing LINQ to Entities [4mins]
08-08 Demo- Avoiding Returning Too Much Data [5mins]
08-09 Demo- Avoiding Select N+1 [3mins]
08-10 Module Summary [2mins]
09 Testing and Debugging Effectively [34mins]
09-01 Testing and Debugging Effectively [2mins]
09-02 Demo- Debugging LINQ Queries in Visual Studio [4mins]
09-03 Demo- Pipeline Tracing with Extension Methods [4mins]
09-04 Testing LINQ Queries [5mins]
09-05 Mocking Side Effects [3mins]
09-06 Testing LINQ to Entity Framework [2mins]
09-07 Exception Handling in LINQ Queries [4mins]
09-08 Demo- Suppressing Exceptions in LINQ Pipelines [5mins]
09-09 Demo- Implementing TrySelect [3mins]
09-10 Module Summary [2mins]
10 Working with Asynchronous Streams [28mins]
10-01 Module Introduction [2mins]
10-02 The Problem with Async Methods in LINQ Pipelines [2mins]
10-03 Introducing IAsyncEnumerable- [2mins]
10-04 Demo- Generating IAsyncEnumerable- [2mins]
10-05 Demo- Consuming IAsyncEnumerable- [1mins]
10-06 Demo- Cancelling IAsyncEnumerable- [3mins]
10-07 Using IAsyncEnumerable- in Pipelines [4mins]
10-08 Demo- Calling Async Methods in Pipelines [3mins]
10-09 Mixing Async with LINQ [2mins]
10-10 Demo- IAsyncEnumerable- in Action [2mins]
10-11 Demo- Using Parallel.ForEachAsync [3mins]
10-12 Module Summary [2mins]
11 Embracing a Functional Style [14mins]
11-01 Module Introduction [2mins]
11-02 Declarative Code [1mins]
11-03 Chaining Functions [2mins]
11-04 Higher Order Functions [2mins]
11-05 Being Lazy [1mins]
11-06 Avoiding Side Effects [3mins]
11-07 Course Summary [3mins]
[فارسی]
01 بررسی اجمالی دوره [2 دقیقه]
01-01 بررسی اجمالی دوره [2 دقیقه]
02 کشف قدرت LINQ [22 دقیقه]
02-01 معرفی دوره [1 دقیقه]
02-02 چرا LINQ عالی است [2 دقیقه]
02-03 عبارات لامبدا [1 دقیقه]
02-04 روشهای افزودنی [3 دقیقه]
02-05 انواع ناشناس [3 دقیقه]
02-06 نحو عبارت جستجو [2 دقیقه]
02-07 ژنریک و کلمه کلیدی بازده [3 دقیقه]
02-08 مجموعهها همه جا هستند [2 دقیقه]
02-09 معرفی LINQPad [2 دقیقه]
02-10 خلاصه ماژول [3 دقیقه]
03 تفکر در الگوها [33 دقیقه]
03-01 معرفی ماژول [2 دقیقه]
03-02 چالش LINQ 1- امتیازات ورزش موتوری [4 دقیقه]
03-03 نکته حرفه ای- افزونههای قابل شمارش را بشناسید [3 دقیقه]
03-04 مشاهده الگوی 1- فیلتر کردن [2 دقیقه]
03-05 الگوی 2 را پیدا کنید- یافتن یک مورد [3 دقیقه]
03-06 الگوی 3 را ببینید- برای همه چیز درست است؟ [3 دقیقه]
03-07 الگوی 4 را ببینید- تغییر شکل اجسام [4 دقیقه]
03-08 الگوی 5 را ببینید- چند نفر این را دوست دارند؟ [2 دقیقه]
03-09 الگوی 6 را مشخص کنید- چیزها را گروهبندی کنید [3 دقیقه]
03-10 نکته حرفه ای- از ابزارهای بهره وری استفاده کنید [2 دقیقه]
03-11 راه حل چالش LINQ- امتیازات ورزش موتوری [4 دقیقه]
03-12 خلاصه ماژول [1 دقیقه]
04 رها کردن قدرت Pipelines [35 دقیقه]
04-01 معرفی ماژول [1 دقیقه]
04-02 تبدیل عناصر [1 دقیقه]
04-03 فیلتر کردن عناصر [3 دقیقه]
04-04 کاهش توالی [2 دقیقه]
04-05 ایجاد توالی [1 دقیقه]
04-06 در حال گسترش دنبالهها [1 دقیقه]
04-07 ترتیب مجدد سکانسها [2 دقیقه]
04-08 قدرت Pipelines [1 دقیقه]
04-09 چالش LINQ- مدت زمان آلبوم [4 دقیقه]
04-10 چالش LINQ- گسترش محدوده [7 دقیقه]
04-11 پیوند دنیای واقعی- یافتن در فایلها [4 دقیقه]
04-12 Real World LINQ- تجزیه فایلهای گزارش [4 دقیقه]
04-13 Real World LINQ- اعتبارسنجی Enums [2 دقیقه]
04-14 خلاصه ماژول [2 دقیقه]
05 نوشتن کد تمیز و خوانا [32 دقیقه]
05-01 معرفی ماژول [1 دقیقه]
05-02 چرا کد پاک مهم است [4 دقیقه]
05-03 چالش LINQ- مرتبسازی بر اساس سن [5 دقیقه]
05-04 نسخهی نمایشی- مرتبسازی تمیز کردن بر اساس سن [2 دقیقه]
05-05 چالش LINQ- Bishop Moves [6 دقیقه]
05-06 نسخهی نمایشی- Cleaning Bishop Moves [4 دقیقه]
05-07 با استفاده از نحو بیان پرسش LINQ [2 دقیقه]
05-08 چالش LINQ- طولانیترین کتاب [5 دقیقه]
05-09 خلاصه ماژول [3 دقیقه]
06 در حال تمدید LINQ [32 دقیقه]
06-01 در حال تمدید LINQ [1 دقیقه]
06-02 نسخهی نمایشی- ایجاد یک روش برنامه افزودنی [5 دقیقه]
06-03 نسخهی نمایشی- رشتههای پیوسته [4 دقیقه]
06-04 چالش LINQ- شمارش حیوانات خانگی [6 دقیقه]
06-05 معرفی MoreLINQ- CountBy [3 دقیقه]
06-06 چالش LINQ- مدت زمان شنا [6 دقیقه]
06-07 نسخهی نمایشی- استفاده از روش دستهای MoreLINQs [2 دقیقه]
06-08 چالش LINQ- شمارش فروش متوالی [3 دقیقه]
06-09 خلاصه ماژول [2 دقیقه]
07 اجتناب از کار غیر ضروری با تنبلی [37 دقیقه]
07-01 معرفی ماژول [2 دقیقه]
07-02 اجرای معوق [5 دقیقه]
07-03 نسخهی نمایشی- RSS Downloader [7 دقیقه]
07-04 زود بیرون آمدن [2 دقیقه]
07-05 اجتناب از شمارش چندگانه [6 دقیقه]
07-06 شمارش چندگانه و پایگاه داده [4 دقیقه]
07-07 شمارش و صحت چندگانه [4 دقیقه]
07-08 بازگشت IEnumerable سکانس [5 دقیقه]
07-09 خلاصه ماژول [2 دقیقه]
08 بهینهسازی عملکرد [34 دقیقه]
08-01 بهینهسازی عملکرد [4 دقیقه]
08-02 چه زمانی باید بهینهسازی کرد؟ [3 دقیقه]
08-03 آیا LINQ همیشه انتخاب درستی است؟ [3 دقیقه]
08-04 افزایش سرعت LINQ با PLINQ [3 دقیقه]
08-05 درک پیادهسازی [5 دقیقه]
08-06 مشاهده کد منبع اپراتور LINQ [2 دقیقه]
08-07 بهینهسازی LINQ برای نهادها [4 دقیقه]
08-08 نسخهی نمایشی- اجتناب از بازگرداندن دادههای زیاد [5 دقیقه]
08-09 نسخه نمایشی- اجتناب از انتخاب N+1 [3 دقیقه]
08-10 خلاصه ماژول [2 دقیقه]
09 تست و رفع اشکال به طور موثر [34 دقیقه]
09-01 تست و رفع اشکال به طور موثر [2 دقیقه]
09-02 نسخهی نمایشی- اشکال زدایی پرس و جوهای LINQ در ویژوال استودیو [4 دقیقه]
09-03 نسخهی نمایشی- ردیابی Pipeline با روشهای پسوند [4 دقیقه]
09-04 تست جستجوهای LINQ [5 دقیقه]
09-05 اثرات جانبی تمسخر آمیز [3 دقیقه]
09-06 آزمایش LINQ به Entity Framework [2 دقیقه]
09-07 رسیدگی به استثناء در جستارهای LINQ [4 دقیقه]
09-08 نسخهی نمایشی- سرکوب استثناها در LINQ Pipelines [5 دقیقه]
09-09 نسخهی نمایشی- پیادهسازی TrySelect [3 دقیقه]
09-10 خلاصه ماژول [2 دقیقه]
10 کار با جریانهای ناهمزمان [28 دقیقه]
10-01 معرفی ماژول [2 دقیقه]
10-02 مشکل روشهای Async در LINQ Pipelines [2 دقیقه]
10-03 معرفی IAsyncEnumerable T [2mins]
10-04 نسخهی نمایشی- ایجاد IAsyncEnumerable T [2 دقیقه]
10-05 نسخهی نمایشی- مصرف IAsyncEnumerable T [1 دقیقه]
10-06 نسخه نمایشی- در حال لغو IAsyncEnumerable T [3 دقیقه]
10-07 استفاده از IAsyncEnumerable T در Pipelines [4 دقیقه]
10-08 نسخهی نمایشی- فراخوانی روشهای Async در Pipelines [3 دقیقه]
10-09 مخلوط کردن Async با LINQ [2 دقیقه]
10-10 نسخهی نمایشی- IAsyncEnumerable T در عمل [2 دقیقه]
10-11 نسخهی نمایشی- با استفاده از Parallel.ForEachAsync [3 دقیقه]
10-12 خلاصه ماژول [2 دقیقه]
11 استقبال از یک سبک کاربردی [14 دقیقه]
11-01 معرفی ماژول [2 دقیقه]
11-02 کد اعلامی [1 دقیقه]
11-03 عملکردهای زنجیرزنی [2 دقیقه]
11-04 توابع سفارش بالاتر [2 دقیقه]
11-05 تنبل بودن [1 دقیقه]
11-06 اجتناب از عوارض جانبی [3 دقیقه]
11-07 خلاصه دوره [3 دقیقه]
مارک هیث یک توسعه دهنده نرمافزار مستقر در ساوتهمپتون، انگلستان است که برای NICE Systems به عنوان یک معمار نرمافزار کار میکند که سیستمهای مدیریت شواهد دیجیتال مبتنی بر ابر را برای پلیس ایجاد میکند. او خالق NAudio، یک فریمورک صوتی منبع باز برای دات نت است. او علاقهمند به بهبود مستمر مهارتهای خود و آموزش توسعهدهندگان دیگر است و در سالهای اخیر بهویژه بر چالشهای ایجاد سیستمهای مقیاسپذیر و قابل اعتماد مستقر در Azure متمرکز شده است. او در اوقات فراغت (بسیار محدود) خود از ضبط استودیوهای خانگی، فوتبال و الهیات و گذراندن وقت با پنج فرزند بسیار پرانرژی خود لذت میبرد.