واضح آرشیو وب فارسی:سایت ریسک: Ultimator04-01-2008, 04:23 PMچه توری ميشه با وی بی نت لايه DAL ساخته شده رو استفاده کرد ؟ با سی شارپ ميتونم بنويسم ولی الان با وی بی نت لازم دارم شديداً _H2_05-01-2008, 09:58 AMسلام یعنی چی؟؟؟؟؟ با #C میتونید با VB نمیتونید؟؟؟؟ مگه فرقی داره؟؟؟؟؟؟ در هر دومورد کاملاً یکسان است و اصولاً برنامه نویسی چند لایه ربطی به زبان دارد که حتی بگویم با php میتوانم با delphi نمیتوانم !!!!!!!!!!!!!!؟؟؟؟؟؟؟؟؟؟؟؟؟ مثل این است که بگوییم با delphi میتوانم برنامه بنویسیم ولی با java نمیتوانم!!!!!!!! (نتیجه اخلاقی آنکه پس java بلد نیستید) اصلاً برنامه نویسی چند لایه هیچ کدخاص یا کلمه کلیدی خاصی ندارد که بگوییم این را استفاده کن تا سه لایه شود ..... یک استاندارد کد نویسی است و بیان میکند که کدهایی که برای ارتباط با هسته بانک اطلاعاتی استفاده میشوند در یک بخش کاملاً مجزا و واحد مجتمع شوند و کدهای کار را با UI هم همینطور و یک سری کد کاملاً مجزا هم این دو را به هم وصل کند...... این فقط یک استاندارد کد نویسی برای تمیز و قابل فهم شدن و نگه داری و توسعه بهتر کد است. اغلب برای شفاف سازی بیشتر هر لایه را در یک dll یا exe مجزا جا میدهند.... یک چیزی مثل این است که بگوییم نامگذاری متغییر های Integer را برای فهم بیشتر با int یا i شروع کنیم (intTotal یا iSum و....) و اصلاً معنا ندارد که بگوییم در یک زبان میشود و در زبان دیگر نه؟؟؟؟ یک جور توصیه مفید است. Ultimator05-01-2008, 02:33 PMخدمته مهنس h2 جون ارز کنم که من مفهوم برنامه نويسی چند لايه رو مشکل نداشتم که زحمت کشيدين توضيح دادين من منظورم اينه که ميتونم لايه رو با کلاس های وی بی ايجادکنم اينش زياد فرق نداره ولی تو وی بی مثل سی شارپ کلاس ها رو استفاده نميکنن و کاملاً یکسان نیست نحوه ی استفاده ی کلاس تو دو تا زبون فرق داره که من نتونستم تو وی بی به همون صورت که تو سی شارپ استفاده کردم به کار ببرم ، در ضمن مثال های بی ربطی که زدين نشون ميداد من نتونستم منظورم رو بفهمونم و شما اصلا متوجه سوال نشدين درسته من استفاده ی کلاس هايی که ايجاد کردم رو تو وی بی بلد نيستم که پرسيدم سوال اينه که اصلاً چطور ميشه کلاس هاي ايجاد شده در وی بی رو تو برنامه استفاده کردبرنامه اي که نوشتم رو به زودی ميزارم تا راحت تر کمک کنيد Ultimator05-01-2008, 02:40 PMمثلا تو سی شارپ اين کارو ميکنيم اين کد کلاس لايه DAL !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! اينم استفادش تو لايه BLL !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! اينم استفادش تو برنامه یعنی لایه UI !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! حالا تو وی بی چيکارش ميکنن ؟ به VB تبديل کردم کار نکرد يعنی تو کلاس هاش مشکل نبود تو UI مشکل داشت Ultimator05-01-2008, 03:05 PMاينم از وی بی DAL !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! BLL !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! UI !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! همینه ؟ جا هايی که Bold شده مشکل داره user manager رو نمیشناسه حالا منظورم رو متوجه شدید استاد ؟!! _H2_07-01-2008, 10:25 AMسلام مجدد با عرض پوزش چیزی که من از پست اول برداشت کردم، مشکل در فهم برنامه نویسی سه لایه بوده که به نظر میرسد شما در این مورد مشکلی ندارید. در کل عضرخواهی میکنم. کدهای شما در ظاهر هیچ مشکلی ندارند... !؟!؟ شاید مشکل در Refrence کردن ها باشه!؟ مثلاً لایه BLL را کجا تعریف کرده اید؟ در یک DLL دیگر؟؟؟ Refrence را حذف و مجدداً اضافه کنید !؟!؟ اگر هر لایه را در یک اسمبلی (exe یا dll دات نتی) جا داده اید حتماً همه را در قالب یک Solution واحد مجتمع کنید و با کمک property پروژه ها Refrence ها را به هم حذف کرده و مجدداً Refrence را اضافه کنید و در پنجره Add Refrence که به همین منظور نشان داده خواهد شد حتماً از تب Projects استفاده کنید تا حالت دینامیک داشته باشید و بتوانید به راحتی دیباگ کنید و با تغییر کد و کامپایل مجدد مشکلی پیش نیاید. برای اطمینان بیشتر من خودم کدهای شما را در VS وارد کردم و بجز Login1 که در کد من تعریف شده نبود مشکل دیگری ندیدم، مشکل شما حتماً باید از refrence ها باشد. ضمناً ربطی به بحث جاری ندارد ولی چه در نمونه #C و VB بهتر است برای com و cmd و dr از Using استفاده کنید و نیز در کد اولیه که صرف وجود سطر در بانک برای اعتبار سنجی شما کفایت میکند بهتر است به جای برگرداندن سطر از (*)COUNT استفاده کنید. مثلاً کد زیر !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! البته دوستانی که چندان با سه لایه نویسی کار نکرده اند زیاد متعجب نشوند، در یک پروژه بزرگ و کامل این لایه مسئولیت بیشتری خواهد داشت ! و این لایه موجب ایزوله شدن دولایه دیگر از هم میشود و تا تغییر در یکی موجب تغییر در دیگری نشود و.... !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! اگر باز هم مشکل مذکور ادامه یافت بگویید تا همین مثال خودتان را به صورت اماده تر و در قالب یک Solution واحد بفرستم. ضمناً من استاد نیستم . جمیعاً موفق و پیروز و سربلند باشید. Ultimator08-01-2008, 04:29 PMنمی دونم چرا به فکر خودم نرسیده بود ! solution رو دو باره ایجاد کردم مشکل حل شد ! کدهای لایه هم بصورت فایل VB تو َapp_code ایجاد کردم :21: در ضمن مزیت استفاده از Using نسبت به روش خودم رو میشه توضیح بدی از راهنماییت هم ممنونم _H2_09-01-2008, 10:11 AMسلام خوشحالم که مشکلتان حل شد. در مورد Using شما فرض کنید در همین کد جاری در خط ExecuteScalar خطایی پیش آمد و به هزار دلیل مختلف دستور شما در سرور اجرا نشد در کد اولی شما با پیش امدن این وضعیت کدهای Close دیگر اجرا نخواهد شد و Connection باز خواهد ماند، البته میتوان به خود دات نت اعتماد کرد و قضیه را پای خودش گذاشت ولی End Using (یا معادل { اش در #C) با تضمین صددرصد ودر هر شرایط اجرا خواهد شد و شی مورد نظر را نابود خواهد کرد، حتی وقتی من در بدنه و وسط کد دستور Return دادم که به ظاهر نباید کدهای زیرین دیگر اجرا شوند.... یعنی هیچ پیشامدی نمیتواند از End Using و نابودی شی مورد نظر جلوگیری کند. و نیز End Using از Dispose استفاده میکند که در مورد جاری نه فقط Close را انجام میدهد بلکه شی را هم برای نابود سازی تحویل garbage میدهد. برای توضیح بیشتر به تاپیک زیر مراجعه کنید !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! موفق و پیروز و سربلند باشید. Ultimator10-01-2008, 04:07 PMاز راهنماييتون خيلی خيلی ممنونم مقاله اي که معرفی کردين هم عالی و بسيار مفيد بود سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 600]