تور لحظه آخری
امروز : شنبه ، 8 اردیبهشت 1403    احادیث و روایات:  امام علی (ع):انسان زيرك، دوستش حق است و دشمنش باطل.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

بلومبارد

تبلیغات متنی

تریدینگ ویو

خرید اکانت اسپاتیفای

کاشت ابرو

لمینت دندان

ونداد کولر

لیست قیمت گوشی شیائومی

صرافی ارکی چنج

صرافی rkchange

دانلود سریال سووشون

دانلود فیلم

ناب مووی

تعمیر گیربکس اتوماتیک

دیزل ژنراتور موتور سازان

سرور اختصاصی ایران

سایت ایمالز

تور دبی

سایبان ماشین

جملات زیبا

دزدگیر منزل

ماربل شیت

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

آموزش آرایشگری رایگان

طراحی سایت تهران سایت

آموزشگاه زبان

اجاره سند در شیراز

ترازوی آزمایشگاهی

رنگ استخری

فروش اقساطی کوییک

راهبند تبریز

ترازوی آزمایشگاهی

قطعات لیفتراک

وکیل تبریز

خرید اجاق گاز رومیزی

آموزش ارز دیجیتال در تهران

شاپیفای چیست

فروش اقساطی ایران خودرو

واردات از چین

قیمت نردبان تاشو

وکیل کرج

تعمیرات مک بوک

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

سیسمونی نوزاد

پراپ تریدینگ معتبر ایرانی

نهال گردو

صنعت نواز

پیچ و مهره

خرید اکانت اسپاتیفای

صنعت نواز

لوله پلی اتیلن

کرم ضد آفتاب لاکچری کوین SPF50

دانلود آهنگ

طراحی کاتالوگ فوری

واردات از چین

اجاره کولر

دفتر شکرگزاری

تسکین فوری درد بواسیر

دانلود کتاب صوتی

تعمیرات مک بوک

 






آمار وبسایت

 تعداد کل بازدیدها : 1798228821




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

طراحی Forum تحت ASP.Net


واضح آرشیو وب فارسی:سایت ریسک: _H2_16-04-2008, 10:19 AMسلام با توجه به مباحث در جریان تاپیک ذیل forum.p30world.com/showthread.php?t=218457 تصمیم بر آن گرفتم مقدماتی در حد دانه کوچک گندم، برای طراحی یک تالار گفتگو را در این تاپیک قرار دهم. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! بسته فوق شامل: - یک پروژه پاییه ای خالی web - یک پروژه dll برای هسته زیرین ترین لایه (معروف به DAL) - یک دیتابیس نمونه تحت SQLServer2005 برای باز کردن برنامه لزوم VS2008 ضروری است، مخصوصاً که در دو خط از کدها از یک سینتکس جدید 2008 استفاده شده، ولی ذات پروژه تا ایجا و فعلاً تحت Framework2.0 است. (این سینتکس چندان مهم نیست و فقط کار تایپی را کمی کم میکند.) ========== توضیح دیتابیس نمونه این بانک جداولی برای نگه داری داده های عادی تالارهای گفتگو دارد. Forum_Attachs نگه داری فایلهای آپلودی کاربران Forum_Cultures نگه داری برخی تنظیمات کلی چندفرهنگه و چندزبانه Forum_Exceptions نگه دار آمار خطاهای رخ داده در برنامه برای ارسال به گروه طراح و رفع عیوب در نسخه های اینده. Forum_Icons آیکونهای اپلود شده برای استفاده در نقاط مختلف سایت. Forum_Messages نگه دار پیغامهای خصوصی اعضا به یکدیگر Forum_Resources نگه داری تنظیمات که بر اساس فرهنگ و الگوی نمایش قابلیت ذخیره چندگانه هم دارد. تنظیمات مشترک را میتوان تحت استایل و زبان صفر نگه داشت. Forum_Sections نگه دار نام تالارهای مختلف با قابلیت تودرتویی تالارها Forum_SectionsManagers مجوزهای امنیتی اعتا شده به کاربران و گروه های کاربری مدیر بریا هر تالار Forum_Statistics نگه داری ریز آمار دیدارهای سایت (چه صفحه ای، چه تعداد، چه مدت، ip بازدید کنند و...) Forum_Statistics_Address نگاشت آدرس صفحات سایت به یک عدد، برای کم کردن حجم ذخیره سازی جدول قبلی. Forum_Thanks نگهداری آمار تشکر از افراد از پستها Forum_Themes نگه داری اطلاعات کلی در مورد استایلهای مختلف سایت Forum_TopicAnswer نگهداری رأی کاربران به گزینه های تاپیک های نظرسنجی Forum_Topics نگه داری کلیه اطلاعات در خصوص تاپیک ها و پستها (به طور مشتکر) حتی ip کاربر در زمان ارسال پست و... Forum_TopicsAnswers نگهداری نام گزینه های مختلف تاپیکهای نظرسنجی Forum_TopicsReadState نگهدار آمار تاپیک های ملاحظه شده توسط اعضا. ( آمار این جدول بسته به تنظیمات فقط شامل 7 یا 15 یا 30 روز جاری است و نه بیشتر فرض میشود تاپیک های قدیمی تر از این مدت را همه دیده اند ) Forum_UserGroups نگه داری مشخصات گروههای کاربری ( حداکثر 255 گروه در بقیه بخش های اعداد زیر 255 نشانگر گروه کاربری هستند اعداد بالای 255 نشان گر کد PrimaryKey یک کاربر هستند ) Forum_Users اطلاعات اعضا طبیعی است که جدوال ناقص هستند و با پیشرفت کار نیازهای بیشتری معلوم خواهد شد و جداول باید گسترش پیدا کنند. ----- فیلدهایی که با آندرلاین شروع شده اند، داده های اساس نیستند، نوعی کش هستند برای سرعت بیشتر. مثلاً آمار تعداد پستهایی و تشکر های شده، تشکر کرده و... که یک کاربر دارد. این فیلدها همواره و بدون شک با دستورات SQL و View ها قابل تحصیل هستند ولی فیلدهایی که برای کش انتخاب کردم - همه گی عددی و کم حجم هستند (چند بایت) - میزان آپدید و تغییرشان (که نیاز به Refresh پیدا کنند) به نسبت خواندن و نمایش بسیار پایین است. (یک پست جدید یک بار زده میشود ولی شاید هزاران بار دیده شود !) - خیلی زیاد خوانده و نمایش داده میشوند. برای یک سایت که شاید در یک لحظه هزار کاربر آنلاین داشته باشد، کش کردن این اطلاعات و عدم اجرای دستورات SQL بعضاً Join دار میتواند بازده خوبی داشته باشد. برای Refresh هم میتوان از تریگر های خودکار SQLServer استفاده کرد. ----- فیلدهایی که با _ID شروع میشند شاخص هستند، یعنی معمولاً این فیلدها PrimaryKey جدول دیگری هستند و اطلاعات نظیر واقعی در آن جدول قراردارد. ========== توضیح لایه DAL شامل یک فایل dll با نام FDBM مخفف Forum DataBase Manager این dll شامل کلیه کدهای در ارتباط مستقیم با بانک است و شامل متدی برای هر Insert و Update و Select و Delete است. من برای راحتی بیشتر متدها را Shared گرفته ام ولی اگر در هر مرحله یک Connection و یک وهله از کلاسس ساخته شود و بتوان با هم یک Connection اعمال مختلف را از ریسمان درخواستی جاری رو دیتاها انجام داد شاید بهتر باشد. ولی به علت مخزن Connection های داخلی دات نت، شاید هم چندان تفاوتی در کارآیی نداشته باشد. کد عمومی تولید Connection جدید در کل سطح سایت درست شده و یک نمونه متد Insert و Delete برای جدول ساده Forum_Thanks هم تهیه شده ========== توضیح پروژه سایت خالی تر از آن است که قابل توضیح باشد، چند Web.config برای موقعیتهای خاص تولید شده. ================================================== متاسفانه همانطور که در تاپیک قبلی گفتم من به علت مشکلات زمانی قادر به ادامه کار روی این پروژه نیستم. فقط توانستم بستر اولیه فوق العاده ساده ای تولید کنم. اگر دوستان مایل بودند میتوانند روی این بستر اولیه طرح را توسعه دهند. در صورتی که سوال و یا مشکلی وجود داشته باشد، در همین تاپیک حتماً اگر بلد باشم و بتوانم جواب خواهم داد. موفق باشید. :10: Ultimator17-04-2008, 10:25 PMبستر سازی که عاليه ! ميتونه پروژه خوبی باشه يعنی مطمئنم. سعيمو ميکنم که بتونم يه کارايی بکنم البته بدون کمک شما امکان نداره . هنوز خيلی بی تجربه تر از اين حرفاييم! البته منم مشکل زمانی دارم ولی همه ی تلاشم رو ميکنم شايد 4000 تا چيز ياد گرفتيم استاد! _H2_19-04-2008, 09:47 AMسلام - اولاً عزیز جان والا من استاد نیستم. - دوماً گرچه همچنان من برای این پروژه سرانجامی متصور نیستم ولی حالا که میبینم تا حدودی مورد توجه دوستان قرارگرفته، یک کمک دیگر هم میکنم، من برای خودم کلاسس های ثبت خطا را در بهترین شرایط حاضر کرده ام، این امکان را میتوان به Refrence های پروژه اضافه کنم و مخصوص این برنامه بستش دهم. با این امکان به سادگی میتوانید گزارشات دقیق خطا و تابع محل وقوع(سینتکس VB یا #C) را با یک خط کد در جدول مربوطه ثبت کنید و یا به سادی در محل مناسب صفحات Admin سایت، تمام گزارشات جاری را برای برسی بیشتر دانلود کنید. (یا اگر برنامه وبی نبود در فایلی ذخیره کنید) - سوم با توجه به مباحث موازی در جریان تپیک دیگر، نسخه C#.Net را هم اضافه میکنم. دوستان میتوانند کار را ادامه دهند، من نمونه بعدی را برای دانلود با کمی اصلاحات ریز دیگر پس فردا قرار میدهم. H_T_O_A20-04-2008, 03:03 AMخدا رو شكر كه بالاخده يه تاپيك براي آموزش ساخت اين گونه سايت ها درست شد. من كه كم كم داشتم نا اميد ميشدم خوشخالم كه اسرارهايي كه كردم به اساتيد به خصوص h2 بالاخره جواب داد من از هر دوي شما و كليه اساتيد تشكر مي كنم و در عين حال عاجزانه تقاضا مي كنم مطالب رو جوري مطرح بشه كه ما مبتدي ها هم راحت بفهميم:42: راستش اگه بخوام متوجه بشم كه شما چي ميگيد بايد خيلي به مغزم فشار بيارم كه اون وقت مخم ميتركه. حيف از جووني من نيست:31: به هر حال ما دوست داريم از اساتيد كسب فيض كنيم _H2_24-04-2008, 01:22 AMسلام از کلیه دوستان شدیداً عضر خواهی میکنم... واقعاً کار داشتم و نتوانستم یک لحظه هم به سایت سر بزنم، تا بالاخره امشب توانستم سری بزنم. باز عضر خواهی میکنم. نسخه جدید را از همان لینک قبلی دانلود کنید. (حجم حدود 2 مگ) !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! اصلی ترین تغییر این نسخه اضافه شدن نمونه C#.Net برای دوستان #C کار است. کلاسس ثبت خطا هم با وراثتی از کلاسس اصلی موجود در DLL به پروژه اضافه شده. میتوانید با یک خط کد گزارش خطا را به طور کامل در دیتابیس ذخیره کنید. امکان دانلود گزارشات هم با متد مناسبی به فرمت XML و با ساختاری سریع و غیر حجمی (غیر DataSet) وجود دارد که امکان دانلودهای حجم عظیم اطلاعات بدون نگرانی های RAM آلود DataSet را میدهد. میتوانید نمونه ای از کد مناسب ثبت خطا را در بخش Forum_Thanks پروژه FDBM ببینید. یک متد SELECT هم به Forum_Thanks اضافه شده که خروجی اش DataReader است و به سادگی میتوان برای تولید لیست HTML افراد تشکر کننده از یک پست با سرعت تمام استفاده اش کرد. توجه کنید که برای کد تمیز، این مرز بندیها و جدا کردن و به اصلاح لایه بندی مهم است. و اگر پروژه بزرگ شود، دچار سردرگمی نمیشوید و راحت تر هم میتوانید کدهای متمرکز شده را تغییر دهید. در مورد کد جاری هرسوالی داشتید در خدمت هستم، ولی به علت مشکلات جاری خودم شاید کمی دیر سر بزنم... (شرمنده اخلاق ورزشی....) ولی سعی میکنم هر چه زودتر سربزنم. جمیعاً میبخشید، موفق باشید و خدانگه دار. :10: _H2_24-04-2008, 02:37 AMسلام مجدد عاجزانه تقاضا مي كنم مطالب رو جوري مطرح بشه كه ما مبتدي ها هم راحت بفهميم به دستور شما، من جفنگیات خودم را که نوشته بودم یک بار بازخوانی کردم. :31::11: چندین غلط تایپی املایی پیدا کردم ! (چه کشف بزرگی ... !) ولی نکته ابهامی ندیدم... فقط به نظرم آمد شاید برخی دوستان با تریگرهای SQLServer آشنا نباشند. تریگرها کدهای هستند که به طور خودکار با وقوع یک رویداد در داخل هسته خود SQLServer اجرا میشوند. مثلاً شما میتوانید یک تریگر تعریف کنید تا به محض اینکه سطری از جدول پستها اضافه یا حذف شده، با توجه به سطر، کاری انجام شود. مثلاً در مورد کار ما، شاید نیاز باشد فیلدهای آندرلاین دار گفته شده یک فرد که شامل تعداد پستها است از نو Refresh شود. بجز این مبحث دیگر جایی برای ابهام نمی بینم. بالاخره شمایید که باید بگویید با چه جمله ای یا کدی مشکل دارید و متوجه نمیشوید یا به نظرتان افتضاح است و راه بهتری دارد و.... تا من و بقیه دوستان بتوانیم جوابی دهیم و گرنه من تا چند روز پیش یک کلاسس ماژول علم لدونی داشتم، که متاسفانه در بقالی سر کوچه گمش کردم ! :31::46::10: H_T_O_A24-04-2008, 04:19 AMاستاد تو اين دو تا پست خيلي شاد بوديدا. نكنه خبريه؟ آخه خودتونم ميگيد چند روز نميام يه كم مشكوكه... والله روند كاري من از درس دادن شما خيلي كند تره چون سرم شلوغه و كم وقت ميكنم روي پروژه شما تمرين كنم پس حداقل از طرف من خاطر جمع باشيد اما سعي مي كنم وقتمو آزاد كنم(واس من خبري نيستا فكر بد نكنيدا) پي كار و يك سري مشكلات شخصي كه تمام وقتمو گرفته چند روزي درگيرم بنده به خودم اجازه نميدم به شما و اساتيد ديگه دستور بدم(ما جايگاه استاد و شاگردي حاليمونه) مطمئين باشيد سوالات زيادي دارم كه از محضرتو بپرسم يا هو _H2_29-04-2008, 12:58 AMسلام اولاً هر موقع استاد شدم، مطمئن باشید خبرتون میکنم. خيلي شاد بوديدا. نكنه خبريه؟ خبری جز بدبختی و بیچارگی و زندگی شهری نیست. خیالتان جمع جمع. چیه؟ میخواهید از آیکون های دپرس استفاده کنم تا همه مثل خودم بشن؟؟؟!!!! این هم چند آیکون جدید.... !!! :2::18::41::19::37::45::24::32::wac: مطمئين باشيد سوالات زيادي دارم در خدمت هستیم. :11::10: _H2_13-05-2008, 12:00 AMسلام با توجه به یک سری گفتگوها در سطح pm (با یکی از دوستان)، نتیجه بر آن شده که یک نمونه کد فوق العاده ساده جهت ثبت آمار بازدیدها از تاپیک ها ایجاد شود. در همین راستا متد فوق العاده ساده CounterValue_Increment در کتابخانه FDBM اضافه کردم. که StoredProcedure ای با نام Forum_Topics_CounterValue_Increment را صدا میزند. گرچه هم خودش و هم دستور SQL ظاهر ساده ای دارد ولی هیچ مشکلی با چند ریسمانی و اجرای همزمان از ریسمان های متعدد ندارد. (SQLServer صحت داده ها را در زمان دستور UTE با کمک قفلهای درونی تضمین میکند) امثال این متدها جای کار دارد، ولی نمونه جاری ساده و قابل فهم است، مثلاً برای یک سایت پرحجم و پربازدید... - میتوان شمارنده ای محلی در RAM داشت که اتصالات به SQLServer را کاهش دهد و هر 1 یا 2 یا 5 دقیقه یک بار و با یک تک دستور SQL گروهی عمل آپدید شمارنده های سرور را در یک واحد اجرا، انجام داد. - یا امکان استفاده از سرویس صف و زمانبندی بروکر هم وجود داشت. ... ولی همین روش جاری هم خیلی خوب است و با توجه به استفاده از StoredProcedure و نیز دستور ساده SQL ، نتیجتاً سرعت و بازده بالایی دارد. یک متد نمونه جهت تولید html برای لیست تشکرها در زیر پست افراد هم، نوشتم. این متد با نام HtmlRender در کلاسس Forum_Thanks در FEng تعریف شده. (Forum Engine) در اصل به همین بهانه بحث لایه بندی را تکمیل تر کردم و FEng را هم اضافه کردم. این dll جدید شامل تمام کدهای میانی بین لایه دیتای FDBM و لایه نمایشی FUI است. میتوان گفت تمام کلاسسهای اصلی برنامه در این لایه جدید قرار خواهند گرفت که این لایه با کمک ارتباط با لایه دیتابیسی FDBM و لایه نمایشی FUI جریان اطلاعات را هدایت و بعضاً تبدیل میکند. مثل همین متد HtmlRender که شاید بتوان گفت نوعی تبدیل است، که DataReader مطلوب لایه FDBM را به TextWriter مطلوب لایه FUI میریزد یا تبدیل میکند. یک ایراد هم در دیتابیس رفع شد. فیلد ID_Culture از جدول Forum_Cultures و LCID از جدول Forum_Users را برای یک کار در نظر گرفته بودم که متاسفانه به علت عجله نامشان یکسان نبود. در نهایت با توجه به معنی واضح تر، فیلد ID_Culture جدول Forum_Cultures به نام جدید LCID تغییر پیدا کرد. باید بگم از این روند متدهای static) Shared در C#.Net) هم چندان راضی نیستم، به نظرم برای روند کلی و احترام بیشتر و موٍثر تر به ذات OOP باید استفاده از این متدها به حداقل ممکن و فقط برای مواقع منطقی تر معطوف کرد، تا بتوان از مزایای بی مثال وراثت و چندریختگی استفاده کرد. این روش جاری راحت است ولی خیلی میبخشید نوعی ماست مالی کردن کار است. دلم نمیخواهد با این پروژه ناچیز مروج دشمنی با OOP پرچیز باشم. (این OOP نفس من بید!!!) ولی بحثی که وجود دارد سادگی کدهای فعلی (با Shared) و قابل فهم راحت تر بودن آنها است. سعی میکنم در وقت آزادی (اگر پیدا کردم !) پروژه را به یک طرح ساده و قابل فهم آسان و با تطابق بیشتری با OOP پیاده سازی کنم. گرچه چندان پروزه مهمی نیست ولی چند مطلب ریز دیگر هم وجود دارد، که با وضع جاری چندان خوشم نمی آید، و به نظرم باید اصلاح شوند. (انشا... یک آپلود دیگر هم خواهیم داشت.) اگر بتوان لینکی از این تاپیک در تالار Framework هم قرار بگیرد شاید بد نباشد، احتمالاً، شاید، ممکن، چند نفر از دوستان وقت داشته باشند و از تاپیک های اینچنینی هم بدشان نیاید. (شاید هم دفعه بعد خودم انجام دهم.) در آخر به عنوان یک هشدار مهم یادآوری میکنم از اشیای پر حجمی مثل DataTable و DataSet به هیج وجه در طراحی های سایت استفاده نکنید. نمونه جدید را میتوانید از همان لینک اخری دانلود کنید. Ultimator13-05-2008, 01:54 AMسلام خیلی ممنون که هنوز یادتون نرفته به زودی من کمی وقت پیدا میکنم و یکارایی میکنم ! پروژه رو هنوز ندیدم ولی توضیحاتتون واضح بود . یه چیزی ! باید بگم از این روند متدهای static) Shared در C#.Net) هم چندان راضی نیستم، به نظرم برای روند کلی و احترام بیشتر و موٍثر تر به ذات OOP باید استفاده از این متدها به حداقل ممکن و فقط برای مواقع منطقی تر معطوف کرد، تا بتوان از مزایای بی مثال وراثت و چندریختگی استفاده کرد. این یعنی shared تعریف کردن متدها بده ؟ من تا حالا همیشه متد ها رو shared تعریف میکردم ! تا اینجایی که سوات من قد میده میدونم که برای استفاده از متد shared نیازی به ایجاد یک instance از کلاس نیست . خوب بازم 4 تا چیز یاد گرفتیم مرسی . Ultimator13-05-2008, 02:07 AMضمنا برای سیستم عضویت میتونیم از کلاس membership استفاده کنیم یا یاید همش رو خودمون بنویسیم ؟ فکر نکنم مشکلی باشه .. _H2_19-05-2008, 01:52 AMسلام و خسته نباشید استفاده از متدهای Shared در زمان نیاز بسیار کارآمد است، ولی اینکه تمام برنامه را با این متدها بنویسید شما را یاد چه می اندازد؟؟؟؟؟ ولی من را که شدیداً یاد DOS و Assembly و QBasic می اندازد. تمام متدها موجودیت واحد داشتند و نیازی به New سازی هم نبود. این یعنی برنامه نویسی غیر شی گرا و رویداد گرا و ناقض تمام مفاهیم جدید. یعنی دور انداختن تمام مباحث OOP و پلی مورفیزم و تمام دست آوردهای ناشی از تجربه سالیان سال برنامه نویسی گذشتگان. یعنی بازگشت به عصر هجر برنامه نویسی. فکر کردید اگر همه چیز Shared بود چه میشد؟؟؟؟؟؟؟؟؟؟ با عوض کردن رنگ یک دکمه، کل دکمه های برنامه عوض میشدند! با تغییر مکان یک دکمه کل دکمه ها جابه جا میشدند! اصلاً بحث چند دکمه و چند پنجره و چند... نبود، بحث یک دکمه، یک پنجره، یک.... شرکت سازنده (مثلاً مایکروسافت) باید در زمان تولید برای پشتیبانی از هر کنترلر TextBox و Button و... باید کاملاً کدهای جدا میگذاشت با ساختارهای Select Case صد عضوی..... من خودم همین الآن در حال طراحی یک Designer هستم، بدون پلی مورفیزم بدون شک هیچگاه اصلاً Designer وجود نداشت. مجدداً تاکید میکنم که استفاده به جا و صحیح سر جای خودش است، مثلاً در همین کد جدید همچنان دستور ساخت Connection جدید Shared است. ================================================== در مورد بحث امنیت و عضویت به نظر شخصی من بهتر است از تلفیق روشها استفاده شود. یعنی قسمت کنترلر کاربران در داخل محیط ASP.Net به کلاسسهای مخصوص membership گذاشته شود و بحث دیتابیس را خودمان مدیریت کنیم. بدین ترتیب بحث کد نویسی داخلی هم راحت میشود و هم کاملاً در سلطه خودمان قرار خواهد گرفت، تک تک فیلدها دست خودتان است، راحت هستید، میتوانید فیلدها را کم یا زیاد کنید، من دوست دارم ساختار کل دیتابیس و جداول صد در صد در کنترل خودم باشد ولی شاید شما... ؟؟!! _H2_19-05-2008, 01:53 AMسلام نمونه جدید که منطبق با اصول OOP است و قولش را داده بودم، حاضر است. (البته کمی با عجله سرهمش کردم که انشا ا... مشکلی ندارد) در این نمونه دیگر خبری اصول کلی متدهای Shared نیست. در این الگوی جدید، باید از کلاسسها قبل از استفاده با کمک دستور New نمونه جدید ساخته شود و از آن مهمتر برای بستن ارتباطات و آزاد سازی RAM حتماً باید در پایان استفاده و نیاز به کلاسس متد Dispose صدا زده شود، بهتر است به جای تعریف متغییر عادی، از کلمه کلیدی Using استفاده شود که تضمین میکند با خروج از حوزه، متغییر را نابود کند. اگر در این امر دقت نشود، منابع به سیستم عامل باز نمیگردد و Connection های باز شده بسته نمیشوند. در اصل برای بالا بردن بازده و سرعت Connection در حوزه مورد نظر یکبار برای اولین بار باز میشود و برای اجرای متدهای بعدی باز میماند و فقط در متد Dispose اقدام به بستن و نابودی آن میشود، در عوض این بالا بردن بازده، کد استفاده کننده باید اجرای متد Dispose را در پایان استفاده تضمین کند. (به مثال موجود در فایل Default.aspx دقت کنید.) در صورت نیاز میتوانید توضیح کلمه کلیدی Using (که البته دوستان فعال در تالار فریم ورک حتماً این تاپیک فوق قدیمی را دیده اند) !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! نکته بعد آنکه باید توجه داشته باشید هر نمونه Connection در هر لحظه میتواند فقط یک دستور را در سرور اجرا کند، و اجرای دستورات موازی و چند ریسمانی موجب بروز خطا میشود، البته همه دوستان این مطلب را میدانند ولی این را گفتم تا یک دفعه کسی فراموش نکند و مثلاً بیاید برای صرفه جویی نمونه ای از کلاسس FDBM.Tables.Forum_Thanks را بسازد و در شی Application نگاه دارد تا هر بار نیازی به New کردن نباشد !!!!!!! (این کار موجب خطا میشود.) میتوان نمونه ای از FDBM.Tables.Forum_Thanks را ساخت و متدهایش را به هر تعداد در یک ریسمان اجرا کرد و در آخر نابود کرد ولی نباید اینها را کش کنید. (به مثال موجود در فایل Default.aspx دقت کنید.) از این بحث ها که بگذریم، فکر کنم بد نباشد دوستانی که مایلند برای آشنایی بیشتر با زبان دیگر (VB.Net <---> C#.Net) کدهای نمونه هر دو زبان را با هم مقایسه کنند... واقعاً شباهتشات حیرت آور و زیبا است، مطمئن هستم کسی که تا حالا اصلاً زبان دیگر را ندیده، اگر هر دو کد را ببیند به راحتی متوجه اصول کلی در این شباحت نوشتاری میشود. در اصل فقط تفاوت های کوچک تایپی وجود دارد و نه تفاوت بنیادین.... در همین نمونه جاری میتوانید ببینید که کد هر دو زبان به چه شفافیت و شباهت و در کنار هم و به طور موازی قابل پیگیری و تایپ و گسترش است. نمیدانم برخی افراد که میخواهند بگویند پروفسور هستند و با قویترین زبان کار میکنند و کلاس بگذارند و پز دهند، تا کی میخواهند (برخلاف نصر صریح خود مایکروسافت دال بر برابری) از روی غرض و مرض، VB.Net کارها و C#.Net کارها را تو جون هم بیاندازند. !؟!؟!؟ این را هنوز نفهمیدم، انگار پز دهی فرزند آدمیزاد تمامی ندارد. که البته خوشبختانه در جمع دوستان در این سایت از اینجور افراد نداریم. (برای همین به شخصه از این سایت خوشم می آید.) دوستان جمیعاً موفق باشید. Ultimator19-05-2008, 03:12 AMاستفاده از متدهای Shared در زمان نیاز بسیار کارآمد است، ولی اینکه تمام برنامه را با این متدها بنویسید شما را یاد چه می اندازد؟؟؟؟؟ ولی من را که شدیداً یاد DOS و Assembly و QBasic می اندازد. تمام متدها موجودیت واحد داشتند و نیازی به New سازی هم نبود. این یعنی برنامه نویسی غیر شی گرا و رویداد گرا و ناقض تمام مفاهیم جدید. یعنی دور انداختن تمام مباحث OOP و پلی مورفیزم و تمام دست آوردهای ناشی از تجربه سالیان سال برنامه نویسی گذشتگان. یعنی بازگشت به عصر هجر برنامه نویسی. فکر کردید اگر همه چیز Shared بود چه میشد؟؟؟؟؟؟؟؟؟؟ با عوض کردن رنگ یک دکمه، کل دکمه های برنامه عوض میشدند! با تغییر مکان یک دکمه کل دکمه ها جابه جا میشدند! اصلاً بحث چند دکمه و چند پنجره و چند... نبود، بحث یک دکمه، یک پنجره، یک.... شرکت سازنده (مثلاً مایکروسافت) باید در زمان تولید برای پشتیبانی از هر کنترلر TextBox و Button و... باید کاملاً کدهای جدا میگذاشت با ساختارهای Select Case صد عضوی.....ٌWow ! ببخشید [ویرایش: ] کاملا به اشتباهم پی بردم !! فهمیدیــــــــم ! آخه تقصیر منم نیست تقصیر این کتابهاست با این آموزش های سطحیشون ، کمتر مرجعی رو میشه پیدا کرد تا درست دست آدم رو بگیره ( مگر خود مایکروسافت ) مثلا تو این چیز میزای آموزشی میبینیم که تو یه صفحه 5 تا دیتاست داریم هر کدوم هم 3 بار از یه بانک سنگین fill از میشه !! تازه همه ی اطلاعات لود میشه بعد اضافه هاش رو میریزن دور تا 10 تا رو نشون بدن که مثلا صفحه بندی انجام شده !! همچین چیز وحشتناکی رو من دیدم ! انم برخی افراد که میخواهند بگویند پروفسور هستند و با قویترین زبان کار میکنند و کلاس بگذارند و پز دهند، تا کی میخواهند (برخلاف نصر صریح خود مایکروسافت دال بر برابری) از روی غرض و مرض، VB.Net کارها و C#.Net کارها را تو جون هم بیاندازند. !؟!؟!؟ این را هنوز ن� سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 2387]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن