A guide for .NET Developers
Iaac Abraham

#F#
#MVP
#.NET
#JSON
#XML
#CSV
#HTML
🚀 کتاب Get Programming with F# یه راهنمای عالی برای برنامهنویسهای .NET هست که میخوان مهارتهاشون رو با اضافه کردن چاشنی برنامهنویسی فانکشنال ارتقا بدن. این کتاب توی ۴۳ درس کوتاه و جمعوجور بهت یاد میده چطوری از F# برای انجام کارهای روزمره توی اکوسیستم .NET استفاده کنی. چون مثالها توی همون محیط آشنای Visual Studio هستن، از همون لحظه اول باهاش احساس راحتی میکنی. مثالهای روشنگر و کیسهای واقعی این کتاب جوری طراحی شدن که بعد از خوندنش از خودت میپرسی چرا چند سال پیش سراغ F# نرفتی!
✨ ویژگیهای کلیدی
• نوشتن برنامههای بدون باگ: یاد میگیری چطوری از قابلیتهای زبان برای حذف خطاهای رایج استفاده کنی.
• سادهسازی کارهای تکراری: تبدیل وظایف خستهکننده به کدهای سریع و کوتاه.
• کار با دیتا: هندل کردن فرمتهای JSON، CSV، XML و HTML با کمترین میزان کدنویسی.
• یکپارچگی کامل: ترکیب راحت F# با پروژههای فعلی C# و VB.NET.
💡 درباره تکنولوژی و کتاب
برنامههای .NET ما باید برای طولانیمدت درست کار کنن. ترکیب منحصربهفرد برنامهنویسی فانکشنال و امپراتیو توی F#، باعث میشه کدی بنویسی که هم الان عالی عمل کنه و هم با تغییر نیازها، نگهداریش راحت باشه. این کتاب با رویکرد تمرینمحور طراحی شده تا با ۴۳ درس و کلی تمرین، اصول FP رو توی گوشت و پوستت نهادینه کنه.
🎯 این کتاب برای چه کسایی مناسبه؟
این کتاب مخصوص برنامهنویسهای سطح متوسط C# و VB.NET نوشته شده که هیچ تجربهای در F# ندارن اما میخوان کدهای مطمئنتر و شفافتری بزنن.
📑 فهرست مطالب
بخش ۱ - F# و ویژوال استودیو
بخش ۲ - سلام F#
4. کم حرف بزن، زیاد کار کن (ایجاز در کد)
5. اعتماد به کامپایلر
6. کار با دادههای تغییرناپذیر
7. عبارتها در برابر دستورات (Expressions vs Statements)
8. پروژه پایانی بخش اول
بخش ۳ - انواع داده و توابع
9. شکلدهی به دادهها با Tupleها
10. مدلسازی داده با Recordها
11. ساخت توابع ترکیبپذیر
12. سازماندهی کد بدون استفاده از کلاس
13. دستیابی به قابلیت بازاستفاده کد در F#
14. پروژه پایانی بخش دوم
بخش ۴ - کالکشنها در F#
15. کار با مجموعهها در F#
16. توابع کاربردی برای کار با کالکشنها
17. نقشهها، دیکشنریها و ستها
18. مسیر موفقیت با استفاده از تابع Fold
19. پروژه پایانی بخش سوم
بخش ۵ - گودال موفقیت با سیستم تایپ F#
20. جریان برنامه در F#
21. مدلسازی روابط در F#
22. اصلاح اشتباه میلیارد دلاری (مدیریت Null)
23. تبدیل قوانین بیزنس به کد
24. پروژه پایانی بخش چهارم
بخش ۶ - زندگی در پلتفرم .NET
25. استفاده از کدهای C# در F#
26. کار با پکیجهای NuGet
27. در دسترس قرار دادن توابع و تایپهای F# برای C#
28. معماری اپلیکیشنهای ترکیبی (چندزبانه)
29. پروژه پایانی بخش پنجم
بخش ۷ - کار با دادهها
30. معرفی تایپ پرووایدرها (Type Providers)
31. ساخت شمای داده از روی دادههای زنده
32. کار با SQL
33. ساخت API بر پایه تایپ پرووایدرها
34. استفاده از تایپ پرووایدرها در دنیای واقعی
35. پروژه پایانی بخش ششم
بخش ۸ - برنامهنویسی وب
36. ورکفلوهای ناهمگام (Asynchronous)
37. ارائه دادهها روی پروتکل HTTP
38. مصرف دادههای HTTP
39. پروژه پایانی بخش هفتم
بخش ۹ - یونیت تست
40. تست واحد در F#
41. تست مبتنی بر ویژگی (Property-based Testing)
42. تست برنامههای وب
43. پروژه پایانی بخش هشتم
بخش ۱۰ - قدم بعدی کجاست؟
✍️ درباره نویسنده
اسحاق آبراهام (Isaac Abraham): اسحاق از زمان معرفی نسخه ۱.۰ داتنت، توسعهدهنده این پلتفرم بوده و MVP زبان F# هست. اون تخصص ویژهای توی پردازش ابری و دادههای توزیعشده داره و در حال حاضر مدیر شرکت Compositional IT هست.
Summary
Get Programming with F#: A guide for .NET Developers shows you how to upgrade your .NET development skills by adding a touch of functional programming in F#. In just 43 bite-sized chunks, you'll learn how to use F# to tackle the most common .NET programming tasks. Examples use the familiar Visual Studio environment, so you'll be instantly comfortable. Packed with enlightening examples, real-world use cases, and plenty of easy-to-digest code, this easy-to-follow tutorial will make you wonder why you didn't pick up F# years ago! Forewords by Dustin Campbell of Microsoft and Tomas Petricek of fsharpWorks.
About the Technology
Your .NET applications need to be good for the long haul. F#'s unique blend of functional and imperative programming is perfect for writing code that performs flawlessly now and keeps running as your needs grow and change. It takes a little practice to master F#'s functional-first style, so you may as well get programming!
About the Book
Get Programming with F#: A guide for .NET developers teaches F# through 43 example-based lessons with built-in exercises so you can learn the only way that really works: by practicing. The book upgrades your .NET skills with a touch of functional programming in F#. You'll pick up core FP principles and learn techniques for iron-clad reliability and crystal clarity. You'll discover productivity techniques for coding F# in Visual Studio, functional design, and integrating functional and OO code.
What's Inside
About the Reader
Written for intermediate C# and Visual Basic .NET developers. No experience with F# is assumed.
Table of Contents
Unit 1 - F# AND VISUAL STUDIO
Lesson 1 - The Visual Studio experience
Lesson 2 - Creating your first F# program
Lesson 3 - The REPL-changing how we develop
Unit 2 - HELLO F#
Lesson 4 - Saying a little, doing a lot
Lesson 5 - Trusting the compiler
Lesson 6 - Working with immutable data
Lesson 7 - Expressions and statements
Lesson 8 Capstone 1
Unit 3 - TYPES AND FUNCTIONS
Lesson 9 - Shaping data with tuples
Lesson 10 - Shaping data with records
Lesson 11 - Building composable functions
Lesson 12 - Organizing code without classes
Lesson 13 - Achieving code reuse in F#
Lesson 14 - Capstone 2
Unit 4 - COLLECTIONS IN F#
Lesson 15 - Working with collections in F#
Lesson 16 - Useful collection functions
Lesson 17 - Maps, dictionaries, and sets
Lesson 18 - Folding your way to success
Lesson 19 - Capstone 3
Unit 5 - THE PIT OF SUCCESS WITH THE F# TYPE SYSTEM
Lesson 20 - Program flow in F#
Lesson 21 - Modeling relationships in F#
Lesson 22 - Fixing the billion-dollar mistake
Lesson 23 - Business rules as code
Lesson 24 - Capstone 4
Unit 6 - LIVING ON THE .NET PLATFORM
Lesson 25 - Consuming C# from F#
Lesson 26 - Working with NuGet packages
Lesson 27 - Exposing F# types and functionsto C#
Lesson 28 - Architecting hybrid language applications
Lesson 29 - Capstone 5
Unit 7 - WORKING WITH DATA
Lesson 30 - Introducing type providers
Lesson 31 - Building schemas from live data
Lesson 32 - Working with SQL
Lesson 33 - Creating type provider-backed APIs
Lesson 34 - Using type providers in the real world
Lesson 35 - Capstone 6
Unit 8 - WEB PROGRAMMING
Lesson 36 - Asynchronous workflows
Lesson 37 - Exposing data over HTTP
Lesson 38 - Consuming HTTP data
Lesson 39 - Capstone 7
Unit 9 - UNIT TESTING
Lesson 40 - Unit testing in F#
Lesson 41 - Property-based testing in F#
Lesson 42 - Web testing
Lesson 43 - Capstone 8
Unit 10 - WHERE NEXT?
Appendix A - The F# community
Appendix B - F# in my organization
Appendix C - Must-visit F# resources
Appendix D - Must-have F# libraries
Appendix E - Other F# language feature
Isaac Abraham is an F# MVP and a .NET developer since .NET 1.0 with an interest in cloud computing and distributed data problems. He lives in both the UK and Germany, and is the director of Compositional IT.



