ASP.NET Core’a GirişIntroduction to ASP.NET Core

Daniel Roth, Rick Anderson ve Shaun Luttin tarafından hazırlanmıştırBy Daniel Roth, Rick Anderson, and Shaun Luttin

ASP.NET Core, modern, bulut tabanlı, İnternet bağlantılı uygulamalar oluşturmaya yönelik platformlar arası, yüksek performanslı, açık kaynak bir çerçevedir.ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern, cloud-based, Internet-connected applications. ASP.NET Core ile şunları yapabilirsiniz:With ASP.NET Core, you can:

  • Web uygulamaları ve hizmetleri, IoT uygulamaları ve mobil arka uçlar oluşturun.Build web apps and services, IoT apps, and mobile backends.
  • Windows, macOS ve Linux üzerinde tercih ettiğiniz geliştirme araçlarını kullanın.Use your favorite development tools on Windows, macOS, and Linux.
  • Buluta veya şirket içine dağıtın.Deploy to the cloud or on-premises.
  • .NET Core veya .NET Framework üzerinde çalıştırın.Run on .NET Core or .NET Framework.

Neden ASP.NET Core kullanılmalı?Why use ASP.NET Core?

Milyonlarca geliştirici, web uygulamaları oluşturmak için ASP.NET 4.x kullandı (ve kullanmaya devam ediyor).Millions of developers have used (and continue to use) ASP.NET 4.x to create web apps. ASP.NET Core, ASP.NET 4.x sürümünün daha yalın, daha modüler bir çerçeve elde edilmesini sağlayan mimari değişikliklerle yeniden tasarlanmış halidir.ASP.NET Core is a redesign of ASP.NET 4.x, with architectural changes that result in a leaner, more modular framework.

ASP.NET Core aşağıdaki avantajları sağlar:ASP.NET Core provides the following benefits:

ASP.NET Core MVC kullanarak web API'leri ve web kullanıcı arabirimi oluşturmaBuild web APIs and web UI using ASP.NET Core MVC

ASP.NET Core MVC, web API’leri ve web uygulamaları oluşturmaya yönelik özellikler sağlar:ASP.NET Core MVC provides features to build web APIs and web apps:

İstemci tarafı geliştirmeClient-side development

ASP.NET Core, aralarında Razor Components, Angular, React ve Bootstrap’in bulunduğu popüler istemci tarafı çerçeve ve kitaplıklarla sorunsuz bir şekilde tümleştirilir.ASP.NET Core integrates seamlessly with popular client-side frameworks and libraries, including Razor Components, Angular, React, and Bootstrap. Daha fazla bilgi için Razor Components ve İstemci tarafı geliştirme altındaki ilgili konulara bakın.For more information, see Razor Components and related topics under Client-side development.

.NET Framework'ü hedefleyen ASP.NET CoreASP.NET Core targeting .NET Framework

ASP.NET Core 2.x, .NET Core'u veya .NET Framework'ü hedefleyebilir.ASP.NET Core 2.x can target .NET Core or .NET Framework. .NET Framework'ü hedefleyen ASP.NET Core uygulamaları platformlar arası çalışmaz; bunlar yalnızca Windows üzerinde çalışır.ASP.NET Core apps targeting .NET Framework aren't cross-platform—they run on Windows only. Genel olarak, ASP.NET Core 2.x .NET Standard kitaplıklarından oluşturulmuştur.Generally, ASP.NET Core 2.x is made up of .NET Standard libraries. .NET Standard 2.0 ile yazılmış uygulamalar .NET Standard 2.0'ın desteklendiği her yerde çalıştırılır.Apps written with .NET Standard 2.0 run anywhere that .NET Standard 2.0 is supported.

ASP.NET Core 2.x, .NET Standard 2.0 ile uyumlu .NET Framework sürümlerinde desteklenir:ASP.NET Core 2.x is supported on .NET Framework versions compatible with .NET Standard 2.0:

  • .NET Framework 4.7.1 ve üzeri önemle tavsiye edilir..NET Framework 4.7.1 and later is strongly recommended.
  • .NET Framework 4.6.1 ve üzeri..NET Framework 4.6.1 and later.

ASP.NET Core 3.0 ve üzeri yalnızca .NET Core’da çalışır.ASP.NET Core 3.0 and later will only run on .NET Core. Bu değişiklik hakkında daha fazla bilgi için bkz. ASP.NET Core 3.0’daki değişikliklere ilk bakış.For more details regarding this change, see A first look at changes coming in ASP.NET Core 3.0.

.NET Core hedeflemesinin çeşitli avantajları vardır ve bu avantajlar her yeni sürümle birlikte artmaktadır.There are several advantages to targeting .NET Core, and these advantages increase with each release. .NET Framework'e göre .NET Core'un bazı avantajları şunlardır:Some advantages of .NET Core over .NET Framework include:

  • Platformlar arası.Cross-platform. macOS, Linux ve Windows üzerinde çalışır.Runs on macOS, Linux, and Windows.
  • Geliştirilmiş performansImproved performance
  • Yan yana sürüm oluşturmaSide-by-side versioning
  • Yeni API'lerNew APIs
  • Açık kaynakOpen source

.NET Framework ile .NET Core arasındaki API açığını kapatmak için çok çalışıyoruz.We're working hard to close the API gap from .NET Framework to .NET Core. Windows Uyumluluk Paketi, .NET Core'da yalnızca Windows'a yönelik binlerce API'yi kullanıma sunmaktadır.The Windows Compatibility Pack made thousands of Windows-only APIs available in .NET Core. Bu API'ler .NET Core 1.x'te sağlanmamıştı.These APIs weren't available in .NET Core 1.x.

ASP.NET Core uygulamaları geliştirmeye başlamak için şu öğreticileri ve makaleleri takip etmenizi öneririz:We recommend the following sequence of tutorials and articles for an introduction to developing ASP.NET Core apps:

  1. Geliştirmek veya yönetmek istediğiniz uygulama türüne yönelik bir öğreticiyi takip edin:Follow a tutorial for the type of app you want to develop or maintain:

    Uygulama türüApp type SenaryoScenario EğitmenTutorial
    Web uygulamasıWeb app Yeni proje geliştirmek içinFor new development Razor Sayfaları kullanmaya başlamaGet started with Razor Pages
    Web uygulamasıWeb app MVC uygulaması yönetmek içinFor maintaining an MVC app MVC ile çalışmaya başlamaGet started with MVC
    Web APIWeb API Web API’si oluşturma*Create a web API*
    Gerçek zamanlı uygulamaReal-time app SignalR ile çalışmaya başlamaGet started with SignalR
  2. Temel veri erişiminin nasıl yapıldığını gösteren bir öğreticiyi takip edin:Follow a tutorial that shows how to do basic data access:

    SenaryoScenario EğitmenTutorial
    Yeni proje geliştirmek içinFor new development Entity Framework Core ile Razor PagesRazor Pages with Entity Framework Core
    MVC uygulaması yönetmek içinFor maintaining an MVC app Entity Framework Core ile MVCMVC with Entity Framework Core
  3. Tüm uygulama türleri için geçerli olan ASP.NET Core özelliklerine yönelik genel bakışı okuyun:Read an overview of ASP.NET Core features that apply to all app types:

  4. İlgilendiğiniz diğer konular için İçindekiler Tablosu’na göz atın.Browse the Table of Contents for other topics of interest.

Tarayıcıda tamamını takip ettiğiniz ve yerel IDE yüklemesi gerektirmeyen * yeni bir web API’si öğreticisi var.* There is a new web API tutorial that you follow entirely in the browser, no local IDE installation required. Kod Azure Cloud Shell’de çalışır, curl ise test için kullanılır.The code runs in an Azure Cloud Shell, and curl is used for testing.

Örnek indirmeHow to download a sample

Çoğu makale ve öğretici örnek koda bağlantılar içerir.Many of the articles and tutorials include links to sample code.

  1. ASP.NET depo zip dosyasını indirin.Download the ASP.NET repository zip file.
  2. Docs-master.zip dosyasının sıkıştırmasını açın.Unzip the Docs-master.zip file.
  3. Örnek dizinde gezinmek için örnek bağlantıdaki URL’yi kullanın.Use the URL in the sample link to help you navigate to the sample directory.

Örnek kodda ön işlemci yönergeleriPreprocessor directives in sample code

Örnek uygulamalar birden çok senaryoyu göstermek amacıyla aynı koda ait farklı bölümleri seçmeli olarak derleyip çalıştırmak için #define ve #if-#else/#elif-#endif C# deyimlerini kullanır.To demonstrate multiple scenarios, sample apps use the #define and #if-#else/#elif-#endif C# statements to selectively compile and run different sections of sample code. Bu yaklaşımdan yararlanan örneklerde C# dosyalarının üst kısmındaki #define deyimini, çalıştırmak istediğiniz senaryoyla ilişkili olan simgeye ayarlayın.For those samples that make use of this approach, set the #define statement at the top of the C# files to the symbol associated with the scenario that you want to run. Bazı örnekler senaryoyu çalıştırmak için birden çok dosyanın üst kısmındaki simgenin ayarlanmasını gerektirebilir.Some samples require setting the symbol at the top of multiple files in order to run a scenario.

Örneğin, aşağıdaki simge listesi #define dört senaryonun kullanılabilir olduğunu gösterir (her simge için bir senaryo).For example, the following #define symbol list indicates that four scenarios are available (one scenario per symbol). Geçerli örnek yapılandırması TemplateCode senaryosunu çalıştırır:The current sample configuration runs the TemplateCode scenario:

#define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode

Örneği ExpandDefault senaryosunu çalıştıracak şekilde değiştirmek için ExpandDefault simgesini tanımlayın ve kalan simgeleri açıklama satırı yapılmış şekilde bırakın:To change the sample to run the ExpandDefault scenario, define the ExpandDefault symbol and leave the remaining symbols commented-out:

#define ExpandDefault // TemplateCode or LogFromMain or FilterInCode

Kod bölümlerini seçmeli olarak derlemek üzere C# ön işlemci yönergelerini kullanma hakkında daha fazla bilgi için bkz. #define (C# Başvurusu) ve #if (C# Başvurusu).For more information on using C# preprocessor directives to selectively compile sections of code, see #define (C# Reference) and #if (C# Reference).

Örnek kodda bölgelerRegions in sample code

Bazı örnek uygulamalar, #region ve #endregion C# deyimleri içine yerleştirilmiş kod bölümleri içerir.Some sample apps contain sections of code surrounded by #region and #endregion C# statements. Belge derleme sistemi bu bölgeleri işlenmiş belge konularının içine ekler.The documentation build system injects these regions into the rendered documentation topics.

Bölge adları çoğunlukla şu sözcüğü içerir: "snippet."Region names usually contain the word "snippet." Aşağıdaki örnekte snippet_FilterInCode adlı bir bölge gösterilir:The following example shows a region named snippet_FilterInCode:

#region snippet_FilterInCode
WebHost.CreateDefaultBuilder(args)
    .UseStartup<Startup>()
    .ConfigureLogging(logging =>
        logging.AddFilter("System", LogLevel.Debug)
            .AddFilter<DebugLoggerProvider>("Microsoft", LogLevel.Trace))
            .Build();
#endregion

Önündeki C# kod parçacığına, konunun markdown dosyasında aşağıdaki satırla başvurulur:The preceding C# code snippet is referenced in the topic's markdown file with the following line:

[!code-csharp[](sample/SampleApp/Program.cs?name=snippet_FilterInCode)]

Kodu çevreleyen #region ve #endregion deyimlerini rahatça yoksayabilirsiniz (veya kaldırabilirsiniz).You may safely ignore (or remove) the #region and #endregion statements that surround the code. Konuda açıklanan örnek senaryoları çalıştırmayı planlıyorsanız, bu deyimlerin anasındaki kodu değiştirmeyin.Don't alter the code within these statements if you plan to run the sample scenarios described in the topic. Başka senaryolarla denemeler yaparken kodu rahatça değiştirebilirsiniz.Feel free to alter the code when experimenting with other scenarios.

Daha fazla bilgi için bkz. ASP.NET belgelerine katkıda bulunma: Kod parçacıkları.For more information, see Contribute to the ASP.NET documentation: Code snippets.

Sonraki adımlarNext steps

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