عنوان:

‫نقدی بر کتاب «مرجع کامل entity framework 4.1»


نویسنده: وحید نصیری
تاریخ: ۱۳۹۰/۰۵/۲۴ ۰۹:۱۵:۰۰
آدرس: www.dntips.ir

کتاب «مرجع کامل entity framework 4.1» نوشته‌ی آقای راد نزدیک به یک ماهی است که منتشر شده است. فرصتی پیدا شد تا این کتاب حدودا 260 صفحه‌ای را مطالعه کنم و در ادامه توضیحاتی را پیرامون آن مطالعه خواهید کرد.

بررسی کتاب

در عنوان کتاب ذکر شده «مرجع کامل»؛ ولی خوب، 260 نمی‌تونه مرجع کامل باشه. بنابراین کمی رعایت اعتدال در کارهای بعدی لازم به نظر می‌رسد. همچنین یک مورد را هم همیشه در نشر کتب تخصصی در نظر داشته باشید: «ذکر شماره نگارش محصول» مورد نظر در عنوان کتاب، خیلی سریع کار شما را از مد افتاده خواهد کرد. خیالتان راحت باشد تا یک سال دیگر همینطور این شماره‌ها افزایش پیدا می‌کنند. خریداری هم که آنچنان اطلاعاتی از کل کار نداشته باشد، بر اساس همین شماره و بدون مطالعه متن، از خرید کتاب امتناع خواهد کرد.

  • فصل اول این کتاب به معرفی تاریخچه‌ی EF و لزوم استفاده از آن می‌پردازد. همچنین خلاصه‌ای از قابلیت‌های آن‌را همانند روش‌های model first ، database first و code first بیان می‌کند.
  • تمرکز فصل دوم بر نحوه‌ی استفاده از روش‌های model first و database first است به همراه نحوه‌ی تولید اسکریپت بانک اطلاعاتی در حالت model first.
  • فصل سوم کتاب به مرور جزئیات طراح EF در ویژوال استودیو جهت کار بهتر با موجودیت‌ها اختصاص دارد.
  • در فصل چهارم با روش‌های کوئری نویسی در EF آشنا خواهید شد. همچنین بر روی مباحث اجرای به تعویق افتاده و مفهوم آن هم بحث شده که بسیار ارزشمند است.
  • فصل پنجم کتاب به مباحث ثبت، حذف و به روز رسانی اطلاعات توسط EF اختصاص دارد. همچنین یک سری مباحث همانند سطح اول caching در NHibernate که در EF هم وجود دارد، بررسی شده است که البته نام آن در اینجا Object state و entity state است.
  • در فصل ششم در مورد نحوه‌ی نگاشت رویه‌های ذخیره شده SQL Server به اشیاء دات نتی بحث شده همچنین نحوه‌ی اجرا و استفاده از آن‌ها
  • فصل هفتم کتاب به ارتباطات بین موجود‌یت‌ها یا همان مباحث one to many و امثال آن اختصاص دارد به همراه نحوه‌ی تنظیمات آن در طراح EF در VS.NET
  • در فصل هشتم، به قالب‌های T4 پرداخته شده. ابتدا معرفی، سپس آشنایی با Syntax و نهایتا نحوه‌ی دستکاری و سفارشی سازی قالب‌های پیش فرض T4 مرتبط با EF ارائه شده‌اند.
  • فصل نهم به بررسی کاملتر مبحث model first که در فصل دوم معرفی شده می‌پردازد. ایجاد موجودیت‌ها، نحوه‌ی تعریف ارتباطات و نهایتا ایجاد بانک اطلاعاتی از روی آن
  • فصل دهم آن به مباحث جدید EF در مورد Code first اختصاص دارد. این فصل واقعا ارزشمند است چون ... نتیجه‌ی تحقیق بوده نه ترجمه. تقریبا با تمام تاریخچه‌ی مرتبط با code first در EF، محل‌های دریافت فایل‌ها، ابزارهای کمکی، روش‌های کوئری گرفتن،نحوه‌ی ایجاد بانک اطلاعاتی از روی کد، تعیین اعتبار و غیره در طی یک فصل آشنا خواهید شد.
  • در فصل یازدهم آن مروری بر WCF Data services و پروتکل OData صورت گرفته است. نحوه‌ی ایجاد و سپس فراخوانی آن توسط یک کلاینت. در عنوان کتاب ذکر شده : «مرجع»، بنابراین به دنبال یک کتاب خودآموز قدم به قدم نباشید. این کتاب بیشتر به «معرفی» امکانات موجود در EF در طی 260 صفحه می‌پردازد که الزاما با توجه به تعداد صفحات کتاب، بعضی از موارد آن مانند این فصل آخر، از عمق لازم برخوردار نیستند ولی، حداقل سرنخ را به دست شما خواهند داد.


مزایا:
  •  به روز بودن مطالب آن
  •  آشنایی و تسلط مؤلف/مترجم به مطالبی که تهیه کرده. این مورد در فصل دهم آن مشهود است.
  •  زبان فارسی (بله! خیلی مهمه! هستند کسانی که چند گیگ، ببخشید چند صد گیگ (!)، eBook به زبان انگلیسی دارند ولی حتی یکی از آن‌ها را هم تمام نکرده‌اند)
  •  متن روان و سلیس
  •  کیفیت خوب کتاب، صفحه بندی و امثال آن


معایب:
  •  قیمت نزدیک به 8000 تومان برای کتاب 260 صفحه‌ای به نظر زیاد است. البته با بالا رفتن قیمت‌ها (برای مثال 4 برابر شدن قیمت یک عدد نان لواش از سال قبل تا به امسال!)، بالاخره ... خوب این مسایل را هم به همراه خواهد داشت.
  •  تصاویر موجود در کتاب عموما بیش از اندازه کوچک شده‌اند. این مورد خواندن تعدادی از آن‌ها را با مشکل مواجه کرده است.
  •  در مورد متد الحاقی معروف Include در EF من مطلبی را در این کتاب پیدا نکردم. این مورد به بحث عدم نیاز به join نویسی صریح در EF مرتبط می‌شود.
  •  در مورد نحوه‌ی استفاده از EF با سایر بانک‌های اطلاعاتی بحث نشده. کتاب فقط به SQL Server منحصر است.
  •  در یکی از فصل‌ها به الگوی Repository در حد نامبردن اشاره شده. این مورد برای خواننده‌ای که اطلاعاتی از موضوع ندارد، کافی نیست. می‌شد یک فصل را به آن اختصاص داد.


در کل خواندن کتاب «معرفی» EF 4.1 ، به کسانی که با Silverlight و WCF RIA Services سر و کار دارند (و کوئری‌های آن برایشان کمی گنگ است) و همچنین عموم علاقمندانی که می‌خواهند جایگزینی برای ADO.NET (در یک سطح بالاتر از آن البته) پیدا کنند توصیه می‌شود.



در حاشیه!

شاید بپرسید چرا این کتاب در 260 صفحه و چرا فقط در 1000 نسخه منتشر شده است. چرا اینقدر تعداد کتاب‌های تخصصی کم است. چرا بیشتر تمایل به چاپ کتاب‌های نصب ویندوز و امثال آن است تا مثلا کتاب EF 4.1 یا خدای نکرده NHibernate ! پاسخ هم در یک جمله خلاصه می‌شود: «نگرانی ناشر از بازگشت سرمایه»
این شما هستید که با پشتیبانی خود می‌توانید این امیدواری را به ناشرین کشور بدهید تا «جرات کنند» بیشتر به طرف کتاب‌های تخصصی بروند و این پشتیبانی با صرفا گفتن چقدر عالی، دست شما درد نکنه، خیلی خوب بود، باز هم از این کارها بکنید،‌ معنا پیدا نمی‌کند! باید لطف کنید و «خرید کنید». هیچ راه دیگری هم ندارد. الان چند عدد کتاب ASP.NET MVC 3.0 در کشور به زبان فارسی وجود دارد؟ چند عدد کتاب تخصصی SQL Server 2008 R2 را می‌توانید پیدا کنید؟ در مورد کتابخانه پردازش موازی دات نت 4 چطور؟ و ...
البته منهای نگرانی این بحث بازگشت سرمایه ، یک مورد دیگر هم سبب این نوع تاخیرها هست. یادم میاد کتاب الگوهای طراحی برنامه نویسی شیءگرا در سی شارپ رو که چند سال قبل به ناشر دادم نحوه‌ی پرداخت آن به این صورت بود: نزدیک به 10 درصد پشت جلد، در طی چند قسط، آن هم 6 ماه پس از انتشار عمومی کتاب! خوب همین شد که من دیگر به طرف این کار نرفتم. چون واقعا نوشتن، یک «کار» کامل است. باید وقت گذاشت (6 ماه حداقل یا بیشتر)، تحقیق کرد، ریاضت کشید و دست آخر 6 ماه پس از انتشار کتاب ... با توجه به اینکه کتاب رو که الان شما به دست ناشر می‌دید شاید یکسال دیگر منتشر شود (بسته به تعداد کاری که در دست دارد).
در هر حال، با تمام این تفاسیر، هستند کسانی که «امیدوارانه» نسبت به نوشتن کتاب‌های تخصصی مانند «مرجع کامل entity framework 4.1» اقدام می‌کنند و شما هم حداقل کاری که می‌توانید جهت حمایت از این نوع حرکات بکنید، «خرید است». در غیراینصورت مدام اینطرف اونطرف ننویسید که چرا کتاب WPF 4.0 یا WCF 4.0 به زبان فارسی نداریم. پشتیبانی نمی‌کنید؟! خوب ... نداریم! «همین!»
یک مورد دیگر هم هست البته. عده‌ای هستند که مثلا کلاس‌های میلیونی، جهت آموزش این مباحث برگزار می‌کنند. خوب این‌ها هم مسلما خوشحال نخواهند شد که مثلا کتاب WCF 4.0 و مباحث SOA مرتبط با آن به زبان فارسی منتشر شود یا حتی در این زمینه پیش قدم شوند. این هم هست!


نظرات

  • مهمان در ۱۳۹۰/۰۵/۲۴ ۰۹:۵۶:۰۱
    باید از آقای راد ممنون بود که با اوضاع تالیف در این حوزه ، دست به چنین کاری زده اند!برای شما و ایشون آرزوی موفقیت روز افزون میکنم.
    (در مورد نوشتن ویرایش محصول هم حق با شماست،متاسفانه بیشتر خریداران به طراحی جلد و جدید بودن کتاب توجه میکنند تا محتوای آن!کتابهای بسیاری هستند که باید گفت افتضا ترجمه شدند ولی فروش بدی نداشتند!)
  • مهمان در ۱۳۹۰/۰۵/۲۴ ۱۴:۱۰:۰۴
    مرسی وحید جان از نقد خوب و آگاهانت.
    قیمت 7800 تومانی به دلیل قیمت بالای کاغذ هست که باعث شده ناشران بسیاری متضرر بشن.
    در قسمت "در حاشیه" هم واقعاً حرف دل من رو زدی. شرایط کتاب حاضر دقیقاً همان طور هست که گفتی.
    سعی می کنم در ویرایش دوم نقایصی که گفتی رو بر طرف کنم.

    ممنون و موفق باشی.
  • مهمان در ۱۳۹۰/۰۵/۲۴ ۱۴:۳۸:۱۳
    سلام

    سایتی هست که بشه به صورت آنلاین کتاب و تهیه کرد
    در شهرستان این کتاب موجود نیست
    ممنون
  • مهمان در ۱۳۹۰/۰۵/۲۴ ۱۴:۴۳:۲۲
    بله. لینک به سایتی که نحوه ی خرید کتاب در اون هست توسط آقای نصیری در ابتدای پست ایشون آورده شده.
  • مهمان در ۱۳۹۰/۰۵/۲۵ ۱۳:۰۶:۲۶
    یه سوال
    چرا کتابهای زیادی در مورد Hibernate منتشر شده اما کتابهای NHibernate به تعداد انگشتان یک دست هم نمی رسه؟
    در مورد چاپ کتاب NHibernateتوی ایران هم فکر کنم کسی به جز شما این دانش رو (حداقل برای چاپ کتاب)نداشته باشه و دست خودتونو می بوسه!
  • وحید نصیری در ۱۳۹۰/۰۵/۲۵ ۱۴:۳۰:۱۶
    چون عموما تیم‌های سورس باز، از لشگر مستند ساز و مستند نویس مایکروسافت محروم هستند.
    برای مثال یادم هست زمانیکه سیلورلایت 5 بتا ارائه شد (چند وقت قبل)، همان روز حدود بالای 30 مقاله‌ی بلند بالا در مورد تازه‌های محصولی که دقیقا همان روز در یک کنفرانس برای اولین بار معرفی شده، مطلب منتشر شد. خوب ... این یک لشگر سازماندهی شده است. رقابت کردن با این‌ها سخت است.
    شما فکر می‌کنید کسانی که کتاب‌های بعدی سیلورلایت 5 را منتشر می‌کنند از کجا مطالب خودشون رو تامین می‌کنند؟ همین 30 تا مقاله رو کنار هم قرار می‌دهند با نگارش خودشون منتشر می‌کنند. راحت میشه نصف یک کتاب.
    NHibernate هم به همین صورت، این لشگر مستند ساز رو نداره. به علاوه خیلی اشتباه است اگر تصور کنید NHibernate همان Hibernate جاوا است. خیلی اضافات در NHibernate به دلیل پیشرفت‌های زبان‌های دات نتی وجود دارد که در Hibernate نیست (همین مباحث static reflection ، lambda expression ، LINQ و غیره). خلاصه اینکه NHibernate فقط یک معادل یک به یک، یکی از کتابخانه‌ها‌ی معروف جاوا نیست. شاید نگارش اول آن اینطور بوده.

    ضمنا فعلا شما همین کتاب EF 4.1 رو بخرید! اگر به چاپ دوم رسید یعنی می‌شود به انتشار کتاب‌های مشابه امیدوار شد!
  • مهمان در ۱۳۹۰/۰۵/۲۵ ۲۰:۵۳:۵۸
    از آخرین باری که کتاب ترجمه میخرم مدت زیادی میگذره
    بیشتر کتابهایی که ترجمه میشن معمولا بجای تسریع یادگیری دقیقا برعکس دست و پا گیر میشن
    چون مترجم(مولف) میاد تمام کلمات رو ترجمه میکنه در صورتی که بعضی کلمات هرچند معادل فارسی دارن ولی عنوان کردن اونا باعث گیج شدن و عدم فهم خواننده میشه
    یادم نمیره کتابی در رابطه با ویندوز XP خریدم یه بخشش این بود "سوزاندن سی دی" !!؟
    سوالم اینه اگه مثلا همون کلمات رو بدون ترجمه بیارن اجازه چاپ نمیگیرن ؟
    مثلا "رایت سی دی" یا "سولوشن ویژوال استادیو"
    تنها در صورتی کتابی رو خریداری میکنم که از اساتید یا دوستان اون کتاب رو خریده باشن و نداشتن چنین مواردی رو تائید کنن
    و اما پیشنهادی که برای دوستان مترجم و مولف دارم اینه که یک فصل(یا قسمتی از یک فصل) رو در قالب PDF برای دانلود بزارن تا تصمیم گیری راحتر باشه
    در آخر از آقای راد بابت تالیف و ترجمه این کتاب و از جناب نصیری بابت معرفی اون تشکر میکنم
    • حمیدرضا م در ۱۳۹۲/۱۱/۱۹ ۲۱:۵۹
      قدرت و تسلط مترجم خیلی مهمه ، مثلا ترجمه‌های انتشارات ناقوس در زمینه برنامه نویسی اغلب خیلی عالی هستند ولی انتشارات دیگر معمولا داغون ترجمه می‌کنن و کاملا مشخصه که خود مترجم توی زمینه مورد نظر اصلا تخصصی نداشته ...
  • مهمان در ۱۳۹۰/۰۵/۲۵ ۲۲:۵۹:۵۴
    با سلام و سپاس فراوان
    این سوالی که می خوام بپرسم نه ربطی به این مبحث داره نه به برنامه نویسی البته این جسارت را به خودم میدم که این سوال بی ربط به موضوع را بپرسم چون میبینم که دغدغه شما آموزش و یادگیری به دیگران است.
    می خوام آقای نصیری از شما که هم آگاه به مباحث کامپیوتری هستید و هم دستی در ترجمه کتاب و مقالات دارید بپرسم که چه مسیری را طی کنم تا بتنونم به چنین سطحی از زبان برسم که هم کتاب ها زبان اصلی را به راحتی بخونم و هم بتونم کتاب های تخصصی کامپیوتر را ترجمه کنم.(البته این را بگم که رشته خودم هم نرم افزار کامپیوتره)
    لطفا اگه زحمتی براتون نیست من را راهنمایی کنید.ممنون.
  • وحید نصیری در ۱۳۹۰/۰۵/۲۵ ۲۳:۵۸:۱۴
    درک مطلب در درجه‌ای اول به دامنه‌ی لغات شما وابسته است. دامنه‌ی لغات کتاب‌های فنی هم خوشبختانه زیاد وسیع نیست برای مثال نسبت به کتاب‌های رمان و ادبی و امثال آن. بنابراین باید شروع کنید به «خواندن». نه خواندن لغات لغتنامه که هیچ اثری ندارد. لغات را باید در متن یاد بگیرید. مثلا شروع کنید به وبلاگ انگلیسی خواندن. در این سایت OPML را جستجو کنید. تعداد زیادی فید سایت‌های مرتبط برنامه نویسی رو می‌تونید پیدا کنید. خلاصه کم کم به این ترتیب، البته نه از روی تفنن، بلکه به صورت جدی با یاد گرفتن روزی حداقل 10 واژه جدید، ظرف یکسال ترس شما از متون فنی انگلیسی خواهد ریخت.
  • مهمان در ۱۳۹۰/۰۵/۲۶ ۱۲:۱۱:۲۴
    آقای نصیری ضمن تشکر وقتی که مطلبی به زبان انگلیسی می خوانیم واژه هایی که مفهومش رو متوجه نمیشیم رو در دیکشنری بررسی می کنیم.

    حالا به نظر شما نگهداری این واژه ها برای مرور های بعدی چگونه باشد ؟

    ---

    پ ن 1 :  آخرین اشتراک‌ها و آخرین نظرها و  جستجو خیلی وقت ها بارگذاری نمی شوند.

    پ ن 2:در حال حاضر هیچ راهی برای تهیه کتاب الگوهای طراحی شما هست  ؟
  • وحید نصیری در ۱۳۹۰/۰۵/۲۶ ۱۲:۲۲:۱۸
    - نگهداری این‌ها باید در مغز باشد ! :) به علاوه هستند یک سری برنامه مانند این: http://wordsremind.codeplex.com/
    - می‌تونید با کمیته‌ی فیلترینگ در این زمینه هماهنگ کنید که چرا تمام آدرس‌های بلاگر را فیلتر کرده. از فید نظرات تا خود وبلاگ‌ها تا همه چیز در همه جا ... چند هزار یا چند صد هزار وبلاگ. مشکل از اینجا است.
    - اطلاعی ندارم (کار پخش با انتشارات بود). لطفا با انتشارات ناقوس تماس بگیرید (یا درخواست خرید آنلاین بدید ... در سایت آن‌ها).


    درخواست:
    لطفا از موضوع بحث خارج نشوید. طبق عادت متداول این سایت کلیه مطالب خارج از عنوان حذف می‌شوند.
  • مهمان در ۱۳۹۰/۰۶/۰۵ ۱۵:۳۰:۲۳
    سلام
    مطلب مفیدی بود ولی قابل ذکر در سال 1385 اولین کتاب AJax رو با زحمت زیاد نوشتم تا بالاخره در سال 86 چاپ شد . این کتاب من یک اثر تالیفی بود نه ترجمه و زحمت زیادی برای آن کشیده بودم.
    اما متاسفانه ناشر به صورت صفحه ای و با قیمتی بسیار نازل کتاب و حق انتشار آن را از من خرید . راه دیگه ای نداشتم.
    بعدها کتاب جببی ویندزو 7 را نوشتم . که خودم زیاد از آن راضی نبودم .
    کتاب سیلور لایت 3 را در سال 88 در حین خدمت نوشتم که هیچ ناشری حاضر به چاپ این کتاب ارزشمند نشد . اصلا نمی دانستند این سیلورلایت خوردنیه یا پوشیدنی !!
    ولی نا امید نشدم و شروع به نوشتن کتاب برنامه نویسی اندروید کردم اما با افزایش احتمال ناکامی در این زمینه سرد شدم و تقریبا کار رو رها کردم.
    مثل من کم نیستند کسانی که علاقه به پیشرفت و گسترش دانسته های خودشون دارن ولی متاسفانه هیچ حرکتی برای تشویق نه بلکه برای رفع موانع در سر راه چاپ کتاب های تخصصی صورت نمی گیرد .
  • علیرضا اسم‌رام در ۱۳۹۱/۰۷/۰۶ ۲۲:۳۳
    با سلام، به بهانه کتاب جدید آقای راد و به همت لوسین این مطلب را امروز خواندم.
    کتاب شی گرایی شما در دانشگاه به عنوان مرجع فارسی تدریس می‌شود. البته کمی طرح روی جلد آن تغییر کرده است. گفتم در جریان باشید.
    با آرزوی موفقیت برای شما
  • مهمان در ۱۳۹۱/۰۷/۱۲ ۱:۱۰
    کتاب خوبیه
    ممنون از این نقد منصفانه
  • حمیدرضا م در ۱۳۹۲/۱۱/۱۹ ۲۱:۵۶
    باسلام.
    با تشکر از جناب راد بابت کتاب خوبشون.
    این کتاب بسیار عالی است فقط چند مورد زیر جهت بهبود و تکمیل کتاب پیشنهاد می‌گردد:

    1- خیلی مقدمه چینی داره و از نظر بنده حقیر نیاز نبوده و صرفا مستقیم اگر می‌رفتند سر اصل مطلب و نحوه استفاده در پروژه رو بصورت تصویری و عملی می‌گفتند خیلی بهتر بود.
    ابتدای کتاب و مقدمه چینی‌های زیاد آن آدم و خسته می‌کنه.

    2- مثال در زمینه کد نویسی lambda و  linq خیلی کم است و جای خالی چند مثال عملی (پروژه واقعی) خوب به شدت حس می‌شود.
    به شخصه دوست داشتم چند مثال خیلی خوب عملی از روش first Database و first code ببینم که متاسفانه وجود نداشت.

    البته این نظر بنده است و بنده در سطحی نیستم که درباره کتاب جناب راد فکر کنم (چه برسه به نظر دادن) و خودم رو در چنین سطحی نمی‌بینم.
    صرفا در جهت پیشنهاد و در جهت کمک به بهتر شدن کتاب عرض کردم.
    تقریبا بیشتر کتاب‌های جناب راد را دارم و به شخصه E.F رو از روی همین کتاب یاد گرفتم و این کتاب مرجع آموزش E.F برخی از اساتید مجتمع فنی تهران نیز می‌باشد که همانا نشان از سطح بسیار خوب این کتاب دارد.
    مشتاقانه در انتظار انتشار کتاب‌های دیگری از جناب راد در زمینه هایی همچون "برنامه نویسی پروژه‌های بزرگ بصورت چند لایه" و یا Nuget (بهترین پلاگین‌های آن) می‌باشم.
    (جای خالی همچین کتابهایی واقعا خالیه)

    *در تایید حرف‌های جناب نصیری هم باید عرض کنم که بنده شخصا چنین کتابی اگر به پستم بخوره حتما یکیشو می‌خرم و جالب اینه که بنده کتاب E.F رو که می‌خواستم بخرم ، توی بازار هیچی نبود!
    به انتشارات که مراجعه کردم دقیقا آخرین کتاب به بنده رسید :دی
    (البته داستانش طولانیه که چطوری یک کتاب رو برای بنده نگهداشته بودند و تونستم آخرین نسخه موجود رو بخرم :دی )
    خدا قوت
    یا حق
    • محسن خان در ۱۳۹۲/۱۱/۲۰ ۰:۵

      2 سال گذشته از نگارش این مطلب. شاید بد نباشه code first رو از اینجا شروع/مطالعه کنید:

      https://www.dntips.ir/post/831/ef-code-first-1