آپلود فایل در ASPNet Core :
در این مقاله دو نوع آپلود آموزش داده شده است.
1. آپلود فایلهایی با حجم كمتر
2. آپلود فایلهای حجیم
در حالت اول فایل ابتدا به صورت موقت در حافظه سرور ذخیره میشود تا زمانی كه دستور ذخیره سازی روی دیسك داده شود كه این عمیل برای فایلهایی با حجم پایین و تعداد كم مناسب است ولی در نظر بگیرید اگر نیاز باشد حجم فایلهای آپلودی كمی بیشتر باشد و تعداد كاربرانی كه در حال آپلود هستند نیز بیشتر شود چه میزان از منابع سرور برای ذخیره سازی موقت فایلها استفاده می شود؟
برای حل این مشكل میتوانیم از تكنیك استریم كردن فایل استفاده كنیم كه در مقاله آموزش داده شده است:
@WebDevelopmentReferences
#ASP_Net_Core #Upload
https://dotnetcoretutorials.com/2017/03/12/uploading-files-asp-net-core/
در این مقاله دو نوع آپلود آموزش داده شده است.
1. آپلود فایلهایی با حجم كمتر
2. آپلود فایلهای حجیم
در حالت اول فایل ابتدا به صورت موقت در حافظه سرور ذخیره میشود تا زمانی كه دستور ذخیره سازی روی دیسك داده شود كه این عمیل برای فایلهایی با حجم پایین و تعداد كم مناسب است ولی در نظر بگیرید اگر نیاز باشد حجم فایلهای آپلودی كمی بیشتر باشد و تعداد كاربرانی كه در حال آپلود هستند نیز بیشتر شود چه میزان از منابع سرور برای ذخیره سازی موقت فایلها استفاده می شود؟
برای حل این مشكل میتوانیم از تكنیك استریم كردن فایل استفاده كنیم كه در مقاله آموزش داده شده است:
@WebDevelopmentReferences
#ASP_Net_Core #Upload
https://dotnetcoretutorials.com/2017/03/12/uploading-files-asp-net-core/
.NET Core Tutorials
Uploading Files In ASP.NET Core - .NET Core Tutorials
Uploading files in ASP.net core is largely the same as standard full framework MVC, with the large exception being how you can now stream large files. We will go over both methods of uploading a file in ASP.net core. Model Binding IFormFile (Small Files)…
حل مشكل چرخه حذف در DOTNET Core:
زمانی كه مدلها و روابط بین آنها مشخص می شود رابطه های یك به چند اگر با دقت مدیریت نشوند ممكن است خطرناك باشند، به صورت پیشفرض عمل حذف و به روز رسانی به صورت كسكید انجام می شود یعنی اگر یك والد را حذف كنید خودكار تمام فرزندهای آن نیز حذف می شوند، امری طبیعی است ولی مدیری را در نظر بگیرید كه به اشتباه یك دسته از دسته بندی های محصولات را حذف می كند!
در این گونه موارد برنامه نویس یا باید عمل كسكید را غیرفعال كنید و یا قبل از انجام عملیات حذف بررسی شود ركورد مورد نظر اگر دارای فرزند بود به كاربر هشدار داده شود و در صورت تایید حذف شود.
حالا میخواهیم حالت بدتر این موضوع را بررسی كنیم:
ممكن است اتفاق بیفتد كه سه جدول داریم به صورتی كه جدول اول با جدول دوم، جدول دوم با جدول سوم و جدول سوم با جدول اول رابطه یك به چند دارد.
حالا اگر حالت كسكسید فعال باشد اگر از یكی از جداول ركوردی حذف شود عمل حذف به صورت چرخه تمام اطلاعات هر سه جدول را حذف خواهد كرد!
وقتی روابط به این صورت باشند دات نت زمان به روز رسانی بانك اطلاعاتی (Migration) پیامی مبنی بر اینكه این روابط چرخه حذف بوجود می آورند بدهد و از به روزرسانی بانك جلوگیری كند، در حالی كه به این روابط نیاز داریم و در حین برنامه نویسی كنترل خواهیم كرد كه این چرخه هیچ وقت اتفاق نیفتد و قبل از حذف ركورد تعداد فرزندان اگر بیشتر از صفر بود ركورد حذف نشود.
ولی بازهم اجازه به روزرسانی داده نمی شود بخاطر اینكه ساختار روابط همچنان میگوید چرخه حذف داریم!
برای این كار باید در DbContext تنظیمات زیر را اعمال كنیم تا بفهمانیم عمل حذف به صورت كسكید انجام نشود و مدیریت آن به برنامه نویس داده شود(به زبان ساده تر خطرات چرخه حذف را خودم مدیریت می كنم).
میتوانیم این تنظیم را برای هر مدل انجام دهیم اما معمولا تعداد مدلها در برنامه زیاد هستند و اعمال تنظیمات برای هر مدل به صورت جدا هم زمان و هم كد بیشتری را میخواهد، قطعه كد زیر این تنظیمات را برای تمام روابط اعمال خواهد كرد:
protected override void OnModelCreating(ModelBuilder modelbuilder)
{
foreach (var relationship in modelbuilder.Model.GetEntityTypes().SelectMany(e => e.GetForeignKeys()))
{
relationship.DeleteBehavior = DeleteBehavior.Restrict;
}
base.OnModelCreating(modelbuilder);
}
@WebDevelopmentReferences
#ASP_NET_CORE #EntityFramework #ASPNet
زمانی كه مدلها و روابط بین آنها مشخص می شود رابطه های یك به چند اگر با دقت مدیریت نشوند ممكن است خطرناك باشند، به صورت پیشفرض عمل حذف و به روز رسانی به صورت كسكید انجام می شود یعنی اگر یك والد را حذف كنید خودكار تمام فرزندهای آن نیز حذف می شوند، امری طبیعی است ولی مدیری را در نظر بگیرید كه به اشتباه یك دسته از دسته بندی های محصولات را حذف می كند!
در این گونه موارد برنامه نویس یا باید عمل كسكید را غیرفعال كنید و یا قبل از انجام عملیات حذف بررسی شود ركورد مورد نظر اگر دارای فرزند بود به كاربر هشدار داده شود و در صورت تایید حذف شود.
حالا میخواهیم حالت بدتر این موضوع را بررسی كنیم:
ممكن است اتفاق بیفتد كه سه جدول داریم به صورتی كه جدول اول با جدول دوم، جدول دوم با جدول سوم و جدول سوم با جدول اول رابطه یك به چند دارد.
حالا اگر حالت كسكسید فعال باشد اگر از یكی از جداول ركوردی حذف شود عمل حذف به صورت چرخه تمام اطلاعات هر سه جدول را حذف خواهد كرد!
وقتی روابط به این صورت باشند دات نت زمان به روز رسانی بانك اطلاعاتی (Migration) پیامی مبنی بر اینكه این روابط چرخه حذف بوجود می آورند بدهد و از به روزرسانی بانك جلوگیری كند، در حالی كه به این روابط نیاز داریم و در حین برنامه نویسی كنترل خواهیم كرد كه این چرخه هیچ وقت اتفاق نیفتد و قبل از حذف ركورد تعداد فرزندان اگر بیشتر از صفر بود ركورد حذف نشود.
ولی بازهم اجازه به روزرسانی داده نمی شود بخاطر اینكه ساختار روابط همچنان میگوید چرخه حذف داریم!
برای این كار باید در DbContext تنظیمات زیر را اعمال كنیم تا بفهمانیم عمل حذف به صورت كسكید انجام نشود و مدیریت آن به برنامه نویس داده شود(به زبان ساده تر خطرات چرخه حذف را خودم مدیریت می كنم).
میتوانیم این تنظیم را برای هر مدل انجام دهیم اما معمولا تعداد مدلها در برنامه زیاد هستند و اعمال تنظیمات برای هر مدل به صورت جدا هم زمان و هم كد بیشتری را میخواهد، قطعه كد زیر این تنظیمات را برای تمام روابط اعمال خواهد كرد:
protected override void OnModelCreating(ModelBuilder modelbuilder)
{
foreach (var relationship in modelbuilder.Model.GetEntityTypes().SelectMany(e => e.GetForeignKeys()))
{
relationship.DeleteBehavior = DeleteBehavior.Restrict;
}
base.OnModelCreating(modelbuilder);
}
@WebDevelopmentReferences
#ASP_NET_CORE #EntityFramework #ASPNet
نام پكیج: KSBankMellat
توضیح :
اگر در پروژه دات نت كور خود نیاز به استفاده از درگاه پرداخت بانك ملت دارید حتما متوجه شده اید كه در ویژوال استادیو كد قسمتی برای اضافه كردن وب سرویس بانك ملت به پروژه ندارید!
با استفاده از این پكیج تمام متدهای وب سرویس در اختیار شما خواهد بود.
استفاده از این پكیج بسیار ساده است، تنها باید پكیج را نصب كرده و یك نمونه از كلاس PaymentGatewayClient بسازید و از متدها استفاده كنید:
var pgc = new PaymentGatewayClient();
var result = await pgc.bpPayRequestAsync(terminalId, userName, password, orderId, amout, localDate, localTime, additionalData, callBackUrl, payerId);
string[] resultArray = result.Body.@return.Split(",");
if(resultArray[0] == "0")
{ //Send user to gateway }
else
{ //Show error message }
آدرس پكیج در نوگت :
https://www.nuget.org/packages/KSBankMellat
آدرس گیت هاب:
https://github.com/A-Programmer/KSBankMellat
#ASP_Net_Core #ASPNet #Nuget_Package #BankMellat
@WebDevelopmentReferences
توضیح :
اگر در پروژه دات نت كور خود نیاز به استفاده از درگاه پرداخت بانك ملت دارید حتما متوجه شده اید كه در ویژوال استادیو كد قسمتی برای اضافه كردن وب سرویس بانك ملت به پروژه ندارید!
با استفاده از این پكیج تمام متدهای وب سرویس در اختیار شما خواهد بود.
استفاده از این پكیج بسیار ساده است، تنها باید پكیج را نصب كرده و یك نمونه از كلاس PaymentGatewayClient بسازید و از متدها استفاده كنید:
var pgc = new PaymentGatewayClient();
var result = await pgc.bpPayRequestAsync(terminalId, userName, password, orderId, amout, localDate, localTime, additionalData, callBackUrl, payerId);
string[] resultArray = result.Body.@return.Split(",");
if(resultArray[0] == "0")
{ //Send user to gateway }
else
{ //Show error message }
آدرس پكیج در نوگت :
https://www.nuget.org/packages/KSBankMellat
آدرس گیت هاب:
https://github.com/A-Programmer/KSBankMellat
#ASP_Net_Core #ASPNet #Nuget_Package #BankMellat
@WebDevelopmentReferences
GitHub
GitHub - A-Programmer/KSBankMellat: Using Bank Mellat SOAP in DotNet Core
Using Bank Mellat SOAP in DotNet Core. Contribute to A-Programmer/KSBankMellat development by creating an account on GitHub.
آموزش ساخت یك سایت كوچك TODO با استفاده از Vue.js و ASP.NET Core:
در این آموزش با استفاده از تكنولوژی های ذكر شده یك وب سایت ساده برای ثبت، نمایش، حذف و ویرایش آیتم های TODO ساخته خواهد شد.
لینك مقاله :
https://scotch.io/tutorials/build-a-secure-to-do-app-with-vuejs-aspnet-core-and-okta
#Vue_Js #ASP_Net_Core #Okta
@WebDevelopmentReferences
در این آموزش با استفاده از تكنولوژی های ذكر شده یك وب سایت ساده برای ثبت، نمایش، حذف و ویرایش آیتم های TODO ساخته خواهد شد.
لینك مقاله :
https://scotch.io/tutorials/build-a-secure-to-do-app-with-vuejs-aspnet-core-and-okta
#Vue_Js #ASP_Net_Core #Okta
@WebDevelopmentReferences
Scotch
Build a Secure To-Do App with Vue, ASP.NET Core, and Okta
I love lists. I keep everything I need to do (too many things, usually) in a big to-do list, and the list helps keep me sane throughout the day. It’s like having a second brain! There are hundreds of to-do apps out there, but today I’ll show you how to build…
مثالی از ارسال اطلاعات به اكشن متد در دات نت كور توسط Vue و Axios:
در این مثال می خواهیم نام و نام خانوادگی را از كاربر دریافت كرده و به اكشن متد خاصی ارسال كنیم.
ابتدا كتابخانه های Vue و Axios را به صفحه اضافه میكنیم، همینطور فایل جی اس خودمان:
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script src="/app/app.js"></script>
فرم مورد نظر هم به صورت زیر خواهد بود:
<div id="app">
<input name="firstName" v-model="firstName" placeholder="First Name"/>
<br/>
<input name="lastName" v-model="lastName" placeholder="Last Name"/>
<br/>
<button v-on:click="sendToServer">Submit</button>
</div>
فایل app.js كه كدهای مورد نیاز است را به صورت زیر می نویسیم:
new Vue({
el: "#app",
data: {
firstName: "",
lastName: ""
},
methods: {
sendToServer: function () {
axios({
method: 'post',
url: '/home/index',
data: {
"firstName": this.firstName,
"lastName": this.lastName
}
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
}
}
});
دقت كنید، یك متد داریم با نام sendToServer كه وظیفه ارسال اطلاعات به سرور و دریافت پاسخ را به عهده دارد.
حالا یك ویو مدل نیاز داریم كه به صورت زیر تعریف میكنیم:
namespace VueJsToNetCore.ViewModel
{
public class User
{
public string LastName { get; set; }
public string FirstName { get; set; }
}
}
و در آخر اكشن متد مورد نظر كه وظیفه دریافت اطلاعات ارسالی و اعمال عملیات خاص روی آن را دارد به صورت زیر می باشد:
[HttpPost]
public IActionResult Index([FromBody]User user)
{
return View();
}
این اكشن در مثال ما در كنترلری با نام Home قرار دارد.
#Vue_Js #ASP_Net_Core #axios
@WebDevelopmentReferences
در این مثال می خواهیم نام و نام خانوادگی را از كاربر دریافت كرده و به اكشن متد خاصی ارسال كنیم.
ابتدا كتابخانه های Vue و Axios را به صفحه اضافه میكنیم، همینطور فایل جی اس خودمان:
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script src="/app/app.js"></script>
فرم مورد نظر هم به صورت زیر خواهد بود:
<div id="app">
<input name="firstName" v-model="firstName" placeholder="First Name"/>
<br/>
<input name="lastName" v-model="lastName" placeholder="Last Name"/>
<br/>
<button v-on:click="sendToServer">Submit</button>
</div>
فایل app.js كه كدهای مورد نیاز است را به صورت زیر می نویسیم:
new Vue({
el: "#app",
data: {
firstName: "",
lastName: ""
},
methods: {
sendToServer: function () {
axios({
method: 'post',
url: '/home/index',
data: {
"firstName": this.firstName,
"lastName": this.lastName
}
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
}
}
});
دقت كنید، یك متد داریم با نام sendToServer كه وظیفه ارسال اطلاعات به سرور و دریافت پاسخ را به عهده دارد.
حالا یك ویو مدل نیاز داریم كه به صورت زیر تعریف میكنیم:
namespace VueJsToNetCore.ViewModel
{
public class User
{
public string LastName { get; set; }
public string FirstName { get; set; }
}
}
و در آخر اكشن متد مورد نظر كه وظیفه دریافت اطلاعات ارسالی و اعمال عملیات خاص روی آن را دارد به صورت زیر می باشد:
[HttpPost]
public IActionResult Index([FromBody]User user)
{
return View();
}
این اكشن در مثال ما در كنترلری با نام Home قرار دارد.
#Vue_Js #ASP_Net_Core #axios
@WebDevelopmentReferences
✍️ فریم ورك ASP.NET Core سریع است؟
🖋 همانطور که می دانید NodeJS نزدیک ترین رقیب ASP.NET بوده که اگر منصفانه نتایج بررسی ها را ببینیم NodeJS همیشه جلوتر بوده و همین امر باعث مهاجرت خیلی ها به سمت Node شده بود.
اما با معرفی ASP.NET Core این رتبه بندی تغییر کرده به طوری که ASP.NET Core با فاصله بسیار زادی از رقیب خود یعنی NodeJs جلو زده است.
برای اطمینان می توانید نتیجه مقایس ها را جست و جو کنید.
برای مقایسه ابتدا باید شراط برای شرکت کننده ها یک سان باشد، می دانیم که سرعت وب سایت به شرایط مختلفی مثل سرور، سخت افزار سرور، سیستم عامل، تعداد درخواست ها، نوع درخواست ها و حتی سرعت اینترنت کاربر بازدید کننده بستگی دارد، برای منصفانه بودن مقایسه باید شایط عمومی یکسان درنظر گرفته شود.
متغیرهای ما در این مقایسه NodeJs و ASP.NET Core هستند.
در زمینه مقایسه، سایت Techempower نتایج قابل قبولی را ارئه میدهد که از نظر برنامه نویسیان مورد تایید است البته هنوز گستره کامل مقایسه را انجام نمیدهد اما تا همینجای کار هم کفایت می کند.
ساده ترین حالت مقایسه حالت نمایش یک نوشته معمولی Hello World است، می دانیم که اگر یک سیستم در نمایش نوشته ساده کند باشد قطعا در حالت های سخت تر هم کند خواهد بود.
عداد درخواست های پاسخ داده شده از 50 هزار در ثانیه
(در ASP MVC قدیم) به 1.15 میلیون (در ASP Core ) رسید. یعنی عملکرد ASP Core در مقایسه با ASP 4.6 حدود 23 برابر بهتر شده بود.
🎖🎖 آخرین آمار رسمی Techempower در روز ولنتاین منتشر شد و برای ASP Core 2 رکورد 2.216 میلیون را ثبت کرده است.
برای اثبات ادعا می توانید نتیجه مقایسات را در وب سایت Techempower مشاهده کنید.
راه بهتر و تست شده در محیط واقعی را هم می توانید داشته باشید :
📃 سال گذشته شرکت Raygun اعلام کرد با مهاجرت از Nodejs به ASP Core بازدهی سایتهایش بدون هیچ تغییر سخت افزاری به میزارن 2000 درصد بهبود پیدا کرده است. این یعنی 20 برابر شدن ظرفیت سرورها بدون هزینه اضافی!
متن کامل این ادعا را در بلگ خود ریگان مطالعه برمایید :
https://raygun.com/blog/increased-throughput-net-core/
#Benchmark #ASP_NET_Core #NodeJS
http://t.me/WebDevelopmentReferences
🖋 همانطور که می دانید NodeJS نزدیک ترین رقیب ASP.NET بوده که اگر منصفانه نتایج بررسی ها را ببینیم NodeJS همیشه جلوتر بوده و همین امر باعث مهاجرت خیلی ها به سمت Node شده بود.
اما با معرفی ASP.NET Core این رتبه بندی تغییر کرده به طوری که ASP.NET Core با فاصله بسیار زادی از رقیب خود یعنی NodeJs جلو زده است.
برای اطمینان می توانید نتیجه مقایس ها را جست و جو کنید.
برای مقایسه ابتدا باید شراط برای شرکت کننده ها یک سان باشد، می دانیم که سرعت وب سایت به شرایط مختلفی مثل سرور، سخت افزار سرور، سیستم عامل، تعداد درخواست ها، نوع درخواست ها و حتی سرعت اینترنت کاربر بازدید کننده بستگی دارد، برای منصفانه بودن مقایسه باید شایط عمومی یکسان درنظر گرفته شود.
متغیرهای ما در این مقایسه NodeJs و ASP.NET Core هستند.
در زمینه مقایسه، سایت Techempower نتایج قابل قبولی را ارئه میدهد که از نظر برنامه نویسیان مورد تایید است البته هنوز گستره کامل مقایسه را انجام نمیدهد اما تا همینجای کار هم کفایت می کند.
ساده ترین حالت مقایسه حالت نمایش یک نوشته معمولی Hello World است، می دانیم که اگر یک سیستم در نمایش نوشته ساده کند باشد قطعا در حالت های سخت تر هم کند خواهد بود.
عداد درخواست های پاسخ داده شده از 50 هزار در ثانیه
(در ASP MVC قدیم) به 1.15 میلیون (در ASP Core ) رسید. یعنی عملکرد ASP Core در مقایسه با ASP 4.6 حدود 23 برابر بهتر شده بود.
🎖🎖 آخرین آمار رسمی Techempower در روز ولنتاین منتشر شد و برای ASP Core 2 رکورد 2.216 میلیون را ثبت کرده است.
برای اثبات ادعا می توانید نتیجه مقایسات را در وب سایت Techempower مشاهده کنید.
راه بهتر و تست شده در محیط واقعی را هم می توانید داشته باشید :
📃 سال گذشته شرکت Raygun اعلام کرد با مهاجرت از Nodejs به ASP Core بازدهی سایتهایش بدون هیچ تغییر سخت افزاری به میزارن 2000 درصد بهبود پیدا کرده است. این یعنی 20 برابر شدن ظرفیت سرورها بدون هزینه اضافی!
متن کامل این ادعا را در بلگ خود ریگان مطالعه برمایید :
https://raygun.com/blog/increased-throughput-net-core/
#Benchmark #ASP_NET_Core #NodeJS
http://t.me/WebDevelopmentReferences
Raygun Blog
.Net core or node js? [We increased throughput by 2,000%]
We'll walk you through how by changing node.js to .Net Core we went from 1,000 requests per second per node to 20,000 requests per second. Check it out now
تزریق وابستگی در دات نت كور:
در دات نت كور سیستم تزریق وابستگی به صورت توكار وجود دارد كه سریع و كم حجم می باشد و شما مجبور به استفاده از سایر IoC ها مثل Ninject, AutoFac و StructureMap نیستید.
به سه روش می توانید سرویس ها را تزریق كنید:
1. Transient:
در این حالت سرویس در هر فراخوانی اجرا می شود.
2. Scoped:
در این حالت سرویس در هر Request یك بار اجرا می شود.
3. Singleton:
در این حالت سرویس تنها در فراخوانی اول ایجاد می شود و دفعات بعد از همان سرویس استفاده می شود.
كنترلر ها در ASP Core به صورت Scoped تزریق می شوند تا اطلاعات یک HttpContext برای هر Request بازخوانی شود.
#ASP_Net_Core #ASPNet #Dependency_Injection
http://t.me/WebDevelopmentReferences
در دات نت كور سیستم تزریق وابستگی به صورت توكار وجود دارد كه سریع و كم حجم می باشد و شما مجبور به استفاده از سایر IoC ها مثل Ninject, AutoFac و StructureMap نیستید.
به سه روش می توانید سرویس ها را تزریق كنید:
1. Transient:
در این حالت سرویس در هر فراخوانی اجرا می شود.
2. Scoped:
در این حالت سرویس در هر Request یك بار اجرا می شود.
3. Singleton:
در این حالت سرویس تنها در فراخوانی اول ایجاد می شود و دفعات بعد از همان سرویس استفاده می شود.
كنترلر ها در ASP Core به صورت Scoped تزریق می شوند تا اطلاعات یک HttpContext برای هر Request بازخوانی شود.
#ASP_Net_Core #ASPNet #Dependency_Injection
http://t.me/WebDevelopmentReferences
Telegram
برنامه نویسی و طراحی
در این كانال نكات و كدهای برنامه نویسی و همینطور تجربه كاربری و طراحی به اشتراك گذاشته می شود.
#تگ_هلپر چیست؟
در ASP.NET Core امكان جدیدی معرفی شد به نام TagHelper كه اگر بخواهیم به صورت ساده توضیح دهیم، این امكان را برای ما فراهم می كند كه از المنت ها HTML در ویو استفاده می كنیم ولی در زمان اجرا این المنت تبدیل به كدهای نهایی می شود.
در طول انجام پروژه شاید ندانسته از این امكان استفاده می كردید زیرا به صورت پیش فرض یك سری تگ هلپرهایی توسط دات نت كور در اختیار ما قرار داده شده است و می توانیم تگ هلپر های اختصاصی نیز داشته باشیم.
به عنوان مثال زمانی كه یك تگ a را به صورت زیر می نویسید در اصل از تگ هلپر استفاده كرده اید:
<a asp-action="Index" asp-controller="Home">Home</a>
این مثال یك نمونه ساده از تگ هلپر بود كه استفاده كرده اید.
می توانیم تگ هلپر های اختصاصی خودمان را بنویسیم و در طول پروژه از آنها استفاده كنیم، به عنوان مثال در ادامه لینك آموزش ساخت تگ هلپری برای نمایش خط پیشرفت یا همان پراگرس بار را برای شما قرار داده ام.
حتی می توانید تگ هلپری داشته باشید كه دیتاسورس را به عنوان ورودی دریافت كرده و داده ها را صورت جدول برای ما نمایش بدهد.
یكی از مزیت های استفاده از تگ هلپر بالا بردن سرعت كدنویسی و استفاده چندبار از آن می باشد.
مقاله آموزش ساخت تگ هلپر اختصاصی در ASP.NET Core :
https://gist.github.com/A-Programmer/a37833e2c466eeef3657fe1b12af6d35
#ASP_Net_Core
#ASPNet
#TagHelper
Telegram: http://t.me/WebDevelopmentReferences
Instagram: http://instagram.com/sadin_k/
Twitter: http://twitter.com/MrSadin
Linkedin: http://linkedin.com/in/mrsadin
در ASP.NET Core امكان جدیدی معرفی شد به نام TagHelper كه اگر بخواهیم به صورت ساده توضیح دهیم، این امكان را برای ما فراهم می كند كه از المنت ها HTML در ویو استفاده می كنیم ولی در زمان اجرا این المنت تبدیل به كدهای نهایی می شود.
در طول انجام پروژه شاید ندانسته از این امكان استفاده می كردید زیرا به صورت پیش فرض یك سری تگ هلپرهایی توسط دات نت كور در اختیار ما قرار داده شده است و می توانیم تگ هلپر های اختصاصی نیز داشته باشیم.
به عنوان مثال زمانی كه یك تگ a را به صورت زیر می نویسید در اصل از تگ هلپر استفاده كرده اید:
<a asp-action="Index" asp-controller="Home">Home</a>
این مثال یك نمونه ساده از تگ هلپر بود كه استفاده كرده اید.
می توانیم تگ هلپر های اختصاصی خودمان را بنویسیم و در طول پروژه از آنها استفاده كنیم، به عنوان مثال در ادامه لینك آموزش ساخت تگ هلپری برای نمایش خط پیشرفت یا همان پراگرس بار را برای شما قرار داده ام.
حتی می توانید تگ هلپری داشته باشید كه دیتاسورس را به عنوان ورودی دریافت كرده و داده ها را صورت جدول برای ما نمایش بدهد.
یكی از مزیت های استفاده از تگ هلپر بالا بردن سرعت كدنویسی و استفاده چندبار از آن می باشد.
مقاله آموزش ساخت تگ هلپر اختصاصی در ASP.NET Core :
https://gist.github.com/A-Programmer/a37833e2c466eeef3657fe1b12af6d35
#ASP_Net_Core
#ASPNet
#TagHelper
Telegram: http://t.me/WebDevelopmentReferences
Instagram: http://instagram.com/sadin_k/
Twitter: http://twitter.com/MrSadin
Linkedin: http://linkedin.com/in/mrsadin
Gist
ساخت TagHelper اختصاصی در ASP.NET Core
پنج نكته برای ساخت API در ASP.NET Core:
در این مقاله به پنج نكته اشاره شده است كه در ساخت API در دات نت كور بهتر است رعایت كنیم.
لینك مقاله:
https://stormpath.com/blog/5-api-tips-dotnet-core
#API #ASP_Net_Core #ASPNet #Tips
Telegram: http://t.me/WebDevelopmentReferences
Instagram: http://instagram.com/sadin_k/
Twitter: http://twitter.com/MrSadin
Linkedin: http://linkedin.com/in/mrsadin
در این مقاله به پنج نكته اشاره شده است كه در ساخت API در دات نت كور بهتر است رعایت كنیم.
لینك مقاله:
https://stormpath.com/blog/5-api-tips-dotnet-core
#API #ASP_Net_Core #ASPNet #Tips
Telegram: http://t.me/WebDevelopmentReferences
Instagram: http://instagram.com/sadin_k/
Twitter: http://twitter.com/MrSadin
Linkedin: http://linkedin.com/in/mrsadin
Stormpath User Identity API
5 Tips for Building an API in ASP.NET Core - Stormpath User Identity API
Microsoft’s .NET Web API Core makes it easy to build great APIs, but these tips can make your APIs even stronger and more scalable.