C# in Depth 3rd Edition
این کتاب راجع به #C از نسخهی 2 تا جدیدترین نسخهی آن است. در این کتاب C# 1 به ندرت مورد بحث قرار گرفته است و فقط کتاب خانههای NET Framework. و زبان اجرایی مشترک (CLR) که مرتبط با این زبان هستند پوشش داده شده اند. من این کار را تعمدا انجام دادم و نتیجه این شد که این کتاب با بیشتر کتابهای #C و NET. که من دیده ام کمی متفاوت باشد.
با تصور داشتن دانش خیلی خوبی از C# 1، من از نوشتن صدها صفحه و تکرار موضوعاتی که فکر میکردم بیشتر افراد از آن مطلع هستند، اجتناب کردم. همین کار باعث شد که فضای بیشتری در اختیار داشته باشم تا بتوان جزئیات بیشتری از آخرین نسخههای #C را مورد بررسی قرار دهم و امیدوارم به شما هم به همین دلیل این کتاب را مطالعه میکنید. هنگامی که من اولین ویرایش این کتاب را نوشتم؛ بیشتر ویژگیهای جدید C# 2 برای بسیاری از خوانندگان نا آشنا بود؛ اما امروزه بیشتر توسعه دهندگان #C تجربهی کار با ویژگیهای معرفی شده در C# 2 را دارند، اما من هنوز هم آن مطالب را بیان کرده ام؛ چرا که پایه و اساس ویژگی هایی هستند که بعدها معرفی شده اند.
اگر شما توسعه دهندهی NET. هستید بدون شک از #C برای ساخت برنامههای حرفه ای تجاری و یا برنامههای خیلی جمع و جور و کوچک استفاده میکنید. در C# 5 شما کارهای خارق العاده ای با استفاده از generics، Lambda Expression، Dynamic Typing، LINQ، Iterator Blocks و امکانات دیگر انجام خواهید داد. اما قبل از انجام هر کاری، ابتدا باید آن را به صورت عمقی یاد بگیرید.
ویرایش سوم کتاب C# in Depth، به طور کامل بازنگری شده تا امکانات جدید C# 5 را پوشش دهد؛ از جمله بیان پیچیدگیهای خاص نوشتن کدهای نامتقارن قابل نگهداری. شما زمانی قدرت #C را در عمل مشاهده خواهید کرد که بتوانید با امکانات بی شمار #C در عمل کار کنید و از داشتن آنها در چنتهی خود خوشحال باشید.
در این کتاب من فرض کردم که شما کتاب #C قبلی خود را خورده اید! و اکنون به دنبال مطالب بیشتری هستید. در نتیجه این کتاب به تازه کاران در #C اصلا توصیه نمیشود.
سرفصلهای کتاب C# in Depth 3rd Edition:
1) The changing face of C# development
2) Core foundations: building on C# 1
3) Parameterized typing with generics
4) Saying nothing with nullable types
5) Fast-tracked delegates
6) Implementing iterators the easy way
7) Concluding C# 2: the final features
8) Cutting fluff with a smart compiler
9) Lambda expressions and expression trees
10) Extension methods
11) Query expressions and LINQ to Objects
12) LINQ beyond collections
13) Minor changes to simplify code
14) Dynamic binding in a static language
15) Asynchrony with async/await
16) C# 5 bonus features and closing thoughts