PowerShell یک ابزار task automation است که همزمان یک command-line shell، زبان اسکریپتی و یک فریمورک configuration management نیز میباشد. برخلاف دیگر shellها که مبتنی بر رشته هستند، ورودی و خروجی آن اشیاء داتنتی است و از آنجائیکه مبتنی بر CLR میباشد، امکان نوشتن توابع، کلاسها و ماژولها را به ما میدهد. همچنین به صورت توکار امکان کار با فرمتهایی از قبیل CSV, XML, JSON را در اختیارمان قرار میدهد. بخاطر extensible بودن، تعداد زیادی ماژول و ...
در قسمت اول دیدیم که توسط Error boundary میتوان استثناءها را در Blazor مدیریت کرد؛ اما اگر بخواهیم قدری سفارشیتر عمل کرده و علاوه بر نمایش پیغام خطای مناسب به صورت جاوا اسکریپتی ، استثنای رخ داده را لاگ کنیم چطور؟ خبر خوب اینکه این مهم نیز به راحتی امکان پذیر است؛ با استفاده از مفهوم CascadingValue ها. یک کامپوننت Error.razor به شکل زیر ایجاد میکنیم: @using Microsoft.Extensions.Logging
@inject ILogger<Error> Logger
...
postgres یک بانک اطلاعاتی متن باز، قدرتمند و relational میباشد که پس از 30 سال توسعهی فعال، به کارآیی بالا، قابل اطمینان بودن و قدرتمند بودن شهرت دارد. همچنین در بنچمارکهای مربوط به وبسایت techempower نیز استفاده از این پایگاه داده در کنار asp.net core باعث شدهاست تا جایگاه خوبی کسب شود. علاوه بر این ویژگیها، انعطاف نوع دادهها (data type) سبب تفاوت بین رقبا شده است. برای مثال فرض کنید که یک جدول به اسم Blog و قصد ذخیره تگهای مقا ...
همانطور که میدانید Blazor Server یک فریم ورک stateful است. هنگامیکه کاربران در حال تعامل با برنامه هستند، یک ارتباط پیوسته را با سرور حفظ میکنند که به آن، به اصطلاح مدار میگویند. این مدارها، کامپوننتهای فعال را به انضمام حالتهای آنها که شامل موارد زیر است نگهداری میکند: 1- جدیدترین خروجی رندر شدهی کامپوننت. 2- مجموعه Event Handlingهای جاری که میتوانند توسط کاربر صدا زده شوند. اگر کاربری یک برنامه را در چندین تب مرورگر باز کند، ...
به صورت پیش فرض یک EditForm تنها یک دکمهی submit دارد و معمولا برای اعتبارسنجی فرم، قبل از ارسال اطلاعات به شکل زیر از آن استفاده میشود: <EditForm Model="@selectedCar" OnValidSubmit="@SaveObject">
<DataAnnotationsValidator />
<ValidationSummary />
....My <InputText>'s for all values I have in my object
<button type="submit" value="Save">Save</button>
</EditFor ...
ابتدا بسته زیر را از طریق nuget نصب نمایید: dotnet add package MongoDB.Driver سپس مدلهای زیر را ایجاد نمایید: public class BaseModel
{
public BaseModel()
{
CreationDate=DateTime.Now;
}
public string Id { get; set; }
public DateTime CreationDate { get; set; }
public bool IsRemoved { get; set; }
public DateTime? ModificationDate { get; set; }
} ...
عموما زمانیکه به طراحی صفحهی لاگین و یا ثبت نام میرسیم، ورودی کلمهی عبور را با "type="password علامتگذاری میکنیم و ... همین! فارغ از اینکه در سالهای اخیر، مرورگرها چه امکانات قابل توجهی را در جهت غنی سازی همین یک ورودی ویژه، تدارک دیدهاند تا کار ثبت نام و یا ورود به یک سایت و برنامه را سادهتر و امنتر کنند. کمک به مرورگر، در جهت تمایز بین صفحات ورود و ثبت نام
مرورگرهای جدید قادرند برای صفحهی لاگین، پر کردن خودکا ...
فرض کنید در برنامهی خود «کیف پولی» را طراحی کردهاید که بر اساس آن، کاربر میتواند خرید کند. این کیف پول، از Id کاربر و موجودی فعلی او تشکیل میشود: CREATE TABLE accounts (
user_id INTEGER PRIMARY KEY,
balance INTEGER NOT NULL
);
و برای مثال موجودی فعلی کاربر 1، مقدار 300 است: INSERT INTO accounts(user_id, balance)
VALUES (1, 300);
اکنون کوئریهای متداول زیر را که از یک read و سپس update تشکیل شدهاند، درنظ ...
تا اینجا روش آزمایش تولید کنندههای کد، صرفا بر اساس کامپایل برنامه و مشاهدهی خروجی نهایی آن بود و یا حتی با ترفندهایی امکان دیباگ آنها نیز وجود دارد که البته هنوز در تمام IDEها پشتیبانی نمیشود. در این قسمت میخواهیم این وضعیت را بهبود بخشیده و برای تولید کنندههای کد، آزمون واحد بنویسیم که یکی از مزایای آن، فراهم بودن امکان دیباگ یک چنین پروژههایی در تمام IDEهای موجود است و برای انجام اینکار، نیاز به هیچ ترفند خاصی وجود ندارد و ...
در حین توسعهی Source Generators، نیاز میشود تا بتوان تنظیماتی را از استفاده کننده دریافت کرد؛ برای مثال تعیین فضای نام ویژهای، فعال و غیرفعال کردن قابلیتی و یا حتی دریافت فایلهای تکمیلی. این تنظیمات سفارشی از طریق تعریف آنها در فایلهای csproj. و خواص MSBuild قابل دسترسی هستند که روش کار با آنها را در ادامه مرور خواهیم کرد.
روش تعریف خواص سفارشی MSBuild در پروژهی Source Generator
در مثال همین سری، به پوشهی ...