ایجاد یک Data Service با WCF
دوشنبه 2 شهریور 1394در این مقاله، قصد داریم ایجاد یک WCF Data Service را گام به گام آموزش دهیم.
زمانی که از معماری یا برنامه نویسی مبتنی بر سرویس صحبت می شود، تکنولوژی Microsoft WCF که کوتاه شده عبارت Windows Communication Foundation می باشد، نقش مهمی را ایفا می کند.
قبل از اینکه به طور کامل به تعریف WCF Date Service بپردازیم، ابتدا تفاوت گیج کننده بین WCF Service و WCF Data Service را با هم بررسی می کنیم. در WCF Service، تمرکز روی ایجاد عملیات هایی است که Generic Service پیاده سازی می شوند. این ها با پروتکل ها و تکنیک های مختلفی مانند TCP، HTTP، MSMQ،SOAP و ... کار می کنند. در حالیکه، WCF Data Service کاملا روی ایجاد داده ها به عنوان سرویس تمرکز دارد. اگر ما یک data model داشته باشیم و بخواهیم آن را در دسترس کلاینت قرار دهیم تا از آن استفاده کند، استفاده از WCF Data Service بهترین روش می باشد که تنها از REST مبتنی بر پروتکل HTTP پشتیبانی می کند.
در صورت تمایل میتوانید به صورت رایگان آموزش WCF به همراه پروژه عملی را در سایت تاپ لرن مشاهده کنید .
WCF Data Service 4.5:
Microsoft .Net Framework یک تکنولوژی سرویس قابل اعتماد به نام WCF Data Service فراهم کرده است که ما را قادر می سازد که سرویس Dataای بسازیم که data-model ما را در اختیار کلاینت قرار دهد. در اینجا سرویس هایی که ایجاد می شوند مبتنی بر OData می باشند مانند: Open Data Protocol که تکنیک استانداردی برای ایجاد و استفاده از API های REST (Representational State Transfer) می باشد، که سرویس ها از طریق URL و درخواست های معمولی HTTP در دسترس قرار می گیرند.
درخواست HTTP، شامل اعمال Get، Post، Put و Delete می باشد که توسط یک سرویس مبتنی بر CRUD می توانند ایجاد شوند. این سرویس داده می تواند توسط هر اپلیکیشن کلاینتی که از HTTP-OData و فرمت دریافت داده که می تواند متنی از XML، JSON و یا RAW باشد، پشتیبانی می کند، استفاده شود.
ایجاد WCF Data Service:
برای ایجاد آن به Visual Studio 2012 (و یا نسخه های جدیدتر) و SQL Server روی سیستم خود نیاز داریم.
ویژوال استودیو را باز کرده و یک پروژه از نوع Asp.Net Web Application با زبان انتخابی خود (#C یا VB) می سازیم، که ما در اینجا #C را انتخاب کردیم.
پس از ایجاد پروژه، به یک Data-Model نیاز داریم که در اختیار ما قرار گرفته است. بنابراین، یک Database ایجاد می کنیم. روی فولدر App_Data راست کلیک کرده و یک Database ایجاد می کنیم و جدولی به شکل زیر در آن تعریف می کنیم.
حال، یک سری اطلاعات به جدول خود اضافه می کنیم.
جدول دیتابیس ما نیز آمده شده است. حال وقت آن است که یک Entity Data Model ایجاد کنیم. برای این کار روی نام پروژه در solution Explorer راست کلیک کرده، Add New Item را انتخاب و سپس روی ADO.Net Entity Data Model کلیک می کنیم. سپس یک Wizard مانند تصاویر زیر باز می شود که با استفاده از آن می توانیم Data Model خود را بسازیم.
به این ترتیب Entity Model ما نیز ایجاد شد و برای ساختار جدول ما به شکل زیر خواهد بود:
تا این مرحله برنامه خود را برای ایجاد یک WCF Data Service سازگار نمودیم. حال یک WCF Data Service ایجاد می کنیم. برای این کار روی نام پروژه کلیک کرده و Add New Item را انتخاب و یک WCF Data Service را اضافه می کنیم.
همانطور که در زیر، مشاهده می کنید، WCF کدهای اولیه ای برای شروع ما فراهم کرده است:
قبل از اینکه کار را ادامه دهیم، ابتدا نام Database Entity را در Web.config و زیر Connection String پیدا می کنیم.
سپس این کدهای آماده را با نام Entity و مجموعه دستوراتی که قوانین دسترسی را مشخص می کند، جایگزین می کنیم.
اگر فایل WCF را انتخاب کرده و برنامه را اجرا کنیم، مرورگر باز شده و ما را به آدرس http://localhost:/WCFDataFilename.svc هدایت می کند و فایل XML ای نمایش داده می شود که عنوان آن نام Entity است که قبلا ایجاد کرده ایم.
برای دست یابی به همه مقادیر دیتابیس به عنوان فایل XML، کافی است مانند شکل زیر نام Entity را به آخر آدرس اضافه کنیم.
حال چند Syntax را برای دسترسی به منابع از طریق OData بررسی می کنیم. مثلا اگر ما به یک رکورد نیاز داشته باشیم، مانند زیر عمل می کنیم:
استفاده از Data Model از طریق WCF Data Service:
صفحه Default.aspx را باز کرده و یک GridView می سازیم.
برای استفاده از WCF Data Service باید یک Service Refrence اضافه کنیم. برای این کار روی فولدر Refrences راست کلیک کرده و Add Service Refrence را انتخاب می کنیم و در پنجره باز شده روی Go کلیک می کنیم. از این پس، Data Service در برنامه قرار می گیرد و به طور اتوماتیک URLها را واکشی می کند.
برای سرویس ارجاع داده شده یک نمونه می سازیم، آدرس Data Service در حال اجرا را قرار می دهیم. Entity را به dataSource مربوط به GridView معرفی و متصل می کنیم.
حالا اگر برنامه را اجرا کنیم، خروجی زیر را خواهیم دید:
بسیار عالی! ما توانسیتم یک WCF Data Service ایجاد کرده و از آن استفاده نماییم.
بازیابی داده ها با فرمت JSON:
JSON از نظر برنامه نویسی راحت تر خوانده می شود و از XML نیز سریعتر است. برای دست یابی به داده ها در فرمت JSON به یک کلاس ویژه به نام JSONPSupportBehaviour.cs نیاز داریم. این فایل را به پروژه خود include کرده و تنها کلاس Data Service را با JSONSupportBehaviourAttribute تغییر می دهیم و به شکل دلخواه درمی آوریم.
حال با اضافه کردن $format=json به انتهای URL مخصوص OData می توانیم داده ها را با فرمت JSON بازیابی کنیم.
- WCF
- 3k بازدید
- 5 تشکر