یکی از ویژگی های معرفی شده ASP.NET Core است .با استفاده از dependency injection container موجود درASP.NET Core . مامیتوانیم به راحتی dependencie ها را به Controller ، Filters و View ها تزریق کنیم . در این مقاله قصد داریم برای نشان دادن inject dependencies از کلمه کلیدی inject در View ها استفاده کنیم .
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
برای
نمایش دادن داده ها در View ، به خواص های Controller مانند:ViewBag ،
ViewData ، یا خواص های Model نیاز داریم.در ASP.NET Core MVC استفاده از
دستور inject بسیار ساده است .Inject به ما کمک می کند وابستگی ها را به
طور مستقیم به View تزریق کنیم و داده ها را بازیابی کنیم .
ایجاد پروژه
در ویژوال استودیو ، یک پروژه جدید از نوع ASP.NET Core Web Appliction ایجاد می کنیم.
نام پروژه خود را وارد کرده و OK را انتخاب می کنیم .
حال در پنجره باز شده Web Application را انتخاب می کنیم تا یک پروژه را به صورت خودکار برای ما ایجاد کند.
همان طور که مشاهده می کنید Visual Studio به صورت خودکار یک پروژه ASP.NET Core ایجاد کرده است .
افزودن Service
یک
پوشه جدید به نام Models ایجاد می کنیم و یک کلاس به نام FruitServices به
آن اضافه می کنیم. حال متدی به نام GetFruits() ایجاد می کنیم که
List<string> را Return می کند.
1
2
3
4
5
6
7
public class FruitServices
{
public List<string> GetFruits()
{
return new List<string>() { "اپل", "مایکروسافت", "سامسونگ", "سونی" };
}
}
Inject در View
ما میتوان یک Service را با استفاده از دستور @inject به View تزریق کنیم . و همچنین میتوان یک خواص به View خود اضافه کنید.
Syntax ابتدایی برای تزریق به View :
1
@inject <service> <name>
دستور @inject برای تزریق وابستگی ها استفاده می شود
<service> کلاس Service است.
<name> نامی که میتوان با استفاده از آن به متد های Service دسترسی پیدا کرد.
در این مثال ، FuritService را تزریق میکنیم و نام fruitList را به Service می دهیم .
1
2
3
4
5
6
7
8
9
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
1. @inject MVCCoreExample.Models.FruitServices fruitList
2.
4. <ul>
5. @foreach (var name in fruitList.GetFruits())
6. {
7. <li>@name</li>
8. }
9. </ul>
این
View لیستی از Fruit ها که به FruitService تزریق شده بودند را نمایش
می دهد . با استفاده از متد GetFruit() ،میتوان لیستی از Fruit ها را
بازیابی کرد.
آن را بدون ثبت FuritService اجرا می کنیم.
زمانی که برنامه را اجرا می کنیم . یک exception ظاهر می شود.این خطا به این علت ظاهر شده که ما FruitService را ثبت نکرده ایم.
ابتدا آن را ثبت کرده و دوباره اجرا می کنیم.
ثبت Service
Startup.cs
را باز می کنیم وService را برای تزریق وابستگی در متد
ConfigureServices ثبت می کنیم.شما میتوان با استفاده از متد AddTransient
، Service های خود را ثبت کنید.
1
2
3
4
5
6
1. public void ConfigureServices(IServiceCollection services)
2. {
3. // Add framework services.
4. services.AddMvc();
5. services.AddTransient<FruitServices>();
6. }
برنامه را اجرا می کنیم .
همان طور که مشاهده می کنید داده های تزریق شده نمایش داده شده اند.
خلاصه
تزریق
وابستگی به طور مستقیم به View ها بسیار آسان است.در این مقاله برای درک
بهتر دستور inject یک تزریق ساده انجام داده ایم . می تواند برای پر کردن
عناصر UI مانند : SelectionList ، RadioButtom ها مفید باشد .استفاده از
این ویژگی، قابلیت استفاده مجدد از کد را افزایش می دهد و با کم کردن حجم
کد Controller ها ، آن ها را تمیز تر نگه میدارد.
در این
مقاله قصد داریم که مروری سریع بر برخی از ویژگی های َAsp.Net Core و
تغییرات انجام شده بر روی آن توضیح بدهیم.با ما همراه باشید.
مروری بر ASP.NET Core
Asp.Net Core چیست؟
ASP.NET Core در حال حاضر به طور کامل به دنبال آخرین نسخه هایی که بر روی .NET Framework کار میکنند بازنویسی شده است.
ASP.NET با تمرکز اصلی بر تبدیل آن به cross-platform توسعه داده شده است!
بعله ASP.NET Core در حال حاضر cross-platform است.
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
در توسعه وب مدرن امروزی Asp.Net Core خیلی سریع و در زمان محدود محبوب شد.
در
ادامه ، توسعه ابری با تنظیمات ساخته شده آسان همراه با یک پردازش خود
میزبانی همانند IIS و بسیاری از ویژگی های بیشتر اضافه شده به ASP.NET Core
که بر پایه آن ایجاد شده است.
Cross Platform چیست؟
بعله
شما درست خواندید ASP.NET Core در حال حاضر cross-platform است.ASP.NET
Core CLR در حال حاضر شامل WPF و WinForms است.در این روش یکبار کد را
میسازد (built میکند) و آن بر روی هر پلتفرمی اجرا می شود.اکنون ما می
توانیم NET framework. را در لینوکس، یونیکس یا OSX نصب کنیم.
NET
Core CLR. به جامعه سورس باز ها پیوسته است و بر روی GitHub قرار دارد.در
حال حاضر هر کسی میتواند در GitHub به توسعه NET Core. کمک کند.برنامه های
ASP.NET Core میتوانند بر روی نسخه های قبلی NET frameworks. و هچنین NET
core. اجرا شوند که این ویژگی برای توسعه دهندگان مفید است.
NET Framework 4.6. در واقع همان NET. است که ما از آن استفاده میکردیم و همچنان به همین شیوه توسعه می یابد.
NET
Core. به ما یک پلت فرم برای تولید solution های cross-platform می دهد.
با این حال، NET 4.6. به حالت پایدار رسیده است و NET Core. همچنان در حال
پیشرفت است.
ادغام stack MVC و Web API!
حالا این به نظر جالبه ... چی؟ادغام stack MVC و Web API
بله جالب است!!!
در ASP.NET Core ما میتوانیم stack MVC و Web API را ادغام کنیم و علاوه بر این Webforms به طور کامل رفته است.
پیش
از این، ما مجبور بودیم بیش از یک پروژه وب که یکی برای MVC و دیگری برای
Web API بود استفاده کنیم.اما در ASP.NET Core ما فقط نیاز به ایجاد یک
پروژه داریم.
ابزارهای چندگانه داخلی که در .NET Core با سهولت
برای ساخت برنامه های وب مورد استفاده قرار میگیرند مانند : NPM برای
پشتیبانی ابزارها و پشتیبانی سمت کاربر با استفاده از Bower و Grunt و
Gulp برای ساختن اتوماتیک و به طور معمول NuGet برای پکیج های NET.
استفاده می شوند.
برنامه NET Core. با Command Prompt و VS Code
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
هنگامی
که ما NET Core Framework. را در سیستم خود نصب میکنیم ، از آنجا که سورس
باز است ، NET Framework. قابل دسترسی است و پروژه ها می توانند از طریق
command prompt ادامه داد. فقط command prompt را باز کنید و دستور
"dotnet" را اجرا کنید.این دستور تمام اطلاعات مربوط به NET Framework. را
نمایش می دهد.
برای ایجاد پروژه جدید با استفاده از NET template. ها ، از scaffolding در VS IDE استفاده میشود.
همان scaffolding در command prompt با استفاده از دستور "dotnet new" در دسترس و قابل استفاده است.
این scaffolding را ایجاد میکند و پکیج های مورد نیاز را در صورت عدم وجود بازیابی میکند.
سپس ، از قالب های scaffolding استفاده میکنیم.
در اینجا ما چندین قالب را مشاهده میکنیم.یکی از قالب ها را انتخاب کنید و مسیری که میخواهید پروژه آن جا اضافه شود را تنظیم کنید.
حالا
، اجازه دهید که یک console application در یکی از درایوهای ما ایجاد
شود.برای اضافه کردن console application جدید دستور مورد نیاز آن به صورت
زیر است:
در این هنگام ، یک پروژه جدید که یک console application برای برنامه Hello World است ، ایجاد شده است.
سپس
، زمانیکه شما آن را اجرا میکنید ، شما با خطای فراموش شدن فضای نام ها
مواجه میشوید و حالا درایوتان را مسیر یابی کنید ، پوشه های bin و obj که
فراموش شده اند را بیابید.بنابراین ، خطایی مانند زیر نمایش داده میشود:
بنابراین
، بازیابی پکیج ها این مشکل را حل میکند.دستور dotnet restore مشکل پکیج
های پیش فرض مورد نیاز برای console application حل و بازیابی میکند.
سپس
، پروژه را برای اطمینان از عدم موجود بودن خطا اجرا میکنیم.از دستور
dotnet build استفاده کنید و بعد از آن پروژه با موفقیت اجرا میشود.پروژه
را اجرا کنید و خروجی آن را مشاهده کنید.
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
در آخر برای اجرا از دستور dotnet run استفاده کنید.
خروجی برنامه به صورت زیر میشود:
همین امر می تواند در پایانه های سیستم عامل لینوکس و همچنین سیستم عامل Mac نیز استفاده شود.
NET Core Framework. نیاز است که بر روی سیستم عامل نصب باشد ، چرا که NET Core. به صورت cross platform توسعه یافته است.
دوره آموزش مهاجرت از Asp.net MVC به Asp.net Core
در
دوره آموزش ASP.Net Core قصد داریم از ابتدا تا انتها مباحث مربوط به
ASP.Net Core را به صورت عملی به شما آموزش دهیم. همچنین توضیح خواهیم داد
که این پلتفرم چه مزایایی نسبت به سایر پلتفرم ها دارد.
ASP.NET Core چیست ؟
ASP.NET
Core یک فریم ورک متن باز و چند پلتفرمی مستقل از بستر اجرا برای ساخت
برنامه های مبتنی بر cloud متصل به اینترنت از قبیل وب اپلیکیشن ها ،
برنامه های اینترنت اشیا IOT Apps و برنامه های موبایل است . برنامه های
ASP.NET Core می توانند بر روی هسته .net یا روی فریم ورک کامل .net اجرا
شوند. ASP.NET Core به منظور محیا کردن یک چارچوب توسعه بهینه شده برای
اپلیکیشن هایی که روی فضای ابری یا روی محیط کاری کاربر (On-Premise) توسعه
داده می شوند ، طراحی شده بود.
از اجزا پیمانه ای (Modular) با
حداقل سربار تشکیل شده است. یعنی اینکه شما در حالی که راه حلهای خود را می
سازید، انعطاف پذیری را نیز حفظ می کنید .
شما می توانید برنامه های ASP.NET Core خود را روی ویندوز، مک و لینوکس توسعه داده و اجرا کنید.
ASP.NET Core به صورت متن باز در Github موجود می باشد.
در این دوره آموزشی Asp Identity 3 در Asp.Net Core به صورت عملی آموزش دادیم.
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
پنج دلیل برای توسعه وب با ASP.NET Core :
ASP.NET Core مستقل از Platform است.
Open Source است.
جدا بودن از Web Server.
تزریق وابستگی (Dependency Injection) تو کار.
یکپارچگی با frameworkهای مدرن سمت کلاینت.
نرم افزارهای استفاده شده در این دوره آموزشی :
Visual Studio 2017 Enterprise
SQL Server 2016 Managment Studio
آنچه در دوره آموزش Asp.net Core خواهید آموخت :
مقدمه ای بر دوره آموزشی
معرفی تغییرات جدید Asp.net Core 1.1 در Visual Studio 2017
معرقی Tag Helper ها در Asp.net core و خداحافظی با Html Helper
Generate شدن Tag Helper ها به صورت پیش فرض از طریق Class Model
نصب و پیکربندی Entity Framework Core
نصب و پیکربندی Migration
توضیحاتی در مورد تغییرات Migration در Asp.net Core
ثبت اطلاعات به صورت خودکار در اولین اجرای وب اپلیکیشن با استفاده از کلاس Data Initializer
قابلیت جدید عریف Constractor در کنترلر ها در Asp.net Core
انجام عملیات CRUD در Asp.net Core جهت درک مفاهیم عملی و کار با بانک اطلاعاتی توسط EF Core
معرفی بحث Identity 3 در Asp.net Core
معرفی تغییرات ایجاد شده Identity 3 نسبت به نسخه های قبل
پیاده سازی Identity 3 در پروژه مان به صورت کاملا عملی در Asp.net Core
گفتن مباحثی مانند (Costomize کردن ایتم ها در Identity – ایجاد – حذف و یا ویرایش فیلدها توسط برنامه نویس در Identity و …)
تعیین Role (نقش کاربران) توسط Identity
ایجاد Role به صورت دلخواه
تحلیل کامل بحث Identity
تحلیل کامل جدولهای ایجاد شده در Sql Server توسط Identity
بررسی نقش اتریبیوت Authorize در امنیت
توضیحاتی در مورد تغییرات ایجاد شده در پارامترهای ورودی Constractor فایل DatabaseContext نسبت به نسخه های پیشین MVC
توضیحات کامل در کلاسهای Startup و Program
توضیحاتی در مورد حذف شدن Project.json در ویژوال استادیو ۲۰۱۷
فعال سازی Razor با نصب یک Extention برای مشاهده TagHelper ها در پنجره Intelisense
پیاده سازی بحث ViewModel در Asp.net Core
پیاده سازی Ajax به صورت عملی
پیاده سازی الگوی Repository و Ioc در Asp.net Core به صورت کاملا عملی
توضیحاتی در مورد تغییرات حوضه Routing نسب به نسخه های پیشین MVC
پیاده سازی عملی Routing
و دیگر نکات عملی که در حین آموزش خواهید آموخت …
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276