.NET’e girişIntroduction to .NET

.NET, şu gibi birçok tür uygulama oluşturmaya yönelik ücretsiz, açık kaynaklı bir geliştirme platformudur:.NET is a free, open-source development platform for building many kinds of apps, such as:

Sınıf kitaplıklarınıkullanarak farklı uygulamalar ve uygulama türleri arasında işlevsellik paylaşabilirsiniz.Share functionality among different apps and app types by using class libraries.

.NET ile kodunuz ve proje dosyalarınız, hangi tür bir uygulama oluşturmakta olduğunuzla aynı şekilde görünür.With .NET, your code and project files look and feel the same no matter which type of app you're building. Her uygulamayla aynı çalışma zamanına, API 'ye ve dil özelliklerine erişebilirsiniz.You have access to the same runtime, API, and language capabilities with each app.

Platformlar arasıCross platform

Birçok işletim sistemi için aşağıdakiler de dahil olmak üzere .NET uygulamaları oluşturabilirsiniz:You can create .NET apps for many operating systems, including:

  • WindowsWindows
  • Mac OSmacOS
  • LinuxLinux
  • AndroidAndroid
  • iOSiOS
  • tvOStvOS
  • watchOSwatchOS

Desteklenen İşlemci mimarileri şunları içerir:Supported processor architectures include:

  • x64x64
  • x86x86
  • ARM32ARM32
  • ARM64ARM64

.NET, işletim sistemi API 'Leri gibi platforma özgü özellikleri kullanmanıza olanak sağlar..NET lets you use platform-specific capabilities, such as operating system APIs. Örnekler, Windows üzerinde Windows Forms ve WPF ve Xamarin 'ten her mobil platforma yönelik yerel bağlamalardır.Examples are Windows Forms and WPF on Windows and the native bindings to each mobile platform from Xamarin.

Daha fazla bilgi için bkz. desteklenen işletim sistemi yaşam döngüsü ilkesi ve .net RID kataloğu.For more information, see Supported OS lifecycle policy and .NET RID Catalog.

Açık kaynakOpen source

.NET, MIT ve Apache 2 lisanslarınıkullanarak açık kaynaktır..NET is open source, using MIT and Apache 2 licenses. .NET, .net Foundation'ın bir projem..NET is a project of the .NET Foundation.

Daha fazla bilgi için GitHub.com adresindeki Proje depoları listesinebakın.For more information, see the list of project repositories on GitHub.com.

DestekSupport

.NET, Windows, macOS ve Linux 'ta Microsoft tarafından desteklenir..NET is supported by Microsoft on Windows, macOS, and Linux. Her ayın ikinci Salı günü, güvenlik ve kalite açısından düzenli olarak güncelleştirilir.It's updated regularly for security and quality, on the second Tuesday of each month.

Microsoft 'un .NET ikili dağıtımları, Azure 'da Microsoft tarafından korunan sunucularda oluşturulup test edilir ve Microsoft mühendislik ve güvenlik uygulamalarını izler..NET binary distributions from Microsoft are built and tested on Microsoft-maintained servers in Azure and follow Microsoft engineering and security practices.

Red Hat Red Hat Enterprise Linux (RHEL) üzerinde .net destekler.Red Hat supports .NET on Red Hat Enterprise Linux (RHEL). Red Hat ve Microsoft, .NET Core 'un RHEL üzerinde iyi çalıştığından emin olmak için işbirliği sağlar.Red Hat and Microsoft collaborate to ensure that .NET Core works well on RHEL.

Tizen, Tizen platformlarında .net destekler .Tizen supports .NET on Tizen platforms.

Daha fazla bilgi için bkz. .NET Core ve .NET 5 Için yayınlar ve destek.For more information, see Releases and support for .NET Core and .NET 5.

Araçlar ve üretkenlikTools and productivity

.NET size diller, tümleşik geliştirme ortamları (IDEs) ve diğer araçlar sunar..NET gives you a choice of languages, integrated development environments (IDEs), and other tools.

Programlama dilleriProgramming languages

.NET üç programlama dilini destekler:.NET supports three programming languages:

  • C#C#

    C# ("bkz. diyez") modern, nesne odaklı ve tür açısından güvenli bir programlama dilidir.C# (pronounced "See Sharp") is a modern, object-oriented, and type-safe programming language. C#, C ailesinin köklerine sahiptir ve C, C++, Java ve JavaScript programcıları için hemen tanıdık gelecektir.C# has its roots in the C family of languages and will be immediately familiar to C, C++, Java, and JavaScript programmers.

  • F#F#

    F # dili işlevsel, nesne yönelimli ve kesinlik temelli programlama modellerini destekler.The F# language supports functional, object-oriented, and imperative programming models.

  • Visual BasicVisual Basic

    .NET dilleri arasında Visual Basic sözdizimi, normal insan diline en yakın bir deyişle, daha kolay bilgi edinebilirsiniz.Among the .NET languages, the syntax of Visual Basic is the closest to ordinary human language, which can make it easier to learn. Microsoft 'un yeni özellikler geliştirmekte olduğu C# ve F # ' dan farklı olarak Visual Basic dili kararlı olur.Unlike C# and F#, for which Microsoft is actively developing new features, the Visual Basic language is stable. Visual Basic Web Apps için desteklenmez, ancak Web API 'Leri için desteklenir.Visual Basic isn't supported for web apps, but it is supported for web APIs.

.NET dillerinin desteklediği bazı yetenekler şunlardır:Here are some of the capabilities that .NET languages support:

IDEIDEs

.NET için tümleşik geliştirme ortamları şunları içerir:The integrated development environments for .NET include:

  • Visual StudioVisual Studio

    Yalnızca Windows üzerinde çalışır.Runs on Windows only. , .NET ile çalışmak için tasarlanan kapsamlı yerleşik işlevlere sahiptir.Has extensive built-in functionality designed to work with .NET. Topluluk sürümü, öğrenciler, açık kaynak katkı sağlayanlar ve bireyler için ücretsizdir.The Community edition is free for students, open-source contributors, and individuals.

  • Visual Studio CodeVisual Studio Code

    Windows, macOS ve Linux üzerinde çalışır.Runs on Windows, macOS, and Linux. Ücretsiz ve açık kaynak.Free and open source. Uzantılar .NET dilleri ile birlikte çalışmak için kullanılabilir.Extensions are available for working with .NET languages.

  • Mac için Visual StudioVisual Studio for Mac

    Yalnızca macOS 'ta çalışır.Runs on macOS only. İOS, Android ve Web için .NET uygulamaları ve oyunları geliştirme.For developing .NET apps and games for iOS, Android, and web.

  • GitHub CodespacesGitHub Codespaces

    Şu anda beta sürümünde olan çevrimiçi bir Visual Studio Code ortamı.An online Visual Studio Code environment, currently in beta.

SDK ve çalışma zamanlarıSDK and runtimes

.NET SDK , .NET uygulamaları geliştirmeye ve çalıştırmaya yönelik kitaplıkların ve araçların bir kümesidir.The .NET SDK is a set of libraries and tools for developing and running .NET applications.

.NET 'i indirdiğinizde, SDK 'yı veya .NET çalışma zamanı veya ASP.NET Core çalışma zamanı gibi bir çalışma zamanını seçebilirsiniz.When you download .NET, you can choose the SDK or a runtime, such as the .NET runtime or the ASP.NET Core runtime. .NET uygulamalarını çalıştırmaya hazırlamak istediğiniz bir makineye çalışma zamanı yükler.Install a runtime on a machine that you want to prepare for running .NET apps. Geliştirme için kullanmak istediğiniz bir makineye SDK 'Yı yükler.Install the SDK on a machine that you want to use for development. SDK 'Yı indirdiğinizde, çalışma zamanlarını otomatik olarak alırsınız.When you download the SDK, you automatically get the runtimes with it.

SDK indirmesi aşağıdaki bileşenleri içerir:The SDK download includes the following components:

  • .Net CLI.The .NET CLI. Yerel geliştirme ve sürekli tümleştirme betikleri için kullanabileceğiniz komut satırı araçları.Command-line tools that you can use for local development and continuous integration scripts.
  • dotnet Sürücü.The dotnet driver. Çerçeveye bağımlı uygulamalar çalıştıran bir CLı komutu.A CLI command that runs framework-dependent apps.
  • Roslyn ve F # programlama dili derleyicileri.The Roslyn and F# programming language compilers.
  • MSBuild derleme altyapısı.The MSBuild build engine.
  • .NET çalışma zamanı.The .NET runtime. Bir tür sistemi, derleme yükleme, çöp toplayıcı, yerel birlikte çalışma ve diğer temel hizmetleri sağlar.Provides a type system, assembly loading, a garbage collector, native interop, and other basic services.
  • Çalışma zamanı kitaplıkları.Runtime libraries. Temel veri türleri ve temel yardımcı programlar sağlar.Provides primitive data types and fundamental utilities.
  • ASP.NET Core çalışma zamanı.The ASP.NET Core runtime. Web uygulamaları, IoT uygulamaları ve mobil arka uçlar gibi Internet 'e bağlı uygulamalar için temel hizmetler sağlar.Provides basic services for internet-connected apps, such as web apps, IoT apps, and mobile backends.
  • Masaüstü çalışma zamanı.The desktop runtime. Windows Forms ve WPF dahil olmak üzere Windows Masaüstü uygulamaları için temel hizmetler sağlar.Provides basic services for Windows desktop apps, including Windows Forms and WPF.

Çalışma zamanı indirmesi aşağıdaki bileşenleri içerir:The runtime download includes the following components:

  • İsteğe bağlı olarak, masaüstü veya ASP.NET Core çalışma zamanı.Optionally, the desktop or ASP.NET Core runtime.
  • .NET çalışma zamanı.The .NET runtime. Bir tür sistemi, derleme yükleme, çöp toplayıcı, yerel birlikte çalışma ve diğer temel hizmetleri sağlar.Provides a type system, assembly loading, a garbage collector, native interop, and other basic services.
  • Çalışma zamanı kitaplıkları.Runtime libraries. Temel veri türleri ve temel yardımcı programlar sağlar.Provides primitive data types and fundamental utilities.
  • dotnet Sürücü.The dotnet driver. Çerçeveye bağımlı uygulamalar çalıştıran bir CLı komutu.A CLI command that runs framework-dependent apps.

Daha fazla bilgi için aşağıdaki kaynaklara bakın:For more information, see the following resources:

Proje sistemi ve MSBuildProject system and MSBuild

Bir .NET uygulaması, MSBuildkullanılarak kaynak koddan oluşturulur.A .NET app is built from source code by using MSBuild. Proje dosyası (. csproj, . fsproj veya . vbproj), Kodu derleyip yayımlamadan sorumlu hedefleri ve ilişkili görevleri belirtir.A project file (.csproj, .fsproj, or .vbproj) specifies targets and associated tasks that are responsible for compiling, packing, and publishing code. Standart hedef ve görev koleksiyonlarına başvuran SDK tanımlayıcıları vardır.There are SDK identifiers that refer to standard collections of targets and tasks. Bu tanımlayıcıların kullanımı, proje dosyalarını küçük ve ile birlikte çalışmaya devam etmenize yardımcı olur.The use of these identifiers helps keep project files small and easy to work with. Örneğin, bir konsol uygulaması için bir proje dosyası aşağıda verilmiştir:For example, here is a project file for a console app:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>
</Project>

İşte bir Web uygulaması için:And here's one for a web app:

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>
</Project>

Bu örneklerde, Sdk öğesinin özniteliği, Project Proje oluşturan MSBuild hedefleri ve görevleri kümesini belirtir.In these examples, the Sdk attribute of the Project element specifies a set of MSBuild targets and tasks that build the project. TargetFrameworkÖğesi, uygulamanın bağımlı olduğu .NET sürümünü belirtir.The TargetFramework element specifies the .NET version that the app depends on. Projeye özgü ek hedefleri ve görevleri eklemek için proje dosyasını düzenleyebilirsiniz.You can edit the project file to add additional targets and tasks specific to the project.

Daha fazla bilgi için bkz. .NET Project SDK 'ya genel bakış ve hedef çerçeveler.For more information, see .NET project SDK overview and Target frameworks.

CI/CDCI/CD

MSBuild ve .NET CLı, çeşitli sürekli tümleştirme araçları ve ortamları ile birlikte kullanılabilir:MSBuild and the .NET CLI can be used with various continuous integration tools and environments, such as:

Daha fazla bilgi için bkz. .NET SDK ve araçlarını sürekli tümleştirme (CI) Ile kullanmaFor more information, see Using .NET SDK and tools in Continuous Integration (CI)

NuGetNuGet

NuGet , .NET için tasarlanan açık kaynaklı bir paket yöneticisidir.NuGet is an open-source package manager designed for .NET. Bir NuGet paketi, .nupkg derlenen kod (dll 'ler), bu kodla ilgili diğer dosyalar ve paketin sürüm numarası gibi bilgileri içeren açıklayıcı bir bildirim içeren bir. zip dosyasıdır.A NuGet package is a .zip file with the .nupkg extension that contains compiled code (DLLs), other files related to that code, and a descriptive manifest that includes information like the package's version number. Kod içeren geliştiriciler, paket oluşturma ve bunları NuGet.org veya özel bir ana bilgisayar halinde yayımlamaktır.Developers with code to share create packages and publish them to nuget.org or a private host. Paylaşılan kod kullanmak isteyen geliştiriciler, projesine bir paket ekleyin ve ardından Proje kodlarında paketin açığa çıkarılan API 'YI çağırabilir.Developers who want to use shared code add a package to their project and can then call the API exposed by the package in their project code.

Daha fazla bilgi için bkz. NuGet belgeleri.For more information, see NuGet documentation.

.NET etkileşimli.NET Interactive

.NET etkileşimli, kullanıcıların Web, markın ve Not defterleri üzerinde etkileşimli deneyimler oluşturmalarına olanak tanıyan bir CLı araçları ve API grubudur..NET Interactive is a group of CLI tools and APIs that enable users to create interactive experiences across the web, markdown, and notebooks.

Daha fazla bilgi için aşağıdaki kaynaklara bakın:For more information, see the following resources:

Yürütme modelleriExecution models

.NET uygulamaları, ortak dil çalışma zamanı (CLR) olarak bilinen bir çalışma zamanı ortamında yönetilen kodu çalıştırır..NET apps run managed code in a runtime environment known as the Common Language Runtime (CLR).

CLRCLR

.NET clr , Windows, MacOS ve Linux desteği içeren platformlar arası bir çalışma zamanı.The .NET CLR is a cross-platform runtime that includes support for Windows, macOS, and Linux. CLR bellek ayırmayı ve yönetimini işler.The CLR handles memory allocation and management. CLR aynı zamanda yalnızca uygulamaları yürüten ancak tam zamanında (JıT) derleyici kullanarak kod oluşturan ve derlenen bir sanal makinedir.The CLR is also a virtual machine that not only executes apps but also generates and compiles code using a just-in-time (JIT) compiler.

Daha fazla bilgi için bkz. ortak dil çalışma zamanı (CLR) genel bakış.For more information, see Common Language Runtime (CLR) overview.

JıT derleyicisi ve IlJIT compiler and IL

C# gibi daha üst düzey .NET dilleri, ara dil (IL) olarak adlandırılan donanımdan bağımsız bir yönerge kümesine derler.Higher-level .NET languages, such as C#, compile down to a hardware-agnostic instruction set, which is called Intermediate Language (IL). Bir uygulama çalıştığında, JıT derleyicisi,, işlemcinin anladığı makine koduna Il 'yi dönüştürür.When an app runs, the JIT compiler translates IL to machine code that the processor understands. JıT derlemesi, kodun çalıştırılacağı makinede olur.JIT compilation happens on the same machine that the code is going to run on.

Uygulamanın yürütülmesi sırasında JıT derlemesi gerçekleşdiğinden, derleme süresi çalışma zamanının bir parçasıdır.Since JIT compilation occurs during execution of the application, the compilation time is part of the run time. Bu nedenle, JıT derleyicileri, kodu en iyi duruma getirmeye harcanan süreyi, sonuçta elde edilen kodun üretediği tasarruflarla dengelemeye yönelikTherefore, JIT compilers have to balance time spent optimizing code against the savings that the resulting code can produce. Ancak, bir JıT derleyicisi gerçek donanımı bilir ve geliştiricilerin farklı platformlar için farklı uygulamalar sunmalarını ücretsiz olarak kullanabilir.But a JIT compiler knows the actual hardware and can free developers from having to ship different implementations for different platforms.

.NET JıT derleyicisi katmanlı derleme yapabilir, bu da çalışma zamanında bireysel yöntemleri yeniden derleyebileceği anlamına gelir.The .NET JIT compiler can do tiered compilation, which means it can recompile individual methods at run time. Bu özellik, sık kullanılan metotlar için kodun yüksek düzeyde ayarlanmış bir sürümünü üretirken hızlı bir şekilde derlenmenize olanak tanır.This feature lets it compile quickly while still being able to produce a highly tuned version of the code for frequently used methods.

Daha fazla bilgi için bkz. yönetilen yürütme işlemi ve katmanlı derleme.For more information, see Managed execution process and Tiered compilation.

AOT derleyicisiAOT compiler

.NET iş yüklerinin çoğu için varsayılan deneyim JıT derleyicisidir, ancak .NET iki kez güncel (AOT) derleme derlemesi sunar:The default experience for most .NET workloads is the JIT compiler, but .NET offers two forms of ahead-of-time (AOT) compilation:

  • Bazı senaryolar %100 AOT derlemesini gerektirir.Some scenarios require 100% AOT compilation. İOSbir örnektir.An example is iOS.
  • Diğer senaryolarda, bir uygulamanın kodunun çoğu AOT ile derlenir ancak bazıları JıT olarak derlenir.In other scenarios, most of an app's code is AOT-compiled but some is JIT-compiled. Bazı kod desenleri AOT için (genel türler gibi) kolay değildir.Some code patterns aren't friendly to AOT (like generics). Bu AOT derlemesi bir örnek, çalıştırmaya hazırlanma özellikli Yayımla seçeneğidir.An example of this form of AOT compilation is the ready-to-run publish option. Bu AOT formu, nesnelerin dezavantajları olmadan, AOT 'nin avantajlarını sunmaktadır.This form of AOT offers the benefits of AOT without its drawbacks.

Otomatik bellek yönetimiAutomatic memory management

Çöp toplayıcı (GC), uygulamalar için bellek ayırmayı ve serbest bırakma işlemini yönetir.The garbage collector (GC) manages the allocation and release of memory for applications. Kodunuz yeni bir nesne oluşturduğunda, CLR yönetilen yığındannesne için bellek ayırır.Each time your code creates a new object, the CLR allocates memory for the object from the managed heap. Yönetilen yığında kullanılabilir adres alanı bulunduğu sürece, çalışma zamanı yeni nesneler için bellek ayırmaya devam eder.As long as address space is available in the managed heap, the runtime continues to allocate space for new objects. Yeterli boş adres alanı kaldığı zaman, GC tarafından artık uygulama tarafından kullanılmayan yönetilen yığındaki nesneleri denetler.When not enough free address space remains, the GC checks for objects in the managed heap that are no longer being used by the application. Daha sonra bu belleği geri kazanır.It then reclaims that memory.

GC, bellek güvenliğini sağlamaya YARDıMCı olan CLR hizmetlerinden biridir.The GC is one of the CLR services that help ensure memory safety. Bir program, yalnızca ayrılmış belleğe eriştiğinde bellek güvende olur.A program is memory safe if it accesses only allocated memory. Örneğin, çalışma zamanı, bir uygulamanın ayrılmamış belleğe bir dizi sınırlarının ötesinde erişmesini sağlar.For instance, the runtime ensures that an app doesn't access unallocated memory beyond the bounds of an array.

Daha fazla bilgi için bkz. Otomatik bellek yönetimi ve çöp toplama temelleri.For more information, see Automatic memory management and Fundamentals of garbage collection.

Yönetilmeyen kaynaklarla çalışmaWorking with unmanaged resources

Bazen kodun yönetilmeyen kaynaklara başvurması gerekir.Sometimes code needs to reference unmanaged resources. Yönetilmeyen kaynaklar, .NET çalışma zamanı tarafından otomatik olarak tutulmayan kaynaklardır.Unmanaged resources are resources that aren't automatically maintained by the .NET runtime. Örneğin, bir dosya tanıtıcısı yönetilmeyen bir kaynaktır.For example, a file handle is an unmanaged resource. Bir FileStream nesne yönetilen bir nesnedir, ancak yönetilmeyen bir dosya tanıtıcısına başvurur.A FileStream object is a managed object, but it references a file handle, which is unmanaged. Kullanarak işiniz bittiğinde FileStream dosya tanıtıcısını açıkça serbest bırakmanız gerekir.When you're done using the FileStream, you need to explicitly release the file handle.

.NET ' te, yönetilmeyen kaynaklara başvuran nesneler arabirimini uygular IDisposable .In .NET, objects that reference unmanaged resources implement the IDisposable interface. Nesnesini kullanarak işiniz bittiğinde, Dispose() yönetilmeyen kaynakları serbest bırakmaktan sorumlu olan nesnenin yöntemini çağıracağız.When you're done using the object, you call the object's Dispose() method, which is responsible for releasing any unmanaged resources. .NET dilleri, using yöntemin çağırılmasını sağlayan kullanışlı bir ifade (C#, F #, vb) sağlar Dispose .The .NET languages provide a convenient using statement (C#, F#, VB) that ensures the Dispose method is called.

Daha fazla bilgi için bkz. yönetilmeyen kaynakları temizleme.For more information, see Cleaning up unmanaged resources.

Dağıtım modelleriDeployment models

.NET uygulamaları iki farklı modda yayımlanabilir:.NET apps can be published in two different modes:

  • Bir uygulamayı kendi içinde yayımlamak, .net çalışma zamanı ve kitaplıklarınıve uygulamayı ve onun bağımlılıklarını içeren bir yürütülebilir dosya oluşturur.Publishing an app as self-contained produces an executable file that includes the .NET runtime and libraries, and the application and its dependencies. Uygulamanın kullanıcıları bu uygulamayı .NET çalışma zamanı yüklü olmayan bir makinede çalıştırabilir.Users of the application can run it on a machine that doesn't have the .NET runtime installed. Kendi içinde bulunan uygulamalar platforma özgüdür ve isteğe bağlı olarak bir AOT derlemesiformu kullanılarak yayımlanabilir.Self-contained apps are platform-specific, and they can optionally be published using a form of AOT compilation.

  • Bir uygulamayı Framework 'e bağımlı olarak yayımlamak, yalnızca uygulamanın kendisini ve onun bağımlılıklarını içeren bir yürütülebilir dosya ve ikili dosyalar (. dll dosyaları) oluşturur.Publishing an app as framework-dependent produces an executable file and binary files (.dll files) that include only the application itself and its dependencies. Uygulamanın kullanıcılarının .NET çalışma zamanınıayrı olarak yüklemesi gerekir.Users of the application have to separately install the .NET runtime. Yürütülebilir dosya platforma özgüdür, ancak Framework 'e bağımlı uygulamaların . dll dosyaları platformlar arası bir platformdur.The executable file is platform-specific, but the .dll files of framework-dependent applications are cross-platform.

    Çalışma zamanının farklı sürümlerini hedefleyen çerçeveye bağımlı uygulamalar çalıştırmak için çalışma zamanının birden çok sürümünü yan yana yükleyebilirsiniz.You can install multiple versions of the runtime side by side to run framework-dependent apps that target different versions of the runtime. Daha fazla bilgi için bkz. hedef çerçeveler.For more information, see Target frameworks.

Yürütülebilir dosyalar, bir çalışma zamanı tanımlayıcısı (RID)ile belirttiğiniz belirli hedef platformlar için oluşturulur.Executables are produced for specific target platforms, which you specify with a runtime identifier (RID).

Daha fazla bilgi için bkz. .NET uygulama yayımlamaya genel bakış ve .net ve Docker 'a giriş.For more information, see .NET application publishing overview and Introduction to .NET and Docker.

Çalışma zamanı kitaplıklarıRuntime libraries

.NET, çalışma zamanı kitaplıkları, çerçeve kitaplıklarıveya temel sınıf kitaplığı (BCL)olarak bilinen bir expante standart sınıf kitaplıkları kümesine sahiptir..NET has an expansive standard set of class libraries, known as runtime libraries, framework libraries, or the base class library (BCL). Bu kitaplıklar, birçok genel amaçlı ve iş yüküne özgü tür ve yardımcı program işlevselliğine yönelik uygulamalar sağlar.These libraries provide implementations for many general-purpose and workload-specific types and utility functionality.

.NET çalışma zamanı kitaplıklarında tanımlı türlerin bazı örnekleri aşağıda verilmiştir:Here are some examples of types defined in the .NET runtime libraries:

Daha fazla bilgi için bkz. çalışma zamanı kitaplıklarına genel bakış.For more information, see the Runtime libraries overview. Kitaplıkların kaynak kodu GitHub DotNet/Runtime deposundadır.The source code for the libraries is in the GitHub dotnet/runtime repository.

Çalışma zamanı kitaplıklarının uzantılarıExtensions to the runtime libraries

Yaygın olarak kullanılan bazı uygulama işlevlerinin kitaplıkları çalışma zamanı kitaplıklarına dahil edilmez, ancak aşağıdaki gibi NuGet paketlerinde kullanılabilir hale gelir:Libraries for some commonly used application functionality aren't included in the runtime libraries but are made available in NuGet packages, such as the following:

NuGet paketiNuGet package BelgelerDocumentation
Microsoft. Extensions. HostingMicrosoft.Extensions.Hosting Uygulama ömür yönetimi (genel ana bilgisayar)Application lifetime management (Generic Host)
Microsoft. Extensions. DependencyınjectionMicrosoft.Extensions.DependencyInjection Bağımlılık ekleme (dı)Dependency injection (DI)
Microsoft.Extensions.ConfigurlamaMicrosoft.Extensions.Configuration YapılandırmaConfiguration
Microsoft.Extensions.LoggingMicrosoft.Extensions.Logging Günlüğe kaydetmeLogging
Microsoft. Extensions. OptionsMicrosoft.Extensions.Options Seçenekler deseniOptions pattern

Daha fazla bilgi için GitHub 'daki DotNet/Extensions deposunabakın.For more information, see the dotnet/extensions repository on GitHub.

Veri erişimiData access

.NET, bir nesne/Ilişkisel Eşleyici (ORM) ve kodda SQL sorguları yazmak için bir yol sağlar..NET provides an Object/Relational Mapper (ORM) and a way to write SQL queries in code.

Entity Framework CoreEntity Framework Core

Entity Framework (EF) Core, bir ORM olarak kullanılabilecek Açık kaynaklı ve platformlar arası bir veri erişim teknolojisidir.Entity Framework (EF) Core is an open source and cross-platform data-access technology that can serve as an ORM. EF Core, koddaki .NET nesnelerine başvurarak bir veritabanıyla çalışmanıza olanak sağlar.EF Core lets you work with a database by referring to .NET objects in code. Yazmanız ve test etmeniz gereken veri erişim kodu miktarını azaltır.It reduces the amount of data-access code you would otherwise need to write and test. EF Core birçok veritabanı altyapısını destekler.EF Core supports many database engines.

Daha fazla bilgi için bkz. Entity Framework Core ve veritabanı sağlayıcıları.For more information, see Entity Framework Core and Database Providers.

LINQLINQ

Dil ile tümleşik sorgu (LINQ), veri üzerinde çalışma için bildirim temelli kod yazmanızı sağlar.Language-integrated query (LINQ) lets you write declarative code for operating on data. Veriler birçok biçimde (örneğin, bellek içi nesneler, bir SQL veritabanı veya bir XML belgesi) olabilir, ancak yazdığınız LINQ kodu genellikle veri kaynağı tarafından farklılık gösterir.The data can be in many forms (such as in-memory objects, a SQL database, or an XML document), but the LINQ code you write typically doesn't differ by data source.

Daha fazla bilgi için bkz. LINQ (dil Ile tümleşik sorgu) genel bakış.For more information, see LINQ (Language Integrated Query) overview.

.NET terminolojisi.NET terminology

.NET belgelerini anlamak için, bazı koşulların kullanımının zaman içinde nasıl değiştiğini öğrenmek yardımcı olabilir.To understand .NET documentation, it can help to know how the usage of some terms has changed over time.

.NET Core ve .NET 5.NET Core and .NET 5

2002 ' de, Microsoft, Windows uygulamaları oluşturmaya yönelik bir geliştirme platformu olan .NET Frameworkyayımlamıştır.In 2002, Microsoft released .NET Framework, a development platform for creating Windows apps. Bugün .NET Framework 4,8 sürümüdür ve hala Microsoft tarafından desteklenmektedir.Today .NET Framework is at version 4.8 and is still supported by Microsoft.

2014 ' de, Microsoft .NET Framework için platformlar arası, açık kaynaklı bir ardıl yazmayı başlamıştır.In 2014, Microsoft began writing a cross-platform, open-source successor to .NET Framework. .NET 'in bu yeni uygulamasına, 3,1 sürümüne ulaşıncaya kadar .NET Core adı veriydi.This new implementation of .NET was named .NET Core until it reached version 3.1. .NET Core 3,1 sonraki sürümü, şu anda önizleme aşamasında olan .NET 5,0 ' dir.The next version after .NET Core 3.1 is .NET 5.0, which is currently in preview. Bu .NET ve 4,8 .NET Framework için bu uygulamayla karışmayı önlemek için sürüm numarası atlandı.Version number 4 was skipped to avoid confusion between this implementation of .NET and .NET Framework 4.8. "Core" adı, artık .NET uygulamasının ana uygulamasının olduğunu açık hale getirmek için bırakıldı.The name "Core" was dropped to make clear that this is now the main implementation of .NET.

Bu makale .NET 5 ile ilgilidir, ancak .NET 5 belgelerinin çoğu hala ".NET Core" veya ".NET Framework" başvuruları vardır.This article is about .NET 5, but much of the documentation for .NET 5 still has references to ".NET Core" or ".NET Framework". Ayrıca, "Core" ASP.NET Core ve Entity Framework Coreadlarında kalır.In addition, "Core" remains in the names ASP.NET Core and Entity Framework Core.

Belgeler ayrıca .NET Standard anlamına gelir.The documentation also refers to .NET Standard. .NET Standard , .net 'in birden çok uygulaması için sınıf kitaplıkları geliştirmenize olanak sağlayan bir API belirtimidir..NET Standard is an API specification that lets you develop class libraries for multiple implementations of .NET.

Daha fazla bilgi için bkz. .net mimari bileşenleri.For more information, see .NET architectural components.

Aşırı yüklenmiş terimlerOverloaded terms

Aynı sözcük farklı bağlamlarda farklı şekillerde kullanıldığından, .NET için bazı terminoloji kafa karıştırıcı olabilir.Some of the terminology for .NET can be confusing because the same word is used in different ways in different contexts. Daha belirgin örneklerden bazıları aşağıda verilmiştir:Here are a few of the more prominent instances:

  • çalışma zamanıruntime

    BağlamContext "çalışma zamanı" anlamı"runtime" meaning
    Ortak Dil Çalışma Zamanı (CLR)Common Language Runtime (CLR) Yönetilen programın yürütme ortamı.The execution environment for a managed program. İşletim sistemi çalışma zamanı ortamının bir parçasıdır ancak .NET çalışma zamanının bir parçası değildir.The OS is part of the runtime environment but isn't part of the .NET runtime.
    .Net indirme sayfasında .NET çalışma zamanı.NET runtime on the .NET download page Birlikte, çerçeveye bağımlı uygulamaları çalıştırmaya yönelik destek sağlayan clr ve çalışma zamanı kitaplıkları.The CLR and runtime libraries, which together provide support for running framework-dependent apps. Bu sayfada, ASP.NET Core Server uygulamaları ve Windows Masaüstü uygulamaları için çalışma zamanı seçenekleri de sunulur.The page also offers runtime choices for ASP.NET Core server apps and Windows desktop apps.
    Çalışma zamanı tanımlayıcısı (RID)Runtime Identifier (RID) .NET uygulamasının üzerinde çalıştığı işletim sistemi platformu ve CPU mimarisi.The OS platform and CPU architecture that a .NET app runs on. Örneğin: Windows x64, Linux x64.For example: Windows x64, Linux x64.
  • çerçeveframework

    BağlamContext "Framework" anlamı"framework" meaning
    .NET Framework.NET Framework .NET ' in orijinal, yalnızca Windows için uygulanması.The original, Windows-only implementation of .NET. "Framework" büyük harfli."Framework" is capitalized.
    hedef çerçevetarget framework Bir .NET uygulamasının veya kitaplığının dayandığı API 'lerin koleksiyonu.The collection of APIs that a .NET app or library relies on. Örnekler: .NET Core 3,1, .NET Standard 2,0Examples: .NET Core 3.1, .NET Standard 2.0
    Hedef çerçeve bilinen adı (tfd)Target Framework Moniker (TFM) TFD, .NET uygulaması veya kitaplığının hedef çerçevesini belirtmek için standartlaştırılmış bir belirteç biçimidir.A TFM is a standardized token format for specifying the target framework of a .NET app or library. Örnek: net462 .NET Framework 4.6.2 için.Example: net462 for .NET Framework 4.6.2.
    çerçeveye bağımlı uygulamaframework-dependent app Yalnızca .net indirme sayfasındançalışma zamanını yüklediğiniz bir makinede çalışabilen bir uygulama.An app that can only run on a machine where you've installed the runtime from the .NET download page. Bu kullanımdaki "Framework", .NET indirme sayfasından indirdiğinizde "çalışma zamanı" ile aynıdır."Framework" in this usage is the same thing as the "runtime" that you download from the .NET download page.
    çerçeve kitaplıklarıframework libraries Bazen çalışma zamanı kitaplıklarıiçin bir eş anlamlı olarak kullanılır.Sometimes used as a synonym for runtime libraries.
  • 'SıNıNSDK

    BağlamContext "SDK" anlamı"SDK" meaning
    .NET indirme sayfasında SDKSDK on the .NET download page .NET uygulamaları geliştirmek ve çalıştırmak için indirip yüklediğiniz araç ve kitaplıkların bir koleksiyonu.A collection of tools and libraries that you download and install to develop and run .NET apps. CLı, MSBuild, .NET çalışma zamanı ve diğer bileşenleri içerir.Includes the CLI, MSBuild, the .NET runtime, and other components.
    SDK stili projeSDK-style project Belirli bir uygulama türü için bir projenin nasıl oluşturulacağını belirten bir MSBuild hedefleri ve görevleri kümesi.A set of MSBuild targets and tasks that specifies how to build a project for a particular app type. Bu anlamda SDK, Sdk Project bir proje dosyasındaki öğesinin özniteliği kullanılarak belirtilir.The SDK in this sense is specified by using the Sdk attribute of the Project element in a project file.
  • platformununplatform

    BağlamContext "Platform" anlamı"platform" meaning
    platformlar arasıcross platform Bu dönemde, "Platform" Windows, macOS, Linux, iOS ve Android gibi işletim sistemi ve üzerinde çalıştığı donanımlar anlamına gelir.In this term, "platform" means an operating system and the hardware it runs on, such as Windows, macOS, Linux, iOS, and Android.
    .NET platformu.NET platform Kullanım farklılık gösterir.Usage varies. Başvuru, bir .NET uygulaması (.NET Framework veya .NET 5 gibi) veya tüm uygulamalar dahil olmak üzere .NET 'in aşırı bir kavramı olabilir.The reference may be to one implementation of .NET (such as .NET Framework or .NET 5) or to an overarching concept of .NET including all implementations.

.NET terminolojisi hakkında daha fazla bilgi için bkz. .net sözlüğü.For more information about .NET terminology, see the .NET glossary.

Gelişmiş senaryolarAdvanced scenarios

Aşağıdaki bölümlerde, Gelişmiş senaryolarda yararlı olan bazı .NET özellikleri açıklanmaktadır.The following sections explain some capabilities of .NET that are useful in advanced scenarios.

Yerel birlikte çalışmaNative interop

Her işletim sistemi, sistem hizmetleri sağlayan bir uygulama programlama arabirimi (API) içerir.Every operating system includes an application programming interface (API) that provides system services. .NET, bu API 'Leri çağırmak için çeşitli yollar sağlar..NET provides several ways to call those APIs.

Yerel API 'lerle birlikte kullanmanın ana yolu, kısa için "Platform Invoke" veya P/Invoke aracılığıyla yapılır.The main way to interoperate with native APIs is via "platform invoke" or P/Invoke for short. P/Invoke, Linux ve Windows platformları genelinde desteklenir.P/Invoke is supported across Linux and Windows platforms. Windows 'un yalnızca Windows 'un bir yolu, Yönetilen koddaki COM bileşenleriyle birlikte ÇALıŞARAK "com birlikte çalışma" olarak bilinir.A Windows-only way of interoperating is known as "COM interop," which works with COM components in managed code. P/Invoke altyapısının üzerine kurulmuştur, ancak daha sorunsuz şekilde farklı yollarla çalışmaktadır.It's built on top of the P/Invoke infrastructure, but it works in subtly different ways.

Daha fazla bilgi için bkz. yerel birlikte çalışabilirlik.For more information, see Native interoperability.

Güvenli olmayan kodUnsafe code

Dil desteğine bağlı olarak, CLR yerel belleğe erişmenizi ve kod aracılığıyla işaretçi aritmetiği yapmanızı sağlar unsafe .Depending on language support, the CLR lets you access native memory and do pointer arithmetic via unsafe code. Bu işlemler, bazı algoritmalar ve sistem birlikte çalışabilirliği için gereklidir.These operations are needed for certain algorithms and system interoperability. Güçlü, güvenli olmayan kod kullanımı, sistem API 'Leri ile birlikte çalışmak veya en verimli algoritmayı uygulamak gerekmedikçe önerilmez.Although powerful, use of unsafe code is discouraged unless it's necessary to interoperate with system APIs or implement the most efficient algorithm. Güvenli olmayan kod farklı ortamlarda aynı şekilde yürütülemeyebilir ve ayrıca çöp toplayıcı ve tür güvenliği avantajlarından de yararlanmaya başlayabilir.Unsafe code may not execute the same way in different environments and also loses the benefits of a garbage collector and type safety. Güvenli olmayan kodu sınırlamak ve merkezileştirmek ve kodu tamamen test etmeniz önerilir.It's recommended to confine and centralize unsafe code as much as possible and test that code thoroughly.

Daha fazla bilgi için bkz. güvenli olmayan kod ve işaretçiler.For more information, see Unsafe code and pointers.

Sonraki adımlarNext steps