آموزش JSON Web Token (به اختصار JWT) و پیاده سازی آن در برنامههای ASP.NET Core درسایت موجود است. توکن JWT در حالت عادی به صورت Base64 رمزنگاری میشود که این نوع رمزنگاری به راحتی قابل رمزگشایی و خواندن است. سایتهای آنلاین زیادی برای رمزگشایی base64 موجود است؛ برای مثال کافی است توکن خود را در سایت jwt.io کپی کنید و به راحتی محتوای بدنه توکن (Payload) را مشاهده کنید. پس توکن JWT هیچ امنیتی در برابر خوانده شدن ندارد. ...
در قسمت قبلی روش استفاده از IRequest و IRequestHandler را در MediatR که نقش پیاده سازی Command/Query را در CQRS بر عهده دارند، بررسی کردیم. کدهای این قسمت در این ریپازیتوری بهروزرسانی شده و قابل دسترسی است.
Command ما که نقش ایجاد یک مشتری را داشت ( CreateCustomerCommand )، هیچ Validation ای برای اعتبار سنجی مقادیر ورودی از سمت کاربر را ندارد و کاربر با هر مقادیری میتواند این Command را فراخو ...
در این مطلب قصد داریم به بررسی امکانات داخلی فریمورک MediatR بپردازیم. سورس این قسمت مقاله در این ریپازیتوری قابل دسترسی است. نصب و راه اندازی در ابتدا یک پروژه جدید ASP.NET Core از نوع API را ایجاد میکنیم و با استفاده از Nuget Package Manager ، پکیج MediatR را داخل پروژه نصب میکنیم: Install-Package MediatR
...
Zstandard یا به اختصار Zstd، یک الگوریتم فشرده سازی سریع و بدون افت کیفیت است که از سرعت و قدرت خوبی برخوردار است. این الگوریتم توسط Facebook توسعه داده شده و استفاده میشود. الگوریتمهای دیگری مانند Snappy (الگوریتم فشرده سازی گوگل)، LZ4 (جز سریعترین الگوریتم ها) و LZMA (جز قویترین الگوریتمها) نیز وجود دارند ولی Zstd تعادل (trade-off) خوبی بین سرعت و میزان فشرده سازی را فراهم میکند. در این مقاله برای فشرده سازی اطلاع ...
پیش نیاز این مطلب، قسمت قبل آن است. در قسمت قبل، یک کلاس جنریک را به نام BaseDto ایجاد کردیم که با ارث بری Dtoهای پروژه از این کلاس، علاوه بر متدهای ToEntity و FromEntity جهت ساده سازی عملیات نگاشت، Mappingهای لازم بین Dtoها و Entityهای مربوطه، توسط Reflection به صورت خودکار انجام میشد. در این قسمت میخواهیم مکانیزم Mapping خودکار را کمی تغییر داده و قابلیت سفارشی سازی Mappingها را فراهم کنیم. سورس کامل مثال را میتوانید در ...
در این قسمت میخواهیم با Rest Api ارتباط برقرار کنیم. به جای نوشتن سمت سرور، از یک سرور آماده استفاده میکنیم که مثال اول آن، LIST USERS است و لیست کاربران را نمایش میدهد. توضیحات این قسمت به فراخوانی سرویسهای Rest ارتباط دارد، با پروتکل HTTP و دیتای JSON. البته فراخوانی سرویسهای SOAP نیز ساده است که در این آموزش به آنها نمیپردازیم. برای این کار از HttpClient استفاده میکنیم. استفاده کردن از WebClient و WebRequest اشتباه محض هس ...
در مطالب قبلی ( 1 , 2 ) الگوی CQRS معرفی شد. همانطور که میبینید، پیاده سازی این الگو هرچند با فریمورک آمادهای همچون SimpleCQRS ، دارای پیچیدگی زیادی است و باعث نوشتن حجم زیادی کد میشود. فریمورک MediatR توسط توسعه دهنده کتابخانهی محبوب AutoMapper ایجاد شدهاست. این فریمورک پیاده سازی کاملی از الگوی طراحی Mediator در NET. است که داخل خود، تمام پیچیدگیهای پیاده سازی CQRS را Abstract کرده و با حداقل کد ممکن، میتوانید بهراح ...
در قسمت قبل بحث Style و Font را بررسی کردیم. در این قسمت قصد بررسی Animationها را داریم. Animation خود دارای دو قسمت است: 1- استفاده از Xamanimation 2- استفاده از Lottie Xamanimation به شما کمک میکند تا در Xaml، انیمیشنهای خود را تعریف کنید. پس از نصب Package مربوطه، میتوانید مثال زیر را تست کنید: <Button
x:Name="DeleteButton"
BackgroundColor="Orange"
Text="Delete">
<Button.Trigger ...
در این قسمت میخواهیم به بحث Style دهی و Fontها در Xamarin Forms بپردازیم. در XF به دو روش میتوان Style اعمال کرد؛ یکی با CSS و دیگری با Xaml. از هر روشی که استفاده کنیم، Styleها درون Resourceها قرار میگیرند. Resource، یک Dictionary است که درون آن هر چیزی میتوان قرار داد؛ یک string یا Style یا عدد و ... فایل App.xaml و همچنین تک تک صفحات، دارای Resources هستند که اگر چیزی درون App.xaml Resources قرار بگیرد، در کل برنامه میتوان از ...
آموزش کامل AutoMapper قبلا در سایت ارائه شده است. در این مقاله میخواهیم Mapping نوعهای مختلف بین Dto و Entityهای پروژه را توسط Reflection به صورت خودکار انجام دهیم. سورس کامل مثال را میتوانید در این ریپازیتوری مشاهده کنید. در این روش ما یک کلاس جنریک را به نام BaseDto داریم که تمام Dtoهای ما برای نگاشت خودکار باید از آن ارث بری کنند. در مثال زیر کلاس PostDto لازم است به کلاس Post نگاشت شود. پس خواهیم داشت : public class ...