Altbilgi içeriğine atla
.NET YARDıM

Razor Bileşenleri: Geliştiriciler İçin Nasıl Çalışır

Web geliştirme yıllar içinde çok yol kat etti ve modern çerçevelerin ve kütüphanelerin ortaya çıkmasıyla, geliştiriciler dinamik ve etkileşimli web sayfaları oluşturmak için güçlü araçlara sahip. Son yıllarda önemli popülerlik kazanan teknolojilerden biri olan Razor Bileşenleri, ASP.NET Core'da Blazor çerçevesinin bir parçasıdır. Razor Bileşenleri, geliştiricilerin C# ve HTML kullanarak zengin, istemci tarafı web uygulamaları oluşturmalarına olanak tanır, JavaScript yazmak zorunda kalmadan. Bu makalede, Razor Bileşenlerini ve bunların nasıl modüler, yeniden kullanılabilir ve dinamik web sayfaları oluşturmak için kullanılabileceğini inceleyeceğiz.

Razor Bileşenleri Nelerdir

Razor Bileşenleri, geliştiricilerin ASP.NET Core'da C# ve HTML kombinasyonu kullanarak web sayfaları oluşturmasına olanak tanıyan bir UI çerçevesidir, sunucu tarafı mantığı yazma ve bu mantığı istemci tarafında yürütme yeteneği ile birlikte. Razor Bileşenleri, C# kodunu tarayıcıda çalıştırmak için WebAssembly (Wasm) veya SignalR kullanan bir istemci tarafı web UI çerçevesi olan Blazor çerçevesinin bir parçasıdır. Razor Bileşenleri, modern web uygulamaları oluşturmak için bileşen tabanlı bir mimariye sahiptir, burada kullanıcı arayüzü daha küçük, kendi kendine yeten bileşenlere bölünür ve bir bütün web sayfası oluşturmak için bir araya getirilebilir.

Razor Bileşenleri, sunucu tarafı ve istemci tarafı kodun sorunsuz bir şekilde entegre edilmesine izin veren, C# ve HTML'nin bir kombinasyonu olan Razor sözdizimini kullanır. Razor Bileşenleri, React, Angular ve Vue gibi diğer bileşen tabanlı UI çerçevelerine benzer, ancak temel fark, bunların C# kullanılarak yazılmasıdır ve barındırma modeline bağlı olarak sunucu veya istemci tarafında çalışabilir (WebAssembly veya SignalR).

Razor Bileşenleri: Geliştiriciler İçin Nasıl Çalışır: Şekil 2 - Blazor nedir ve Razor Bileşenleri nedir?

Razor Bileşenlerinin Faydaları

Razor Bileşenleri, web geliştiricileri için aşağıdaki gibi birçok fayda sunar:

Yeniden Kullanılabilirlik

Razor Bileşenleri, bir web uygulaması veya farklı projeler içinde birden çok yerde kolayca yeniden kullanılabilen bağımsız elemanlardır. Bu, kodun yeniden kullanılabilirliğini teşvik eder ve kod tekrarını azaltarak daha sürdürülebilir ve ölçeklenebilir web uygulamaları ortaya çıkarır.

Modülerlik

Razor Bileşenleri, bileşen tabanlı bir mimariyi izler, burada kullanıcı arayüzü daha küçük bileşenlere bölünerek karmaşık web sayfaları oluşturulmak üzere birleştirilebilir. Bu, modülerliği teşvik eder ve geliştiricilerin kullanıcı arayüzü ve mantığı her bir bileşen içinde kapsüllerini sağlar, bu da kod tabanını yönetmeyi ve sürdürmeyi kolaylaştırır.

C# ile Sorunsuz Entegrasyon

Razor Bileşenleri C# ile yazıldığından, geliştiriciler var olan C# becerilerini ve bilgilerini web uygulamaları yazmak için kullanabilir. Bu, JavaScript öğrenme ve yazma ihtiyaçını ortadan kaldırır, bu da zaten C#'ı bilen geliştiriciler için önemli bir avantaj olabilir.

Sunucu Tarafı ve İstemci Tarafı Çalıştırma

Razor Bileşenleri, barındırma modeline bağlı olarak ya sunucu tarafında ya da istemci tarafında çalıştırılabilir. Bu, geliştiricilere uygulamaları için en uygun çalıştırma modelini seçme esnekliği sağlar, performans, güvenlik ve kullanıcı deneyimi gibi faktörlere bağlı olarak.

Gerçek Zamanlı İletişim

Razor Bileşenleri, istemci ile sunucu arasında çift yönlü iletişim kurmak için gerçek zamanlı iletişim kütüphanesi olan SignalR kullanılabilir. Bu, web uygulamalarında gerçek zamanlı güncellemeleri ve bildirimleri etkinleştirir, duyarlı ve etkileşimli bir kullanıcı deneyimi sunar.

Genişletilebilirlik

Razor Bileşenleri, geliştiricilere kendi özel bileşenlerini, kütüphanelerini ve şablonlarını oluşturma imkanı tanıyarak çok genişletilebilirdir. Bu, geliştiricilerin web uygulamalarının belirli gereksinimlerini karşılayan çözümler oluşturmalarını sağlar.

Razor Bileşeniyle Başlamak

Razor Bileşenleriyle başlamak için, sisteminizde .NET Core 3.0 veya daha yeni bir sürümünün yüklü olması gerekir. Visual Studio veya .NET Core CLI'da Blazor şablonunu kullanarak yeni bir ASP.NET Core projesi oluşturun.

dotnet new blazorserver

Razor Bileşenleri: Geliştiriciler İçin Nasıl Çalışır: Şekil 3

@page "/counter"

<h1>Counter</h1>

<p role="status">Current count: @currentCount</p>
<button @onclick="IncrementCount">Click me</button>

@code {
    private int currentCount = 0;

    private void IncrementCount()
    {
        currentCount++;
    }
}

Bu örnekte, tıklanınca currentCount değişkenini artıran bir butona sahip 'Counter' adında bir Razor bileşenimiz var. @code bloğu, bileşen için C# kodunu tanımlamakta kullanılır.

Razor Bileşenleri: Geliştiriciler İçin Nasıl Çalışır: Şekil 4

Özel Bir Razor Bileşeni Yaratma

Projede, Razor Bileşenlerinizi depolamak için "Components" adlı yeni bir klasör oluşturun.

"Components" klasöründe, ".razor" uzantılı yeni bir Razor Bileşeni dosyası ekleyin. Bu dosya, bileşeninizin C# ve HTML kodunu içerecektir.

Razor Bileşeni dosyasını açın ve Razor sözdizimi kullanarak bileşeninizi tanımlayın. Razor sözdizimi, C# ve HTML kodunu tek bir dosyada birleştirmenize olanak tanır, bu da dinamik web sayfaları oluşturmayı kolaylaştırır. Örneğin, şu şekilde basit bir Razor Bileşeni tanımlayabilirsiniz:

<h1>Hello, World!</h1>
<p>This is a Razor Component.</p>

@code {
    // C# code for the component can be added here
}

Razor Bileşeninizi, web uygulamanızın diğer bölümlerinde, HTML işaretlemeniz içine bileşenin etiket adını yerleştirerek kullanabilirsiniz. Örneğin, bileşeni ana Razor sayfanızda şu şekilde kullanabilirsiniz:

<MyComponent />

Bileşen parametrelerini kullanarak Razor Bileşeninize veri de gönderebilirsiniz. Bileşen parametreleri, bir ebeveyn bileşenden bir alt bileşene veri aktarmanıza izin vererek bileşenler arasında iletişimi sağlar. Örneğin, Razor Bileşeninizde bir parametre şu şekilde tanımlayabilirsiniz:

@code {
    [Parameter]
    public string Message { get; set; }
}

Ve sonra bu bileşen parametresini Razor Bileşen sınıfınızda şu şekilde kullanabilirsiniz:

<p>@Message</p>

Ve bir ebeveyn bileşenden bileşene veri şu şekilde gönderebilirsiniz:

<MyComponent Message="Hello from parent component!" />

Razor Bileşenleri aynı zamanda sunucu tarafı mantık içerebilir ve istemci tarafında çalıştırılabilir. Örneğin, işleme mantığını yazabilir, HTTP istekleri yapabilir, kullanıcı olaylarını yönetebilir ve diğer sunucu tarafı işlemleri doğrudan Razor Bileşenlerinden yazabilirsiniz. Bu, JavaScript kodu yazmaya gerek kalmadan dinamik ve etkileşimli web sayfaları oluşturmanıza olanak tanır.

Yeniden Kullanılabilir Razor Bileşenleri Oluşturma

Razor Bileşenlerinin faydalarından biri, birden çok sayfada veya uygulamada kullanılabilecek yeniden kullanılabilir kullanıcı arayüzü bileşenleri oluşturma yeteneğidir. Yeniden kullanılabilir bir bileşen oluşturmak için, projenizin "Shared" klasöründe yeni bir ".razor" dosyası oluşturabilirsiniz.

Örneğin, kitapların listesini gösteren bir bileşen oluşturmak istediğimizi varsayalım. 'Shared' klasörüne BookList.razor dosyası gibi yeni bir dosya oluşturabiliriz.

Razor Bileşenleri: Geliştiriciler İçin Nasıl Çalışır: Şekil 5 - Üretilen sınıf

Razor bileşeni şu şekilde tanımlayabiliriz:

@typeparam TItem

@foreach (var book in Books)
{
    <p>@book.Title by @book.Author</p>
}

@code {
    [Parameter]
    public List<TItem> Books { get; set; }
}

Bu örnekte, Razor parametresi olarak bir 'Book' nesneleri listesini alan BookList adında bir bileşene sahibiz. @foreach döngüsü, listede gezinmek ve her kitap başlığını ve yazarını görüntülemek için kullanılır.

Bir sonraki bölümde, web uygulamalarından PDF dosyaları oluşturmak için Razor Bileşenleri ile IronPDF kullanmayı keşfedeceğiz.

Razor Bileşenleri ile IronPDF Kullanımı

IronPDF, geliştiricilerin HTML, CSS ve JavaScript'ten PDF dosyaları oluşturmalarını sağlayan bir C# kütüphanesidir. Google Chrome'u çalıştıran açık kaynaklı tarayıcı olan Chromium tabanlıdır. IronPDF ile, geliştiriciler Razor Bileşenlerini kolayca HTML'ye dönüştürüp PDF dosyaları oluşturabilirler.

IronPDF, HTML'den PDF'ye dönüştürmede mükemmeldir ve düzenin ve stilin bozulmadan kalmasını sağlar. Bu, raporlar, faturalar ve belgeler gibi web tabanlı içeriklerden PDF oluşturmak için özellikle faydalıdır. HTML dosyaları, URL'ler ve HTML dizeleri kolayca PDF dosyalarına dönüştürülebilir.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

		' 1. Convert HTML String to PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

		' 2. Convert HTML File to PDF
		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF Yükleme

Razor Bileşenleri ile IronPDF kullanmak için, önce IronPDF NuGet paketini yüklememiz gerekiyor. Bunu yapmak için bu adımları izleyin:

  1. Projenizi Visual Studio'da açın.
  2. Projeye sağ tıklayın ve "NuGet Paketlerini Yönet" i seçin.
  3. "IronPDF" arayın ve "IronPDF paketini" seçin.
  4. Paketi yüklemek için "Yükle" ye tıklayın.

IronPDF NuGet paketini yükledikten sonra, Razor Bileşenleri uygulamamızda kullanabiliriz.

Razor Bileşenleri: Geliştiriciler İçin Nasıl Çalışır: Şekil 6

Paket yüklendikten sonra IronPdf.ChromePdfRenderer sınıfını kullanarak bir Razor Bileşeninden yeni bir PDF dosyası oluşturabilirsiniz.

ASP.NET Core Razor Bileşenlerinde PDF dosyası oluşturmak için, IronPdf.ChromePdfRenderer metoduna HTML sözdizimi dizesini, HTML dosyasını veya URL'yi geçirebilirsiniz. Örneğin, sayacın artışına sahip bir PDF dosyası oluşturmak istediğimizi varsayalım.

var renderer = new IronPdf.ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>My PDF #" + currentCount + "</h1>");
pdf.SaveAs("myPdf" + currentCount + ".pdf");
var renderer = new IronPdf.ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>My PDF #" + currentCount + "</h1>");
pdf.SaveAs("myPdf" + currentCount + ".pdf");
Dim renderer = New IronPdf.ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>My PDF #" & currentCount & "</h1>")
pdf.SaveAs("myPdf" & currentCount & ".pdf")
$vbLabelText   $csharpLabel

Bu örnekte, ChromePdfRenderer yeni bir örneğini oluşturuyoruz. Ardından, PdfDocument sınıfının yeni bir örneğini oluşturuyoruz ve RenderHtmlAsPdf metoduna bir dize geçiyoruz. Son olarak, PdfDocument.SaveAs metodunu kullanarak oluşturulan PDF dosyasını diske kaydediyoruz.

Bu örnekte, sayaç bileşenimizi değiştirdik. Bir sayaç düğmesinin onClick fonksiyonunu değiştirdik, tıklandığında Sayaç'ın sayısını içeren bir PDF oluşturacak.

Sonuç

Bu makalede, Razor Bileşenleri ile IronPDF kullanarak web uygulamalarından PDF dosyaları oluşturmayı inceledik. Razor Bileşenlerinin temellerini, IronPDF'i nasıl yükleyip kullanacağını ve başlamanıza yardımcı olacak kod örneklerini ele aldık.

Razor Bileşenleri ve IronPDF, sağlam ve özellik açısından zengin web uygulamaları oluşturmak için kullanılabilecek güçlü araçlardır. Bu teknolojileri birleştirerek, geliştiriciler hem işlevsel hem de görsel olarak çekici olan web uygulamaları oluşturabilir.

IronPDF, razor sayfalarını ve URL'leri PDF'ye dönüştürmek, ayrıca PDF belgeleri okumak, oluşturmak ve manipüle etmek için de kullanılabilir. IronPDF, mevcut veya yeni oluşturulan PDF belgelerine başlıklar, altbilgiler, sayfa numaraları, dijital imzalar, parolalar ve ileri düzey PDF manipülasyon özellikleri eklemek gibi daha ayrıntılı PDF kontrolü de sağlar. Geliştirme için ücretsizdir ancak üretim için ücretsiz deneme lisansı veya ticari lisans gerektirir.

Sıkça Sorulan Sorular

Razor Bileşenleri nedir?

Razor Bileşenleri, ASP.NET Core'da bir UI çerçevesidir ve geliştiricilerin C# ve HTML kombinasyonu ile web sayfaları oluşturmalarına olanak tanır; sunucu tarafı mantığı da istemci tarafında çalışabilir. Blazor çerçevesinin bir parçasıdır ve bileşen tabanlı mimariyi destekler.

Razor Bileşenleri web geliştirmeyi nasıl geliştirir?

Razor Bileşenleri, geliştiricilerin dinamik ve etkileşimli web uygulamaları oluşturmak için C# ve HTML kullanmalarına olanak tanıyarak web geliştirmeyi basitleştirir. Bu, sunucu tarafı mantığını ve istemci tarafı etkileşimini daha kesintisiz bir şekilde entegre eder.

Razor Bileşenlerinden nasıl PDF oluşturabilirim?

Razor Bileşenlerinden PDF oluşturmak için, bileşenlerin HTML çıktısını PDF formatına dönüştüren IronPDF'ü kullanabilirsiniz. Bu, bileşenleri bir PDF dosyasına dönüştürmek için IronPdf.ChromePdfRenderer sınıfını kullanarak gerçekleştirilir.

Razor Bileşenlerini kullanmanın faydaları nelerdir?

Razor Bileşenleri, yeniden kullanılabilirlik, modülerlik, C# ile sorunsuz entegrasyon, sunucu tarafı ve istemci tarafı yürütme, SignalR ile gerçek zamanlı iletişim ve yüksek esneklik gibi çeşitli faydalar sunar.

Projemde IronPDF'ü nasıl kurarım?

IronPDF'ü projenize eklemek için Visual Studio'daki NuGet Paket Yöneticisini kullanın. IronPDF paketini arayın ve yükleyin, böylece Razor Bileşenleriniz içinde PDF oluşturma yeteneklerini etkinleştirin.

Razor Bileşenleri hem sunucu tarafında hem de istemci tarafında çalıştırılabilir mi?

Evet, Razor Bileşenleri, seçilen barındırma modeline bağlı olarak hem sunucu tarafında hem de istemci tarafında çalıştırılabilir. Bu esneklik, geliştiricilerin belirli proje ihtiyaçlarına göre uygulama performansını ve güvenliğini optimize etmelerine olanak tanır.

Razor Bileşenleri yeniden kullanılabilirliği nasıl teşvik eder?

Razor Bileşenleri, kendi kendine yeten yapısı sayesinde bir uygulama içinde veya farklı projelerde birden fazla yerde kullanılabilir olmasına olanak tanır, bu da kod tekrarını azaltır ve sürdürülebilirlik ile ölçeklenebilirliği artırır.

Web içeriğinden PDF oluşturmanın bazı kullanım durumları nelerdir?

IronPDF kullanarak web içeriğinden PDF oluşturmak, raporlar, faturalar ve dökümantasyon gibi standartlaştırılmış belgeler oluşturmak için faydalıdır, bu da içeriğin farklı platformlar arasında düzen ve stilini korumasını sağlar.

Razor Bileşenleri ile özel UI öğeleri nasıl oluşturabilirim?

Razor sözdizimini kullanarak '.razor' dosyalarında özel UI öğeleri tanımlayarak oluşturabilirsiniz. Bu, geliştiricilerin C# ve HTML'yi harmanlayarak belirli uygulama ihtiyaçlarına göre dinamik ve yeniden kullanılabilir bileşenler oluşturmalarına olanak tanır.

Razor Bileşenlerinde parametreler nasıl çalışır?

Razor Bileşenlerinde, parametreler, parent bileşenlerden child bileşenlere veri geçirmek için kullanılır. Bu, [Parameter] özelliği ile kolaylaştırılır, bu sayede uygulamanın farklı bölümleri arasında iletişim ve veri paylaşımı sağlar.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Chief Technology Officer

Jacob Mellor, Iron Software'in Teknoloji Müdürü ve C# PDF teknolojisinin öncüsü olan vizyoner bir mühendis. Iron Software’in temel kod tabanının ilk geliştiricisi olarak, şirketin ürün mimarisini kuruluşundan bu yana şekillendirdi ve CEO Cameron Rimington ile birlikte NASA, Tesla ve ...

Daha Fazlasını Oku

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara