AngularJS #1
" سیستمهای وب امروزی به دو دستهی زیر تقسیم میشوند:
ASP.NET MVC
یا
Single Page application (SPA)
یعنی آیا میشه که ما نرم افزار تحت وب را با ASP.NET MVC درست کنیم و از Angularjs استفاده کنیم یا اینکه نه بهتره حتما همون اول کار قالب پروژه را از نوع SPA انتخاب کنیم ؟
1.کش کردن همیشه آخرین حربه میباشد
2.حذف View Engineهای غیر ضروری
ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new RazorViewEngine());
ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new WebFormViewEngine());
3. استفاده از فایلهای PDB مایکروسافت برای دیباگ و یا پروفایل کردن DLLهای دیگران
Here’s a summary of what’s new in this preview release:
Servers & middleware
Antiforgery middleware
API authoring
Antiforgery integration for minimal APIs
Native AOT
Request Delegate Generator supports interceptors feature
Full TrimMode is used for web projects compiled with trimming enabled
WebApplication.CreateEmptyBuilder
Blazor
Antiforgery integration
Server-side form handling improvements
Auto render mode
Register root-level cascading values
Improved integration of interactive components with server-side rendering
New EmptyContent parameter for Virtualize
Identity
New bearer token authentication handler
New API endpoints
Single page apps (SPA)
New Visual Studio templates
services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Version = "v1", Title = "My API", Description = "My Web API", TermsOfService = "None", Contact = new Contact { Name = "Mohammad Ahmadi", Email = string.Empty, Url = "https://www.dntips.ir" }, License = new License { Name = "Use under LICX", Url = "https://example.com/license" } }); var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); c.IncludeXmlComments(xmlPath); });
<PropertyGroup> <GenerateDocumentationFile>true</GenerateDocumentationFile> </PropertyGroup>
<PropertyGroup> <GenerateDocumentationFile>true</GenerateDocumentationFile> <NoWarn>$(NoWarn);1591</NoWarn> </PropertyGroup>
یک نکتهی تکمیلی: امکان کار همزمان هم با HttpClient وجود دارد!
تا پیش از ارائهی NET Core.، روش متداول دریافت فایلها، عموما به صورت زیر و همزمان/synchronous بود:
var client = new WebClient(); client.DownloadFile(downloadUrl, filePath);
هرچند ... WebClient امکان دریافت فایلها را به صورت غیرهمزمان هم دارد، اما API آن با async/await هماهنگ نیست و طراحی آن قدیمی است.
پس از آن، HttpClient ارائه شد که از روز اول، async بود و کاملا هماهنگ با async/await و روش کدنویسی جدید آن. اما ... شاید در قسمتهایی نیاز باشد تا بتوان کدهای قدیمی را بدون تبدیل کردن آنها به نمونههای async، به همان شکل همزمان، بازنویسی کنیم. برای رفع این مشکل، از زمان داتنت 5، متد Send همزمان هم به API آن اضافه شدهاست:
var response = httpClient.Send(new HttpRequestMessage(HttpMethod.Post, "http://site.com")); using var reader = new StreamReader(response.Content.ReadAsStream()); var content = reader.ReadToEnd();