صفحه 2 از 5 اولاول 1234 ... آخرآخر
نمایش نتایج 41 تا 80 از 163

نام تاپیک: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

  1. #41
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    در برنامه نویس دات ارگ
    پست
    39

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    با Web Service یا WCF میشه تا حد زیادی به این امر دست یافت .

  2. #42

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    با ویندوز هم کارای زیادی میشه انجام داد...

    توضیح بده iroonidotnet
    پ ن: این پست به نظرم بیشتر Off-Topic هستش ...
    در صورت خروج از بحث، تذکر بدین
    با تشکر

  3. #43
    کاربر تازه وارد آواتار hosseinsinohe
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    WWW
    پست
    72

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    Web Service در حقیقت میتونه پیاده سازی Bussiness Layer باشه.(واسط بین DAL و UI)

  4. #44
    VIP
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    نقل قول نوشته شده توسط h.jaza مشاهده تاپیک
    چطور میشه امنیت DAL رو تضمین کرد یعنی از UI اساسا نشه به DAL دسترسی پیدا کرد؟

    راه حل شما چیه؟

    آیا صرفا اینکه ما خودمون نریم سراغش، تضمینی به ما میده؟ (نه)

    پ ن: اگر از بحث دارم خارج می شم، تذکر بدین...
    با تشکر
    اگه درست متوجه شده باشم شما نمیخواین کسی بدون اجازه از یک اسمبلی استفاده کنه؟
    اگر جواب مثبت هست:
    این مسله ای که شما مطرح میکنید مربوط میشه به امنیت اسمبلی که فقط مختصDALوBLL نیست و راهکارهای مختلفی داره و در همین سایت هم راجع بهش زیاد صحبت شده.

  5. #45

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    Web Service در حقیقت میتونه پیاده سازی Bussiness Layer باشه.(واسط بین DAL و UI)
    من فکر می کنم کار Web service یک چیزه دیگه باشه !
    و کمتر به عنوان Bussiness Layer استفاده میشه !
    معمولا یک DAL,BLL,WSL رو در کنار هم داریم !
    (داریم از بحث اصلی تاپیک خیلی دور میشیم !!)
    فکر کنم اگه بریم سره یک مثال عملی محوریت کار بیشتر حفظ میشه !!
    خواستن ، توانتستن است !!!

  6. #46

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    هدف من از طرح مسائل گفته شده، بیشتر رسیدن به این معاریه:

    و امثال اون و شرح جزئیات آونه ...

    ولی اگر باعث خروج از بحث میشه، تذکر بدین ...

    با تشکر

  7. #47
    VIP
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    نقل قول نوشته شده توسط amin_alexi مشاهده تاپیک
    من فکر می کنم کار Web service یک چیزه دیگه باشه !
    و کمتر به عنوان Bussiness Layer استفاده میشه !
    اتفاقا من فکر میکنم که Web service هدفش ایجاد یک لایه میانی جهت استفاده از منابع اشتراکی هست.

  8. #48

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    فاقا من فکر میکنم که Web service هدفش ایجاد یک لایه میانی جهت استفاده از منابع اشتراکی هست.
    دقیقا !!
    اما این به این معنا نیست که به عنوان BLL استفاده بشه !
    معمولا یکی از مهمترن موارد استفاده از WebService در مواقعی است که سیستم ما یک سیستم توزیع شده باشه و ما دارای چندین BLL باشیم در این مواقع یکی از بهترین راه حل ها استفاده یک لایه به عنوان Web Service بین لایه UI و لایه BLL (که در حقیقت از چندین BLL تشکیل شده) می باشد که با این کار پیچیدگی دسترسی به اطلاعات رو برای لایه UI کمتر میکنه !
    خواستن ، توانتستن است !!!

  9. #49
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    در برنامه نویس دات ارگ
    پست
    39

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    بسم الله الرحمن الرحیم
    با سلام خدمت تمامی دوستان عزیز
    تا به این مرحله همه دوستان نظرات خود رو در باره معماری چند لایه ارائه دادن . و دوست عزیزمون جناب مهندس مداح در هر مرحله نتیجه گیری کلی از بحث دوستان رو به صورت نکته وار بیان کردن . در این مرحله که نیاز به یک نمونه برنامه برای یادگیری هرچه بیشتر این معماری احساس می شد . بنده تصمیم گرفتم که با ارائه یک نمونه ای کوچک و ساده کمکی هرچند کوچک به افرادی که به تازگی با این معماری آشنا شدن کرده باشم.
    با مشورتی که صورت گرفت قرار شد یک نمونه بصورت ساده ارائه شود و پس از اشکال زدایی و بهبود آن از طرف دوستان برنامه نویس ، در مراحل بعدی این نمونه ارتقاع پیدا کند و با افزودن فناوری های جدید به آن ، به یک نمونه کامل تبدیل گردد.در این نمونه کوچک تصمیم داریم با استفاده از معماری چند لایه برای مشخصات افراد یک فرم ایجاد کنیم.
    طرز ایجاد این پروژه رو به اختصار توضیح میدم و اگر دوستان خواستند کد ها (هر چند که واضح اند) رو شرح خواهم داد و انشا الله دوستان در بر طرف کردن نواقص و بهبود این نمونه همکاری خواهند کرد.
    1)یک پروژه ویندوزی با نام SimpleN-Tier را ایجاد کرده
    2)برای ایجاد لایه ی داده (DataAccessLayer ) بر روی SimpleN-TierSolution راست کلیک کرده و از قست Add زیر منوی New Project … را انتخاب کرده و در فرم جدید بر روی Class Library کلیک کنید و در قسمت Name نام لایه داده خود را تایپ کرده و Ok را کلیک کنید . شما موفق به ایجاد لایه داده شده اید . ما در این قسمت برای هر موجودیت (فرم یا جدول یا ...) یک کلاس ایجاد می کنیم و در آن عملیات درج و حذف و بروز رسانی و انتخاب را قرار میدهیم . در این نمونه ما این عملیات را با استفاده از Stored Procedure انجام میدهیم. (کلاس ایجاد شده را با نام Class1 را حذف کنید)
    3)حالا نوبت به ایجاد لایه منطق (BusinesseLogicLayer ) می باشد که مراحل آن دقیقا مانند لایه داده می باشد . بعد از اینکه موفق به ایجاد لایه منطق شدید . باید بتوانید بین لایه منطق و لایه داده ارتباط برقرار کنید .( همانطور که میدانید لایه منطق از لایه داده درخواست انجام عملیات درج و ... را میکنید .)برای اینکه لایه منطق بتواند به لایه داده دسترسی داشته باشد ، در لایه منطق بر روی References راست کلیک کرده و بر روی زیر منوی Add Reference کلیک کرده و در فرم ظاهر شده بر روی تب Projects رفته و در این صفحه لایه داده خود را انتخاب و بر روی Ok کلیک کنید . حالا شما میتوانید در لایه منطق از لایه داده استفاده کنید .(کلاس ایجاد شده را با نام Class1 را حذف کنید)

    نکته : در زمان بار کردن یک DLL ، سیستم عامل تلاش می کند تا آن را در آدرس پایه ای که در DLL مشخص شده است ، قرار دهد . اگر این آدرس توسط قطعه ای دیگر اشغال شده باشد ، سیستم باید عملیات تصحیحی لازم برای پیدا کردن یک بخش خالی دیگر در حافظه و قرار دادن DLL در آدرس جدید را انجام دهد . هر بار که یکDLL بار می شود این فرایند از نو تکرار می شود. برای اینکه این مشکل حل شود می توان یک آدرس پایه یکتا را به یک DLLنسبت داد . که در این صورت دیگر هزینه تصحیح را نخواهیم داشت. در C#‎‎.Net میتوان ازفضای آدرس های بین &H004000000 و &H800000000 استفاده کرد.
    برای این کار بر روی نام پروژه ی BusinesseLogicLayer راست کلیک کرده و زیر منوی Properties را انتخاب کرده و به قسمت Build رفته و بر روی دکمه Advanced کلیک کرده و در
    فرم ظاهر شده مقدار فیلد DLL Base Address را به 0x11280000 تغییر دهید .

    4)لایه نمایش همان لایه است که در ابتدا هنگام ایجاد پروژه بصورت خود کار به پروژه شما افزوده شد . (SimpleN-Tier) . همانطور که می دانید لایه نمایش باید به لایه منطق (BusinessLogicLayer ) دسترسی داشته باشد . بدین منظور همان کاری که در مرحله قبل صورت گرفت را تکرار می کنیم تا لایه نمایش بتواند به لایه منطق دسترسی داشته باشد.
    5)در آخر باید در لایه نمایش بر روی نام پروژه SimpleN-Tier راست کلیک کرده و از زیر منوی گزینه Set as startup project را انتخاب کنید. حالا مراحل ایجاد یک پروژه 3 لایه به پایان رسید
    . کد های نمونه برنامه تا حد زیادی قابل فهم و واضح می باشد . دوستان اگر در جایی مشکل داشتن مطرح کنند تا رفع ابهام شود یا در صورت لزوم کد ها اصلاح شود. فایل های دیتابیس همراه این پروژه قرار داده شده است.

    با تشکر

    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله iroonidotnet : سه شنبه 07 مهر 1388 در 19:07 عصر

  10. #50

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    دوستان حال بر روی مثالی که کازیز iroonidotnet ارسال کردند بحث می کنیم،
    لطفا" از ارسال پروژه خودداری نمایید و فعلا" تنها بر روی همین پروژه گفتگو نمایید،
    هر زمان هم نیازی به تغییر در پروژه بود، کاربر iroonidotnet تغییران لازم را اغمال و پروژه جدید را آپلود می کنند،
    از ایشان به خاطر این ارسال سپاسگزارم،/
    I've just started tweeting!
    @Alireza_Maddah

  11. #51
    کاربر دائمی آواتار esmaeily-hosein
    تاریخ عضویت
    مهر 1385
    محل زندگی
    شهر دودها
    پست
    227

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    من نیز دانلود کردم ،
    مشکلات :
    نبود لایه Common یا transfer object در لایه بندی .
    نحوه پاس دادن مقادیر بین لایه ها اصلا صحیح نیست . (اگر جدولی 20 فیلد داشته باشد یعنی 20 پارامتر )
    مشکل در پاس دادن مقدار Null
    مقدار بازگشتی خطاها از طریق throw کردن exception نمیباشد .

    معماری تا rapid خیلی فاصله داره .

  12. #52
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    در برنامه نویس دات ارگ
    پست
    39

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    دوست عزیز خیلی ممنون از پیشنهاد شما . قرار هست این نمونه به تدریج کامل بشه . و به یک پیاده سازی کامل تبدیل بشه.

    نبود لایه Common یا transfer object در لایه بندی .
    نحوه پاس دادن مقادیر بین لایه ها اصلا صحیح نیست . (اگر جدولی 20 فیلد داشته باشد یعنی 20 پارامتر )
    مشکل در پاس دادن مقدار Null
    لطفا در این باره بیشتر توضیح بدید تا پس از نتیجه گیری نهایی تغییرات رو روی کد اعمال کنیم .
    با تشکر

  13. #53

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    البته اين روش پياده سازي در پروژه اي كه عمليات هاي زيادي داره يه خورده دردسر ساز ميشه. مثلاً شايد شما بخوايد عمليات هاي سيستم رو كه قرار هست در BLL پياده سازي بشه رو به صورت Project هاي مختلف در بياريد و هر Project براي خودش Class Libary هاي جداگانه اي داشته باشه. و اون موقع تشخيص BLL ها سخت ميشه. اين مثال براي UIL و DAL هم صدق مي كنه. شايد راه حل پيشنهادي اين باشه كه ClassLibary ها رو در يك Item دسته بندي مي كنيم ولي بازم مشكل ساز ميشه.
    به هر حال اينم يك نوع پياده سازي هستش و مثل اينكه جواب هم داده.
    نحوه پاس دادن مقادیر بین لایه ها اصلا صحیح نیست . (اگر جدولی 20 فیلد داشته باشد یعنی 20 پارامتر )
    از ArrayList استفاده مي شه.

  14. #54
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    در برنامه نویس دات ارگ
    پست
    39

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    از ArrayList استفاده مي شه.
    ممنون . اگر دوستان نظر دیگه ای دارند خوشحال میشم .

    البته اين روش پياده سازي در پروژه اي كه عمليات هاي زيادي داره يه خورده دردسر ساز ميشه. مثلاً شايد شما بخوايد عمليات هاي سيستم رو كه قرار هست در BLL پياده سازي بشه رو به صورت Project هاي مختلف در بياريد و هر Project براي خودش Class Libary هاي جداگانه اي داشته باشه. و اون موقع تشخيص BLL ها سخت ميشه. اين مثال براي UIL و DAL هم صدق مي كنه. شايد راه حل پيشنهادي اين باشه كه ClassLibary ها رو در يك Item دسته بندي مي كنيم ولي بازم مشكل ساز ميشه.
    کاملا با شما موافقم . ولی باید به این نکته توجه کنید که این نمونه خیلی ابتدایی و فقط جهت آموزش است .

  15. #55
    کاربر دائمی آواتار esmaeily-hosein
    تاریخ عضویت
    مهر 1385
    محل زندگی
    شهر دودها
    پست
    227

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    معمولا در پروژه های بزرگ کلاس هایی مانند Exception ها ، Enum و object های Data (میتواند tds یا ... )باشد .در این لایه قرار میگیرند . و بین پروژه های مختلف رد و بدل میگردند .
    TypeDataSet و یا نمونه های معادل آن باعث خوانایی بیشتر سرعت نسبتا بهتر و .... برای ما به بار می آورد .
    در همین مورد هم بجای ArrayList ما tds پاس میدیم .
    اگر خواستید نمونه بزارم .

  16. #56
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    در برنامه نویس دات ارگ
    پست
    39

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    دوست عزیز اگر میشه بیشتر در TypeDatasetمزایای و کلاس هایی که فرمودید (Exceptionمثل) بیشتر توضیح بدید . ممنون

  17. #57
    کاربر دائمی آواتار ezamnejad
    تاریخ عضویت
    آبان 1386
    محل زندگی
    جلوي مانيتور
    پست
    257

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    بهتر نیست کانکشن از فایل config دریافت بشه که قابلیت تغییر ساده تری برای کاربر داشته باشه . و یک کلاس جداگانه برای دریافت و ثبت اطلاعات ایجاد بشه تا نیازی به استفاده از کانکشن در همه متدها نباشه . یک متد که sqlcommand به آن پاس داده بشه و نتیجه برگشت داده شود .
    متدهای SelectRow و SelectAll مقدار برگشتی از نوع Dataset دارند که میشه این مقادیر را از نوع DataRow و DataTable انتخاب کرد .

  18. #58
    کاربر دائمی آواتار esmaeily-hosein
    تاریخ عضویت
    مهر 1385
    محل زندگی
    شهر دودها
    پست
    227

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    TypeDataSet
    یا TDS ها نوعی از اشیا داده هستند . TypeDataSet های ما از DataSet به ارث میروند .

    TypeDataSet
    در خودچه چیزی ذخیره میکنند :

    مانند
    DataSet معمولی در خود جداول ، Relation مربوط به جداول و در کل میتوان گفت ساختار Data ما را در خود جا میدهد . و هر چیزی که در DataSet است در خود دارد . این اطلاعات در Compile time به ما ارایه میگردند نه runtime

    چه مزیتی نسبت به
    DataSet دارد :

    tds
    همانطور که گفتم در خود ساختار Data را دارد و لازم نیست در Runtime انها اضافه گردند همچنین با در اختیار قراردادن آن ساختار به ما کمک زیاد در سریعتر نوشتن کدها و خوانایی برنامه به ما میکند و از نظر performance هم وضعیت بهتری دارد .

    tds
    ها با اضافه کردن Adpter ( Adpater نوعی pattern است . این class ها ابزار های کار با class های دیگر هستند )های مخصوص خود کمک زیادی به ما برای عملیات اصلی بر روی جداول میکند . (بدون نوشتن یک خط کد و همه چیز در Designer انجام میشود) در ضمن این class ها چون partial هستند در فایلهای فیزیکی جداگانه میتوان آنها را توسعه داد .

    نحوه ایجاد :

    بر روی پروژه کلیک لاست میکنیم و از قسمت
    Data گزینه DataSet را انتخاب میکنیم . میتوانیم از منوی view گزینه server explorer را انتخاب و پس از ساخت connection جداول آنرا به tds مان اضافه کنیم . اسم گزاری آن نیز معمولا نام class و انتهای آن DS میباشد مثلا UserDs


    استثنا ها :
    ما میخواهیم عملکرد کار خود را از یک لایه به لایه دیگر بفهمانیم .
    مثلا در عمل اگر موجودی انبار کافی نبود با خطای ذخیره داده فرق میکند و ما میخواهیم این موضوع را به کاربر اعلام کنیم . برای این کار 2 راه داریم متد ما با
    return value های مختلف ما را آگاه کند .
    مثلا اگر -1 بود برای نبود موجودی کافی و -2 برای خطا در ذخیره سازی مشکل این روش نبود خوانایی آن است .
    در روش دوم استثنا های مختلفی را ما ایجاد میکنیم .
    مثال :

    new InventoryException("item not found");

  19. #59

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    دوستان در پستهای قبلی یه مطلبی رو ذکر کردند که به نظر من اشتباهه
    اینکه چند لایه نوشتن برنامه باعث کاهش کدنویسی میشه
    که این دقیقا برعکسه

  20. #60

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    نقل قول نوشته شده توسط ezamnejad مشاهده تاپیک
    بهتر نیست کانکشن از فایل config دریافت بشه که قابلیت تغییر ساده تری برای کاربر داشته باشه . و یک کلاس جداگانه برای دریافت و ثبت اطلاعات ایجاد بشه تا نیازی به استفاده از کانکشن در همه متدها نباشه . یک متد که sqlcommand به آن پاس داده بشه و نتیجه برگشت داده شود .
    متدهای SelectRow و SelectAll مقدار برگشتی از نوع Dataset دارند که میشه این مقادیر را از نوع DataRow و DataTable انتخاب کرد .
    بهتر است يک لايه با نام COMMON در نظر بگيريم و اطلاعات کانکشن و برخي از توابع مشترک را در آن قرار دهيم تا نياز به چندباره کاري در تعريف کانکشن و توابع مشترک نباشد .

  21. #61

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    دوستان در پستهای قبلی یه مطلبی رو ذکر کردند که به نظر من اشتباهه
    اینکه چند لایه نوشتن برنامه باعث کاهش کدنویسی میشه
    که این دقیقا برعکسه
    دوست عزیز چه دلیل فانغ کننده ای برای گفته ی خود دارید؟ لطفا" توضیحات بیشری ارائه دهید،/
    I've just started tweeting!
    @Alireza_Maddah

  22. #62

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    دوست عزيز به اعتقاد من کاهش يا افزايش حجم کد نويسي بستگي مستقيم به نحوه تعريف لايه ها و نيز چگونگي معماري آنها دارد به نحوي که اين لايه بندي در درجه اول باعث کنترل و توسعه ساده تر پروژه گردد و در عين حال از کد نويسي هاي تکراري اجتناب شود . حال آنکه اگر به اين مهم که اساسا هدف از چند لايه کردن پروژه چيست توجه کافي نشود و صرفا بصورت کليشه اي و استاندارد شده با آن برخورد نمود به اعتقاد من نيز ممکن است باعث افزايش حجم کد نويسي و حتي در برخي موارد کاهش خوانايي برنامه گردد. به همين خاطر در گذشته در همين تاپيک درخواست نمودم که بحث را از پست 37# مجددا پي بگيريم تا تعريف عملي دقيقتري نسبت به تعيين لايه ها در يک پروژه کاربردي دست دهد که متاسفانه اين پست من توسط مديريت محترم حذف گرديد .

  23. #63
    کاربر دائمی آواتار esmaeily-hosein
    تاریخ عضویت
    مهر 1385
    محل زندگی
    شهر دودها
    پست
    227

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    تعريف عملي دقيقتري نسبت به تعيين لايه ها در يک پروژه کاربردي دست دهد که متاسفانه اين پست من توسط مديريت محترم حذف گرديد .
    من فکر میکنم هدف این تاپیک نیز همین است .
    من فقط مشکلی که هنوز میبینم ما بایستی ابتدا نسخه مورد استفاده در framework را تعیین کنیم بعد به سراغ layering بریم .
    مثلا linq لایه بندی را تغییر داد .
    من آماده همکاری فنی در این زمینه هستم فقط میگم قبلش مشخص بشه با Ds قرار کار بشه یا linq یا ا custome collection ها و یا تحت معماری NHibernate یا ... است . بعد شروع کنیم .
    و به نظر من خیلی احمقانه است ما لایه بندی را در این 3 لایه فقط ببینیم.

  24. #64

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    نقل قول نوشته شده توسط esmaeily-hosein مشاهده تاپیک
    معمولا در پروژه های بزرگ کلاس هایی مانند Exception ها ، Enum و object های Data (میتواند tds یا ... )باشد .در این لایه قرار میگیرند . و بین پروژه های مختلف رد و بدل میگردند .
    TypeDataSet و یا نمونه های معادل آن باعث خوانایی بیشتر سرعت نسبتا بهتر و .... برای ما به بار می آورد .
    در همین مورد هم بجای ArrayList ما tds پاس میدیم .
    اگر خواستید نمونه بزارم .
    با سلام
    من خواهش ميکنم که نمونه اي در اين رابطه ارائه کنيد تا درباره آن نيز مختصري بحث کنيم تا پس از آن شايد راه حلي ساده تر براي لايه بندي در پروژه هاي بزرگ دست دهد

  25. #65
    کاربر جدید آواتار bTajahmadi
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    تهران
    پست
    15

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    کسی از دوستان به تاثیر لایه بندی بر روی coupling اشاره نکرد. معمولا لایه ها را طوری در نظر می گیرند که کلاس های لایه های پایین هیچ اطلاعی درباره ی کلاس های استفاده کننده در لایه های بالاتر ندارند.

  26. #66
    VIP
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    نقل قول نوشته شده توسط bTajahmadi مشاهده تاپیک
    کسی از دوستان به تاثیر لایه بندی بر روی coupling اشاره نکرد. معمولا لایه ها را طوری در نظر می گیرند که کلاس های لایه های پایین هیچ اطلاعی درباره ی کلاس های استفاده کننده در لایه های بالاتر ندارند.
    پست 29 https://barnamenevis.org/showth...=151744&page=3

  27. #67

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    دوستان قرار نیست از اول یه معماری خیلی قدرتمند طراحی کنیم...

    می خوایم پله پله بریم بالا...

    بزارید یه شمه ی کاملی از پروژه آماده بشه، تا یه جای خوبی پیش بره، بعد کم کم به نواقصش می پردازیم و اونها رو برطرف می کنیم...

    اگر هر کسی بیاد و یه معماری قدرتمند مطرح کنه، دیگه اساس موضوع تاپیک از طرح خارج میشه، چرا که هر طرحی مزایا و معایب خودش رو داره...

    پس بزارید روی همون روالی که iroonidotnet شروع کرده تمرکز کنیم و با همون روند پیش بریم تا کم کم اون رو ارتقاء بدیم و نواقصش رو رفع کنیم نه که از اول به همه فرض ها هجوم ببریم که این اشتباهه و فلانه و بیسار...

    با تشکر

  28. #68

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    دوست عزيز
    من هم معتقدم که بايد بحث از يک روال مشخص تبعيت کنه ولي نظر من اين است که اول بايد به نحوه طراحي معماري و تعريف لايه ها به خوبي پرداخته شود و پس از آن به سراغ کد نويسي برويم چرا که :
    خشت اول گر نهد معمار کج
    تا ثريا مي رود ديوار کج

    به هر حال اينم نظر منه ...

  29. #69

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    سلام

    می خواستم بدونم که اعمالی مثل Transaction رو در کد.م لایه باید پیاده سازی کرد و چطور به کاربر
    اطلاع بدیم؟؟؟؟

    با تشکر

  30. #70
    محروم شده
    تاریخ عضویت
    اسفند 1383
    محل زندگی
    Never Land
    پست
    423

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    Transaction چون جزء فعاليت هاي DB است بايستي در DataLayer مديريت شود
    اطلاعات Master و Detail بايستي به DataLayer‌جهت درج Transactional پاس شود

  31. #71

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    Transaction چون جزء فعاليت هاي DB است بايستي در DataLayer مديريت شود
    اطلاعات Master و Detail بايستي به DataLayer‌جهت درج Transactional پاس شود
    البته به جای اعمال TransAction در DAL میشه تمام TransAction ها رو به Database فرستاد و در سمت Database اونها رو مدیریت کنیم !
    خواستن ، توانتستن است !!!

  32. #72
    کاربر دائمی آواتار محمدامین شریفی
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران - شیراز
    پست
    1,302

    Question نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    همانطور که می دانیید،هر فرم بصورت پیش فرض چند فایل به نام های:
    1. Form1.Designer.cs
    2. Form1.resx
    3. Form1.cs
    مورد بحث من Reversi.Designer.cs می باشد.


    آیا استفاده از نام دامنه های
    • System.Windows.Forms
    • System.Drawing
    • System.Data
    در این فایل جهت ساختن اجزای گرافیکی فرم،جزو قوانین چند لایه ای می باشد یا خیر؟
    یعنی ما مجازیم توابع ای که کار ساختن گرافیک برنامه را دارند، در این فایل پیاده سازی کنیم ؟

    ممنون،

  33. #73
    کاربر دائمی آواتار محمدامین شریفی
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران - شیراز
    پست
    1,302

    Tick نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    نقل قول نوشته شده توسط aminsharifi67 مشاهده تاپیک
    همانطور که می دانیید،هر فرم بصورت پیش فرض چند فایل به نام های:
    1. Form1.Designer.cs
    2. Form1.resx
    3. Form1.cs
    مورد بحث من Reversi.Designer.cs می باشد.




    آیا استفاده از نام دامنه های
    • System.Windows.Forms


    • System.Drawing
    • System.Data
    در این فایل جهت ساختن اجزای گرافیکی فرم،جزو قوانین چند لایه ای می باشد یا خیر؟
    یعنی ما مجازیم توابع ای که کار ساختن گرافیک برنامه را دارند، در این فایل پیاده سازی کنیم ؟

    ممنون،
    خیر جزو قوانین چند لایه ای نمی باشد.برای کسی که بیشتر با asp.net کار کرده است.شاید این ابهام پیش بیاید که در win32 هم اینگونه است.ولی وقتی با خطای load فرم مواجه می شوید،این شبه برطرف می شود.نمی دانم شاید این یکی از مشکلات win32 در پیاده سازی چند لایه ای بوده است.
    به هر حال با جایگزین شدن xaml چند لایه ای شدن مفهوم بهتری را گرفته است.

    پیروز باشید.

  34. #74
    کاربر دائمی آواتار mohsen_zelzela00
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    internet && .net
    پست
    755

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    با سلام خدمت دوستان عزیز
    در برنامه نویسی ساخته یافته من برای اینکه یک textbox را Bindکنم از کد زیر استفاده میکردم(این کار را برای وقتی که می خواستم که وقتی کاربر بر روی یک رکورد در datagrid کلیک میکرد اطلاعات آن در textbox ها هم نشون داده بشه انجام میدادم)

    TextBox1.DataBindings.Add(New Binding("text", dv, "id_a"))


    الان که دارم برنامه نویسی 3 لایه کار میکنم فکر کنم باید این کد را در لایهDAL قرار دهم ولی اینجا این مشکل است چون لایه DAL من از نوعClassLibrary است واصلاً من در لایه DAL خودم نباید با اشیا لایهUI کار کنم این کد را چگونه و کجا بنویسم


    با تشکر فراوان

  35. #75
    VIP
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    نقل قول نوشته شده توسط mohsen_zelzela00 مشاهده تاپیک
    واصلاً من در لایه DAL خودم نباید با اشیا لایهUI کار کنم این کد را چگونه و کجا بنویسم
    با تشکر فراوان
    درسته ، در dal که هیچی در bll هم نباید این کار رو بکنی.
    دقیقا حضور ذهن ندارم ولی اگه بگی رکورد ها رو چطوری پاس میدی به لایه ui ممکنه بتونم کمکت کنم، در ضمن شما میتونید پروپرتی های آبجکت های مختلف رو به هم bind کنید یعنی binding فقط به منبع داده مرتبط نیست.

  36. #76
    کاربر دائمی آواتار mohsen_zelzela00
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    internet && .net
    پست
    755

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    نقل قول نوشته شده توسط majid325 مشاهده تاپیک
    .
    دقیقا حضور ذهن ندارم ولی اگه بگی رکورد ها رو چطوری پاس میدی به لایه ui ممکنه بتونم کمکت کنم، در ضمن شما میتونید پروپرتی های آبجکت های مختلف رو به هم bind کنید یعنی binding فقط به منبع داده مرتبط نیست.
    با استفاده از لیست generic انجام میدم شبیه اونی که در قسمت linq شما به پست من جواب دادید ممنون میشم کمکم کنید.......!

  37. #77
    VIP
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    نمیدونم روی روند تاپیک تاثیر مثبت میزاره یا منفی.
    با توجه به هدف کد پست 74
     TextBox1.DataBindings.Add("Text", DataGrid1.DataSource, DataGrid1.Columns[0].Name );

    کد فوق رو تست نکردم اگه جواب نداد باید Interface مورد نظر (الان حضور ذهن ندارم) رو تو listپیاده سازی کنی.
    اگه از linq استفاده میکنی که binding راحت تره...

  38. #78
    VIP
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    یه نمونه از معماری 3لایه رو که بر پایه list پیاده سازی شده رو میزارم که بشه Performance با نمونه dataset ی مقایسه کرد ....
    البته در روز های آتی سعی میکنم کامل ترش کنم.
    فایل های ضمیمه فایل های ضمیمه

  39. #79
    کاربر دائمی
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    ساري
    سن
    37
    پست
    296

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    • ساخت لایه دسترسی به داده ها (Data Access Layer)
    • ساخت لایه تعریف داده ها (Common Data Definition)
    • لایه نمای کاربر (Presentation)
    • لایه قوانین سیستم (Business Rules)

    توی لیست درسای آقای کرامتی بود
    درباره دومی میشه توضیح بدید

  40. #80

    نقل قول: سناریو 4 - معماری چندلایه(N-Tier/N-Layer Architecture)

    نقل قول نوشته شده توسط m0rteza مشاهده تاپیک
    • ساخت لایه دسترسی به داده ها (Data Access Layer)
    • ساخت لایه تعریف داده ها (Common Data Definition)
    • لایه نمای کاربر (Presentation)
    • لایه قوانین سیستم (Business Rules)
    توی لیست درسای آقای کرامتی بود
    درباره دومی میشه توضیح بدید
    به نظر می رسند اقای کرامتی برای دو گروه کلی دستورات sql (DDl,DML) دو لایه ارتباطی در نظر گرفته اند

صفحه 2 از 5 اولاول 1234 ... آخرآخر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •