مهدی عزیزی

۹ مطلب با کلمه‌ی کلیدی «ASP.NET» ثبت شده است

ASP.NET Web API

Web API چیست؟
Web API، نوع قالب جدیدی برای پروژه‌های مبتنی بر وب در NET. است که بر مبنای اصول و الگوهای موجود در ASP.NET MVC ساخته شده است و همراه با ASP.NET MVC 4 وجود دارد. Web API توسعه گران را قادر می‌سازد تا با استفاده از یک الگوی ساده که در Controllerها پیاده سازی می‌شود، وب سرویس‌های مبتنی بر پروتوکل HTTP را با کدها و تنظیمات کم ایجاد کنند. این سبک جدید برای ایجاد وب سرویس ها، می‌تواند در انواع پروژه‌های NET. مانند ASP.NET MVC، ASP.NET Web Forms، Windows Application و ... استفاده شود.
یک سوال کاملاً منطقی در اینجا به وجود می‌آید. چرا نیاز به بستری جدید برای ایجاد وب سرویس داریم؟ آیا در حال حاضر مایکروسافت بستری محبوب و فراگیر برای توسعه‌ی وب سرویس هایی که بتوانند با پروتوکل SOAP تعامل داشته باشند در اختیار ندارد؟ مگر وب سرویس‌های ASMX از زمان معرفی ASP.NET وجود نداشته اند؟ آیا تکنولوژی WCF مایکروسافت، بیشترین انعطاف پذیری و قدرت را برای تولید وب سرویس‌ها در اختیار قرار نمی‌دهد؟ وب سرویس‌ها جایگاه خود را یافته اند و توسعه گران با تکنولوژی‌های موجود به خوبی آنها را پیاده سازی و درک می‌کنند. چرا Web API؟

چرا Web Api؟
برای پاسخ به این سوال، باید برخی مشکلات را بررسی کنیم و ببینیم ابزارهای موجود چه راه حلی برای آنها در نظر گرفته اند. اگر با گزینه هایی که در ادامه می‌آیند موافق هستید، خواندن این مطلب را ادامه دهید، و اگر اعتقادی به آنها ندارید، پس نیازهای شما به خوبی با بسترهای موجود پاسخ داده می‌شوند.

  • من معتقد هستم که راه بهتری برای ایجاد وب سرویس‌ها وجود دارد.
  • من معتقد هستم که روش‌های ساده‌تری برای ایجاد وب سرویس‌ها وجود دارد و WCF بیش از حد پیچیده است.
  • من معتقد هستم که تکنولوژی‌های پایه‌ی وب مانند اَفعال GET، POST، PUT و DELETE برای انجام اَعمال مختلف توسط وب سرویس‌ها کافی هستند.

اگر همچنان در حال خواندن این مطلب هستید، توضیحات خود را با شرح تفاوت میان Web API و تکنولوژی‌های دیگر هم حوزه‌ی آن ادامه می‌دهیم و خواهید دید که استفاده از Web API چقدر آسان است.

تفاوت Web API و WCF
وب سرویس‌های ASMX تا چندین سال

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

مقایسه‌ای کوتاه بین WCF و ASMX

ویژگی WCF ASMX
حداقل پیشنیاز دات نت سه دات نت یک
هدف جایگزینی یکپارچه‌ی فناورهای قبلی شامل
ASMX ، WSE ،
MSMQ ، COM+ Eenterprise
services
و .NET Remoting
ارائه وب سرویس
پروتکل‌های پشتیبانی شده HTTP
TCP
Named pipes
MSMQ
Custom
UDP
HTTP only
پشتیبانی از WS-* standards بلی خیر
پشتیبانی از اطلاعات بایناری بلی خیر
پشتیبانی از REST بلی خیر
میزبان‌های مهیا در هر نوع برنامه‌ی تهیه شده با دات 3 به بعد قابل
میزبانی است، مانند یک برنامه کنسول، یک سرویس ویندوز ان تی و غیره. به این لیست IIS را هم می‌توان اضافه کرد.
فقط IIS
سرعت WCF Services‌ نسبت به ASMX Web Services از 25
تا 50 درصد سریعتر هستند + و +
نحوه‌ی پاسخ دهی به درخواست‌ها (یا ایجاد یک وهله جدید) Singleton / private session / per call per-call
پشتیبانی از تراکنش‌ها (transaction) پشتیبانی تو کار + خیر
امنیت پشتیبانی تو کار + خودتان باید فکری برای این موضوع نمائید.
بسط پذیری بلی + خیر
مدت زمان یادگیری حداقل یک ماه یک روز!
۲۷ تیر ۹۳ ، ۱۹:۵۰ ۰ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

معرفی 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 سفارشی

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

تفاوت url rewriting و url routing در asp.net

url mapping

url های با معنا و تمیز یکی از مزایای یک وب سایت خوب است.

بعنوان مثال آدرس زیر را در نظر بگیرید که یک صفحه که یک گروه خاص از محصولات را نشان می دهد:

 http://www.mysite.com/products.aspx?category=software

با استفاده از  url mapping در ASP.NET  می توان برنامه را طوری پیکربندی نمود که به جای URL فوق URL زیر را بپذیرد.

 http://www.mysite.com/products/software

در ASP.NET  دو   ماژول برای تغییر آدرسها  وجود دارند :

  • IIS URL Rewriting
  • ASP.NET Routing

 

IIS URL Rewriting

هنگامی که از طرف یک کلاینت آدرس خاصی از وب سرور تقاضا می شود url rewrite آدرس را آنالیز کرده و به آدرس دیگه ای در همان سرور منتقل می کند این پروسه در مراحل ابتدایی چرخه پاسخگویی به درخواست شروع می شود :(در تصویر زیر این موضوع رو می تونید ببینید )

 

ASP.NET Routing

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

مدیریت حالت(State Management) در ASP.NET

در این مقاله به مبحث State management پرداخته شده است، این بحث نیاز حیاتی برای برنامه نویسان وب که با تکنولوژی ASP.NET برنامه نویسی می کنند می باشد. اهمیت این موضوع به دلیل وجود راه های متفاوت برای مدیریتState در تکنولوژی ASP.NET می باشد. در این مقاله سعی بر این است تا این راه های متفاوت را مورد بحث قرار داده و و نقاط قوت و ضعف این راه ها را ارئه می‏کنیم. شاید کمکی باشد برای برنامه نویسان ایرانی تا برنامه های کاربردی بهتری را در محیط وب توسعه دهند.

پیش درآمد موضوع

همان طور که می‏دانید، HTTP یک پروتوکل State less است به این معنی که هیچ وضعیتی را بعد از انجام درخواست نگه داری نمی کند. به عبارت دیگر زمانی که کاربران درخواستی را به سرور ارسال می‏کنند سرور مطابق با نیاز های پاسخگویی منابعی مانند بخشی از حافظه، پردازشگر و غیره ... را به آن اختصاص داده و پس از پاسخ گویی کامل تمامی این منابع را آزاد می‏کند. این بحث برای برنامه نویسانی که تنها تجربه برنامه نویسی با Windows را دارند مطلبی جالب و تا حدی عجیب  است.

اگر قصد پیگیری اطلاعات کاربر در بین صفحات مختلف که توسط او دیده شده است و یا حتی اطلاعات مشاهده یک صفحه توسط کاربران مختلف داشته باشیم. در این حالت نیاز است که از تکنولوژی State management  که در ASP.NET وجود دارد استفاده شود.تکنولوژی State management پردازشی است که در ASP.NET به برنامه نویسان این امکان را میدهد تا وضعیت صفحات و اطلاعات موجود در درخواست ها و صفحات مختلف را مدیریت کنند.

 انواع State management

دو نوع کلی در State management  وجود دارد:

Client Sate Management

Server Sate Management

هنگامی که از حالت اول یعنی Client Sate management استفاده می‏شود به این معنی است که تمامی وضعیت ها و اطلاعات در سمت Client ،که از این پس در این مقاله به آن مشتری گفته میشود، ذخیره میگردد. در این حالت اطلاعات دائماٌ بین سرور و مشتری در سفر است.

سود مندی :

این حالت کمک میکند تا بار زیادی از مسئولیت مدیریت داده ها از دوش سرور برداشته شود، و فضای زیادی از حافظه سرور حفظ شود.

نقطه ضعف:

حجم زیادی از پهنای باند را اشغال کرده و کارای برنامه در زمانی که تعداد مشتری ها زیاد می‏شود به شدت کاهش پیدا می‏کند. علاوه بر این ضعف بزرگتری در این روش احساس می شود که آن هم امنیت اطلاعات می باشد، زیرا در این حالت اطلاعات به راحتی در اختیار کسانی که در میان این مسیر هستند قرار می‏گیرد. در نتیجه این راه حل به هیج عنوان برای ذخیره رمز عبور، شماره کارت های اعتباری، اطلاعات مالی و ... راه حل مناسبی نخواهد بود.

در نقطه مقابل ،حالت Server State Management تمامی اطلاعات را در سمت سرور ذخیره می‏کند.

سودمندی:

همان طور که اشاره شد سودمندی این حالت در امن نگاه داشتن داده های حساس می باشد.

نقطه ضعف:

در این حالت حجم زیادی از حافظه سرور مورد استفاده می‏شود.

هیچ برنامه نویسی نمی‏تواند بگوید که در بنامه کاربردی خود از هیچ کدام از این ها استفاده نمی‏کند. در آینده می‏بینیم که بنا به حجم اطلاعات و شرایط برنامه از ترکیبی از این دو حالت استفاده می‏شود. اما لازم است تا ابتدا به راه های مختلف موجود در هر کدام از این حالات بپردازیم.

Client Side State Management

View State

Control State

Hidden Field

Cookies

Query String

 

Server Side State management

Application State

Session State

برای یادگیری مدیریت حالت در ASP.NET این مقاله را از لینک زیر دانلود کنید:

دانلود مقاله

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

نحوه درج فایل فلش در ASP.NET

1-کنترل flash control رو از آدرس زیر دانلود کنید.

http://www.flash-control.net/download/FlashControl.zip

2-visual studio رو باز کنید و در toolbox هر جایی که می خواهید این کنترل اضافه بشه (مثلا قسمت standard) کلیک راست کنید.

3- گزینه choose Items رو انتخاب کنید و بعد در قسمت Net Framework components. دکمه browse رو انتخاب کنید. حالا فایل flashcontrol.dll رو از هاردتون بهش معرفی کنید.

همین...!

حالا دقیقا مثل بقیه کنترلها ازش استفاده کنید...

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

CGI چیست و چگونه کار می‌کند

CGI مخفف Common Gateway Interface است. CGI یک بخشی از وب سرور (Web Server) است که این قابلیت را فراهم میکند تا برنامه ای در سمت سرور اجرا شود و خروجی آن برنامه برای کاربر متصل شده به سرور از طریق صفحه ی وب به نمایش در آید. CGI یکی از اولین روش ها برای تولید صفحات وب پویا (Dynamic) به حساب می‌آید که دارای قدمت زیادی ست. به عنوان مثال در موتور های جستجو کاربر تنها یک صفحه در مقابل خود میبیند که شامل یک کادر برای وارد کردن کلید واژه و یک دکمه‌ی جستجو ست. وقتی کاربر دکمه ی جستجو را میزند، CGI یه اسکریپت را (فرضا" به زبان Perl) که در پوشه‌ی خاصی (cgi_bin) روی سرور قرار گرفته اجرا می کنه. با اجرای این اسکریپت کلید واژه ی کاربر به عنوان ورودی استخراج شده و در پایگاه داده‌ای این کلید واژه جست و جو می‌شود تا نتایج جست و جو به دست آید. در نهایت در خروجی اسکریپت یه فایل HTML درست شده که نتایج جستجو را شامل می‌شود و CGI این HTML را به عنوان پاسخ برای کاربر ارسال میکند. چون پویش در یک پایگاه داده به طور مستقیم از راه HTML ممکن نیست، مجبور شدیم از کد Perl برای این کار کمک بگیریم و CGI فقط نقش یه واسطه را بازی میکند.

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

تفاوت ASP.NET و ASP کلاسیک

از asp به عنوان یک تکنولوژی تحت وب برای توسعه و ایجاد محتوای دینامیک یاد می شود که مبتنی بر یکی از زبانهای اسکریپتی مانند Vb Script یا Java Script می باشد. (زبان های اسکریپتی نمونه های کوچک شده و ضعیف تری از زبان های اصلی و پایه ای خود می باشند. Vb Script از Visual Basic و Java Script از زبان Java مشتق شده است). بنابراین همانطور که مشاهده می شود قدرت asp در اندازه ی قدرت و توانایی این دو زبان اسکریپتی خلاصه می شود.
ولی Asp.Net بر پایه ی تکنولوژی .Net مایکروسافت ایجاد شده که بر این اساس کلیه ی زبان هایی که با پلتفرم دات نت سازگار هستند می توانند در ایجاد صفحات داینامیک Asp.net مورد استفاده قرار گیرند. زبان هایی مانند #C ، جاوا ، Visual Basic و ... . همانطور که مشخص است، قدرت این زبان ها (مخصوصا #C) با نمونه های اسکریپتی قابل مقایسه نیست و از قدرت و انعطاف پذیری بالاتری برخوردار است.

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

الگوی طراحی MVC

طراحی معماری نرم‌افزار یکی از مهم‌ترین مراحل توسعه این بخش بوده و اهمیت آن به اندازه معماری ساختمان است، طوری که وجود اشتباه هر قدر کوچک در معماری ساختمان می‌تواند عواقب خطرناکی داشته باشد، از این رو انتخاب الگو‌های طراحی مناسب برای معماری یک پروژه از اهمیت ویژه‌ای برخوردار است.

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

۱ ـ نگهداری از سیستم: سیستم باید طوری طراحی شود تا گروه توسعه‌دهنده یا تیم‌های دیگر بتوانند خطاها و باگ‌های آن را براحتی در کمترین زمان ممکن رفع کنند.

۲ ـ قابلیت استفاده مجدد: یک طراحی خوب باید بتواند در درازمدت هم قابلیت توسعه داشته باشد و قابلیت‌های جدید براحتی و بدون کمترین خللی در بقیه اجزا به سیستم اضافه شود.

۳ ـ بازد‌هی سیستم: بخشی از بازدهی سیستم مربوط به چارچوب کاری و پلتفرم مورد استفاده است؛ اما یک الگوی مناسب با تقسیم اجزا و ایجاد رابطه منطقی بین آنها می‌تواند در بازدهی سیستم تاثیر بسزایی داشته باشد.

۴ ـRapid Application Development) RAD) : یک معماری خوب می‌تواند سرعت توسعه را به طرز قابل ملاحضه‌ای افزایش دهد. حذف عملیات تکراری و ساده باعث می‌شود تمرکز تیم توسعه‌دهنده به بخش‌های اساسی سیستم و تامین امنیت برنامه معطوف شود.

یکی از این الگوهای طراحی نرم‌افزار MVC نام دارد. MVC روشی

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