<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Darayas</title>
        <link>https://virgool.io/feed/@darayas</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-07 17:14:14</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/230543/avatar/gwJnoc.png?height=120&amp;width=120</url>
            <title>Darayas</title>
            <link>https://virgool.io/@darayas</link>
        </image>

                    <item>
                <title>مهمترین تغییرات اعمال شده در ASP.NET Core 5</title>
                <link>https://virgool.io/CodeLovers/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-aspnet-core-5-%D8%AF%D8%B1-%D9%82%D8%A7%D9%84%D8%A8-%D9%81%D8%B1%D9%88%D8%B4%DA%AF%D8%A7%D9%87-%D8%A7%DB%8C%D9%86%D8%AA%D8%B1%D9%86%D8%AA%DB%8C-uuhdwphzdnas</link>
                <description>این مقاله مهم ترین تغییرات اعمال شده در ASP.NET Core 5.0 را با استناد به مدارک و مستندات مربوطه، بیان می کند.آموزش Asp.net Core 5 در قالب فروشگاه اینترنتیتوسعه و پیشرفت های ASP.NET Core MVC و RazorModel binding DateTime به عنوان UTCاکنون Model binding از اتصال رشته های زمانی UTC در DateTime پشتیبانی می کند. درواقع چنانچه درخواست حاوی یک رشته زمانی UTC باشد، Model binding آن را به یک UTC DateTime متصل خواهد کرد. به عنوان مثال، رشته زمانی زیر به UTC DateTime متصل شده است:https://example.com/mycontroller/myaction?time=2019-06-14T02%3A30%3A04.0576719ZModel binding و اعتبارسنجی از طریق انواع رکوردهای C# 9C# 9 record types را می توان از طریق model binding در یک کنترلر MVC یا Razor Page استفاده کرد. Record types، روشی مناسب جهت طراحی و مدل سازی داده هایی است که از طریق شبکه منتقل می شوند.public record Person([Required] string Name, [Range(0, 150)] int Age);

public class PersonController
{
   public IActionResult Index() =&gt; View();

   [HttpPost]
   public IActionResult Index(Person person)
   {
          // ...
   }
}فایل Person/Index.cshtml@model Person

Name: &lt;input asp-for=&amp;quotModel.Name&amp;quot /&gt;
&lt;span asp-validation-for=&amp;quotModel.Name&amp;quot /&gt;

Age: &lt;input asp-for=&amp;quotModel.Age&amp;quot /&gt;
&lt;span asp-validation-for=&amp;quotModel.Age&amp;quot /&gt;پیشرفت های DynamicRouteValueTransformerASP.NET Core 3.1 برای استفاده از نقطه انتهایی سفارشی سازی شده جهت انتخاب دینامیک عملکرد کنترلر MVC یا یک صفحه Razor، DynamicRouteValueTransformer را معرفی کرده است. برنامه های ASP.NET Core. 5.0 می توانند وضعیت را به یک DynamicRouteValueTransformer تبدیل کرده و مجموعه نقاط انتهایی انتخاب شده را فیلتر کنند.سایر تغییراتصفت [Compare] را می توان برای ویژگی های (Propertises) موجود در یک مدل Razor Page اعمال و پیاده سازی کرد.پارامترها و خصوصیات متصل به بدنه، به طور پیش فرض لازم و ضروری در نظر گرفته می شوند.پیشرفتهای مربوط به WebApi در Asp.net Core 5مشخصات OpenAPI به طور پیش فرضOpenAPI Specification یک استاندارد صنعتی است که API های HTTP را توصیف کرده و آن ها را در فرآیندهای پیچیده کسب و کار یا با اشخاص ثالث، ادغام و یکپارچه می کند. OpenAPI به طور گسترده توسط تمام ارائه دهندگان ابر و بسیاری از رجیسترهای API پشتیبانی می شود. برنامه هایی که اسناد OpenAPI را از API های وب منتشر می کنند، دارای فرصت های جدید متنوعی هستند که امکان استفاده از آن API ها را فراهم می کنند. الگوی API های ASP.NET Core در مشارکت با نگه دارندگان پروژه منبع باز Swashbuckle.AapNetCore، حاوی یک وابستگی NuGet به Swashbuckle است. Swashbuckle یک بسته منبع باز و محبوب NuGet است که اسناد OpenAPI را به شکلی دینامیک منتشر می کند. Swashbuckle این کار را با مشاهده داخلی کنترلرهای API و تولید سند OpenAPI در زمان اجرا و یا در زمان ساخت با استفاده از Swashbuckle CLI انجام می دهد.غیر فعال کردن OpenAPI از طریق Cmddotnet new webapi --no-openapi trueغیر فعال کردن OpenAPI از طریق VisualStudio: علامت فعال کردن پشتیبانی OpenAPI را بردارید.همه پرونده های .csproj ایجاد شده برای پروژه های web API حاوی مرجع پکیج نوگت Swashbuckle.AapNetCore هستند.&lt;ItemGroup&gt;
    &lt;PackageReference Include=&amp;quotSwashbuckle.AspNetCore&amp;quot Version=&amp;quot5.5.1&amp;quot /&gt;
&lt;/ItemGroup&gt;کد تولید شده ی الگو، حاوی کدی در Startup.ConfigureServices است که تولید اسناد OpenAPI را فعال می کند:public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers();
    services.AddSwaggerGen(c =&gt;
    {
        c.SwaggerDoc(&amp;quotv1&amp;quot, new OpenApiInfo { Title = &amp;quotWebApp1&amp;quot, Version = &amp;quotv1&amp;quot });
    });
}روش Startup.Configure، میان افزار Swashbuckle را جهت فعال سازی موارد زیر اضافه می کند:فعال سازی پروسه تولید سندفعال سازی صفحه Swagger UI به طور پیش فرض در حالت توسعهکد تولید شده الگو، توصیف API را هنگام انتشار برای تولید، به طور تصادفی در معرض نمایش قرار نمی دهد.public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
        app.UseSwagger();
        app.UseSwaggerUI(c =&gt; c.SwaggerEndpoint(&amp;quot/swagger/v1/swagger.json&amp;quot,
                         &amp;quotWebApp1 v1&amp;quot));
    }

    app.UseHttpsRedirection();

    app.UseRouting();

    app.UseAuthorization();

    app.UseEndpoints(endpoints =&gt;
    {
        endpoints.MapControllers();
    });
}Azure API Management Importزمانیکه OpenAPI به وسیله پروژه های API ASP.NET Core فعال می شود، نسخه Visual Studio 2019 و نسخه های بعدی به طور خودکار یک مرحله اضافی را در جریان انتشار ارائه می دهند. توسعه دهندگانی که از Azure API Management استفاده می کنند، در حین جریان انتشار این فرصت را دارند که API ها را به طور خودکار به Azure API Management وارد کنند:تجربه راه اندازی بهتر برای پروژه های web APIبا فعال بودن OpenAPI به طور پیش فرض، تجربه راه اندازی برنامه (F5) برای توسعه دهندگان web API به طور قابل توجهی بهبود می یابد. در ASP.NET Core 5.0، الگوی web API برای بارگذاری صفحه Swagger UI از قبل پیکربندی شده است. صفحه Swagger UI علاوه بر فراهم کردن مستندات اضافه برای API منتشر شده، آزمایش API ها را نیز با یک کلیک امکان پذیر خواهد کرد.توسعه و پیشرفت های Blazor در Asp.net Core 5ما در .NET 5، با تمرکزی ویژه بر ارائه UI پیچیده و سریال سازی JSON، در عملکرد زمان اجرای Blazor WebAssemble پیشرفت قابل توجهی به وجود آورده ایم. در تست های عملکردی ما، Blazor WebAssemble در .NET 5 برای بیشتر سناریوها دو تا سه برابر سریع تر عمل می کند. جهت کسب اطلاعات بیشتر به ASP.NET Blog: ASP.NET Core updates in .NET 5 Release Candidate 1 مراجعه نمایید.جداسازی CSS در BlazorBlazor اکنون از تعریف سبک های CSS که محدود به یک مولفه خاص هستند، پشتیبانی می کند. سبک های CSS مختص به یک مولفه، استدلال درمورد سبک های موجود در برنامه و جلوگیری از عوارض جانبی ناخواسته سبک های جهانی را آسان تر می کنند. جهت کسب اطلاعات بیشتر به ASP.NET Core Blazor CSS isolation مراجعه نمایید.مولفه InputFile جدیدمولفه InputFile، امکان خواندن پرونده هایی که توسط کاربران جهت بارگذاری انتخاب شده اند را فراهم می کند. برای کسب اطلاعات بیشتر به ASP.NET Core Blazor file uploads مراجعه نمایید.مولفه های InputRadio و InputRadioGroup جدیدBlazor دارای مولفه های InputRadio و InputRadioGroup است که data binding (اتصال داده) را به گروه های radio button از طریق یک اعتبار یکپارچه، ساده تر می کند. جهت کسب اطلاعات بیشتر به ASP.NET Core Blazor forms and validation مراجعه نمایید.مجازی سازی مولفه هابا استفاده از فریم ورک Blazor که جهت پشتیبانی مجازی سازی، ساخته شده است، می توانید عملکرد احتمالی مولفه را بهبود ببخشید. جهت کسب اطلاعات بیشتر به ASP.NET Core Blazor forms and validation مراجعه نمایید.پشتیبانی رویداد رویدادهای Blazor اکنون از رویدادهای  DOM پشتیبانی می کنند. جهت کسب اطلاعات بیشتر به ASP.NET Core Blazor event handlingمراجعه نمایید.تنظیم کردن تمرکز UI در برنامه های Blazorبرای تنظیم تمرکز UI در مؤلفه مورد نظر، از روش FocusAsync استفاده نمایید. برای کسب اطلاعات بیشتر به ASP.NET Core Blazor event handling مراجعه نمایید.صفات کلاس اعتبارسنجی سفارشینام های کلاس اعتبارسنجی سفارشی سازی شده، هنگامیکه با فریم ورک های CSS، ازجمله Bootstrap یکپارچه می شوند، مفید خواهند بود. جهت کسب اطلاعات بیشتر به ASP.NET Core Blazor forms and validation مراجعه نمایید.پشتیبانی IAsyncDisposableاکنون مولفه های Blazor جهت انتشار ناهمگام منابع تخصیص یافته، از رابط IAsyncDisposable استفاده می کنند.جدا کردن جاوا اسکریپت و منابع هدفBlazor جداسازی جاوا اسکریپت را در ماژول های استاندارد JavaScript امکان پذیر می کند. برای کسب اطلاعات بیشتر به Call JavaScript functions from .NET methods in ASP.NET Core Blazor مراجعه نمایید.مولفه های فرم از Displey Name پشتیبانی می کنندمولفه های داخلی زیر از طریق پارامتر DispleyName، از نام های نمایشگر پشتیبانی می کنند:InputDateInputNumberInputSelectجهت کسب اطلاعات بیشتر به ASP.NET Core Blazor forms and validation مراجعه نمایید.پارامترهای Catch-all routeپارامترهای مسیر Catch-all که در چندین مرز پوشه، مسیرهایی را به دست می آورند، در مولفه ها پشتیبانی می شوند. جهت کسب اطلاعات بیشتر به ASP.NET Core Blazor routing مراجعه نمایید.توسعه و پیشرفت های Debuggingدر ASP.NET Core 5.0، اشکال زایی (Debugging) برنامه های Blazor WebAssembly توسعه یافته است. علاوه براین، اکنون debugging در Visual Studio برای Mac پشتیبانی می شود. جهت کسب اطلاعات بیشتر به Debug ASP.NET Core Blazor WebAssembly مراجعه نمایید.مایکروسافت Identity v2.0 و MSAL v2.0امنیت Blazor اکنون از مایکروسافت Identity v2.0 (Microsoft.Identity.Web and Microsoft.Identity.Web.UI) و MSAL v2.0 استفاده می کند. جهت کسب اطلاعات بیشتر به Blazor Security and Identity node مراجعه نمایید.ذخیره سازی مرورگر محافظت شده برای سرور Blazorبرنامه های Blazor Server اکنون جهت ذخیره وضعیت برنامه در مرورگر، می توانند از پشتیبانی داخلی استفاده کنند که با بکارگیری قابلیت حفاظت داده ASP.NET Core از دستکاری شدن داده ها محافظت می کند. داده ها می توانند در local browser storage یا در session storage ذخیره سازی شوند. جهت کسب اطلاعات بیشتر به ASP.NET Core Blazor state management مراجعه نمایید.پیش رندر Blazor WebAssemblyیکپارچگی مولفه ها در میان مدل های هاستینگ، توسعه یافته است و برنامه های Blazor WebAssemble اکنون می توانند خروجی را بر روی سرور، پیش رندر کنند.اصلاح یا پیوند پیشرفت ها و توسعه هاWebAssemble برای اصلاح IL غیرضروری از مجامع خروجی برنامه، اصلاح یا پیوند زبان میانی (IL) را در حین ساخت، اجرا می کند. Blazor WebAssemble با انتشار ASP.Net Core 5.0 می تواند از طریق گزینه های پیکربندی اضافی، اصلاحات بهتری را اعمال کند. جهت کسب اطلاعات بیشتر به Configure the Trimmer for ASP.NET Core Blazor and Trimming options. مراجعه نمایید.Browser compatibility analyzerبرنامه های Blazor WebAssemble فضای .NET API را به طور کامل هدف قرار می دهند، اما همه API های .NET در WebAssemble به دلیل محدودیت های sandbox مرورگر پشتیبانی نمی شوند. API های اجرا نشده، PlatformNotSupportedException را هنگام اجرای WebAssemble پرتاب می کنند. هنگامیکه برنامه از API هایی استفاده می کند که توسط سیستم عامل های هدف پشتیبانی نمی شوند، یک تحلیلگر سازگاری پلتفرم به توسعه دهنده هشدار می دهد. جهت کسب اطلاعات بیشتر به ASP.NET Core Razor components class libraries مراجعه نمایید.مجموعه های Lazy loadبا به تعویق انداختن بارگذاری برخی از مجموعه برنامه ها، می توان عملکرد راه اندازی برنامه Blazor WebAssemble را تا زمانیکه مورد نیاز باشد، بهبود بخشید. جهت کسب اطلاعات بیشتر به Lazy load assemblies in ASP.NET Core Blazor WebAssembly مراجعه نمایید.پشتیبانی جهانی سازی به روز شدهپشتیبانی جهانی سازی مربوط به Blazor WebAssemble بر اساس مولفه های بین المللی برایUnicode (ICD) در دسترس است.توسعه و پیشرفت های gRPCتوسعه و پیشرفت های زیادی در gRPC پیاده سازی شده است. جهت کسب اطلااعات بیشتر به gRPC performance improvements in .NET 5 مراجعه نمایید. شما هم چنین می توانید برای کسب اطلاعات بیشتر درمورد gRPC به Introduction to gRPC on .NET Core مراجعه نمایید.توسعه و پیشرفت های SignalRSignalR Hub Filtersخط لوله های هاب که در ASP.NET SignalR، آن ها را فیلترهای SignalR Hub می نامند، ویژگی است که باعث می شود کد، قبل و بعد از فراخونی روش های Hub اجرا شود. اجرای کد، قبل و بعد از فراخوانی متدهای Hub شبیه به این است که middleware توانایی اجرای کد را قبل و بعد از درخواست HTTP را داشته باشد. استفاده های معمول شامل ورود به سیستم، مدیریت خطا و اعتبار سنجی آرگومان است. جهت کسب اطلاعات بیشتر به Use hub filters in ASP.NET Core SignalR مراجعه نمایید.آموزش Asp.net Core 5 در قالب فروشگاه اینترنتیفراخوانی SignalR parallel hubASP.NET Core SignalR قادر به مدیریت فراخوانی هاب Parallel شده است. رفتار پیش فرض را می توان تغییر داد تا مشتریان امکان این را داشته باشند که بیش از یک متد هاب را همزمان فراخوانی کنند.public void ConfigureServices(IServiceCollection services)
{
    services.AddSignalR(options =&gt;
    {
        options.MaximumParallelInvocationsPerClient = 5;
    });
}اضافه شدن پشتیبانی Messagepack در کلاینت جاوا SignalRبسته جدید com.microsoft.signalr.messagepack، پشتیانی Messagepack را به کلاینت جاوا SignalR اضافه می کند. برای استفاده از پروتکل هاب MessagePack، .withHubProtocol(new MessagePackHubProtocol()) را به connection builder اضافه کنید.HubConnection hubConnection = HubConnectionBuilder.create(&amp;quothttp://localhost:53353/MyHub&amp;quot)
       .withHubProtocol(new MessagePackHubProtocol())
       .build();توسعه و پیشرفت های Kestrelقابلیت بارگذاری نقطه انتهایی از طریق پیکربندی: Kestrel می تواند تغییرات پیکربندی منتقل شده به KestrelServerOptions.Configure را شناسایی کند و از نقاط انتهایی موجود جدا و به نقاط انتهایی جدید متصل شود، بدون اینکه هنگام صحت پارامترهای reloadOnChange نیازی به راه اندازی مجدد برنامه داشته باشید. به طور پیش فرض هنگام استفاده ConfigureWebHostDefaults و CreateDefaultBuilder، Kestrel با فعال کردن reloadOnChange به زیربخش پیکربندی &amp;quot;Kestrel&amp;quot; متصل می شود. برنامه ها باید هنگام فراخوانی KestrelServerOptions.Configure برای دریافت نقاط انتهایی که قابلیت بارگیری مجدد را دارند، از reloadOnChange: true اطمینان حاصل کنند.پیشرفت های هدرهای پاسخگوی HTTP/2. جهت کسب اطلاعات بیشتر به Performance improvements در بخش بعدی مراجعه نمایید.پشتیبانی از انواع نقاط انتهایی اضافی در سوکت های انتقال: انتقال به API جدیدی که در System.Net.Sockets معرفی شده است، انتقال پیش فرض سوکت ها در Kestrel با اضافه شدن به API جدید ارائه شده در System.Net.Sockets، امکان اتصال به هر دو دسته پرونده های موجود و سوکت های دامنه Unix را فراهم می کند.پشتیبانی از اتصال به دسته های پرونده موجود امکان استفاده از یکپارچه سازی Systemd موجود بدون نیاز به حمل و نقل libuv را فراهم می کند.رمزگشایی هدر سفارشی در Kestrel: برنامه ها می توانند تعیین کنند که کدگذاری برای تفسیر هدرهای ورودی بر اساس نام صفحه به جای پیش فرض در UTF-8 استفاده شود.ویژگی Microsoft.AspNetCore.Server.Kestrel.KestrelServerOptions.RequestHeaderEncodingSelector را تنظیم کنید تا مشخص کند کدام Encoding استفاده می شود:public static IHostBuilder CreateHostBuilder(string[] args) =&gt;
  Host.CreateDefaultBuilder(args)
      .ConfigureWebHostDefaults(webBuilder =&gt;
      {
          webBuilder.ConfigureKestrel(options =&gt;
          {
              options.RequestHeaderEncodingSelector = encoding =&gt;
              {
                    return encoding switch
                    {
                        &amp;quotHost&amp;quot =&gt; System.Text.Encoding.Latin1,
                        _ =&gt; System.Text.Encoding.UTF8,
                    };
              };
          });
          webBuilder.UseStartup();
      });گزینه های خاص نقطه انتهایی Kestrel از طریق پیکربندیپشتیبانی برای پیکربندی گزینه های خاص نقطه انتهایی Kestrel از طریق configuration اضافه شده است. پیکربندی و تنظیمات خاص نقطه انتهایی شامل موارد زیر است:استفاده از پروتکل های HTTPاستفاده از پروتکل های TLSگواهی نامه منتخبحالت گواهینامه کلاینتپیکربندی اجازه می دهد تا مشخص شود کدام گواهی نامه بر اساس نام سرور مشخص شده، انتخاب شده است. نام سرور بخشی از پسوند Server Name Indication (SNI)برای پروتکل TLS است که توسط کلاینت مشخص شده است. علاوه براین، پیکربندی Kestrel از پیشوند wildcard در نام هاست نیز پشتیبانی می کند.مثال زیر نحوه تعیین نقطه انتهایی خاص را با استفاده از یک فایل پیکربندی نشان می دهد:{
  &amp;quotKestrel&amp;quot: {
    &amp;quotEndpoints&amp;quot: {
      &amp;quotEndpointName&amp;quot: {
        &amp;quotUrl&amp;quot: &amp;quothttps://*&amp;quot,
        &amp;quotSni&amp;quot: {
          &amp;quota.example.org&amp;quot: {
            &amp;quotProtocols&amp;quot: &amp;quotHttp1AndHttp2&amp;quot,
            &amp;quotSslProtocols&amp;quot: [ &amp;quotTls11&amp;quot, &amp;quotTls12&amp;quot],
            &amp;quotCertificate&amp;quot: {
              &amp;quotPath&amp;quot: &amp;quottestCert.pfx&amp;quot,
              &amp;quotPassword&amp;quot: &amp;quottestPassword&amp;quot
            },
            &amp;quotClientCertificateMode&amp;quot : &amp;quotNoCertificate&amp;quot
          },
          &amp;quot*.example.org&amp;quot: {
            &amp;quotCertificate&amp;quot: {
              &amp;quotPath&amp;quot: &amp;quottestCert2.pfx&amp;quot,
              &amp;quotPassword&amp;quot: &amp;quottestPassword&amp;quot
            }
          },
          &amp;quot*&amp;quot: {
            // At least one sub-property needs to exist per
            // SNI section or it cannot be discovered via
            // IConfiguration
            &amp;quotProtocols&amp;quot: &amp;quotHttp1&amp;quot,
          }
        }
      }
    }
  }
}نمایانگر نام سرور (SNI) یک پسوند TLS است که شامل یک دامنه مجازی به عنوان بخشی از مذاکرات SSL می شود. درواقع می توان از نام دامنه مجازی یا یک نام میزبان جهت شناسایی نقطه انتهایی شبکه استفاده کرد.بهبود عملکرد HTTP/2کاهش قابل توجه تخصیص ها در مسیر کد HTTP/2پشتیبانی HPack dynamic compression از هدرهای پاسخ HTTP/2 در Kestrel. جهت کسب اطلاعات بیشتر به Header table size و HPACK: the silent killer (feature) of HTTP/2مراجعه نمایید.ارسال فریم های HTTP/2 PING: HTTP/2 برای ارسال فریم PING مکانیزمی دارد تا از کارایی اتصال idle اطمینان حاصل کند. اطمینان از اتصال مناسب به خصوص هنگام کار با جریان های طولانی مدت، مانند جریان های gRPC، که اغلب بیکارند و به طور متناوب شاهد فعالیت هایی هستند، بسیار مفید خواهد بود. برنامه ها با اعمال تنظیماتی در KestrelServerOptions، می توانند فریم های PING متناوب و دوره ای را در Kestrel ارسال کنند:public static IHostBuilder CreateHostBuilder(string[] args) =&gt;
  Host.CreateDefaultBuilder(args)
      .ConfigureWebHostDefaults(webBuilder =&gt;
      {
          webBuilder.ConfigureKestrel(options =&gt;
          {
              options.Limits.Http2.KeepAlivePingInterval =
                                             TimeSpan.FromSeconds(10);
              options.Limits.Http2.KeepAlivePingTimeout =
                                             TimeSpan.FromSeconds(1);
          });
          webBuilder.UseStartup();
      });بهبود عملکرد کانتینرهاقبل از .NET 5.0، ساخت و انتشار Dockerfile برای یک برنامه ASP.NET Core نیاز به pull کردن کل .NET Core SDK و ASP.NET Core image داشت. اما در این نسخه، pull کردن بایت های SDK images کاهش می یابد و بایت های pull شده برای ASP.NET Core image تا حد زیادی حذف می شوند. جهت کسب اطلاعات بیشتر به this GitHub issue comment مراجعه نمایید.احراز هویت و مجوزهااحراز هویت Azure Active Directory با Microsoft.Identity.Webالگوی پروژه های ASP.NET Core با Microsoft.Identity.Web ادغام و یکپارچه شده اند تا احراز هویت را از طریق Azure Activity Directory (Azure AD)اعمال کنند. Microsoft.Identity.Web package موارد زیر را ارائه می دهد:تجربه ای بهتر برای احراز هویت از طریق Azure ADروشی آسان تر جهت دسترسی به منابع Azure برای کاربران تانبه Microsoft.Identity.Web sampleمراجعه نمایید تا ببینید چه طور با لاگین اولیه آغاز به کار کرده و به واسطه چند مستاجری، بکارگیری Azure APIs، بکارگیری Microsoft Graph و محافظت APIهای تان پیشرفت می کند.Microsoft.Identity.Web به همراه .NET 5 در دسترس است.اجازه دادن دسترسی بی نام به یک نقطه انتهاییمتد AllowAnonymous، اجازه دسترسی ناشناس و بی نام به یک نقطه انتهایی را می دهد:public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseRouting();

    app.UseAuthentication();
    app.UseAuthorization();

    app.UseEndpoints(endpoints =&gt;
    {
        endpoints.MapGet(&amp;quot/&amp;quot, async context =&gt;
        {
            await context.Response.WriteAsync(&amp;quotHello World!&amp;quot);
        })
        .AllowAnonymous();
    });
}رسیدگی سفارشی به خطاهای مجوزمدیریت سفارشی خطاهای مجوز از طریق خط اتصال جدید IAuthorizationMiddlewareResultHandler که توسط مجوز authorization Middleware فراخوانی شده است، آسان تر است. اجرای پیش فرض، ثابت باقی مانده است، اما یک کنترلر سفارشی می تواند در تزریق وابستگی که اجازه می دهد پاسخ های سفارشی HTTP بر اساس عدم موفقیت مجوز باشد، ثبت شود. به this sample که کاربرد IAuthorizationMiddlewareResultHandler را نشان می دهد، مراجعه نمایید.مجوز زمان استفاده از مسیریابی نقطه انتهاییمجوز زمان استفاده از مسریابی نقطه انتهایی اکنون HttpContext را به جای نمونه نقطه انتهایی دریافت می کند. این موضوع به میان افزار مجوز اجازه می دهد به RouteData و سایر ویژگی های HttpContext که از طریق کلاس Endpoint قابل دسترسی نبودند، دسترسی پیدا کند. با استفاده از context.GetEndpoint می توان نقطه انتهایی را از context دریافت کرد.کنترل دسترسی مبتنی بر نقش از طریق احراز هویت Kerberos و LDAP در Linuxبه Kerberos authentication and role-based access control (RBAC) مراجعه نمایید.توسعه و پیشرفت های APIروش های توسعه JSON برای HttpRequest و HttpResponseبا استفاده از روش های توسعه ReadFromJsonAsync و WriteAsJsonAsync جدید می توان داده های JSON را از طریق HttpRequest و HttpResponse نوشت و خواند. این روش های توسعه برای رسیدگی به داده های JSON از مجموعه ساز System.Text.Json استفاده می کنند. روش توسعه HasJsonContentType جدید، همچنین می تواند وجود محتوای JSON در درخواست را نیز بررسی کند.روش های توسعه JSON را می توان با مسیریابی نقطه انتهایی ترکیب کرد و JSON API را به سبکی از برنامه نویسی که کدگذاری مسیر نامیده می شود، ایجاد کرد. این روش، گزینه ای جدید برای توسعه دهندگانی است که می خواهند API های اصلی JSON را به روشی سبک ایجاد کنند. به عنوان مثال، یک برنامه وب که تعداد کمی نقطه انتهایی دارد ممکن است برای کدگذاری به جای استفاده از عملکرد کامل ASP.NET Core MVC، ترجیح دهد از Rout استفاده کند.endpoints.MapGet(&amp;quot/weather/{city:alpha}&amp;quot, async context =&gt;
{
    var city = (string)context.Request.RouteValues[&amp;quotcity&amp;quot];
    var weather = GetFromDatabase(city);

    await context.Response.WriteAsJsonAsync(weather);
});جهت کسب اطلاعات بیشتر در مورد روش های جدید توسعه JSON و مسیر کدگذاری، به this .NET show مراجعه نمایید.System.Diagnostics.Activityاکنون System.Diagnostics.Activity به طور پیش فرض با فرمت W3C تنظیم شده است. این امر باعث می شود پشتیبانی ردیابی توزیع شده در ASP.NET Core، بصورت پیش فرض با فریم ورک های بیشتری قابلیت همکاری داشته باشد.FromBodyAttributeFromBodyAttribute پیکربندی گزینه ای را پشتیبانی می کند که اجازه می دهد این پارامترها یا خصوصیات به شکل انتخابی و اختیاری در نظر گرفته شوند:public IActionResult Post([FromBody(EmptyBodyBehavior = EmptyBodyBehavior.Allow)]MyModel model) {
     ...
}سایر پیشرفت ها در Asp.net Core 5ما شروع به اجرای nullable annotations در مجموعه های ASP.NET Core کرده ایم و قصد داریم بیشتر سطح عمومی API فریم ورک .NET 5 را حاشیه نویسی کنیم.کنترل فعال سازی کلاس Startupیک اضافه بار UseStartup، افزوده شده است که اجازه می دهد یک برنامه، روشی کارخانه ای برای کنترل فعال سازی کلاس Startup ارائه دهد. کنترل فعال سازی کلاس Startup برای انتقال پارامترهای اضافی به Startup که همراه با هاست آغاز به کار می کنند، مفید است:public class Program
{
    public static async Task Main(string[] args)
    {
        var logger = CreateLogger();
        var host = Host.CreateDefaultBuilder()
            .ConfigureWebHost(builder =&gt;
            {
                builder.UseStartup(context =&gt; new Startup(logger));
            })
            .Build();

        await host.RunAsync();
    }
}رفرش خودکار از طریق ساعت dotnetدر .NET 5، اجرای dotnet watch در یک پروژه ASP.NET، می تواند مرورگر پیش فرض را راه اندازی کند و با ایجاد تغییرات در کد، باعث رفرش شدن خودکار مرورگر نیز خواهد شد. درواقع شما می توانید به موارد زیر دست یابید:باز کردن یک پروژه ASP.NET Core در یک ویرایشگر متنراه اندازی و اجرای dotnet watchدر حالی که این ابزار به بازسازی، راه اندازی مجدد و بارگیری مجدد برنامه می پردازد، شما می توانید روی تغییرات کد تمرکز کنید.امیدواریم در آینده بتوانیم قابلیت بازخوانی خودکار را به Visual Studio بیاوریم.Console Logger Formatterدر ارائه دهنده ورود به کنسول در کتابخانه Microsoft.Extensions.Logging بهبودهایی اعمال شده است. اکنون توسعه دهندگان می توانند برای اعمال کنترل کامل بر قالب بندی و رنگ آمیزی خروجی کنسول، از یک ConsoleFormatter سفارشی استفاده کنند. API های قالب ساز با اجرای زیرمجموعه ای از رشته های VT-100 escape، امکان قالب بندی غنی را فراهم می کنند. VT-100 توسط اکثر ترمینال های مدرن پشتیبانی می شود. ثبت کننده کنسول می تواند رشته های escape را در ترمینال های پشتیبانی نشده، تجزیه و تحلیل کند و به توسعه دهندگان اجازه می دهد یک قالب واحد برای همه ترمینال ها ایجاد کنند.JSON Console Loggerعلاوه بر پشتیبانی از قالب سازهای سفارشی، ما قالب ساز داخلی JSON را نیز اضافه کرده ایم که ثبت وقایع مربوط به ساختار JSON را به کنسول منتشر می کند. کد زیر نحوه تغییر از logger پیش فرض به JSON را نشان می دهد:public static IHostBuilder CreateHostBuilder(string[] args) =&gt;
  Host.CreateDefaultBuilder(args)
  .ConfigureLogging(logging =&gt;
  {
     logging.AddJsonConsole(options =&gt;
     {
         options.JsonWriterOptions = new JsonWriterOptions()
         { Indented = true };
     });
  })
  .ConfigureWebHostDefaults(webBuilder =&gt;
  {
    webBuilder.UseStartup();
  });پیام های ورودی منتشر شده به کنسول، با فرمت JSON هستند:{
  &amp;quotEventId&amp;quot: 0,
  &amp;quotLogLevel&amp;quot: &amp;quotInformation&amp;quot,
  &amp;quotCategory&amp;quot: &amp;quotMicrosoft.Hosting.Lifetime&amp;quot,
  &amp;quotMessage&amp;quot: &amp;quotNow listening on: https://localhost:5001&amp;quot,
  &amp;quotState&amp;quot: {
    &amp;quotMessage&amp;quot: &amp;quotNow listening on: https://localhost:5001&amp;quot,
    &amp;quotaddress&amp;quot: &amp;quothttps://localhost:5001&amp;quot,
    &amp;quot{OriginalFormat}&amp;quot: &amp;quotNow listening on: {address}&amp;quot
  }
}آموزش Asp.net Core 5 در قالب فروشگاه اینترنتی</description>
                <category>Darayas</category>
                <author>Darayas</author>
                <pubDate>Sun, 27 Dec 2020 23:28:35 +0330</pubDate>
            </item>
                    <item>
                <title>محدود سازی تعداد درخواست بر زمان با AspNetCoreRateLimit</title>
                <link>https://virgool.io/@darayas/%D9%85%D8%AD%D8%AF%D9%88%D8%AF-%D8%B3%D8%A7%D8%B2%DB%8C-%D8%AA%D8%B9%D8%AF%D8%A7%D8%AF-%D8%AF%D8%B1%D8%AE%D9%88%D8%A7%D8%B3%D8%AA-%D8%A8%D8%B1-%D8%B2%D9%85%D8%A7%D9%86-%D8%A8%D8%A7-aspnetcoreratelimit-ygx11aocdemo</link>
                <description> محدود سازی تعداد درخواست بر زمان با AspNetCoreRateLimit در سایت dotnetLearn.comمشاهده ی دوره رایگان AspNetCoreRateLimitبه احتمال قوی شما هم تا به حال با مشکل ارسال تعداد نامحدود درخواست کاربران مواجه شده اید و ممکنه حتی تلاش های زیادی نیز برای رفع این مشکل انجام داده باشید حالا یا موفق شده اید تا حدودی جلوی این کار را بگیرید یا با مشکلاتی مواجه شده اید که کلا بیخیال این قضیه شده اید. در این دوره میخوام پکیجی را به شما معرفی کنم که بسیار قدرتمند و کامل این مشکل را برای شما حل میکند و در عین حال بسیار سبک هم هست پس به هیچ عنوان نگران بار اضافی روی سرور نباشید.اسم این پکیج AspNetCoreRateLimit هست. طرز کارAspNetCoreRateLimit بدین صورت است که شما تمامی تنظیمات و قوانین و سیاست های مد نظرتان را در فایل appsetting.json مینویسید و بقیه ی کار را به این میان افزار می سپارید.و اما چرا باید از این ابزار استفاده کنیم؟جلوگیری از ارسال تعداد درخواست های زیاد به سرور در سطح نرم افزارجلوگیری از کاهش سرعت سایت به علت جلوگیری از ارسال درخواست های اضافیجلوگیری از حمله ی Dictionary Attack (یافتن کلمه عبور با استفاده از فرهنگ لغت و تست های مکرر)کنترل بیشتر روی درخواست های ارسال شده به سروراز جمله امکانات بسیار قدرتمندی که میتوان به آن اشاره کرد قابلیت های زیر هستند:توانایی تعیین لیست سفید برای IP های خاص (برای مثال خزنده های گوگل)با استفاده از این قابلیت میتوانید برخی از IP ها را نادیده بگیرید و قوانین و سیاست ها را برای آن ها در نظر نگیرید از جمله ی این IP ها میتوان به IP موتورهای جستوجوگر اشاره کرد که اگر آن ها را محدود کنیم ممکن است روی سئوی سایت تاثیر منفی داشته باشد.توانایی تعیین لیست سفید برای Endpoint های خاصدر حالات مختلف (GET, POST, PUT و ...)شاید برخی از صفحات سایت یا برخی از WebApi ها را بخواهیم نادیده بگیریم و یا حتی آنها را فقط در متدهای خاصی نادیده بگیریم با استفاده ازAspNetCoreRateLimit این کار به راحتی امکان پذیر میباشد.توانایی استفاده از رنج IPوقتی تعداد IP های مدنظر در یک Rule خاص زیاد هست و همه ی آنها نیز در یک رنج خاص قرار دارند میتوانید با استفاده از این قابلیت کدها را زیاد شلوغ نکنید و فقط رنج IP را به آن بدهید و بقیه ی کار را بهAspNetCoreRateLimit بسپارید.توانایی ایجاد قوانین برای Endpointهابه صورت اختصاصی و عمومیشاید قصد داشته باشید که یک صفحه یا WebApi را به صورت کامل در لیست سفید قرار ندهید و فقط قوانین و سیاست های استفاده از آن ها متفاوت باشد با استفاده از این قابلیت میتوانید به راحتی قوانین و سیاست های اختصاصی برای Endpoint های مدنظر درست کنید.توانایی تعیین محدودیت در زمان های مختلف (ثانیه، دقیقه، ساعت و ...)شما میتوانید تعیین کنید که هر کاربر در یک زمان مشخص میتواند چند درخواست به سمت سرور ارسال کند و درصورتی که از حد تعیین شده تجاوز کرد با چه کد وضعیتی رو به رو شود. برای مثال هر کاربر در هر پنج ثانیه فقط میتوانید 15 درخواست به سمت سرور ارسال کند که البته زمان میتواند برحسب دقیقه یا ساعت هم باشد.استفاده از Regular Expressionممکن هست که بخوایید که فقط Endpoint هایی که در ادرس آنها شرایط و یا کلمات خاصی هست یکسری قوانین برای آن ها لحاظ شود که میتوانید با استفاده از Regular Expression به مقصود خود برسید.توانایی تعیین لیست سفید برای Device های مختلفزمانی که از WebApi استفاده میکنید شاید بخواهید دستگاه هایی که نرم افزارهای شرکت خودتان را میزبانی میکنند از این قوانین مستثنا باشید که به راحتی میتوانید در Header درخواست آن ها شناسه دستگاه را قرار دهید تا AspNetCoreRateLimit بتواند آن دستگاه ها را بشناسد و همچنین آن ها را نادیده بگیردقابلیت آبدیت قوانین و سیاست ها در زمان اجرای سایتشاید به دلایلی بخواهید در زمان اجرای نرم افزار قوانین و سیاست ها را تغییر دهید که AspNetCoreRateLimit این قابلیت را فراهم آورده و میتواند از آن بهره بگیرد.استفاده از Redis برای نگهداری شمارنده ها و قوانیناگر منابع محدودی دارید و نمیتوانید برای نگهداری شمارنده ها و اطلاعات کاربران از MemoryCacheاستفاده کنید اینجاست که Redis به کمک شما خواهد آمد و میتوانید از آن برای نگهداری اطلاعات و داده های خود استفاده کنید تا حافظه ی RAM سرور دچار مشکل نشود.شخصی سازی پیغام های سیستمشما به راحتی میتوانید پیغام های سیستم را سفارشی سازی کنید برای مثال آن ها را ترجمه کنید یا تغییر دهیدمشاهده ی دوره رایگان محدودسازی تعداد درخواست بر زمان با AspNetCoreRateLimit</description>
                <category>Darayas</category>
                <author>Darayas</author>
                <pubDate>Tue, 17 Nov 2020 21:20:26 +0330</pubDate>
            </item>
                    <item>
                <title>آموزش راه اندازی سرور و پیکربندی IIS برای برنامه نویسان وب</title>
                <link>https://virgool.io/@darayas/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%D9%87-%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C-%D8%B3%D8%B1%D9%88%D8%B1-%D9%88-%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C-iis-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%D8%A7%D9%86-%D9%88%D8%A8-tymolloodnfw</link>
                <description>لینک دوره آموزش راه اندازی سرور و پیکربندی IIS برای برنامه نویسان وبمعرفی دوره ی آموزش راه اندازی سرور و پیکربندی IIS برای برنامه نویسان وبدر این دوره ما به صورت کامل و از صفر تا سطح کاربردی مباحث راه اندازی سرور و پیکره بندی IIS را خدمت شما ارائه خواهیم کرد. این دوره طوری طراحی شده که بیشتر مناسب برنامه نویسان وب میباشد که قصد دارند بجز مهارت طراحی و برنامه نویسی وب، نحوه ی راه اندازی و کانفیگ بستر مناسب برای اجرای آن سایت را نیز یاد بگیرند. اگر تا به حال سایتی طراحی کرده باشید و فقط آن را در محیط Local را اجرا کرده اید و فکر میکنید که محیط سرور نیز همانند Local میباشد باید بگم که این طرز فکر به هیچ عنوان صحیح نمیباشد و سرور و Local فقط خدایشان یکی هست و در شرایط بسیار مختلفی کار میکنند. اما نگران نباشید در آموزش راه اندازی سرور و پیکربندی IIS برای برنامه نویسان وب، ما به صورت کامل به شما آموزش خواهیم داد که چگونه یک سرور را از مرحله ی سنجش معیار های انتخاب سرور و خرید آن تا نمایش سایت و امنیت کامفیگ نمایید. با ما همراه باشید.معیارهای انتخاب یک سرویس دهنده ی هاستینگ عالیدر این دوره به معیار های انتخاب یک سرویس دهنده ی عالی هاستینگ میپردازیم که آن را از جنبه های مختلف سخت افزاری و نرم افزاری و پشتیبانی مورد برسی قرار خواهیم داد. یک سرویس دهنده ی عالی هاست باید قبل از هرچیزی به لحاظ پشتیبانی عالی باشد و بعدا هزینه ها و ... مورد برسی قرار میگیرند که در این دوره تمامی موارد را برسی خواهیم کرد.معرفی برترین شرکتهای هاستینگ ایران به صورت تجربیهمچنین انتخاب یک شرکت متعهد و عالی از مهمترین معیارهای انتخاب سرور و سرویس دهندی هاست خوب میباشد. یک سرویس دهنده هرچقدر هم خوب پاسخگوی مشکلات باشد و پشتیبانی سریعی داشته باشد بدون تعهد و وجود تیم پشتیبانی عالی مناسب انتخاب و بالا اوردن سایت بر روی آن نمیباشد. شاید تعداد مشتریانشان کم است و اگر بیشتر شود توانایی پشتیبانی آن بشدت پایین آید.تفاوت سرور خارجی و سرور داخلی (معرفی و مزایا و معایب)یکی دیگر از معیارهای انتخاب سرور مناسب داخل کشور بودن یا خارج کشور بودن آن است. اگر یک سایت دولتی یا سازمانی دارید و میخواهید آن را راه اندازی کنید قطعا سرور داخلی میتواند بسیار مفیدتر و کاراتر باشد چه به لحاظ سرعت و چه به لحاظ امنیت. اما اگر در فکر کسب و کار بین المللی هستید مطمعنن سرور داخلی پاسخ گو نخواهد بود. دلایل استفاده از سرورهای داخل یا خارج فقط به همین دو مورد ختم نمیشود و موارد بسیار دیگر نیز هستند که در این دوره آموزشی به آن ها خواهیم پرداخت.تفاوت انواع هاست (هاست اشتراکی،Cloud ، VPS، VDS، سرور اختصاصی و کولوکیشن و ...)هاست در انواع مختلفی ارائه میگردد که از مهمترین آنها میتوان به هاست اشتراکی،VPS، VDS، Cloud، سرور اختصاصی و کولوکیشن اشاره کرد که هرکدام از آن ها در قیمت و منابع مختلفی ارائه میشوند که بنا به بزرگی و یا کوچکی سایت و مصارف آن میتواند متفاوت باشد. در آموزش راه اندازی سرور و پیکربندی IIS برای برنامه نویسان وب ما به صورت کامل آنها را خدمت شما معرفی خواهیم کرد و مزیت و عیب هرکدام را خدمت شما توضیح خواهیم داد.چگونه یک سرور خوب تهیه کنیم و از کجا بخریم و چگونه اعتماد کنیمبجز معیارهایی که خدمتتان عرض شد خود هاست نیز باید دارای ویژگیهایی باشد که بتواند سرویس دهی هایی را برای شما انجام دهد. حالا این هاست میتواند اشتراکی باشد یا VPS یا VDS یا سرور اختصاصی و یا کولوکیشن. هرکدام از این انواع باید خود دارای امکاناتی باشند که اولا به لحاظ امنیتی مشکل ساز نشوند و همچنین پایداری و آپتایم آنان نیز بالا رود.در این دوره ی آموزشی مباحث زیر را نیز به صورت کامل برسی خواهیم کرد.نصب ویندوز و تنظیمات اولیه و نصب نرم افزار های مورد نیازتنظیمات IISمعرفی انواع دامنه و تنظیم دامنه های IR، ORG، COM، NETتنظیمات امنیتی RDPراه اندازی Ftp و تنظیمات امنتیراه اندازی SQL Server تحت شبکه و تنظیمات امنیتیراه اندازی Mail Server و تنظیمات امنیتی + اتصال Outlookنصب .Net Core Runtime و اجرای یک وبسایت Asp.net coreبهینه سازی تنظیمات IIS برای وبسایت های نوپا و پربازدید برای بازدهی و سرعت بالاترنصب و تنظیم فایروال و نرم افزار های امنیتیمعرفی انواع حملات و تهدیدات امنیتی و راه های مقابلهامیدوارم که این دوره ی اموزشی مورد توجه شما قرار گیرد و بتوانم مباحثی جدید و ناب را خدمت شما دوست گرامی عرضه کنم. لطفا با نظرات و پیشنهادات و انتقادات خود مارا یاری بفرماییدلینک دوره آموزش راه اندازی سرور و پیکربندی IIS برای برنامه نویسان وب</description>
                <category>Darayas</category>
                <author>Darayas</author>
                <pubDate>Sat, 12 Sep 2020 23:29:54 +0430</pubDate>
            </item>
                    <item>
                <title>دات نت فریم ورک (Net Framework.) چیست؟</title>
                <link>https://virgool.io/@darayas/%D8%AF%D8%A7%D8%AA-%D9%86%D8%AA-%D9%81%D8%B1%DB%8C%D9%85-%D9%88%D8%B1%DA%A9-net-framework-%DA%86%DB%8C%D8%B3%D8%AA-urkalal8wcgh</link>
                <description>Net Framework. چیست؟Net Framework. یک پلتفرم توسعه نرم افزار است که توسط مایکروسافت توسعه داده شده است.این فریمورک به منظور ساخت برنامه هایی است که روی پلتفرم ویندوز اجرا می شوند.اولین ورژن  Net Framework. در سال 2002 منتشر شد.اولین نسخه ی آن 1.0 Net Framework.  نامیده شد.از Net Framework.  می توان هم برای ساخت برنامه های مبتنی بر فرم ها و هم برنامه های مبتنی بر وب استفاده کرد.وب سرویس ها نیز می توانند با استفاده از  Net Framework.  توسعه یابند.این فریمورک یا چهارچوب از زبان های برنامه نویسی مختلفی مانند Visual Basic و #C نیز پشتیبانی می کند،بنابراین توسعه دهندگان می توانند برای ساخت برنامه های مورد نیاز خود از هرکدام از این زبان ها استفاده کنند.حال در ادامه می خواهیم به موارد زیر بپردازیم:معماری Net Framework.اجزای Net.اصل طراحی Net Framework.معماری Net Framework.در اینجا شما یک دیاگرام از معماری Net Framework. را مشاهده می فرمایید.اجزای Net Framework.معماری Net Framework. بر اساس اجزای کلیدی ای است که در ادامه به آن ها اشاره خواهم کرد:Common Language RuntimeCommon Language Infrastructure یا CLI ، پلتفرمی است که  برنامه های Net. روی آن اجرا می شوند.CLI دارای ویژگی های کلیدی زیر می باشد:Exception Handling (مدیریت خطاها)Exceptionها خطاهایی هستند در هنگام اجرای برنامه رخ می دهند.Garbage Collectionدر واقع این ویژگی همان چیزی است که به صورت خودکار باعث بهینه سازی برنامه ی شما می شود و یک فرایند برای از بین بردن منابع نا خواسته ای است که شما دیگر به آن ها نیازی ندارید.دو نمونه از جاهایی که Garbage Collection به درد شما می خورد:فایلی که دیگر لازم نیست. اگر برنامه ی موردنظر عملیات را برروی یک فایل تمام کند و تشخیص داده شود که دیگر به این فایل نیازی نیست آن را از بین می برد.اتصال به پایگاه داده دیگر نیازی نباشد.اگر برنامه تمام عملیاتی که لازم بوده روی پایگاه داده انجام داده باشد ممکن است که دیگر نیازی به اتصال به پایگاه داده نداشته باشد که در این صورت آن اتصال را از بین می برد.کار با زبان های مختلف برنامه نویسی همانطور که در بخش قبلی نیز ذکر شد ، یک توسعه دهنده می تواند برنامه خود را با انواع زبان های برنامه نویسی Net. ایجاد کند.زبانسطح اول خود زبان برنامه نویسی است که متداول ترین آن ها VB.Net و #C است.کامپایلریک کامپایلر وجود دارد که برای هر زبان برنامه نویسی جدا خواهد بود. برای مثال یک کامپایر جدا گانه  VB.Net وجود خواهد داشت و به همین ترتیب برای #C هم کامپایلر دیگری خواهید داشت.Common Language Interpreterدر واقع به فارسی می توان آن را مترجم زبان مشترک معنی کرد. این لایه نهایی در Net. است که برای اجرای یک برنامه دات نت ایجاد شده به هر زبان برنامه نویسی استفاده می شود. بنابراین کامپایر برنامه را برای اجرای برنامه به لایه ی CLI ارسال می کند.Class LibraryNet Framework. شامل مجموعه ای از Class Library های استاندارد است.Class Library مجموعه ای از Method ها و Function هایی است که می تواند برای اهداف اصلی برنامه ی شما مورد استفاده قرار بگیرد.اکثراین  متدها به فضاهای نام یا Name Space های System یا Microsoft تقسیم می شوند.فضاهای نام (NameSpaces) یک جداسازی منطقی برای متدها هستند.Languagesانواع برنامه هایی که می توانند در Net. ساخته شوند به طور کلی در دسته های زیر طبقه بندی می شوند.ویندوز فرم ها (مبتنی برم فرم ها)Asp.Net: این مورد برای توسعه برنامه های مبتنی بر وب ساخته شده است، که برای اجرا در هر مرورگری ساخته شده اند.ADO.Net: از این تکنولوژی در توسعه برنامه ها برای تعامل با بانک های اطلاعاتی مانند Microsoft SQL Server یا Oracle استفاده می شود.مایکروسافت همیشه تضمین می دهد که Net Framework. با تمام سیستم عامل های پشتیبانی شده ویندوز مطابقت دارد.ادامه مقاله دات نت فریم ورک (Net Framework.) چیست؟</description>
                <category>Darayas</category>
                <author>Darayas</author>
                <pubDate>Tue, 21 Jul 2020 17:05:49 +0430</pubDate>
            </item>
            </channel>
</rss>