PDA

View Full Version : پایین ترین سطح چیز ...



programmable
یک شنبه 08 مهر 1386, 00:13 صبح
اینکه میگن "پایین ترین سطح پاسخ دهی" یا "پایین ترین سطح دسترسی" یعنی چه ؟
هر چی سرچ کردم تو این تاپیک ها در مورد این Httpmodule و httphandler و این چیزا ، هیچ چی نفهمیدم!! :عصبانی++::ناراحت:
بابا یکی این چیزا رو لطفا زیر دیپلمی به ما بفهمونه! آخه خدا رو خوش نمیاد!

Behrouz_Rad
یک شنبه 08 مهر 1386, 13:27 عصر
یعنی با استفاده از HttpModule و HttpHandler میتونی بر روی تمامی Request ها و Response ها کنترل داشته باشی.

__H2__
دوشنبه 09 مهر 1386, 16:25 عصر
سلام
با اجازه آقای راد.
یعنی کوچک ترین، سبک ترین و ابتدایی ترین روشی که میتیونید به درخواستهای امده (مثلاً درخواست دیدن یک صفحه یا عمل در مقابل کلیک شدن یک دکمه) جواب دهید و چیزی به کاربر بفرستید تا ببیند.

یعنی هیچ (و یا کمترین) لایه نرم افزاری بین شما و کلاینت قرار دارد و در نتیجه سرعت بالا میرود ولی همه موارد را کد خودتان باید کنترل کند و هیچ لایه کمکی ندارید.
مثلاً در وراثت های Page اگر دکمه ای کلیک شود به راحتی با رویدادی به کد شما اطلاع داده میشود تا عمل مناسب را انجام دهید ولی با IhttpHandler خودتان باید داخل Form را برای پیدا کردن دکمه کلیک شده جستجو کنید و...

programmable
دوشنبه 09 مهر 1386, 20:00 عصر
حالا این کار واقعا لازم هست؟
تو چه زمینه هایی کاربرد داره؟ میشه یکی از مهمترین زمینه هاش رو بگید؟
وقتی خود asp.net 2 اینقدر قابلیت تشخیص هویت و رفتار کاربر رو در سایت میده چه نیازی به این هست که خودمون این کار رو انجام بدیم؟

Behrouz_Rad
دوشنبه 09 مهر 1386, 20:25 عصر
حالا این کار واقعا لازم هست؟
تو چه زمینه هایی کاربرد داره؟ میشه یکی از مهمترین زمینه هاش رو بگید؟
وقتی خود asp.net 2 اینقدر قابلیت تشخیص هویت و رفتار کاربر رو در سایت میده چه نیازی به این هست که خودمون این کار رو انجام بدیم؟
برای اعمالی که به کل منابع پروژه مرتبط هستند مثل مدیریت خطاها، مدیریت تصدیق هویت، تعیین theme برای کل پروژه و ...

مفق باشید.

programmable
دوشنبه 09 مهر 1386, 20:59 عصر
خوب مدیریت تصدیق هویت کاربر رو که خیلی ساده با authentication در web.config میشه انجام دادو مدیریت استفاده از یک theme رو هم با

<system.web>
<pages theme="..."/>
</system.web>

در web.config میشه انجام داد .
سوال من در واقع اینه که چه کمبود و نیازی باعث میشه ما سراغ استفاده از این شیوه ها به جای شیوه هایی که ذکر کردم بریم؟
ممنون

Behrouz_Rad
دوشنبه 09 مهر 1386, 21:05 عصر
آیا این بهتره که در هر فرم روال کنترل خطاها رو Log کنی یا یک نگهبان داشته باشی تا این کار رو به صورت خودکار در تمامی پروژت انجام بده؟
آیا این بهتره که در هر فرم Culture رو ست کنی یا یک نگهبان داشته باشی تا این کار رو به صورت خودکار در تمامی پروژت انجام بده؟

programmable
دوشنبه 09 مهر 1386, 22:29 عصر
با تشکر از مدیر محترم که اینطور صبورانه توضیح میدید .

واقعیت اینه که کل این تشویش های ذهنی من در مورد این مباحث از اینجا نشأت میگیره که من میخوام رفتار یک کاربر رو در هنگام بازدید از سایت در نظر بگیرم ولی نمی دونم که از چه ابزاری استفاده کنم. این سؤالم رو به شکل دیگری در جای دیگری مطرح کردم ولی به جواب نرسیدم.
نمونه موردی من اینه که مثلا در یک فروشگاه آنلاین از هنگام ورود بازدید کننده به سایت تا هنگام خرید ، بدون اینکه به کاربر ثبت نام تحمیل بشه ، اونو هدایت کنیم. ابزاری که برای این کار (یعنی هدایت اون و ثبت مشخصات خرید در سیستم همگام با امنیت بالا) مورد نیاز هست چی هست؟ (لطفا اگه امکان داره با نمونه کد توضیح بدید)

سپاسگزارم

Behrouz_Rad
دوشنبه 09 مهر 1386, 22:59 عصر
نمونه موردی من اینه که مثلا در یک فروشگاه آنلاین از هنگام ورود بازدید کننده به سایت تا هنگام خرید ، بدون اینکه به کاربر ثبت نام تحمیل بشه ، اونو هدایت کنیم. ابزاری که برای این کار (یعنی هدایت اون و ثبت مشخصات خرید در سیستم همگام با امنیت بالا) مورد نیاز هست چی هست؟
این موراد جزء اموری نیست که ارتباطی با HttpHandler ها یا HttpModule ها داشته باشند.
برای موردی که گفتی به روش متداول عمل کن.

موفق باشید.

programmable
دوشنبه 09 مهر 1386, 23:59 عصر
این موراد جزء اموری نیست که ارتباطی با HttpHandler ها یا HttpModule ها داشته باشند.
برای موردی که گفتی به روش متداول عمل کن.

موفق باشید.
روش متداول؟ :متفکر:

__H2__
سه شنبه 10 مهر 1386, 09:32 صبح
سلام
با اجازه آقای راد عزیز، یک مثال ساده تر و قابل فهم تر میزنم.
یک مورد استفاده خیلی خوب از HttpHandler در تغییر سایز دینامیک تصویر است.
مثلاً مسیر و اندازه مورد نیاز یک تصویر داده شده و حالا میخواهیم به صورت Runtime تصویر را کوچک کنیم و برزای کاربر بفرستیم.
بدیهی است که اینکار نیاز به هیچ کنترلی ندارد و باید مستقیم بایتهای تصویر را در خروجی ریخت که در یک تابع ناقابل قابل انجام است و چون کنترلی نداریم و مدیریت رویداد و... نداریم میتوان یکبار از کلاسس مورد نظر New ساخت و مدام تمام بار ترافیکی تغییر سایز تصویر را روی آن گذاشت.

خود Page ها هم واسط IHttpHandler را دارند ولی خصوصیت IsReusable که در این واسط تایین میکند کلاسس قابل استفاده مجدد است یا نه در انها False است و این بدین معنی است که برای هر درخواست هر نفر یکبار از کلاسس Page عادی شما (که پسوند aspx دارند) New ساخته میشود و حال عمل فوق را شما میتوانید فقط با یک نمونه New سازی انجام دهید.

خوب پس چه نیاز است از Page استفاده کنید که هم هر بار New میشود و هم کلی سنگینی اضافی را به برنامه تحمیل میکند؟ در صورتی که کارتان به شفافیت بیشتر و با مصرف کمتر RAM و سرعت بیشتر با IHttpHandler راه می افتد؟؟؟

یعنی قرار نیست IHttpHandler جای مثلاً لایه بالاتر Page را بگیرد یا برعکس، بلکه شما به عنوان برنامه نویس پروژه باید اعتدال را حفظ کنید و در جایی که میبینید مشکلتان با واسط سبک و سریعتر IHttpHandler حل میشد بیخود منابع سرور را اصراف نکنید، نمیخواهد خود را برای کم مصرف کمتر RAM عذاب دهید ولی بحث سر آن است که برای بعضی کارها لایه های بالاتر هم کد بیشتری میبرند و هم RAM را اصراف میکنند.