سفارشی کردن ASP.NET Identity در MVC 5
عذر خواهی میکنم فراموش کردم. ایراد بدین صورت است:
System.InvalidOperationException: The model backing the 'Context' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269).
مشخص است که میگوید context تغییر میکند.ولی من از migration استفاده میکنم و codefirst ولی باز هم این ایراد رو در اتصال به دیتابیس نشان میدهد. من از add-migration هم استفاده میکنم تا تغییرات موجودیتها رو کامل به من نشان دهد که چیزی را عنوان نمیکند.
EF Code First #4
The model backing the 'Sample2Context' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269).
Database.SetInitializer(new MigrateDatabaseToLatestVersion<Sample2Context, Migrations.Configuration>());
NET 8 Preview 5. منتشر شد
We’re excited to share all the new features and improvements in .NET 8 Preview 5! This release is a follow-up to the Preview 4 release. You’ll continue to see many more features show up with these monthly releases. .NET 6 and 7 users will want to follow this release closely since we have focused on making it a straightforward upgrade path.
رهانش Announcing .NET 8 Preview 4
We’re excited to share all the new features and improvements in .NET 8 Preview 4! This release is a follow-up to the Preview 3 release. You’ll continue to see many more features show up with these monthly releases. .NET 6 and 7 users will want to follow this release closely since we have focused on making it a straightforward upgrade path.
استفاده از WinML در NET 5 .
WinML is a high-performance, reliable API for deploying hardware-accelerated ML (Machine Learning) inferences on Windows devices. Since its introduction, many developers started using this technology to develop UWP applications that leverage artificial intelligence. Throughout this blog post, we’ll understand how you can leverage WinML on a simple .NET5 Console app.
معرفی NET Standard 2.1.
چند کتابخانه tick & counter
Features:
- Animated matrix dots
- High-res and low-res digit font
- Count down towards a date
- Count up since a date
- Define Countdown Schedules
- Responsive and Mobile Friendly
- Fast and Beautifully Animations
- Works on all Major Browser
- JavaScript and jQuery API
Works standalone but ships with handy wrapper for jQuery.
RavenDB؛ تجربه متفاوت از پایگاه داده
By default RavenDB allow anonymous access only for read requests (HTTP GET), and since we creating data, we need to specify a username and password. You can control this by changing the AnonymousAccess setting in the server configuration file. Enter your username and password of your Windows account and a sample data will be generated for you.
[1, 2, .., 10]
int[] arr1 = { 1, 2, 10 }; int[] arr2 = { 1, 2, 5, 10 }; int[] arr3 = { 1, 2, 5, 6, 7, 8, 9, 10 };
بررسی چند مثال جهت آشنایی با مفهوم List Patterns
ابتدا مجموعهی زیر را در نظر بگیرید:
int[] collection = { 1, 2, 3, 4 };
الف) روش انطباق با یک توالی مشخص
Console.WriteLine(collection is [1, 2, 3, 4]); // True Console.WriteLine(collection is [1, 2, 4]); // False
ب) امکان استفاده از discard و همچنین لیستی از عناصر
Console.WriteLine(collection is [_, 2, _, 4]); // True Console.WriteLine(collection is [.., 3, _]); // True
- الگوی دوم به معنای تعریف یک توالی نامشخص، اما خاتمه یافتهای با عنصر 3 است و سپس صرفنظر کردن از آخرین عنصر آرایه.
در مثال زیر، الگوی انطباق با مجموعهای که حداقل دو عضو دلخواهی را دارد، مشاهده میکنید:
if (new[] { 6, 7, 8 } is [_, _, ..]) { Console.WriteLine($"collection with at least two items"); }
if (new[] { 0, 42, 42, 0 } is [0, .., 0]) { Console.WriteLine($"collection with first and last element equal to 0"); }
ج) امکان تعریف اعمال منطقی
Console.WriteLine(collection is [_, >= 2, _, _]); // True
در مثال زیر، الگوی انطباق با مجموعهای را که اولین عضو آن یک عدد مثبت است، مشاهده میکنید:
if (new[] { 9, -1, -2 } is [> 0, ..]) { Console.WriteLine($"collection with positive first element"); }
if (new[] { 1, 42, 0 } is [_, 42 or -42, ..]) { Console.WriteLine($"collection with second element equal to 42 or -42"); }
یک مثال دیگر: بررسی نحوهی عملکرد List Patterns
namespace CS11Tests; public static class ListPatternsMatching { public static void Test() { Console.WriteLine(CheckSwitch(new[] { 1, 2, 10 })); // prints 1 Console.WriteLine(CheckSwitch(new[] { 1, 2, 7, 3, 3, 10 })); // prints 1 Console.WriteLine(CheckSwitch(new[] { 1, 2 })); // prints 2 Console.WriteLine(CheckSwitch(new[] { 1, 3 })); // prints 3 Console.WriteLine(CheckSwitch(new[] { 1, 3, 5 })); // prints 4 Console.WriteLine(CheckSwitch(new[] { 2, 5, 6, 7 })); // prints 50 } public static int CheckSwitch(int[] values) => values switch { [1, 2, .., 10] => 1, [1, 2] => 2, [1, _] => 3, [1, ..] => 4, [..] => 50 }; }
- اولین الگوی تعریف شدهی در متد CheckSwitch، به معنای انطباق با هر توالی است که با 1 و 2 شروع میشود و سپس میتواند شامل هر نوع توالی دلخواهی باشد (صرفنظر از مقدار و یا ترتیب این مقادیر) و در نهایت با عدد 10 خاتمه پیدا میکند.
- دومین الگوی تعریف شده، تنها یک آرایهی دو عضوی با مقادیر مشخص 1 و 2 را میپذیرد.
- توالی قابل انطباق با سومین الگوی تعریف شده، از دو عضو تشکیل میشود. اولین عضو آن حتما باید 1 باشد و مقدار دومین عضو آن مهم نیست.
- توالی قابل انطباق با چهارمین الگوی تعریف شده، از یک یا چند عضو دلخواه تشکیل میشود که اولین عضو آن حتما باید عدد 1 باشد.
- هر توالی تعریف شدهای با پنجمین الگوی تعریف شده، انطباق پیدا میکند.
امکان ترکیب list pattern matching و object pattern matching
در مثالهای زیر، نمونهای از ترکیب list pattern matching و object pattern matching را جهت ساخت شرطهای پیچیدهای، مشاهده میکنید:
if (new[] { 1, 2, 3 } is [var first, _, _]) { Console.WriteLine($"three item collection with first item {first}"); } if (new[] { 4, 5, 6 } is [_, var second, _]) { Console.WriteLine($"three item collection with second item {second}"); }
نمونه مثالی از این قابلیت جهت جدا سازی اجزای یک URL:
var uri = new Uri("http://www.mysite.com/categories/category-a/sub-categories/sub-category-a.html"); var result = uri.Segments switch { ["/"] => "Root", [_, var single] => single, [_, .. string[] entries, _] => string.Join(" > ", entries) };
سایر نوعهایی که توسط List patterns قابل بررسی هستند
List patterns تنها با آرایهها و لیستها کار نمیکنند. بلکه میتوان از آنها با هر نوعی که به همراه تعریف indexerها و یا خواص Length و Count است نیز استفاده کرد. اگر نیاز به استفاده از Slice patterns بود، این الگو با نوعهایی کار میکند که دارای indexer هایی با آرگومانهایی از نوع Range است و یا به همراه متد Slice دارای دو آرگومان Int است. برای مثال رشتهها نیز در اینجا قابل بررسی هستند.