
tye .NET (Geliştiriciler İçin Nasıl Çalışır)
Modern yazılım geliştirme dünyasında, dağıtık uygulamalar inşa etmek ve dağıtmak karmaşık ve zorlu olabilir. Birden fazla hizmet, bağımlılık ve dağıtım ortamını yönetmek genellikle önemli çaba ve koordinasyon gerektirir. Bu zorlukları ele almak için Microsoft, .NET uygulamalarının geliştirilmesini, test edilmesini ve dağıtılmasını kolaylaştırmak için tasarlanmış bir geliştirici aracı olan Project Tyeı tanıttı. Bu makalede, .NET geliştiricileri için özelliklerini, faydalarını ve pratik uygulamalarını keşfederek Tye dünyasına dalacağız. IronPDF, bir Iron Software PDF oluşturma kütüphanesi hakkında bilgi edineceğiz ve pratik bir örnekte Tye ve IronPDF kullanacağız.
Project Tye .NET'i Anlamak
Tye, .NET proje uygulamalarını minimal yapılandırma ile geliştirme, test etme ve dağıtma sürecini kolaylaştıran açık kaynaklı deneysel bir geliştirici aracıdır. Microsoft Mühendislik ekibi tarafından geliştirilen Tye, mikro servislerin ve bağımlılıklarının yönetilmesi için tutarlı ve görüşe dayalı bir yaklaşım sağlayarak geliştirme iş akışını basitleştirmeyi amaçlar. Tye, temelinde kapsayıcılaştırma, orkestrasyon ve geliştirici verimliliği ilkelerini benimseyerek sorunsuz uygulama geliştirme ve dağıtımı sağlar.
Tye .NET'in Anahtar Özellikleri
1. Hizmet Keşfi ve Bağımlılık Yönetimi
Tye, .NET uygulaması içindeki hizmetler arasındaki bağımlılıkları otomatik olarak algılar ve yönetir. Hizmet ilişkilerini çıkarsamak için proje meta verilerini ve Docker konteynerlerini kullanır, böylece mikro servisler arasında iletişim ve orkestrasyonu koordine etmeyi daha kolay hale getirir. Bu, birden fazla proje ile mikro servisler geliştirirken işleri kolaylaştırır.
2. Entegre Geliştirme Deneyimi
Tye, .NET geliştiricileri için tanıdık bir geliştirme ortamı sunarak Visual Studio ve Visual Studio Code ile sorunsuz bir şekilde entegre olur. Geliştirme sırasında hızlı yineleme ve sorun giderme sağlar ve uygulama bileşenleri için hata ayıklama, günlük kaydı ve izleme araçları sunar.
3. Docker Kapsayıcılaştırma
Tye, .NET uygulamalarının dağıtım birimi olarak Docker konteynerlerini benimser. Proje yapılandırmalarına dayanarak her hizmet için Dockerfile'ları otomatik olarak oluşturur, geliştirme ve üretim ortamları arasında tutarlı ve yeniden üretilebilir konteynerler oluşturmayı kolaylaştırır, mikro servislerin test edilmesi ve dağıtılmasını kolaylaştırır.
4. Yerel Geliştirme Ortamı
Tye, bağımlılıkları ve hizmetleri tek bir ortamda düzenleyerek yerel geliştirme sürecini basitleştirir. Geliştiriciler, tüm uygulama yığınını tek bir komutla çalıştırabilir ve bağımlılıkların manuel olarak ayarlanması ve yapılandırılması ihtiyacını ortadan kaldırır.
5. Kubernetes'e Dağıtım
Tye, .NET uygulamalarını Kubernetes kümelerine dağıtmak için yerleşik destek sağlar. Proje özelliklerine göre Kubernetes manifestleri ve Helm chart'ları üreterek dağıtım sürecini kolaylaştırır ve bulut yerli ortamlarda konteyner orkestrasyonu için en iyi uygulamaları teşvik eder.
6. İzleme ve Görselleştirilebilirlik
Tye, Prometheus ve Grafana gibi popüler izleme araçları ile entegre olarak uygulama performansı ve sağlığı hakkında bilgi sağlar. Uygulama bileşenlerinden metrikler ve günlükler alarak kaynak kullanımı izleme, darboğazları belirleme ve sorunları gerçek zamanlı olarak teşhis etme imkanı sağlar.
Tye ile Pratik Uygulamalar
Tye'nin .NET uygulama geliştirme ve dağıtımını nasıl kolaylaştırabileceği konusunda bazı pratik senaryoları inceleyelim:
1. Yerel Geliştirme Ortamı
# Start Tye in local development mode with the tye run command
tye run
2. Docker Kapsayıcılaştırma
# Build Docker images for Tye services with the available solution file
tye build
3. Kubernetes'e Dağıtım
# Deploy Tye application to Kubernetes cluster
tye deploy --interactive # deploy microservices and distributed applications
Tye ile Başlangıç
Tye ile başlamak için:
-
Makinenize .NET Core 3.1'i (daha yüksek sürümlerde desteklenmeyen) yükleyin.
-
Tye'ı global bir araç olarak şu komutu kullanarak yükleyin:
dotnet tool install -g Microsoft.Tye --version "0.2.0-alpha.20258.3"
-
Mikro servisleriniz için yeni bir klasör oluşturun.
-
Klasöre gidin ve bir ön uç projesi oluşturun (örneğin, Razor Sayfaları):
mkdir microservices
cd microservices
dotnet new razor -n frontend # frontend service
- Ön uç projenizi çalıştırın ve Tye panosunu başlatın:
tye run frontend # run frontend project
Bu, ön uç uygulamasını derleyecek, çalıştıracak ve izleyecektir. Hizmetlerinizin durumunu görmek için http://localhost:8000 adresinden Tye kontrol paneline erişebilirsiniz.
Tye'ın Yapılandırma Şeması
Tye, ayarların özelleştirilmesine izin veren, özelleştirilebilir bir tye.yaml yapılandırma dosyasına sahiptir. Bu YAML dosyası, tüm projelerinizi ve dış bağımlılıklarınızı içerir. Eğer mevcut bir çözümünüz varsa, Tye otomatik olarak mevcut projelerinizle dolduracaktır.
Bu YAML dosyasını başlatmak için, mikroservis dizinine gidin ve varsayılan bir tye.yaml dosyası oluşturacak aşağıdaki komutu çalıştırın:
tye init
Aşağıda gösterildiği gibi bir tye.yaml dosyası oluşturulacaktır:
name: myawesomeapplication
services:
- name: backendtest
project: backend/backend.csproj
bindings:
- port: 7000
- name: frontendtest
project: frontend/frontend.csproj
replicas: 2
bindings:
- port: 8000
- name: workertest
project: worker/worker.csproj
- name: rabbit
image: rabbitmq:3-management
bindings:
- port: 5672
protocol: rabbitmq
Tye Kullanmanın Faydaları
- Basitleştirilmiş Geliştirme İş Akışı: Tye, yerel olarak .NET uygulamaları geliştirmek, test etmek ve hata ayıklamak için birleşik bir araç seti sağlayarak geliştirme iş akışını kolaylaştırır.
- Pazardaki Zamanı Hızlandırdı: Hizmet keşfi, bağımlılık yönetimi ve kapsayıcılaştırma gibi yaygın görevleri otomatikleştirerek, Tye üretim ortamlarına uygulamaların dağıtılması için gereken zamanı ve çabayı azaltır.
- Geliştirilmiş İşbirliği: Tye, uygulama bağımlılıklarının ve dağıtım yapılandırmalarının yönetimi için ortak bir platform sağlayarak geliştirme, operasyon ve DevOps ekipleri arasında işbirliğini teşvik eder.
- Bulut-Native Hazırlığı: Tye, Kubernetes gibi bulut-native ortamlarda çalışacak şekilde .NET uygulamalarını gerekli araçlar ve uygulamalarla donatarak, organizasyonların modern altyapı paradigmalarına güvenle geçiş yapmasını sağlar.
- Topluluk Desteği ve Katkısı: Microsoft tarafından desteklenen açık kaynaklı bir proje olarak, Tye gelişimine, belgelerine ve ekosistemine aktif olarak katkıda bulunan canlı bir topluluk ile faydalanmaktadır.
Project Tye Lisansı
Project Tye, geliştirme ve ticari amaçlar için kullanımı ücretsiz olan bir MIT Lisansı ile birlikte gelir.
IronPDF Tanıtımı

IronPDF, HTML, CSS, görüntüler ve JavaScript'ten PDF oluşturma, düzenleme ve imzalama için tasarlanmış güçlü bir C# kütüphanesidir. Düşük bellek kullanımıyla ticari düzeyde performans sunar.
IronPDF'nin Ana Özellikleri
1. HTML'den PDF'ye Dönüşüm
HTML dosyalarını, HTML dizelerini ve URL'leri PDF'ye dönüştürün. Örneğin, bir web sayfasını Chrome PDF render edici kullanarak PDF olarak işleyin.
2. Platformlar Arası Destek
.NET Core, .NET Standard ve .NET Framework gibi çeşitli .NET platformlarıyla uyumludur. Windows, Linux ve macOS'u destekler.
3. Düzenleme ve İmza
Özellikleri ayarlayın, parolalar ve izinlerle güvenlik ekleyin ve PDF'lerinizi dijital olarak imzalayın.
4. Sayfa Şablonları ve Ayarları
Başlıklar, altbilgiler, sayfa numaraları ve ayarlanabilir kenar boşlukları ile PDF'leri özelleştirin. Duyarlı düzenleri ve özel kağıt boyutlarını destekler.
5. Standartlara Uygunluk
PDF/A ve PDF/UA gibi PDF standartlarına uygunluk gösterir. UTF-8 karakter kodlamasını destekler ve görüntüler, CSS ve yazı tipleri gibi varlıkları işler.
Şimdi bu iki kütüphaneyi kullanarak pratik bir örnek görelim.
IronPDF Kullanarak PDF Belgesi Oluşturun ve Çalıştırmak İçin Tye Kullanın
Öncelikle, bir Visual Studio Razor uygulaması oluşturalım. Visual Studio'yu açın, yeni bir proje oluşturun ve aşağıda gösterildiği gibi Razor uygulamasını seçin.

Proje adını ve konumunu sağlayın.

Bir sonraki adımda, .NET Framework sürümünü seçin ve Oluştur'a tıklayın. Tye sadece .NET 3.1'de çalıştığı için aynı sürümü seçeceğiz.

IronPDF'i NuGet Paketi Visual Studio Paket Yöneticisinden yükleyin.

Sonra Dosya Tarayıcıyı açın ve çözüm klasörüne gidin. Ardından CMD istemini açın.
Tye'ı şu komutla yükleyin:
dotnet tool install -g Microsoft.Tye --version "0.11.0-alpha.22111.1"
VEYA Tye zaten yüklüyse ve onu güncellemek istiyorsanız, aşağıdaki komutu kullanın:
dotnet tool update -g Microsoft.Tye --version "0.11.0-alpha.22111.1"
Tye'ı aşağıdaki komutu kullanarak başlatın:
tye init
Bu aşağıda gösterildiği gibi bir taslak YAML dosyası oluşturacaktır:
# tye application configuration file
# read all about it at https://github.com/dotnet/tye
#
# when you've given us a try, we'd love to know what you think:
# https://aka.ms/AA7q20u
#
# define global settings here
# name: exampleapp # application name
# registry: exampleuser # dockerhub username or container registry hostname
# define multiple services here
services:
- name: frontend
project: Frontend\Frontend.csproj # msbuild project path (relative to this file)
# executable: app.exe # path to an executable (relative to this file)
args: -f=netcoreapp3.1 # arguments to pass to the process
# replicas: 5 # number of times to launch the application
# env: # array of environment variables
# - name: key
# value: value
# bindings: # optional array of bindings (ports, connection strings)
# - port: 8080 # number port of the binding
Tye'ı şu komutla çalıştırın:
tye run frontend
Çalışan uygulamayı görmek için URL: http://127.0.0.1:8000/ adresinde Tye kontrol paneli açılacaktır.
Tye Panosu

Bir sonraki adımda, bir düğmeye tıklamayla herhangi bir web sitesi URL'sinden bir PDF belgesi oluşturmak için aşağıdaki kodu projeye ekleyin.
Aşağıdaki kodu Index.cshtml dosyasına ekleyin:
@page
@model IndexModel
@{
ViewData["Title"] = "Generate PDF";
}
<form method="post" class="text-center flex-row">
<h1 class="display-4">Welcome To URL To PDF Generator</h1>
<p>Enter Website URL:</p>
<input type="text" asp-for="UrlInput" />
<button type="submit">Generate PDF</button>
@if (Model.Message != null)
{
<p>@Model.Message</p>
}
</form>
Ardından aşağıdaki kodu Index.cshtml.cs dosyasına ekleyin:
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Logging;
namespace Frontend.Pages
{
public class IndexModel : PageModel
{
public string Message { get; set; }
[BindProperty]
public string UrlInput { get; set; }
private readonly ILogger<IndexModel> _logger;
public IndexModel(ILogger<IndexModel> logger)
{
_logger = logger;
}
public void OnGet()
{
}
public IActionResult OnPost()
{
if (string.IsNullOrEmpty(UrlInput))
{
ModelState.AddModelError("UrlInput", "Please enter a URL.");
return Page();
}
// Create a PDF from the given URL using ChromePdfRenderer
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(UrlInput);
// Return the PDF as a file result
var pdfBytes = pdf.BinaryData;
return File(pdfBytes, "application/pdf", "GeneratedDocument.pdf");
}
}
}Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.RazorPages
Imports Microsoft.Extensions.Logging
Namespace Frontend.Pages
Public Class IndexModel
Inherits PageModel
Public Property Message As String
<BindProperty>
Public Property UrlInput As String
Private ReadOnly _logger As ILogger(Of IndexModel)
Public Sub New(logger As ILogger(Of IndexModel))
_logger = logger
End Sub
Public Sub OnGet()
End Sub
Public Function OnPost() As IActionResult
If String.IsNullOrEmpty(UrlInput) Then
ModelState.AddModelError("UrlInput", "Please enter a URL.")
Return Page()
End If
' Create a PDF from the given URL using ChromePdfRenderer
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf(UrlInput)
' Return the PDF as a file result
Dim pdfBytes = pdf.BinaryData
Return File(pdfBytes, "application/pdf", "GeneratedDocument.pdf")
End Function
End Class
End NamespaceŞimdi Tye'ı aşağıdaki gibi çalıştırın:

Bu, Tye panosunu başlatacaktır.

Şimdi bağlayıcılar bölümündeki herhangi bir bağlantıya tıklayarak PDF üretici uygulamasını açın ve PDF oluşturma için bir örnek URL girin.

PDF çıktısını almak için üret düğmesine tıklayın:

Kod Açıklaması
Index.cshtml, web sitesi URL'sini yakalamak ve PDF oluşturumunu başlatmak için giriş alanı ve butonu içerir.Index.cshtml.cs, IronPDF kullanarak PDF belgesini oluşturmak için gerekli mantığı içeren kod-arkası dosyasıdır.- URL'den PDF üretmek için
ChromePdfRenderersınıfı veRenderUrlAsPdf()metodu kullanılır. - Üretilen URL, POST metoduna yanıt olarak döner.
tye runkomutu, tüm çalışan servisleri görüntüleyebileceğiniz Tye kontrol panelini başlatacaktır.- PDF belgelerini oluşturmak için Tye panosunda Ön Uç hizmetine tıklayın.
IronPDF Lisansı
IronPDF Lisanslama sayfasını ziyaret edin.
Lisans Anahtarını aşağıda gösterildiği gibi appSettings.json dosyasına yerleştirin:
{
"IronPdf.License.LicenseKey": "The Key Here"
}
Sonuç
Sonuç olarak, Tye, dağıtılmış uygulamaları geliştirme, test etme ve dağıtma konusunda .NET ekosisteminde önemli bir ilerleme temsil eder. İster deneyimli bir .NET geliştiricisi olun, ister konteynerleştirme ve mikro hizmetlere yeni başlamış olun, Tye modern geliştirme uygulamalarını benimsemenizi ve bulut-native mimariye doğru yolculuğunuzu hızlandırmanızı sağlayan kullanıcı dostu bir platform sunar.
IronPDF, geliştiricilerin HTML içeriğinden PDF belgeleri oluşturmasını, manipüle etmesini ve render etmesini kolaylaştıran bir .NET kütüphanesidir. HTML'yi PDF'ye dönüştürme, PDF'leri birleştirme ve bölme, başlıklar, altbilgiler ve filigranlar ekleme desteği verir. IronPDF kullanım kolaylığı, yüksek kaliteli render etme ve .NET Core ve .NET Framework uygulamalarıyla uyumluluğu ile bilinir. Hem IronPDF kütüphanesi hem de Tye derleme aracı bilgisine sahip geliştiriciler, PDF oluşturma yetenekleriyle modern uygulamalar geliştirme konusunda ileri beceriler kazanabilirler.

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.
İlgili Makaleler


