PDA

View Full Version : مفهوم Unit Of Work و نحوه عملکرد



jaykob
دوشنبه 12 خرداد 1393, 12:14 عصر
سلام

من دنبال آموزش Unit Of Work هستم این تاپیک (http://barnamenevis.org/showthread.php?441496-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%DB%8C%DA%A9-%D9%BE%D8%B1%D9%88%DA%98%D9%87-MVC-%D8%A8%D8%A7-%D8%A8%D9%87-%DA%A9%D8%A7%D8%B1%DA%AF%DB%8C%D8%B1%DB%8C-%D8%A7%D9%84%DA%AF%D9%88%DB%8C-Unit-of-work-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-Structuremap-%DA%86%D9%86%D8%AF-%D9%84%D8%A7%DB%8C%D9%87) رو هم خوندم اما چیزی از مفهوم و اینکه اصلا Unit of Work چی کار انجام می ده متوجه نشدم . سوالم اینکه که Unit Of Work دقیقا چیکار می کنه ؟ چه مزایایی داره ؟ و کجاها بهتره استفاده بشه و کجاها نشه ؟

ممنون

hp1361
دوشنبه 12 خرداد 1393, 15:37 عصر
سلام

به زبان ساده : شما در برنامه خودتون قراره شماره شناسایی کالایی رو از کاربر بگیرید،ببینید در بانکتون همچین چیزی دارید، مشخصات کالا رو واکشی کنید، بعد نمایش سفارشی رو ثبت کنید و در بانک ذخیره کنید. در این میان به اطلاعات کاربر هم نیاز دارید.

یه روش اینه که : یک کانکشن به بانک بزنید و اطلاعات رو به کاربر نمایش بدید. دوباره کانکشنی بزنید و اطلاعات کاربر رو بگیرید و دوباره کانکشنی بزنید و ثبت کالا رو انجام بدید.
روش دیگه اینه که : همه این کارها رو (البته اونایی که قابلیت همروندی رو دارند) صرفا با یک کانکشن به بانک انجام بدیم

به این میگن انجام عملیات بصورت یک واحد کاری. یعنی تمام عملیاتی که مربوط به بک واحد کاری هستند رو صرفا در یک مرتبه و با یک کانکشن زدن انجام بدیم!

jaykob
دوشنبه 12 خرداد 1393, 16:45 عصر
خیلی خیلی ممنون از توضیح خوبتون . پس تاثیر زیادی در سرعت واکشی اطلاعات و اکثر کارها داره . امکانش وجود داره یک مثالی البته با توضیح بزنید اگر وقت دارید که چطور در یک پروژه پیاده سازیش کنیم چون اون تاپیک بیشتر آدم رو سردرگم می کنه تا چیزی یاد بگیریم ؟ البته من با EF Code First آشنایی دارم و اطلاعات اولیه ای مثل لایه Domain Class , Datalayer دارم و بلدم یک پروژه ساده رو بسازم و Migration رو فعال کنم و چند مورد ساده دیگه . تشکر برای این وقتی که می زارید کافی نیست ، دعاتون می کنیم ...

hp1361
دوشنبه 12 خرداد 1393, 22:31 عصر
سلام

به نظر من لازم نیست کار خاصی انجام بدید. دقیقاً همون کدهایی که در مورد UOW آقای نصیری وارد کردن رو وارد کنید و ازش استفاده کنید

شما صرفا باید تغییرات رو در DomainClasess و Services بدید. که شامل تعریف Entity با توجه به برنامه خودتون و نیز تعریف Interface های مورد نیاز در Services هستش و البته پیاده سازی کلاسش.

بنظرم مثال سایت دانلود کتاب خوب چیزیه. انجام بدید و کدهاش رو بزارید.هرجاش مشکل بود با کمک دوستان و البته من ایشالا جلو میریم