مهدی عزیزی

۲۹ مطلب با موضوع «C#» ثبت شده است

معرفی HttpHandler ها در ASP.NET

HttlHandlers ها در ASP.NET یک روند یا پردازشی می باشد برای پاسخ به در خواستهایی که از سمت یک ASP.NET Web Application فرستاده می شود ، شایعترین Handlers ها در ASP.NET یک Page Handles  می باشند که یک فایل ASPX را Handle می کنند ، زمانی که کاربرها درخواستی را از فایلهای ASPX ارسال می کنند این درخواست که از Page های ASPX ارسال شده است توسط Page Handler رسیدگی می شود .

ASP.NET Page Handler ها فقط یک نوع از Handler ها هستند .

ASP.NET به همراه چند Handler های دیگر درون ساخت ایجاد شده است مانند Web Service Handler که مسئولیت رسیدگی به فایلهای ASMX. را دارد . 

شما می توانید Http Handler های سفارشی خودتان را ایجاد کنید به عنوان مثال میتوانید یک پسوند دلخواه را در Application خودتان پردازش کنید ، ممکن است در بعضی از سایتها دیده باشید که به جای پسوند عکسهای JPG از پسوندهای دلخواهی استفاده شده است مانند WEBJPG و ... هر چه که در مد نظر شماست . چند مثال دیگر :

RSS Feeds : شما می توانید یک Rss Feed را برای وب سایت خود ایجاد کنید ، یک Handler ایجاد کنید که مدیریت می کند RSS-formatted XML . شما می توانید یک پسوند دلخواه مثلا Rss. را به Handler سفارشی خود اختصاص دهید تا زمانی که کاربرها یک درخواست به سایت شما ارسال می کنند که با پسوند Rss. به پایان می رسد ASP.NET بعد از دریافت این درخواست Handler سفارشی شما را برای پردازش این در خواست اجرا خواهد کرد .

Image server : اگر می خواهید Web Application شما دارای یک سرور تصاویر برای تغییر اندازه تصاویر باشد می توانید Handler سفارشی را برای این منظور ایجاد کنید .

Http Handler ها به application context ، application state ، session information و user's identity دسترسی دارد . هنگامی که Http Handler درخواست می شود ASP.NET متد ProcessRequest را در handler شفارشی شما صدا می زند ، این متد وظیفه ارسال Response یا پاسخ بازگشتی به مرورگر را بر عهده دارد .

یک Http Handler می تواند به دو صورت متفاوت باشد ، صورت اول Synchronous یا هم زمان ، صورت دوم Asynchronous یا غیر هم زمان . یک synchronous handler هیچ مقداری را بر نمی گرداند تا زمانی که درخواستی از Http برای آن صدا زده شود . یک asynchronous handler هم یک پردازش مستقلی را اجرا می کند بدون این که در خواستی از کاربرها ارسال شود . asynchronous handler زمانی مفید هستند که می خواهید یک پردازش طولانی مدت را از شروع یک Application انجام دهید .

Http Handler های درون ساخت در ASP.NET

ASP.NET بسته هایی از Http Handler ها را برای برخی پسوند ها فراهم کرده است که در لیست زیر نمایش داده شده است .

Handler  توضیحات

ASP.NET Page Handler (*.aspx)

Http Handle پیش فرض برای همه Page ها در ASP.NEt

Web service handler (*.asmx)

Http Handle پیش فرض برای Web Service Pages ها که توسط ASP.NEt ساخته شده اند .

ASP.NET user control handler (*.ascx)

Http Handle پیش فرض برای همه User Controls ها در ASP.NEt

Trace handler (trace.axd)

 یک Handle که اطلاعات صفحه ای که در حال حاضر نمایش داده می شود را ردیابی می کند .

ساخت یک  HttpHandler سفارشی

ادامه مطلب...
۰۴ ارديبهشت ۹۳ ، ۱۶:۰۵ ۱ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

فراداده یا metadata

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

در بهترین حالت، متا دیتا می تواند برای شرح ساختارهای اطلاعاتی مثل استانداردهای تکنیکی و سیاستهای ارتباطی (میانجی) که بر ارتباطات تفوق دارند، بکار گرفته شوند. e-GIF به متادیتاهای خاصی که به یافتن منابع و مدیریت اسناد اهمیت می دهد و آن تعداد از عناصری که برای مدیریت اداری اطلاعات و بازیابی موفق نیاز است

متا دیتای نگهداری اسناد چیست؟

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

چرا متادیتای نگهداری اسناد مهم است؟

علت تهیه متادیای نگهداری اسناد و ایجاد استاندارد برای آن» این است که:

-    دولت مدرن برای استفاده بهتر از اطلاعات اداری ، سیستمها و سیاستها و همچنین سرویسهایی که برای رفع نیاز شهروندان طراحی شده است را بهم پیوند دهد.

-         استاندارد کردن سیستمهای اطلاعاتی دولتی به نحوی که از پرتال مرکزی به راحتی قابل دسترسی باشند.

-    سیستمهای جدید برای کنترل و بررسی اسناد الکترونیکی درست شده اند. اسناد اداری در قالبهای کاغذی ذخیره سازی نخواهند شد.

-    متادیتا مدیریت و یافتن اطلاعات را تسهیل می کند( اطلاعات در اشکال صفحات وب، اسناد الکترونیکی، فایلهای کاغذی و یا صفحه گستر)

فراداده ( متادیتا) در ایجاد داده مؤثر است لذا بنحوی ساخته می شود که سازگار با کلیت سازمان باشد

۰۸ فروردين ۹۳ ، ۲۲:۲۳ ۰ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

موتور بازی

هسته هر بازی رایانه ای از یک موتور گرافیکی(که وظیفه رندرینگ را برعهده دارد) برای ترسیم فیزیکی(مثلا برخوردهای فیزیکی) استفاده می کند. در گذشته که موتور بازی نبود، این کارها به وسیله کد نویسی انجام می شد که وقت گیر و مشکل بود.

3 نوع موتور بازی داریم :

  • سطح پایین : شرکت ها بصورت دلخواه تمام قسمت های بازی را تولید می کنند.
  • سطح میانی : مثل unreal و Gamebryo . موتور هایی که برنامه نویسی کمی دارند و مراحل توسعه راحت تر از قبلی است.
  • سطح بالا : مجموعه کاملی از ابزارها و امکانات مورد نیاز برای خلق یک بازی را در اختیار قرار می دهند. مثل موتورهای : Torquee Game Builder و Game Maker و Unity3d . مشکل این سطح این است که فقط دو سبک بازی اکشن و استراتژیک را ساپورت می کنند. البته در ورژن های جدیدتر بهبود یافته و تا حدودی این مشکل را برطرف کرده اند.

لازم به ذکر است با زبان سی شارپ در موتور Unity3d کد نویسی ها را انجام داد.

۲۸ دی ۹۲ ، ۲۲:۵۱ ۰ نظر موافقین ۱ مخالفین ۰
مهدی عزیزی

روش های برنامه نویسی

انواع مدل های برنامه نویسی

  • ساخت یافته که متضاد آن عدم ساخت یافته است.
    • ساخت یافته : ماژولار - شی گرا
    • غیر ساخت یافته : آرایه ای ، تکراری

  • دستوری(imperative) که متضاد آن توصیفی(declarative) است.
    • دستوری : Procedural
    • توصیفی : functional - logic

۱۶ آذر ۹۲ ، ۲۳:۱۳ ۰ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

Type Safety

type safety یا به فارسی "اطمینان نوع" قابلیت یا ویژگی یک زبان برنامه نویسی برای جلوگیری یا کاهش رخدادن خطاهای "عدم تطابق نوع" یا Type Errors در برنامه است. عدم تطابق نوع، به رفتار ناخواسته و نامطلوب یک برنامه به دلیل اختلاف در انواع داده ای در متغیر ها، ثابت ها یا توابع برنامه، گفته می شود. برای مثال رفتار کردن با یک متغیر نوع صحیح (integer) مانند یک متغیر نوع ممیز شناور (float).

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

#C برخلاف ++C یک زبان Type-Safe است یعنی در #C زمانی که نوع داده ای یک متغیر مشخص شد آن متغیر دیگر نمیتواند به نوع داده ای دیگری تبدیل شود علاوه بر این محدودیتهای دیگری نیز هنگام تبدیل یک نوع داده ای به نوع دیگر وجود دارد که باعث میشود کدهای #C نسبت به کدهای ++C طولانی تر بنظر برسد ولی با این حال کدهای #C از پایداری بیشتری برخوردارند و خطایابی آن آسانتر است.

۱۰ آبان ۹۲ ، ۲۱:۳۲ ۰ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

کلیدهای میانبر در Visual Studio

لطفا توجه داشته باشید: در صورتی که با فشردن این کلیدها هیچ عملی رخ نداد حتما مسیر ذیل را پیگیری نمایید:

 Tools منوی > Import and Export Settings گزینه > Reset All Settings > No, just reset settings,... > Visual C# Development Settings > Finish

توضیحات نام کلید

کلید های میانبر عمومی

انتقال به یک خط خاص
با فشردن این کلید و نوشتن شماره خط در پنجره ظاهر شده، مکان نما به آن خط منتقل می گردد.
Ctrl+G
جستجوی نموی  یا جستجوی لحظه به لحظه
این کلید را فشار دهید و شروع به تایپ کنید. در حین تایپ جستجو انجام می شود و عبارات مشابه متن تایپ شده شما را می یابد.
Ctrl+I
یافتن بلاک معادل
اگر مکان نما در کنار [, ], (, ), {, } قرار بگیرد، با فشردن این کلید مکان نما به کاراکتر معادل آن منتقل می شود. یعنی اگر مکان نما در کنار پرانتز باز قرار داشته باشد با فشردن این کلید مکان نما به پرانتز بسته معادل آن منتقل می شود.
Ctrl+]
مرتب کردن خطوط نامرتب متن انتخاب شده.
همانطور که می دانید Visual Studio به صورت خودکار خطوط برنامه را مرتب می نماید. در برخی مواقع مثل زمانی که خطایی در کد وجود داشته باشد، خطوط برنامه مرتب نمی شوند. در این زمان شما می توانید با فشردن این کلید متن انتخاب شده را مرتب نمایید.
Ctrl+E,F
یا
Ctrl+K,F
مرتب کردن خطوط نامرتب کل برنامه.
همانطور که می دانید Visual Studio به صورت خودکار خطوط برنامه را مرتب می نماید. در برخی مواقع مثل زمانی که خطایی در کد وجود داشته باشد، خطوط برنامه مرتب نمی شوند. در این زمان شما می توانید با فشردن این کلید کل خطوط برنامه را مرتب نمایید.
Ctrl+E,D
یا
Ctrl+K,D
ادامه مطلب...
۱۰ آبان ۹۲ ، ۱۳:۰۳ ۸ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

NHibernate چیست؟

NHibernate  کتابخانه‌ی تبدیل شده پروژه بسیار محبوب Hibernate جاوا به سی شارپ است و یکی از ORM های بسیار موفق، به شمار می‌رود.
چرا نیاز است تا از یک ORM استفاده شود؟
تهیه قسمت و یا لایه دسترسی به داده‌ها در یک برنامه عموما تا 30 درصد زمان کل تهیه یک محصول را تشکیل می‌دهد. اما باید در نظر داشت که این پروسه‌ی تکراری هیچ کار خارق العاده‌ای نبوده و ارزش افزوده‌ی خاصی را به یک برنامه اضافه نمی‌کند. تقریبا تمام برنامه‌های تجاری نیاز به لایه دسترسی به داده‌ها را دارند. پس چرا ما باید به ازای هر پروژه، این کار تکراری و کسل کننده را بارها و بارها تکرار کنیم؟
هدف NHibernate ،

ادامه مطلب...
۰۷ مرداد ۹۲ ، ۱۸:۴۶ ۰ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

5 دلیل برای استفاده از یک ابزار ORM

چرا باید از ابزارهای Object relational Mapper یا به اختصار ORM استفاده کرد؟ در اینجا سخن در مورد ORM خاصی نیست. هدف تبلیغ یک محصول ویژه هم نمی‌باشد و یک بحث کلی مد نظر است.
کار ابزارهای ORM خواندن ساختار دیتابیس شما بوده و سپس ایجاد کلاس‌هایی بر اساس این ساختار ، برقراری ارتباط بین اشیاء ایجاد شده و جداول، ویووها، رویه‌های ذخیره شده و غیره می‌باشد. همچنین این ابزارها امکان تعریف روابط one-to-one, one-to-many, many-to-one, و many-to-many بین اشیاء را نیز بر اساس ساختار دیتابیس شما فراهم می‌کنند.
در ادامه به فواید استفاده از ORM ها خواهیم پرداخت:

1) یک ابزار ORM زمان تحویل پروژه را کاهش می‌دهد

اولین و مهم‌ترین دلیلی که بر اساس آن در یک پروژه، استفاده از ORM حائز اهمیت می‌شود، بحث بالا بردن سرعت برنامه نویسی و کاهش زمان تحویل پروژه به مشتری است. این کاهش زمان بسته به نوع پروژه بین 20 تا 50 درصد می‌تواند خود را بروز دهد.
بدیهی است ابزارهای ORM کار شگفت انگیزی را قرار نیست انجام دهند و شما می‌توانید تمام آن عملیات ‌را دستی هم به پایان رسانید؛ اما اجازه دهید یک مثال کوتاه را با هم مرور کنیم.
برای پیاده سازی یک برنامه متداول با حدود 15 تا 20 جدول، حدودا به 30 شیء برای مدل سازی سیستم نیاز خواهد بود و برنامه نویسی این مجموعه بین 5000 تا 10000 سطر کد را به خود اختصاص خواهد داد. بدیهی است برنامه نویسی و آزمایش این سیستم چندین هفته یا ماه به طول خواهد انجامید.
اما با استفاده از یک ORM ، عمده وقت شما به طراحی سیستم و ایجاد ارتباطات بین اشیاء و دیتابیس در طی یک تا دو روز صرف خواهد شد. ایجاد کد بر اساس این مجموعه و با کمک ابزارهای ORM ، آنی است و با چند کلیک صورت می‌گیرد.


2) یک ابزار ORM کدی با طراحی بهتر را تولید می‌کند

ممکن است

ادامه مطلب...
۰۷ مرداد ۹۲ ، ۱۸:۴۱ ۰ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

ORM چیست؟

ORM یا Object-relational mapping یک تکنیک برنامه نویسی برای ارتباط بین دیتا بیس و برنامه شئ گرای ما می باشد. مهمترین مزیت ORM ها این است که عملیات CRUD یا Create-Read-Update-Delete را به راحتی برای ما انجام می دهند.

زمان به ما ثابت کرده که پایگاه داده‌های رابطه‌ای ساختار مناسبی برای ذخیره‌سازی داده‌ای هستند، همچنین به این نتیجه رسیده‌ایم که برنامه‌نویسی شیءگرا یک رویکرد بسیار خوب و قوی برای پیاده‌سازی سیستم‌های بسیار پیچیده می‌باشد.

ORM عملا یک لایه

ادامه مطلب...
۰۷ مرداد ۹۲ ، ۱۸:۲۴ ۰ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

کلمات کلیدی در C#

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

مرجع کامل کلمات کلیدی در سی شارپ

۰۲ مرداد ۹۲ ، ۱۷:۱۵ ۰ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی