اشتراک‌ها
با DotVVM، برنامه‌های ASP.NET Web Forms خود را بر فراز NET Core. اجرا کنید!

Did you know that DotVVM can be used to incrementally modernize old ASP.NET Web Forms applications and lift them to .NET Core? It is much easier than doing a full rewrite, and the application can be deployed at any time during the entire process.

  • Install DotVVM NuGet package in your Web Forms site
  • Create a DotVVM master page using the same CSS
  • Start converting ASPX pages to DotHTML syntax, one at a time
  • When all the Web Forms pages are gone, change your CSPROJ to use .NET Core 
با DotVVM، برنامه‌های ASP.NET Web Forms خود را بر فراز NET Core. اجرا کنید!
نظرات مطالب
Defensive Programming - بازگشت نتایج قابل پیش بینی توسط متدها
باید عرض کنم بله وقتی کاربری یافت نشد چه کاری می‌توانیم انجام دهیم؟ 
مطلب پایه‌ای در مورد صدور استثناءها در اینجا هست: Dont Use Exceptions For Flow Control و قسمتی از آن به این صورت است:
 Errors should be handled via exceptions, but successes shouldn't
 مشکلی که در اینجا هست این است که بازگشت null یک کاربر در یک کوئری، یک error نیست؛ یک بازگشت و عملیات موفقیت آمیز است. به همین جهت صدور استثناء برای دریافت آن نباید رخ دهد:  
The typical meaning of the word "exception" is an event that is unexpected rather than part of normal operation; otherwise people would just say "event" 
و اینکه نتیجه‌ی یک متد باید در همان متد به صورت استثناء درنظر گرفته شود، غیرضروری است و این تصمیم گیری باید به عهده‌ی فراخوان گذاشته شود. گاهی می‌خواهیم بررسی کنیم کاربری در دیتابیس هست؟ اگر بله، آ‌‌ن‌را تکراری ثبت نکنیم. گاهی می‌خواهیم بررسی کنیم اگر در دیتابیس هست، اطلاعات او را به روز رسانی کنیم. اینکه کوئری مدنظر نال بر می‌گرداند، تصمیم گیری در مورد اهمیت آن ربطی به آن متد ندارد و صرفا به عهده‌ی فراخوان است:
Methods should have a way to indicate various kinds of results. Whether those results are treated as exceptional should depend on the caller.  
اشتراک‌ها
TypeScript 3.1 RC منتشر شد

Today we’re happy to announce the availability of the release candidate (RC) of TypeScript 3.1. Our intent with the RC is to gather any and all feedback so that we can ensure our final release is as pleasant as possible. 

TypeScript 3.1 RC منتشر شد
اشتراک‌ها
Cake v1.0.0 منتشر شد

This version is the 112th release of Cake, but just not any release - we've finally hit 1.0 🎉 In this blog post, we will go through some of the major new features of 1.0, which platforms are supported, what to consider when upgrading to Cake 1.0. 

Cake v1.0.0 منتشر شد
اشتراک‌ها
اصول طراحی Windows 11

Windows 11 marks a visual evolution of the operating system. We have evolved our design language alongside with Fluent to create a design which is human, universal and truly feels like Windows. 

اصول طراحی Windows 11
اشتراک‌ها
Null Coalescing در TypeScript 3.7
// With TS 3.7:

// Use the first of firstResult/secondResult which is *defined*:
const result = firstResult ?? secondResult;

// Use configSetting from provided options if *defined*, or 'default' if not:
this.configValue = options.configValue ?? 'default';
Null Coalescing در TypeScript 3.7
اشتراک‌ها
مهندسی معکوس سمت سرور WhatsApp

This project intends to provide a complete description and re-implementation of the WhatsApp Web API, which will eventually lead to a custom client. WhatsApp Web internally works using WebSockets; this project does as well.


مهندسی معکوس سمت سرور WhatsApp
اشتراک‌ها
بررسی ساختار یک JSON Web Token

With this guide, you will know how JWTs work in-depth, including having a good understanding of the cryptographic primitives that they are based upon, which are used in many other security use cases. 

بررسی ساختار یک JSON Web Token