صفحه 3 از 5 اولاول 12345 آخرآخر
نمایش نتایج 81 تا 120 از 163

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

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

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

    داد های که توسط ما تعریف میشن و در بین لایه ها مشترک هستن در این لایه تعریف میشن ،
    مثل enum ها یا Exception و مواردی از این قبیل.

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

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

    حالا سوائلی که برام پیش امده اینه که وقتی متد GetData رو که در کلاس data در لایه bll به صورت زیر پیاده سازی شده :
     private static List<Book> GetBooks(OleDbDataReader reader)
    {
    List<Book> tempBookList = new List<Book>();
    while (reader.Read())
    {
    try
    {
    Book tempBook = new Book {ID = (int)reader["ID"],ISBN = reader["ISBN"].ToString(), Publisher = reader["Publisher"].ToString(), Title = reader["Title"].ToString(), Author = reader["Author"].ToString() };
    tempBookList.Add(tempBook);
    }
    catch(Exception ex)
    {
    throw new Exception(ex.Message);
    }
    }
    return tempBookList;
    }


    تناقضی که پیش میاد اینه که پارامتر reader رو ازنوع oledb تعریف کردم که اگه مجبور بشم لایه dal رو به sql تغییر بدم باید لایه bll رو هم تغییر بدم!!!!!!!!
    راه حل دوستان چیه؟

  3. #83

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

    از IDataReader استفاده کن.

    موفق باشید.

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

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

    با کمی تغییرات ، لطفا اشکالات فنی رو عنوان کنید.
    فایل های ضمیمه فایل های ضمیمه

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

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

    راستی برای Dynamic Query با توجه با اینکه اسامی فیلدها نباید در Presentation عنوان بشه چیکار باید کرد؟

  6. #86

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

    نقل قول نوشته شده توسط majid325
    راستی برای Dynamic Query با توجه با اینکه اسامی فیلدها نباید در Presentation عنوان بشه چیکار باید کرد؟
    ساختار دیتابیس (Schema) رو در یک فایل XML ذخیره کن و با XML Deserialization به شی تبدیل و
    بخونش.

    موفق باشید.

  7. #87
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727

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

    ساختار دیتابیس (Schema) رو در یک فایل XML ذخیره کن و با XML Deserialization به شی تبدیل و
    بخونش.
    بله درسته، در Visual Studio 2008 SP1 مایکروسافت نسخه جدیدی از فن آوری Ado.net رو ارائه داد به نام Ado.Net Entity Framework یا EF که میاد یک لایه ی دیگه بین لایه های نرم افزارتون اضافه میکنه به نام Conceptual Layer که کارش دقیقا همان چیزی هست که بهروز جان گفت، ساختار و اسکیمای دیتابیس شما رو در یک فایل Xml ذخیره میکنه، بنابراین نرم افزار شما مستقل از ساختار دیتابیس میشه و چنانچه تغییراتی در ساختار دیتابیس ایجاد کنید، نیازی به کامپایل مجدد برنامه ندارید بلکه فقط کافیه تغییرات مورد نظر رو در اون فایل Xml منعکس کنید.

    در دات نت 4، این فن آوری به نسخه 4 ارتقا پیدا کرده و تغییرات اساسی فراوانی روش منعکس شده، اطلاعات بیشتر.

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

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

    نقل قول نوشته شده توسط Behrouz_Rad مشاهده تاپیک
    ساختار دیتابیس (Schema) رو در یک فایل XML ذخیره کن و با XML Deserialization به شی تبدیل و
    بخونش.

    موفق باشید.
    با تشکر ، پیرو راهنمایی شما فعلا دارم دنبال یه Convert mdb to XML Schema ٰTools میگردم که free هم باشه .

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

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

    نقل قول نوشته شده توسط hdv212 مشاهده تاپیک
    بله درسته، در Visual Studio 2008 SP1 مایکروسافت نسخه جدیدی از فن آوری Ado.net رو ارائه داد به نام Ado.Net Entity Framework یا EF که میاد یک لایه ی دیگه بین لایه های نرم افزارتون اضافه میکنه به نام Conceptual Layer که کارش دقیقا همان چیزی هست که بهروز جان گفت، ساختار و اسکیمای دیتابیس شما رو در یک فایل Xml ذخیره میکنه، بنابراین نرم افزار شما مستقل از ساختار دیتابیس میشه و چنانچه تغییراتی در ساختار دیتابیس ایجاد کنید، نیازی به کامپایل مجدد برنامه ندارید بلکه فقط کافیه تغییرات مورد نظر رو در اون فایل Xml منعکس کنید.

    در دات نت 4، این فن آوری به نسخه 4 ارتقا پیدا کرده و تغییرات اساسی فراوانی روش منعکس شده، اطلاعات بیشتر.
    من هر چی سعی کردم نتونستم Provider رو برای oledb تغییر بدم ، ظاهرا فقط با ms sql رابطه برقرار میکنه.
    اگه غیر از این است لطفا راهنمایی کنید.

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

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

    نقل قول نوشته شده توسط majid325 مشاهده تاپیک
    فعلا دارم دنبال یه Convert mdb to XML Schema ٰTools میگردم که free هم باشه .
    وقتی دیتابیس ساخته شد می توان بوسیله همون sql هم ، Schema را دید.
    فکر کنم اگر dataset رو هم bind کنی،و با writexml میشه به Schema دست یافت.(توی برخی جاه هایی که محدودیت MDB داریم،می تونیم از write و read کردن xml عملکرد پایگاه داده را تا حدودی داشت،البته با این قابلیت یعنی می توان به همان قابلیت MDB رسید؟)

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

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

    نقل قول نوشته شده توسط aminsharifi67 مشاهده تاپیک
    وقتی دیتابیس ساخته شد می توان بوسیله همون sql هم ، Schema را دید.
    فکر کنم اگر dataset رو هم bind کنی،و با writexml میشه به Schema دست یافت.(توی برخی جاه هایی که محدودیت MDB داریم،می تونیم از write و read کردن xml عملکرد پایگاه داده را تا حدودی داشت،البته با این قابلیت یعنی می توان به همان قابلیت MDB رسید؟)
    مشکل اینه که از dataset استفاده نمیکنم و بانکم هم همونطور که گفتید mdb.

    اگه یکی از دوستان زحمت بکشه و روشی که اقای راد پیشنهاد داده رو روی نمونه فوق پیاده سازی بکنه خیلی خوب میشه.

  12. #92

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

    من همیشه برای پروژه هام از این روش استفاده می کنم.
    Schema ی دیتابیس رو مثلاً بدین شکل در فایل XML ذخیره کن:

    <?xml version="1.0" encoding="utf-8" ?>
    <TvtoDBSchema>
    <Entities>
    <Member name="tblMember">
    <UserId>UserId</UserId>
    <UserName>UserName</UserName>
    <Pass>Pass</Pass>
    <Email>Email</Email>
    <InsertDate>InsertDate</InsertDate>
    <UpdateDate>UpdateDate</UpdateDate>
    </Member>
    </Entities>
    <SProc>
    <GetMembers>GetMembers</GetMembers>
    <InsertRole>InsertRole</InsertRole>
    <InsertUser>InsertUser</InsertUser>
    <UpdateUser>UpdateUser</UpdateUser>
    </SProc>
    </TvtoDBSchema>

    وقتی که فایل با محتویات فوق در VS باز و انتخاب هست، از منوی XML گزینه ی Create Schema رو انتخاب کن. در این حالت، فایل XSD متناظر با فایل XML به طور خودکار تولید و نمایش داده میشه. اون رو ذخیره کن. حال فایل XSD رو به ابزار xsd که در SDK دات نت وجود داره به شکل ذیل پاس بده:

    C:\XSD.exe myFile.xsd /c

    یک فایل cs تحویل میگیری که حالت میانه ی شی گونه ی فایل XML هست که باید با XML Deserialization به شکل ذیل اون رو نهایی کنی:

    public static TvtoDBSchema GetFieldNames(string schemaFilePath)
    {
    XmlSerializer xs = new XmlSerializer(typeof(TvtoDBSchema));
    using (XmlReader xr = XmlReader.Create(schemaFilePath))
    {
    return (TvtoDBSchema)xs.Deserialize(xr);
    }
    }

    حال به شکل ذیل به نام فیلد می تونی دسترسی داشته باشی:

    MyClass.GetFieldNames("myFile.xml").SProc.GetMembe rs;

    جالب بود. نه؟ ;)

    موفق باشید.

    پ.ن:
    1) نحوه ی نگهداری Schema ی دیتابیس بستگی به نیازت و نوع پروژت داره. ممکنه نیاز باشه JOIN ها رو هم ذخیره کنی. این بستگی به خودت داره.
    2) می تونی متد GetFieldNames رو private کنی و یک متد public با نام GetFieldName ایجاد کنی که GetFieldNames رو فراخوانی می کنه تا نیاز نباشه مدام مسیر فایل XML رو بنویسی.

    موفق باشید.

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

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

    نقل قول نوشته شده توسط hdv212 مشاهده تاپیک
    ساختار و اسکیمای دیتابیس شما رو در یک فایل Xml ذخیره میکنه، بنابراین نرم افزار شما مستقل از ساختار دیتابیس میشه و چنانچه تغییراتی در ساختار دیتابیس ایجاد کنید، نیازی به کامپایل مجدد برنامه ندارید بلکه فقط کافیه تغییرات مورد نظر رو در اون فایل Xml منعکس کنید.
    میشه یکی از دوستان راجع به این قسمت بیشتر توضیح بده؟

    چنانچه تغییراتی در ساختار دیتابیس ایجاد کنید، نیازی به کامپایل مجدد برنامه ندارید
    یعنی ما لایه های برنامه رو به صورت dynamic بسازیم؟

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

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

    خیلی خیلی جالب بود ، من تونستم تمام مراحل به انجام برسونم ، فقط چند تا سوال :

    فایل CS تولید شده در چه لایه ای باید تعریف بشه ؟
    میشه از Cs تولید شده به جای Bll استفاده کرد؟ یا باید در کنار کلاس هاس bll مون ازش استفاده بکنیم؟

    آیا در این روش با اون قسمت از گفته دوستمون hdv212 که در پست قبل ضمیمه کردم رابطه ای هست؟


    نقل قول نوشته شده توسط Behrouz_Rad مشاهده تاپیک

    <SProc>
    <GetMembers>GetMembers</GetMembers>
    <InsertRole>InsertRole</InsertRole>
    <InsertUser>InsertUser</InsertUser>
    <UpdateUser>UpdateUser</UpdateUser>
    </SProc>

    قسمت فوق مربوط به sp ذخیره شده تو دیتابیس هست؟

     public static TvtoDBSchema GetFieldNames(string schemaFilePath)
    {
    XmlSerializer xs = new XmlSerializer(typeof(TvtoDBSchema));
    using (XmlReader xr = XmlReader.Create(schemaFilePath))
    {
    return (TvtoDBSchema)xs.Deserialize(xr);
    }
    }


    متد فوق رو در چه کلاسی تعریف کنم؟

  15. #95

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

    نقل قول نوشته شده توسط majid325
    فایل CS تولید شده در چه لایه ای باید تعریف بشه ؟
    میشه از Cs تولید شده به جای Bll استفاده کرد؟ یا باید در کنار کلاس هاس bll مون ازش استفاده بکنیم؟
    هیچ لایه! اینجور تصور نکن که حتماً کلاسی باید در لایه ای خاص تعریف بشه...! مثلاً کلاسی که Helper هست، لایه بودن در مورد اون معنا نداره.
    پوشه ای با نام Schema بساز و فایل رو در اون قرار بده.
    نقل قول نوشته شده توسط majid325
    آیا در این روش با اون قسمت از گفته دوستمون hdv212 که در پست قبل ضمیمه کردم رابطه ای هست؟
    منظور ایشون هم همین روش بود که Entity Framework ازش پیروی می کنه. همین حالت رو به شکل دیگه ای در فایل dbml ای که LINQ to SQL ایجاد می کنه هم شاهد هستی.
    نقل قول نوشته شده توسط majid325
    قسمت فوق مربوط به sp ذخیره شده تو دیتابیس هست؟
    بله.
    نقل قول نوشته شده توسط majid325
    متد فوق رو در چه کلاسی تعریف کنم؟
    در یک کلاس Helper.

    موفق باشید.

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

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

    نقل قول نوشته شده توسط Behrouz_Rad مشاهده تاپیک
    حال به شکل ذیل به نام فیلد می تونی دسترسی داشته باشی:

    MyClass.GetFieldNames("myFile.xml").SProc.GetMembe rs;
    با تشکر از حوصله ای که بخرج میدین .
    ببخشید بنا به توضیحات شما متد بالا فقط نام یه sp هست و برای بدست اوردن نام فیلد ها باید از یه همچین متدی استفاده بشه؟
      MyClass.GetFieldNames("myFile.xml").Entities.Membe  r.UserId;


    نقل قول نوشته شده توسط Behrouz_Rad مشاهده تاپیک
    پوشه ای با نام Schema بساز و فایل رو در اون قرار بده.
    پوشه Schema رو تو Root سولشن ایجاد کنم؟
    آخرین ویرایش به وسیله majid325 : شنبه 17 مرداد 1388 در 04:20 صبح

  17. #97

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

    نقل قول نوشته شده توسط majid325
    بنا به توضیحات شما متد بالا فقط نام یه sp هست و برای بدست اوردن نام فیلد ها باید از یه همچین متدی استفاده بشه؟
    بله.
    نقل قول نوشته شده توسط majid325
    پوشه Schema رو تو Root سولشن ایجاد کنم؟
    بله. و حتما Namespace های مناسب رو برای فایل های پروژت انتخاب کن. مثلاً همین فایل cs رو در Namespace ای با نام MyProject.Schema قرار بده.

    موفق باشید.

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

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

    نمیدونم چرا سوالهای که برام پیش میاد تو reSerch هام به جوابشون نمیرسم !!!!!

    خیلی ممنون ، اگه فایل cs رو توی پوشه خارج از پروژه تعریف کنم دیگه نمیتونم از رفرنس اون توی پروژه مقصدم استفاده کنم!

    من در لایه Presentation طبق روال قبل فیلد هایی رو که در Dynamic Query شرکت باید بکنند رو متوجهشون بشم و اسامیشون رو از داخل فایل xml بیرون بکشم و یک string حاوی Dynamic Query به لایه bll پاس بدم؟

    از روش فوق میشه در هر لایه که نیاز به کوئری بود استفاده کرد؟
    آخرین ویرایش به وسیله majid325 : شنبه 17 مرداد 1388 در 19:35 عصر دلیل: اضافه شدن سوال جدید

  19. #99

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

    نقل قول نوشته شده توسط majid325
    اگه فایل cs رو توی پوشه خارج از پروژه تعریف کنم دیگه نمیتونم از رفرنس اون توی پروژه مقصدم استفاده کنم!
    خارج از پروژه؟ در داخل پروژه قرار بده! من پروژت رو الان دانلود کردم و دیدم از چند پروژه تشکیل شده. منظور من این بود که فایل cs رو در داخل پروژه قرار بده. بیرون بودن از Solution معنا نداره.
    نقل قول نوشته شده توسط majid325
    من در لایه Presentation طبق روال قبل فیلد هایی رو که در Dynamic Query شرکت باید بکنند رو متوجهشون بشم و اسامیشون رو از داخل فایل xml بیرون بکشم و یک string حاوی Dynamic Query به لایه bll پاس بدم؟
    بله. در SQL Server از استورد پروسیجر سیستمی sp_executesql برای اجرای کوئری های داینامیک استفاده کن.
    نقل قول نوشته شده توسط majid325
    از روش فوق میشه در هر لایه که نیاز به کوئری بود استفاده کرد؟
    بله.

    موفق باشید.

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

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

    نقل قول نوشته شده توسط Behrouz_Rad مشاهده تاپیک
    خارج از پروژه؟ در داخل پروژه قرار بده! من پروژت رو الان دانلود کردم و دیدم از چند پروژه تشکیل شده. منظور من این بود که فایل cs رو در داخل پروژه قرار بده. بیرون بودن از Solution معنا نداره.
    موفق باشید.
    با توجه به اینکه من به اسامی فیلدها در سه لایه (سه پروژه)احتیاج دارم , در هر پروژه این فایل cs رو تعریف کنم یا یک پروژه چهارمی در نظر بگیرم و تو اون تعریفش کنم؟

  21. #101

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

    به توضیحات قبلیم مراجعه کن. کمی هم جستجو و تحقیق کن.

    موفق باشید.

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

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

    وظیفه دقیق operational چی هست؟
    تا اونجایی که من فهمیدم . کار هایی که در سیستم مکررا انجام می شه و در لایه ها مشترک هستند در این لایه قرار می دیم. مثلا log
    دوستان لطفا یه توضیح کامل تر و کاربرد بیشتری ارائه دهند
    عکس های ضمیمه عکس های ضمیمه

  23. #103
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1384
    محل زندگی
    کرمان
    پست
    69

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

    با سلام
    من تقریبا مطابق همین عکس کار می کنم. البته با یک کم تغییر .
    من اینجوری تو پروژه هام کار می کنم.
    1 لایه دارم به نام CommonFunction که توی اون یکسری توابع که همیشه و تو همه لایه ها ممکنه استفاده بشه رو پیاده سازی می کنم.مثل توابع تبدیل Enum جنسیت به text ، توابع کار با تاریخ و یا توابعی که بنا به اون پروژه تو همه لایه ها مورد استفاده اند. این فکر کنم همون لایه Operational باشه.
    لایه بعدی لایه Data Access است که من اونو به 2 تا زیر لایه تقسیم می کنم: یکی معمولا DBML مربوط به Linq است و یکی DBaccess Extention که همانطور که از اسمش معلومه به صورت Extention پیاده می کنم و وظیفه کار با DB رو به عهده داره. من این کلاس رو همیشه Static پیاده می کنم و خروجی توابعش هم IQueryable است.
    لایه بعدی Logic است که من این لایه رو هم به 2 تا زیر لایه تقسیم می کنم یکی UILogic و یکی DBLogic
    زیر لایه UILogic وظیفه آماده کردن یک اینترفیس برای DBLogic را به عهده داره . همچنین چک کردن صحت ورودی ها و نیز کنترل امکان پذیر بودن عملیات با توجه به قوانین را به عهده داره.
    زیر لایه DBLlogic هم وظیفه انجام ریز عملیات مربوط به یک فرآیند را با استفاده از فراخوانی توابع موجود در لایه DBAccess انجام میده.
    لایه بعدی هم که UIهست و نیاز به توضیح نداره.
    علاوه بر اینا من یک لایه دیگه هم می سازم به نام Objects که توی اون یک سری Object دارم که در واقع اطلاعات لازم رو بین لایه های UI و Logic منتقل می کنه .
    من تو زیر لایه DBLogic هم دسترسی به DBML دارم که با بحثایی که اینجا شد نمی دونم این دسترسی درسته یا نه.
    دوستان نظر بدین.

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

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

    نقل قول نوشته شده توسط k_m مشاهده تاپیک
    با سلام
    من تقریبا مطابق همین عکس کار می کنم. البته با یک کم تغییر .
    من اینجوری تو پروژه هام کار می کنم.
    .
    .
    .
    دوستان نظر بدین.
    روشتون جالب هست ، اگه وقتشو دارین یک نمونه قرار بدین تا هم ار تجربیاتتون استفاده کنیم و هم با روشهای که دوستان دیگه ارائه کردن مقایسه کنیم(مزایا و معایب) تا شاید بعد از یه مدت بشه یک روش جالب از ترکیب روشهای ارائه شده ایجاد کنیم.

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

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

    نقل قول نوشته شده توسط k_m مشاهده تاپیک
    با سلام
    من تقریبا مطابق همین عکس کار می کنم. البته با یک کم تغییر .
    من اینجوری تو پروژه هام کار می کنم.
    1 لایه دارم به نام CommonFunction که توی اون یکسری توابع که همیشه و تو همه لایه ها ممکنه استفاده بشه رو پیاده سازی می کنم.مثل توابع تبدیل Enum جنسیت به text ، توابع کار با تاریخ و یا توابعی که بنا به اون پروژه تو همه لایه ها مورد استفاده اند. این فکر کنم همون لایه Operational باشه.
    لایه بعدی لایه Data Access است که من اونو به 2 تا زیر لایه تقسیم می کنم: یکی معمولا DBML مربوط به Linq است و یکی DBaccess Extention که همانطور که از اسمش معلومه به صورت Extention پیاده می کنم و وظیفه کار با DB رو به عهده داره. من این کلاس رو همیشه Static پیاده می کنم و خروجی توابعش هم IQueryable است.
    لایه بعدی Logic است که من این لایه رو هم به 2 تا زیر لایه تقسیم می کنم یکی UILogic و یکی DBLogic
    زیر لایه UILogic وظیفه آماده کردن یک اینترفیس برای DBLogic را به عهده داره . همچنین چک کردن صحت ورودی ها و نیز کنترل امکان پذیر بودن عملیات با توجه به قوانین را به عهده داره.
    زیر لایه DBLlogic هم وظیفه انجام ریز عملیات مربوط به یک فرآیند را با استفاده از فراخوانی توابع موجود در لایه DBAccess انجام میده.
    لایه بعدی هم که UIهست و نیاز به توضیح نداره.
    علاوه بر اینا من یک لایه دیگه هم می سازم به نام Objects که توی اون یک سری Object دارم که در واقع اطلاعات لازم رو بین لایه های UI و Logic منتقل می کنه .
    من تو زیر لایه DBLogic هم دسترسی به DBML دارم که با بحثایی که اینجا شد نمی دونم این دسترسی درسته یا نه.
    دوستان نظر بدین.
    با سلام

    دوست عزیز اگه براتون ممکنه و وقتشو داشته باشید و بتونید یه برنامه کوچک با توجه به چیزی که گفتید و تو سایت قرار بدید واقعاً ممنون میشم آخه به نظر میات روش جالبی باشه

  26. #106

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

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

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

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

    یه مدل جدید دیدم گفتم بزارم اینجا کمی در موردش کنکاش کنیم:


    یه توضیح کاملا مختصر هم راجع بهش پیدا کردم ، اگه کسی از دوستان بتونه یه توضیح کاملتر و یا حتی نمونه کدی ساده ای که این مدل رو پیاده سازی کنه قرار بده که خیلی دستش درد نکنه.
    عکس های ضمیمه عکس های ضمیمه
    آخرین ویرایش به وسیله majid325 : پنج شنبه 12 شهریور 1388 در 18:03 عصر دلیل: غلط املایی

  28. #108

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

    به نظرم بهتره اول یه دسته بندی از انواع پیاده سازیهای موجود انجام بشه، بعد تو یه پروژه نمونه (Case Study) مورد توافق همه پیاده سازی بشه. اونم نه کل سیستم، بلکه فقط برای یک یا دو مورد کاربرد (Use case) اصلی و مهمش تا تاثیراتش بیشتر قابل بحث و تبادل نظر باشه.

  29. #109

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

    لطفا آخرین نسخه از همین پروژه رو آپلود کن majid325 عزیز...مرسی
    آخرین ویرایش به وسیله solidilos : پنج شنبه 12 شهریور 1388 در 13:31 عصر

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

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

    نقل قول نوشته شده توسط solidilos مشاهده تاپیک
    لطفا آخرین نسخه از همین پروژه رو آپلود کن majid325 عزیز...مرسی
    کدوم پروژه؟
    اگه منظورتون WpfApp3layer هست ، چشم تا فردا شب یه دستی به سر و روش بکشم تا قابل upload بشه .
    آخرین ویرایش به وسیله majid325 : پنج شنبه 12 شهریور 1388 در 18:00 عصر

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

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

    نقل قول نوشته شده توسط solidilos مشاهده تاپیک
    به نظرم بهتره اول یه دسته بندی از انواع پیاده سازیهای موجود انجام بشه، بعد تو یه پروژه نمونه (Case Study) مورد توافق همه پیاده سازی بشه. اونم نه کل سیستم، بلکه فقط برای یک یا دو مورد کاربرد (Use case) اصلی و مهمش تا تاثیراتش بیشتر قابل بحث و تبادل نظر باشه.
    اینطور که معلومه شما تجربتون بیشتره ، میشه مسئولیت دسته بندی انواع پیاده سازی به همون روشی که گفتین بعهده بگیرین؟

  32. #112

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

    نقل قول نوشته شده توسط majid325 مشاهده تاپیک
    اینطور که معلومه شما تجربتون بیشتره ، میشه مسئولیت دسته بندی انواع پیاده سازی به همون روشی که گفتین بعهده بگیرین؟
    خواهش می کنم
    من از سال 84 تا الان بصورت غیر حرفه ای پیگیر این معماری بودم اما حالا می خوام دونسته هامو جمع و جور کنم.
    چیزی که خیلی مشهوده اینه که با ظهور تکنولوژیهای جدید، هر از چند گاهی شکل این معماری عوض میشه اما ساختار کلی اون تقریبا ثابت مونده. پس از یه کم بررسی که تو منابع اینترنتی کردم متوجه شدم هیچ دسته بندی خاصی از این معماری وجود نداره اما گونه های مختلفش که مناسب گونه های مختلف پروژهای سیستم های اطلاعاتی هستند توسط شرکت ها و برنامه نویس ها ارائه شده. مثلا اگه فقط تو سایت CodeProject برای مقالات مرتبط با این موضوع جستجو کنین متوجه منظورم میشین. حالا کاری که می خوام انجام بدم دسته بندی الگوهای مختلف این معمارییه (شاید لفظ الگو مناسب نباشه، منظورم همون پیاده سازی های مختلف از این معماری بود. از این به بعد برای رعایت اختصار از این لفظ استفاده می شه، اگه کسی از دوستان واژه دیگه ای رو مناسبتر دونستن اعلام کنن.)
    بطوری که مشخصات کمی و کیفی هر الگو از هر لحاظ (پارامترهای تست معماری) تست و مستند بشه.

    اگه کسی از دوستان نظری داره ممنون میشم اعلام کنه.

  33. #113

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

    به راستی که جوینده یابنده ست!
    بالاخره تونستم اون چیزی رو که دنبالش بودم پیدا کنم، البته نه دقیقا همونو ولی خیلی به هدفم نزدیک شدم. همیشه میگن آدم درست چیزای جلو چشمشو نمی بینه...بعد از کلی منت کشیدن از Google واسه پیدا کردن یه مقاله تو این زمینه، با موتور جستجوی خود مایکروسافت اینو پیدا کردم. البته کلی فوتش کردم تا خاکش بره چون تاریخش مال 2002 هستش اما مفیده. امیدوارم به درد شما هم بخوره. این مقاله یه مقایسه کیفی از تعدادی الگوهای معماری چند لایه برای برنامه های کاربردی NET. ارائه میده. راهنمایی در مورد سناریوهای مناسب جهت استفاده از الگو، گزینه های مناسب برای پیاده سازی، مزایا و معایب استفاده از هر الگو مواردی هستن که بهشون اشاره شده.


    این یکی هم قدیمیه اما به درد اونایی میخوره که دنبال کارای اصولی هستن. تو این مقاله فنی در مورد اصول و تکنیک های دستیابی به داده ها توسط ADO‎‎‎.Net بحث شده. مطمئنا سوال های زیادی رو جواب میده.
    آخرین ویرایش به وسیله solidilos : جمعه 13 شهریور 1388 در 16:10 عصر

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

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

    با توجه به روند تاپیک و همنظر بودن دوستان راجع به بررسی پیاده سازی های این معماری تصمیم گرفتم این پست رو با هدف مطرح شده ایجاد کنم تا اگر در ارتقای سطح علمی دوستان تاثیر گزار بود ، مطالب رو در همین راستا به صورت تخصصی تر با کمک همه پیگیری کنیم:
    بررسی لایه Data Access Layer
    لایه های برنامه ها مون رو به چه صورت یا الگویی باید پیاده سازی کنیم ؟
    گزینه های که در لایه dal پیش رو جهت انتخاب داریم : DataSet Designer یا ADO‎‎‎‎‎‎‎.Net Entity Framework, یا ORM یا linqToSqlو یا با استفاده از اشیای ado و یا .... این کار رو انجام بدیم.(یه جا خوندم که ADO‎‎‎‎‎‎‎.Net Entity Framework یک orm هست.)
    شخصا تو پروژه هام ترجیح میدم از اشیا ado استفاده میکنم و تا حالا از هیچ کدوم از مواردی که نام بردم در برنامه ها استفاده نکردم، دلایل:
    ADO‎‎‎‎‎‎‎.Net Entity Framework : به عنوان یک برنامه نویس به طور ذاتی در مقابل ابزارهای که اختصاصی هست(سیاست های ماکروسافت) مقاومت نشون میدم.
    DataSet Designer : هم شامل موارد بالا و هم اینکه احساس میکنم از مسائلی که باید روشون تمرکز داشته باشم قافل میشم
    LinqToSql : جالب به نظر میاد ولی وقتی ماکروسافت دیگه پشتیبانیش (به هر دلیلی) نمیکنه ، ارزش هزینه کردن رو نداره.
    ORM : همونطور که گفتم تا حالا استفاده نکردم (دلیل فنی و غیر فنی خاصی هم ندارم) ولی به نظرم یک از بهترین گزینه ها می باشد.
    راه حل های که به ذهنم میرسه استفاده از ORM و یا همون روش سنتی یعنی اشیا ado بهترین گزینه برای انتخاب لایه dal هست ، البته در رابطه با ADO‎‎‎‎‎‎‎.Net Entity Framework نظر نمیدم چون استفاده نکردم.
    برای استفاده از یک orm‌ کدوم یکی رو پیشنهاد میدین که با محیط ها و پلت فرمهای بیشتری سازگار تر هست
    تو روش که من ازش به عنوان روش سنتی و استفاده از اشیا ado نام بردم ، به این صورت عمل میکنم که داده ها رو با یک command و یک Connection استخراج میکنم و خروجی توابع ام هم IDataReader هست ،پیوست مطالبی که جهت توضیح روش مذکور ارائه دادم {
    یکی از دوستان اینجا گفته بود که خروجی توابعش از نوع IQueryable هست که به نظر من خیلی جالب اومد (نحوه پیاده سازیش) میخواستم نظر دوستان رو بدونم.
    }
    لطفا دوستان و اساتید نظرات خودشون رو ، تجربهای شخصی شون رو و یا ایرادات فنی و غیر فنی شون رو راجع به مطالب بالا مطرح کنند.
    ضمنا به دلیل مسائل مطرح شده نمونه برنامه ای که قولشو داده بودم میمونه برای چند روز دیگه که پر محتوا تر بشه.

    اگه adsl دارین این فیلم آموزشی رو با عنوان Creating an N-Tier Data Application بررسی کنید هر چند که با dataset لایه dal رو میسازه ولی خالی از لطف نیست. در ضمن یه آشنایی نسبی با WCF هم برای دوستانی که آشناییت ندارن ایجاد میشه
    آخرین ویرایش به وسیله majid325 : جمعه 13 شهریور 1388 در 21:20 عصر

  35. #115

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

    نمی دونم چرا اکثر دوستان شمشیراشونو از رو بستن و همش از سیاست های مایکروسافت اظهار نگرانی می کنن. من هیچ تعصب خاصی برای استفاده از تکنولوژی های مایکروسافت ندارم اما تنوع ابزارها، روش ها و خط مشی های این غول نرم افزاری همیشه واسم جالب بوده.
    در جواب دوست عزیز لازم دونستم بگم که اگه با یه دید کلی و جامع به روند تکاملی پلتفورم دات نت و ابزارهای توسعه مایکروسافت نگاه کنیم، توجه زیاد و حرکت سریع این کمپانی رو به سمت معماری مدل گرا (MDA) میبینیم.
    درسته که برای من برنامه نویس همسو و هم سرعت شدن با این روند سخته اما تکامل صنعت نرم افزار تو همین دگرگونی های سریعه. این اتفاقیه که واسه صنعت های دیگه هم افتاده. ما که بستر تولید و توانایی رقابت با همچین شرکت هایی رو نداریم، اما حداقل انرژیمونو صرف استفاده از محصولات ایده ال و بروز بکنیم. به جای اختراع دوباره چرخ و یا تردید در انتخاب یه چرخ مناسب، سعی در به حداکثر رسوندن بهره وری استفاده از این چرخ ها بکنیم، به امید روزی که بتونیم چیزی فراتر از چرخ دیگران خلق کنیم که سوار بر چرخشون باشه.

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

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

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

    نمیخوام این گفتگوی فنی رو به طور فلسفی جلوه داده بشه :
    شخصا توی کارهای که انجام میدم همیشه دنبال راه حلی استاندارد به معنای واقعی میگشتم چون باید روزی تجربه پلاتفرمهای به حق رو تجربه کنم و این استاندارد هست که کمترین هزینه از نظر مالی و وقتی برای من فراهم میکنه، با توجه به تجربه ای که توی دات نت دارم همیشه لذت کار کردن با Ide های ماکروسافت منو دور از خلاقیت های که در موازات و حتی بیشتر مواقع جلوتر از فناوری ها و تکنولوژی های که بیشتر آنها یک کپی زیبا ماکروسافت از همین خلاقیت ها هستند نگه داشته که این بر میگرده به حقیقتی به نام حس خلاقیت طلبی و اصلا به دنبال دوباره ساختن و بیگاری نیستم ، فقط و فقط دوست ندارم زمانی که سوییچ میکنم رو پلات فرم یا محیط دیگه ای تمام تجربیات دات نت رو خاطره کنم بر فرض مثال اگه به این نتیجه برسم که از ORM ها به عنوان dal استفاده کنم میتونه یکی از گزینه ها من NHibernate باشه که این تجربه رو با خودم میتونم تو جاوا هم ببرم با این اوصاف این اظهار نگرانی از سیاست های ماکروسافت هست یا اظهار نگرانی از خاطره کردن تجربه ها؟
    solidilos عزیز ما مخلصیم.
    در ضمن این معماری مختص ‎.Net نیست خواهشن دوستانی که در محیط های دیگه کار میکنن هم نحوه پیاده سازی رو تو محیط مربوطه توضیح بدن ، (شاید من یکی وسوسه شدم و تغییر سکو بدم )

  37. #117

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

    الانه که این پست ها رو پاک کنن.

    فقط یه جواب: برای یه راننده حرفه ای فرقی نمی کنه که Ferrari برونه یا Porsche و یا ...فقط به سرعت فکر می کنه نه به طراحی واشر سر سیلندرهای موتور ماشینش و یا سیستم توربوش...اگه برنامه نویس کاربردی هستیم باید تو زمینه کاریمون خلاقیت به خرج بدیم نه تو کشف استانداردها.
    (دات نت یه پیاده سازی خوب از استاندارد CLI طراحی شده بوسیله شرکت های بزرگی چون مایکروسافت، اچ پی، اینتل و ... هست با هزینه هنگفت که بیشتر از بودجه سالانه ماست...از این استاندارد تر من چیزی پیدا نکردم)

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

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

    توی reSearch که پیرو پست 114 انجام دادم به این نتیجه رسیدم که سرعت orm ها در مقابل دیتاست و اشیا ado کمتر هست ولی هزینه نگهداری پایین اونها باعث میشه در پروژه های بزرگ و نسبتا بزرگ ازشون استفاده بشه.
    با توجه ADO‎‎‎‎‎‎‎‎‎.Net Entity هم یک orm هست ،که کسی از دوستان تجربه مقایسه سرعت ADO‎‎‎‎‎‎‎‎‎.Net Entity Framework و با اشیا ado رو داره ؟

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

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

    یکی از دوستان تو پست خصوصی از من خواسته بود یک مرجع در مورد NHibernate بهشون معرفی کنم ، گفتم اینجا بزارم شاید دوستان دیگه هم استفاده کردن:ویدئو های آموزشی
    نمیدونم چرا لینک های که میزارم مشکل دار میشه!!
    میتونید با Copy و Paste آدرس در آدرس بار این مشکل رو برطرف کنید.
    ببنید مشکل اینجاست که لینک اصلی به صورت زیر می باشد:
    http://www.dimecasts‎‎‎‎‎.Net/Casts/ByTag/ORM

    http://www.dimecasts‎‎‎‎‎.Net/Casts/ByTag/NHibernate

    ولی بعد از Copy تو آدرس بار یا رجوع به لینک ، تبدیل میشه به:
    http://www.dimecasts%e2%80%8e‎‎‎‎‎.Net/Casts/ByTag/ORM

    http://www.dimecasts%e2%80%8e%e2%80%8e‎‎‎.Net/Casts/ByTag/NHibernate


    خودتون دستی تو آدرس بار درستش کنید ، اگه کسی هم تجربه رفع این مشکل رو داره بگه منم استفاده کنم.
    آخرین ویرایش به وسیله majid325 : یک شنبه 15 شهریور 1388 در 22:42 عصر دلیل: غلط املایی - تصصیح لینک

  40. #120
    کاربر دائمی آواتار aynehband
    تاریخ عضویت
    تیر 1384
    محل زندگی
    اهواز
    پست
    111

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

    این هم یک منبع فارسی nhibernate برای دوستانی که زیاد زبونشون قوی نیست:
    http://nhibernate.wordpress.com/

صفحه 3 از 5 اولاول 12345 آخرآخر

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

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

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