ASP.NET Core in .NET 8 is your complete solution for modern web development. It handles all of your web development needs from the frontend to the backend. You can build beautiful, richly interactive web experiences with Blazor, and high-performance backend APIs and services that are reliable and secure. ASP.NET Core in .NET 8 is perfect for building cloud-native apps, and great tooling in Visual Studio and Visual Studio Code supercharges your productivity. With ASP.NET Core in .NET 8, every developer is a full stack developer!
Spawn an Online Game with Blazor, .NET 7 and Clean Architecture in under 60 minutes
In this fun talk, Luke Parker will show you step-by-step how to build a playable game in under 60 minutes. He will go over some basic game design, project planning, then build the game and finally… play live with the audience! Utilizing code sharing and the magic of Clean Architecture allows for very rapid app development. Also, leveraging MudBlazor as the component library lets you save time and to focus on what really matters.
معرفی Relay و GraphQL
Data fetching for React applications
Relay is a new framework from Facebook that provides data-fetching functionality for React applications. It was announced at React.js Conf (January 2015).
What is GraphQL?
GraphQL is a data querying language designed to describe the complex, nested data dependencies of modern applications. It's been in production use in Facebook's native apps for several years.
ارائهی MapKit JS از اپل
Use of the library does involve having an Apple Developer account at $99 a year , and to use the beta, developers will need to set up core Maps identifiers, keys, and tokens via their developer account. The beta version limits usage to 250,000 instantiations and 25,000 service calls, per API key per day, compared to Google's limit of 100,000 map instantiations per month on the free tier.
کتاب مقدمهای بر ASP.NET Core 2.0
لیست تغییرات در Visual Studio
توسعهی چابک برنامههای دات نت
فرم اول کار نمایش فرم 2 را به عهده دارد.
فرم دوم کار ارسال ایمیل را انجام میدهد. این ایمیل نیز از طریق سرویس ذیل فراهم میشود:
namespace WinFormsIoc.Services { public interface IEmailsService { void SendEmail(string from, string to, string title, string message); } } namespace WinFormsIoc.Services { public class EmailsService : IEmailsService { public void SendEmail(string from, string to, string title, string message) { //todo: ... } } }
public partial class Form2 : Form { private readonly IEmailsService _emailsService; public Form2(IEmailsService emailsService) { _emailsService = emailsService; InitializeComponent(); }
var form2 = new Form2(ObjectFactory.GetInstance<IEmailsService>()); form2.Show();
var form2 = ObjectFactory.GetInstance<Form2>(); form2.Show();
مشکل! این دو راه حل هیچکدام به عنوان تزریق وابستگیها شناخته نمیشوند و به الگوی Service locator معروف هستند. مشکل آنها این است که کدهای ما در حال حاضر وابستگی مستقیمی به IoC container مورد استفاده پیدا کردهاند. در حالت اول ما خودمان دستی درخواست دادهایم که کدام وابستگی باید وهله سازی شود و در حالت دوم همانند حالت اول، کدهای ObjectFactory.GetInstance، مختص به یک IoC Container خاص است. نحوهی صحیح کار با IoC Containerها باید به این نحو باشد که یکبار در آغاز برنامه تنظیم شوند و در ادامه سایر کلاسهای برنامه طوری کار کنند که انگار IoC Container ایی وجود خارجی ندارد.
راه حل: ObjectFactory.GetInstance را کپسوله کنید.
using System.Windows.Forms; namespace WinFormsIoc.IoC { public interface IFormFactory { T Create<T>() where T : Form; } } using System.Windows.Forms; using StructureMap; namespace WinFormsIoc.IoC { public class FormFactory : IFormFactory { public T Create<T>() where T : Form { return ObjectFactory.GetInstance<T>(); } } }
using System; using System.Windows.Forms; using WinFormsIoc.IoC; namespace WinFormsIoc { public partial class Form1 : Form { private readonly IFormFactory _formFactory; public Form1(IFormFactory formFactory) { _formFactory = formFactory; InitializeComponent(); } private void btnShowForm2_Click(object sender, EventArgs e) { var form2 = _formFactory.Create<Form2>(); form2.Show(); } } }
نکتهی مهم این کدها عدم وابستگی مستقیم آن به هیچ نوع IoC Container خاصی است. این فرم اصلا نمیداند که IoC Container ایی در برنامه وجود دارد یا خیر.
مشکل! با تغییر سازندهی Form1 برنامه دیگر کامپایل نمیشود!
اگر فایل Program.cs را باز کنید، یک چنین سطری را دارد:
Application.Run(new Form1());
Application.Run(ObjectFactory.GetInstance<Form1>());
مثال کامل این بحث را از اینجا میتوانید دریافت کنید
WinFormsIoc.zip