ASP.NET Core 3 & Blazor – قسمت 1 – وبلاگ Kaloyan Drenski

ASP.NET Core 3 & Blazor – قسمت 1 – وبلاگ Kaloyan Drenski

آخر هفته من شروع به بازی با ASP.NET Core 3 و Blazor (سمت سرور) کردم. ایده من ایجاد یک برنامه ساده کتاب ، مشابه Goodreads است.

هدف و هدف این برنامه این است که خودم را از Blazor و نحوه کار آگاه کنم – بنابراین این کد به عنوان جهنم خواهد بود ، زیرا من فقط در تلاش هستم که چیزهای روی صفحه نمایش ظاهر شوند: که در آن آنها این برنامه را با نام Contoso Crafts ایجاد کرده اند.

اگر آن را تماشا نکرده اید ، پیشنهاد می کنم این کار را انجام دهید ، زیرا روشی بسیار آموزنده و سرگرم کننده برای آشنایی با ASP.NET Core است world.

فقط برای خیس کردن پاها و صرفه جویی در وقت ایجاد یک پایگاه داده واقعی ، من با یک فایل json ساده که در Github پیدا کردم شروع کردم. این پایگاه داده من بود.

می خواستم ببینم به راحتی دریافت داده ها از فایل ، رفع عیب آنها و نمایش آنها روی صفحه ، آسان است. خوب ، این به راحتی کیک بود!

کد و تکنیک زیر تقریباً همان روش ارائه است.

1. ایجاد یک مدل کتاب (داخل پوشه Models )

 namespace Bookio.SPA.Models
{
    کلاس عمومی کتاب
    {
        رشته عمومی عنوان {دریافت؛ تنظیم؛ }
        رشته عمومی Isbn {get؛ تنظیم؛ }
        public int PageCount {دریافت؛ تنظیم؛ }
        عمومی PublishedDate PublishedDate {get؛ تنظیم؛ }
        رشته عمومی ThumbnailUrl {get؛ تنظیم؛ }
        رشته عمومی ShortDescription {دریافت؛ تنظیم؛ }
        رشته عمومی LongDescription {دریافت؛ تنظیم؛ }
        رشته عمومی وضعیت {دریافت؛ تنظیم؛ }
        لیست عمومی  نویسندگان {دریافت؛ تنظیم؛ }
        فهرست عمومی  دسته ها {دریافت؛ تنظیم؛ }
    }


    کلاس عمومی PublishedDate
    {
        تاریخ DateTime عمومی {get؛ تنظیم؛ }
    }
}

2. سرویس BookService (داخل پوشه Services )

 namespace Bookio.SPA.Services ایجاد کرد
{
    کلاس عمومی BookService
    {
        IWebHostEn Environment _webHostEn Environment؛

        رشته خصوصی JsonBooksFilePath
        {
            دریافت {Return Path.Combine (_webHostEn Environment.ContentRootPath ، "Data" ، "books.json") ؛ }
        }

        خدمات BookService (IWebHostEn Environment webHostEn Environment)
        {
            _webHostEn Environment = webHostEn Environment؛
        }

        IEnumerable عمومی  GetAllBooks ()
        {
            استفاده از (var jsonFileReader = File.OpenText (JsonBooksFilePath))
            {
                بازگشت JsonSerializer.Deserialize  (jsonFileReader.ReadToEnd () ، JsonSerializerOptions جدید
                {
                    PropertyNameCaseInsensitive = درست است
                })
            }
        }
    }
}

2. سرویس را به Startup.cs

 service.AddTransient  () اضافه کرد.

3. یک پرونده Books.razor

page "/ books" ایجاد کرد
با استفاده از Bookio.SPA.Service
@ با استفاده از Bookio.SPA.Models
inject BookService BookService

کتابها

foreach (کتاب var در کتابها) {

@ book.Title

} @ کد { فهرست کتابها لیست؛ باطل شده باطل شده OnInitialized () { booksList = BookService.GetAllBooks (). ToList ()؛ } }

در اینجا من مسیر را با دستورالعمل page اعلام کردم (بنابراین ، localhost: port / کتاب به این صفحه تیغ خدمت می کند). دستورالعملهای using هدف مشابهی را دارند که دستوراتی که همه ما می شناسیم. دستورالعمل inject سرویسی که ایجاد کرده ایم را تزریق می کند تا بتوانیم از آن استفاده کنیم. همانطور که م componentلفه پارامترهای اولیه خود را از والد خود در درخت رندر دریافت می کند. در آنجا از خدمات ما می خواهیم که همه کتابها را به ما بدهد و آنها را در شی [ booksList ذخیره کند.

سپس ما فقط از طریق شی تکرار می کنیم و عناوین مربوط به هر کتاب را چاپ می کنیم.

foreach (var var in bookList)
{
    

@ book.Title

}

واقعاً به همین سادگی است.

@ و همچنین @ code {} قسمت فقط یک نحو تیغ است که به ما کمک می کند ترکیب کنیم HTML و C #.

همه چیز جالب و سرگرم کننده بود ، اما من می خواستم Blazor را در عمل ببینم ، بنابراین فایل json را با یک پایگاه داده واقعی با کتابها ، نویسندگان و دسته ها عوض کردم. من رتبه بندی و یک ویژگی جستجوی ساده اضافه کرده ام. من قصد دارم با ادامه کاوش ، نظرات ، سبد خرید و موارد دیگر را در آینده اضافه کنم.

در حال حاضر ، این چیزی است که به نظر می رسد.

ادامه باید…

با تشکر و کدگذاری شاد!