بعد از مدتی سروکار داشتن با مفاهیم WCF ،Web API ،WCF REST و Web Service برای تهیه یک فریم ورک قوی، به این نتیجه رسیدم که اکثر برنامه نویسان در مقایسه بین مفاهیم یاد شده به مشکل میخورند. در این مطلب سعی بر این است که تفاوتهای اساسی آنها را بهصورت کلی بیان کنم.
دانت فریم ورک با بهرهگیری از این تکنولوژیها، امکاناتی را برای ایجاد HTTP سرویسها، به ما میدهد و قبل از بکارگیری لازم است انتخاب کنیم که از کدام تکنولوژی باید استفاده ...
در قسمت قبل « کار با اسکنر در برنامههای تحت وب (قسمت اول) » دیدی از کاری که قرار است انجام دهیم، رسیدیم. حالا سراغ یک پروژهی عملی و پیاده سازی مطالب مطرح شده میرویم. ابتدا پروژهی WCF را شروع میکنیم. ویژوال استودیو را باز کرده و از قسمت New Project > Visual C# > WCF یک پروژهی WCF Service Application جدید را مثلا با نام "WcfServiceScanner" ایجاد نمایید. پس از ایجاد، دو فایل IService1.cs و Service ...
در اکثر برنامههای سازمانی، مثل برنامههای مدیریت آرشیو اسناد، همواره این نیاز جزو خواستههای کاربران بوده که بتوانند به صورت مستقیم و از طریق تنها یک کلیک، تصویر مورد نظر را اسکن کرده و به صورت خودکار در برنامه وارد کنند؛ یعنی بدون اینکه نیاز باشد با استفاده از یک برنامه دیگر ابتدا تصویر را اسکن کرده و سپس در فرم وب، فایل اسکن شده را Browse کنند.
این نیاز اساسا به معنی د ...
با توجه به پیشرفتی که در حوزه اپلیکشنهای وابسته به
فریمورک دات نت بوجود آمده، ولی شاید حرکت عملی بزرگی از سمت تولیدکندگان در حوزه
کامپکت صورت نگرفته و همچنان شاهد فرمانروایی سیستم عاملهایی چون Windows Compact 6.0
با استفاده از دات نت فریمورکهایی نهایت با نسخه 3.5 هستیم. البته میتوان ارزانتر بودن در خارج و مسئله تحریم در داخل را هم در نظر داشت و نمونه عینی این مورد را
میتوان در د ...
یکی از وب سرویسهای سایت name api ، امکان تشخیص موقتی بودن ایمیل مورد استفادهی جهت ثبت نام در یک سایت را فراهم میکند. آدرس WSDL آن نیز در اینجا قرار دارد. اگر مطابق معمول استفاده از سرویسهای وب در دات نت، بر روی ارجاعات پروژه کلیک راست کرده و گزینهی Add service refrence را انتخاب کنیم و سپس آدرس WSDL یاد شده را به آن معرفی کنیم، بدون مشکل ساختار این وب سرویس دریافت و برای استفادهی از آن به یک چنین کدی خواهیم رسید: var clien ...
بهرهگیری از یک تابع پویا برای افزودن، ویرایش در مثالهای گذشته دیدید که برای هر کدام از عملهای درج، ویرایش و حذف، تابعهای مختلفی نوشته بودیم که اینکار هنگامیکه یک پروژهی بزرگ در دست داریم زمانبر خواهد بود. چه بسا یک جدول بزرگ داشته باشیم و بخواهیم در هر فرمی، ستون یا ستونهای خاص بهروزرسانی شوند. برای رفع این نگرانی افزودن تابع زیر به سرویسمان گرهگشا خواهد بود. public bool AddOrUpdateOrDelete<TEntity> ...
Content Negotiation
، مکانیزمی است که طی آن مصرف کننده یک سرویس http تعیین میکند که خروجی
مورد نظر از سرویس به چه فرمتی در اختیار آن قرار گیرد. این قابلیت بسیار
زیبا در Asp.Net Web Api فراهم میباشد. اما از آن جا که در WCF به صورت
توکار مکانیزمی جهت پیاده سازی این قابلیت در نظر گرفته نشده است میتوان
از طریق یک کتابخانه ثالث به نام WCFRestContrib به این مهم دست یافت.
...
در پست قبلی توضیحات کلی درباره WCF Routing Service داده شد و یک مثال را نیز با هم بررسی کردیم. همان طور که در مثال مشاهده شد با استفاده از تعاریف فیلتر در جدول فیلترها توانستیم درخواستهای مورد نظر را به مقاصد مربوطه اتصال دهیم. در این پست نگاه عمیقتری به FilterTable خواهیم داشت. MessageFilter ها:
با استفاده از این نوع، میتوان فیلتر مورد نظر را بر روی Message گسترش داد. برای مثال ارزیابی نام فرستنده Message ...
به صورت معمول در سیستمهای مبتنی بر WCF ارتباط بین سرور و کلاینت در قالب EndpointConfiguration تعریف میشوند. یعنی کلاینت برای برقراری ارتباط با سرور نیاز به آدرسی که سرور مورد نظر در آن هاست شده است دارد. این روش هنگامی که فقط یک مقصد وجود داشته باشد روش موثری است. اما اگر سرویسهای مورد نظر در چند سرور هاست شده باشند نیاز به سیستم مسیر یابی خواهیم داشت. خوشبختانه در WCF 4.0 این امکان به خوبی تدارک دیده شده است. WCF Routing Service چی ...
به صورت پیش فرض سرویسهای WCF به صورت Sync اجرا خواهند شد، یعنی هر گاه درخواستی از سمت کلاینت به سرور ارسال شود سرور بعد از پردازش درخواست پاسخ مورد نظر را به کلاینت باز میگرداند. اما حالتی را در نظر بگیرید که بعد از دریافت Request از کلاینت بنا به دلایلی امکان پاسخ گویی سمت سرور در آن لحظه وجود ندارد. خوب چه اتفاقی خواهد افتاد؟
در این حالت thread جاری سمت کلاینت نیز در حالت wait است و برنامه سمت کلاینت از کار می ...