۱ دی ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

WCF بازگشت: Core WCF نسخه ۱.۰ را دریافت می کند

مایکروسافت قول داده است که از جایگزینی .NET Windows Communication Foundation پشتیبانی کند.

مایکروسافت قول داده است که از جایگزینی .NET Windows Communication Foundation پشتیبانی کند.

در روزهای اولیه دات نت و پروژه ناکام Windows Longhorn، یکی از فناوری های اساسی مجموعه ای از استانداردها بود که بر اساس مدل خدمات وب نوپا ساخته شده بود: WS-* و SOAP، دسترسی به اشیا ساده. پروتکل. هدف این بود که چارچوبی بسازد که بتواند معماری‌های سرویس‌گرا را ارائه دهد، جایی که برنامه‌ها نقاط پایانی سرویس تعریف شده‌ای را منتشر می‌کنند که می‌تواند آنها را هم به یکدیگر و هم به مشتریان و سرورها متصل کند.

مایکروسافت قصد داشت فرآیند پیچیده‌ای را ساده کند، نوشتن توضیحات WSDL (زبان تعریف وب سرویس) و توضیحات پیام، ساختن آن نقاط پایانی، و ساخت و تجزیه پیام‌های XML مورد استفاده برای اتصال سرویس‌ها. ابزار خدمات وب مایکروسافت که در ابتدا با کد Indigo نامگذاری شد، یکی از فناوری‌های کلیدی Longhorn برای زنده ماندن از بازنشانی ویستا بود، و در نهایت به عنوان WCF، بنیاد ارتباطات ویندوز عرضه شد.

آیا انتقال دات نت پایان یک WCF رسمی بود؟

WCF یک بخش کلیدی از .NET Framework باقی ماند، اما زمانی که مایکروسافت و شرکای آن در .NET Foundation شروع به تعریف مجدد دات نت و APIهای کلیدی آن برای انتقال به NET Core و .NET یکپارچه کردند، دوران اوج آن گذشته بود. و فن آوری های جدید مانند gRPC به عنوان راه رو به جلو در نظر گرفته شد. WCF منسوخ شد و به جامعه تحویل داده شد و توسعه دهندگانی که روی .NET 5 و فراتر از آن کار می کنند تشویق شدند تا به رویکردهای جایگزین برای ساخت معماری های سرویس گرا نگاه کنند.

حرکت از WCF در دات نت جدید مانعی برای بسیاری از مهاجرت ها و به روز رسانی های سازمانی بود. اگرچه خانواده استانداردهای WS-* ممکن است با استانداردهای وب مدرن و حرکت به سمت REST و JSON عقب مانده باشند، اما آن XML APIها هنوز بخشی از بسیاری از برنامه های کاربردی سازمانی در حال اجرا هستند. این به این دلیل است که استانداردهای اساسی از الزامات سازمانی ناشی می شوند، با پیاده سازی هایی که بسیاری از مهم ترین ویژگی های API های امن، قابل اعتماد و مبتنی بر پیام را مدیریت می کنند. خارج از فناوری هایی مانند WCF، شما باید پوشش های امنیتی خود را برای پیام ها بسازید و صف های پیام را بسازید و مدیریت کنید. بدون WCF، انتقال کدهای مبتنی بر خدمات وب موجود به .NET 5 یا ۶ تقریبا غیرممکن خواهد بود.

جایی که خط مشی منبع باز مایکروسافت اشتباه کرد

در اینجا CoreWCF 1.0 با پشتیبانی مایکروسافت ارائه می شود

اگرچه مایکروسافت احساس می کرد قادر به پشتیبانی از WCF در دات نت جدید نیست، هنوز تقاضا برای آن وجود داشت. یک پروژه اثبات مفهوم داخلی در سال ۲۰۱۷ برخی از ویژگی‌های اصلی WCF را در هسته دات نت اجرا کرد، اما فاصله زیادی با برابری ویژگی‌ها داشت. مایکروسافت این کد را به جامعه منبع باز با طراح اصلی به عنوان سرپرست پروژه تحویل داد. کار در سال ۲۰۱۹ آغاز شد و در GitHub میزبانی شد. به آرامی کد به پروژه اضافه شد، اما زمانی که تیمی از خدمات وب آمازون شروع به اضافه کردن کد به پروژه کردند و چندین ویژگی کلیدی را منتقل کردند، همه چیز به طور قابل توجهی سرعت گرفت. آنچه قرار بود به Core WCF تبدیل شود، با استفاده از پروژه ASP.NET Core به عنوان هدف، به رشد خود ادامه داد.

اکنون زمان آن رسیده است که Core WCF اولین نسخه اصلی خود را دریافت کند زیرا اکنون به اندازه کافی از عملکرد WCF پشتیبانی می کند تا کاربران بتوانند کدهای قدیمی تر را به .NET جدید منتقل کنند. هنوز همه آن WCF نیست، بنابراین نام پروژه دو معنی دارد: روی آنچه NET Core بود اجرا می‌شود، و از ویژگی‌های “هسته” WCF پشتیبانی می‌کند. با کمال تعجب برای یک پروژه اجتماعی، مایکروسافت از ۱.x پشتیبانی می کند منتشر شده، پشتیبانی را به چارچوب های اساسی گره می زند. برای دات نت ۵ و ۶، این پشتیبانی در ابتدا به ASP.NET Core 2.1 و .NET Framework 4.7 گره خورده است. پشتیبانی برای نسخه major.minor فعلی خواهد بود و شش ماه پس از انتشار نسخه جدید به پایان می رسد.

نحوه استفاده از فشرده سازی پاسخ در ASP.NET Core

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

با استفاده از CoreWCF با خدمات وب شروع کنید

نسخه منتشر شده با WCF .NET Framework برابری کامل ندارد. با این حال، در اینجا به اندازه کافی برای شروع به معرفی برنامه‌های SOAP موجود، کار بر روی HTTP و با ابزارها وجود دارد. برای تولید سرویس WSDL تا برنامه های سرویس گیرنده شما بتوانند با سرورها کار کنند. ویژگی‌های اضافی برنامه‌ریزی شده است، و تیم نقشه راه را در مخزن GitHub خود ارائه می‌کند که می‌توانید به ویژگی‌ها رأی دهید و درخواست‌های کششی را با پیاده‌سازی‌های خود ارائه دهید.

استفاده از CoreWCF 1.0 بسیار شبیه کار با هر API دات نت مدرن است. از آنجایی که اکنون کتابخانه ها از NuGet تحویل داده می شوند، CoreWCF را در صورت نیاز نصب خواهید کرد. این بر روی ASP.NET Core ساخته می شود و از وب سرور داخلی خود برای مدیریت اتصالات HTTP به سرویس شما بهره می برد، بنابراین بهتر است در ویژوال استودیو کار کنید. با ایجاد یک برنامه ASP.NET Core خالی شروع کنید. شما نیازی به ساخت محتوای HTML نخواهید داشت، زیرا از آن برای میزبانی نقطه پایانی سرویس WCF خود استفاده می کنید.

از مدیر بسته ویژوال استودیو بسته‌های CoreWCF HTTP و Primitives را نصب کنید. پس از نصب، می توانید شروع به ساخت قراردادهای خدمات خود کنید. اینها نحوه ساخت پیام های SOAP شما را با تعاریف قراردادهای سرویس و داده تعریف می کنند. به طور مفید، اینها تقریباً همان چیزی هستند که با استفاده از WCF اصلی ایجاد می‌کردید، و اگر کد را از NET Framework منتقل می‌کنید، می‌توانید بین قدیمی و جدید کپی و جایگذاری کنید.

پروژه والهالا: نگاهی به بازسازی حماسی جاوا

با وجود قراردادها، می‌توانید اتصالات نقطه پایانی را در سرویس خود تنظیم کنید، برای مثال، اطمینان حاصل کنید که سرویس شما فقط از TLS استفاده می‌کند و URL سرویس را به عنوان بخشی از اتصال تنظیم کنید. در نهایت، سرور ASP.NET Core خود را پیکربندی کنید تا با استفاده از فایل JSON تنظیمات برنامه، پورت های مناسب را برای نقاط پایانی خود تنظیم کند. اکنون آماده شروع ساخت نرم افزار مشتری هستید، با استفاده از مراجع سرویس آشنای WCF برای ساخت کد از WSDL تولید شده توسط سرویس شما.

CoreWCF راه طولانی را طی می کند تا جایگزینی برای WCF اصلی باشد. منحنی یادگیری کمی وجود دارد، اما هیچ چیز خیلی عالی نیست، و اگرچه برخی از ویژگی‌ها هنوز پشتیبانی نمی‌شوند، در حال حاضر شاهد هستیم که پروژه به تقاضای جامعه پاسخ می‌دهد و ویژگی‌های WS-* را اضافه می‌کند که در NET Framework پشتیبانی نمی‌شوند. با وجود تعداد زیادی از کدهای WCF که هنوز در حال استفاده هستند، دیدن مسیر پشتیبانی شده ای خوب است که کمک می کند آن کد را به پلتفرم های جدیدتر و دنیای چند پلتفرمی دات نت منتقل کنید، جایی که کد WCF اکنون می تواند روی سرورهای لینوکس و همچنین ویندوز اجرا شود.

CoreWCF نمونه جالبی از یک پروژه اجتماعی تحت رهبری مایکروسافت است که از یک اثبات مفهومی به مجموعه ای از کتابخانه ها می رود که آماده کمک به شما هستند تا برنامه های NET Framework WCF را به .NET 6 بیاورید. دیدن آن جالب تر است. دو رقیب بزرگ ابری که بر روی ابزاری همکاری می کنند که از مشتریان سازمانی آنها پشتیبانی می کند. تعهد AWS به دات نت در پشتیبانی از پروژه و میزان کد ارائه شده نشان می دهد. همچنین واضح است که نسخه ۱.۰ تنها یک نقطه عطف به شمار می‌رود و در نقطه‌ای قرار می‌گیرد که برای استفاده سازمانی آماده است. از یک جامعه به طور فزاینده ای که از توسعه CoreWCF حمایت می کند، چیزهای بیشتری وجود دارد.