آموزش ایجاد Template برای nuget

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

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


بعد از اینکه این پکیج روی سیستمتون نصب شد یه پوشه برای خودتون درست کنین توجه داشته باشین این پوشه قراره بشه پوشه تمپلیت شما و بهتره از پروژه اصلیتون جداش کنید.
خب داخل پوشتون یه cmd یا هر محیط دیگه ای که بشه bash زد رو ران کنید و کد زیر رو بزنید

dotnet new templatepack -n "Your.Templates.name"



بعد از اینکار یه پروژه توی پوشتون ایجاد میشه که شبیه شکل پایینه 



توی پوشه ی content  هر محتوایی  بود رو پا کنید  و بعدش کل پروژه ای که قراره از روش تمپلیت درست کنید رو کپی کنید توی پوشه ی content. یادتون نره تمام سلوشن رو باید کپی کنید.

خب حالا باید یه پوشه دقیق با اسم  .template.config ایجاد کنید نباید چیزی اضافه یا کم داشته باشه دقیقا همین شکلی

داخل این پوشه یه فایل json ایجاد کنید که اونم دقیقا اسمش باید این شکلی باشه
template.json
من یه نمونه از مواردی که توی این فایل json  باید بنویسید میزارم شما با توجه به پروژتون میتونید اونو ویرایش کنید 

{
 "$schema": "https://json.schemastore.org/template",
 "author": "Peyman Dehghan",
 "classifications": [ "ApiFramework", "Web", "Api" ],
 "tags": {
 "language": "C#",
 "type": "project"
 },
 "identity": "PandaApiSolution",
 "name": "PandaApiSolution",
 "shortName": "PandaApi",
 "sourceName": "ApiFramework",
 "description": "Project template to create easy Use API arch and has any library that you need",
 "sources": [
 {
 "modifiers": [
 { "exclude": [ ".vs/**", ".template_config/**",".git/**",".github/**" ] }
 ]
 }
 ]
 }


دقت کنید توی پراپرتی sourceName باید اسم سولوشنتون رو بزارید که بعدا خواستید از این قالب استفاده کنید و  اسم پروژه جدیدتون رو بزارید براش این اسم عوض میشه و اسم پروژه جدیدتون رو میگیره.
خب حالا دیگه کار تقریبا انجام شدس فقط میمونه اینکه برید اطلاعات مربوط به تمپلیتتون رو تکمیل کنید که اونم یه نمونه ازش میزارم. روی فایل .csproj پوشه ای که توش پوشه content هست کلیک کنید یا با ادیتور مد نظرتون بازش کنید و اطلاعاتتونو متناسب با اطلاعات خودتون پر کنید نمیونشو پایین میزارم

 

 

 

 

 

 

 


حالا همونجایی که هستید دوباره cmd باز کنید یدونه dotnet pack بزنید تا ناگت پکیجتون آماده بشه.
بعدش شما میتونین برین توی پوشه ای که ناگت پکیج گذاشته شده اگه تغییرش ندین توی bin  هست
دوبه یه cmd باز کنین   ودستور زیر رو بزنین تا پکیجتون روی سیستمون نصب بشه .

dotnet new install Your.Templates.Name1.0.0.nupkg

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

امید وارم تونسته باشم یه چیز باحالا بهتون یاد داده باشم و اگر جایی براتون گنگ بود خیلی راحت میتونین باهام ارتباط بگیرین و سوالتون رو بپرسین


تبلیغ برنامه نویسی پیمان دهقان ۶۹
تفاوت hashset و list
تفاوت hashset و list

در این مقاله به بررسی hashset و مقایسه آن با لیست ها میپردازیم

۱۴۰۳/۰۴/۰۱ ۵۵
پیمان دهقان

شخصی سازی identity
شخصی سازی identity

در این مقاله قصد دارم یکم identity مایکروسافت رو شخصی سازی کنم

۱۴۰۳/۰۳/۲۵ ۷۶
پیمان دهقان

معرفی کتابخانه Bootstrap Flags
معرفی کتابخانه Bootstrap Flags

یه کتابخونه باحال برای ایکون پرچم ها

۱۴۰۳/۰۳/۱۵ ۸۰
پیمان دهقان

قالب API پاندا
قالب API پاندا

قالب آماده برای پروژه های API

۱۴۰۳/۰۳/۰۷ ۸۴
پیمان دهقان

آموزش ایجاد Template برای nuget
آموزش ایجاد Template برای nuget

۱۴۰۳/۰۳/۰۴ ۶۹
پیمان دهقان

یک جنریک از Ajax
یک جنریک از Ajax

۱۴۰۳/۰۲/۲۸ ۹۴
پیمان