ساخت پکیج مشترک NuGet برای همه NET Frameworks.
سه شنبه 1 بهمن 1398امروزه فناوری بسیار سریع وخوب در حال رشد است. این روند اغلب یک متدولوژی سریع برای توسعه و نوآوری مداوم با نسخههای جدید فریمورکها و زبانهای برنامهنویسی را دنبال میکند. هر ماه یا هر چهار ماه یک بار، انتشار جدیدی از محصولات و نقشههای راه (roadmap) برای آینده را دریافت میکنیم. این یک نشانه خوب از رشد جامعه open source است. از طریق به اشتراکگذاری دانش این جوامع ممکن است مشکلات را سریعتر حل کرده و کیفیت محصولات بهتر شود.
در این مقاله میخواهیم نحوه ایجاد پکیجهای NuGet را برای همه عملکردهای مشترک که در میان همه انواع فریمورکها در برنامهنویسی NET. به اشتراک گذاشته شده و استفاده میشود را بیان کنیم.
قبل از شروع، اجازه دهید پیشنیازها را مشخص کنیم.
مرحله 1: یک اکانت در Nuget.org ایجاد کنید.
وقتی اکانت خود را ساختید، به پروفایل خود بروید و API Keyها را ایجاد کنید. API Key یک توکن است که میتواند شما را به NuGet Gallery معرفی کند.
در اینجا لینکی برای همه دستورات lne cli جهت مدیریت بستههای NuGet وجود دارد:
https://docs.microsoft.com/en-us/nuget/reference/nuget-exe-cli-reference
API Key چیزی شبیه به این است:
oy0jbfbh9tmdlx3huhhalmwautb6dynebme4afcyaviz0iBefore
مرحله 2: بیایید یک Net Core class library POC. با همان توابع رایج validation بسازیم:
namespace ValidationUtility { /// <summary> /// Rajendra Taradale /// </summary> public static class Validation { /// <summary> /// RT:It will validate Visa Card Number /// </summary> /// <param name="ccno"></param> /// <returns></returns> public static bool CustomVisaCCValidate(string ccno) { return Regex.Match(ccno, @"^4[0-9]{12}(?:[0-9]{3})$").Success; } /// <summary> /// RT:It will validate MasterCard CC Numder /// </summary> /// <param name="ccno"></param> /// <returns></returns> public static bool CustomMasterCardCCValidate(string ccno) { return Regex.Match(ccno, @"^5[0-9]{12}(?:[0-9]{3})$").Success; } /// <summary> /// RT:It will validate 10 digit phone number /// </summary> /// <param name="phonenumber"></param> /// <returns></returns> public static bool CustomPhoneValidate(string phonenumber) { return Regex.Match(phonenumber, @"^[0-9]{10}$").Success; } /// <summary> /// RT:It will remove the characters from string /// </summary> /// <param name="phone"></param> /// <returns></returns> public static string RemoveNonNumeric(this string phone) { return Regex.Replace(phone, @"[^0-9]+", ""); } /// <summary> /// RT:It will validate Date format /// </summary> /// <param name="date"></param> /// <returns></returns> public static bool CustomDateValidate(string date) { return DateTime.TryParse(date, out DateTime dt); } } }
برای اینکه مطمئن شوید این در فریمورک Net core. و Net Standard. کار میکند، بیایید پیکربندی زیر را در پروژه اضافه کنیم.
پس از انجام تغییرات، روی پروژه راست کلیک کرده و روی pack کلیک کنید تا بستههای NuGet ساخته شود.
حالا که یک بسته آماده NuGet داریم، بیایید آن را برای nuget.org انتشار دهیم.
dotnet nuget push CSharpValidationUtility.1.0.0.nupkg -k <API KEY> -s https://api.nuget.org/v3/index.json
حالا بیایید این پکیج را در پورتال NuGet بررسی کنیم.
خوب، پکیج ما آماده است و بعد از ایندکسگذاری لیست پکیجهای NuGet لیست شده است. بیایید آن را در برنامه کنسول تستر کلاینت بررسی و تست کنیم.
بیایید این پکیج را نصب کرده و برخی متدهای آن را تست کنیم.
حالا برخی متدها را فراخوانی کرده و با استفاده از برنامه Net Core Console. آن را تست میکنیم.
حالا اجازه دهید برخی متدها را فراخوانی کرده و با استفاده از برنامه Net Framework (MVC 4.5) Console. تست کنیم.
نتیجهگیری
ما میتوانیم قابلیتهای مشترک و منطقهای خاصی را با ساخت پکیجهای NuGet ایجاد کنیم. علاوهبراین، میتوانیم آنها را به عنوان ریپازیتوریهای عمومی و خصوصی NuGet انتشار داده و از آنها در هر فریمورکی استفاده کنیم. همچنین میتوانیم کتابخانههای قابل استفاده بسازیم.
- برنامه نویسان
- 1k بازدید
- 3 تشکر