C# ile IronPDF Kullanarak Tüm PDF DOM Nesnelerine Nasıl Erişilir | IronPDF
Telerik Document Processing, Telerik UI takımları ve DevCraft paketlerinin bir parçası olarak gönderilir, geliştiricilere PDF oluşturma yetenekleri Word, Excel ve PowerPoint işleme ile birlikte sunulur. Ancak, modern web standartları geliştikçe ve projeler tam CSS3, Flexbox ve Bootstrap desteği talep ettikçe, geliştirme ekipleri Telerik'in HTML'den PDF'e dönüştürme mimarisindeki sınırlamalar hakkında endişelerini dile getirdi.
Bu kılavuz, gerçek geçiş senaryolarından doğrudan alınan adım adım yönergeler, kod karşılaştırmaları ve pratik örneklerle birlikte Telerik Document Processing'den IronPDF'ye eksiksiz bir geçiş yolu sağlar.
Neden Telerik Document Processing'den Geçilmelidir
Telerik Document Processing'den geçiş kararı genellikle modern web içeriğiyle çalışırken ortaya çıkan teknik sınırlamalardan kaynaklanmaktadır. Bu sınırlamaların anlaşılması, geçiş çabasını haklı çıkarır ve IronPDF'nin çözdüğü konular için beklentileri oluşturur.
Bildirilen Teknik Sınırlamalar
Geliştiriciler, modern HTML ve CSS'yi işleme alırken Telerik Belge İşlemeile ilgili sorunlar bildirmiştir:
| Issue | Etki | IronPDF Çözümü |
|---|---|---|
| CSS ayrıştırma sınırlamaları | Modern CSS çerçeveleri, Bootstrap gibi, başarısız oluyor | Tam Chromium CSS desteği |
| Div'den paragrafa dönüştürme | HTML yapısı düzleşir, düzenler bozulur | Doğrudan HTML render |
| Akış belgesi modeli | Ara dönüşümü zorlar | Yerel HTML'den PDF'ye |
| Harici CSS sorunları | Karmaşık seçiciler yok sayılır | Tam CSS dosya desteği |
| Hafıza sorunları | OutOfMemoryException büyük dosyalarda rapor edildi | Verimli akış |
Temel Sorun: HTML Doğru Şekilde İşlenmiyor
Telerik Document Processing, PDF üretmeden önce HTML'yi ara bir "Flow Document" modeline dönüştürür. Bu mimari karar, zincirleme sorunlar yaratır:
- HTML yapısını düzleştirir —
<div>öğeleri paragrafa dönüşür - Modern CSS'yi görmezden gelir — Flexbox ve Grid düzenleri tamamen başarısız olur
- Bootstrap bozulur — Sütun sistemleri sütun olarak işlenmez
- Biçimlendirmeyi kaybeder — Karmaşık CSS seçicileri göz ardı edilir
Standart CSS düzenlerini kullanan bu modern HTML düşünün:
<!-- This modern HTML/CSS BREAKS in Telerik Belge İşleme-->
<div class="container">
<div class="row">
<div class="col-md-6">Column 1</div>
<div class="col-md-6">Column 2</div>
</div>
</div>
<div style="display: flex; gap: 20px;">
<div style="flex: 1;">Flex Item 1</div>
<div style="flex: 1;">Flex Item 2</div>
</div>
<div style="display: grid; grid-template-columns: repeat(3, 1fr);">
<div>Grid Item 1</div>
<div>Grid Item 2</div>
<div>Grid Item 3</div>
</div>
Telerik Document Processing'te, tüm bu düzenler ardışık paragraflar olarak işlenir. İki sütunlu Bootstrap düzeni iki satır metin haline gelir. Flexbox öğeleri dikey olarak üst üste biner. CSS Grid öğeleri arka arkaya görünür.
Telerik Document Processing'te Başarısız Olan CSS Özellikleri
Geliştiriciler, kapsamlı CSS uyumluluk sorunlarını belgelemişlerdir:
/* ❌ These CSS features DON'T WORK in Telerik Belge İşleme*/
/* Flexbox -Desteklenmiyor*/
.container { display: flex; }
.item { flex: 1; }
/* CSS Grid -Desteklenmiyor*/
.grid { display: grid; grid-template-columns: repeat(3, 1fr); }
/* Bootstrap columns - Converted to paragraphs */
.col-md-6 { /* Ignored, becomes linear text */ }
/* CSS Variables -Desteklenmiyor*/
:root { --primary: #007bff; }
.btn { color: var(--primary); }
/* Complex selectors - Often ignored */
.container > .row:first-child { }
.item:hover { }
.content::before { }
/* Modern units - Limited support */
.box { width: calc(100% - 20px); }
.text { font-size: 1.2rem; }
Büyük Belgeler için Performans Raporları
CSS sınırlamaları ötesinde, geliştiriciler, büyük dosyaların işlenmesi sırasında Telerik Belge İşlemeile OutOfMemoryException hataları bildirmiştir, ayrıca desteklenmeyen renk alanları ve bazı senaryolarda PDF birleştirmesi sırasında çökme sorunları da bildirilmiştir. Yüksek hacimli belge üretimi ile çalışan ekipler, uzun süreli kullanıma girmeden önce değerlendirilmeye değer stabilite sorunları not etmişlerdir.
##IronPDF vs Telerik Document Processing: Özellik Karşılaştırması
Özellik farklarının anlaşılması, geçiş yatırımını değerlendirmek için teknik karar vericilere yardımcı olur:
| Özellik | Telerik Belge İşleme | IronPDF |
|---|---|---|
| HTML İşleme | Akış Belgesi dönüştürme | Doğrudan Chromium işleme |
| CSS3 Desteği | Sınırlı, birçok özellik başarısız oluyor | Tam CSS3 |
| Flexbox | Desteklenmiyor | Desteklenen |
| CSS Grid | Desteklenmiyor | Desteklenen |
| Bootstrap | Bozuk (div düzleştirme) | Bootstrap 5 dahil desteklenir |
| Dış CSS | Kısmi | Desteklenen |
| JavaScript | Desteklenmiyor | Tam destek |
| Büyük Belgeler | Bellek sorunları bildirildi | Verimli akış |
| API Karmaşıklığı | Karmaşık (sağlayıcılar, modeller) | Basit (bir sınıf) |
| Lisans Modeli | Ticari, DevCraft parçası | Basit bağımsız lisanslama |
Hızlı Başlangıç Geçişi: İlk PDF'iniz için 5 Dakika
Telerik Document Processing'ten IronPDF'ye geçiş hemen başlatılabilir. İşte IronPDF ile ilk PDF'inizi üretmek için en hızlı yol.
1. Adım: NuGet Paketlerini Güncelleyin
Tüm Telerik belge işleme paketlerini kaldırın:
# Remove Telerik packages
dotnet remove package Telerik.Documents.Core
dotnet remove package Telerik.Documents.Flow
dotnet remove package Telerik.Documents.Flow.FormatProviders.Pdf
dotnet remove package Telerik.Documents.Fixed
IronPDF'i yükleyin:
# Install IronPDF
dotnet add package IronPdf
Adım 2: Kullanım Açıklamalarını Güncelleyin
Telerik ad alanlarınıIronPDF ad alanı ile değiştirin:
// Before (Telerik Document Processing)
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using Telerik.Documents.Primitives;
// After (IronPDF)
using IronPdf;Imports Telerik.Windows.Documents.Flow.FormatProviders.Html
Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Flow.Model
Imports Telerik.Documents.Primitives
' After (IronPDF)
Imports IronPdfAdım 3: Lisans Anahtarını Ekleyin
Uygulama başlangıcında lisansınızı başlatın:
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";' Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"Adım 4: PDF Üretim Kodunuzu Güncelleyin
Telerik Document Processing'ten IronPDF'ye dönüşüm, kod tabanınızı önemli ölçüde basitleştirir.
Önce (Telerik Document Processing):
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(htmlContent);
PdfFormatProvider pdfProvider = new PdfFormatProvider();
byte[] pdfBytes = pdfProvider.Export(document);
File.WriteAllBytes("output.pdf", pdfBytes);Imports Telerik.Windows.Documents.Flow.FormatProviders.Html
Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Flow.Model
Dim htmlProvider As New HtmlFormatProvider()
Dim document As RadFlowDocument = htmlProvider.Import(htmlContent)
Dim pdfProvider As New PdfFormatProvider()
Dim pdfBytes As Byte() = pdfProvider.Export(document)
File.WriteAllBytes("output.pdf", pdfBytes)Sonrası (IronPDF):
using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");Imports IronPdf
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("output.pdf")Fark hemen fark edilir:IronPDF kodunun 3 satırı, Telerik Belge İşlemekodunun 15'ten fazla satırını değiştirir. Daha da önemlisi,IronPDF sürümü, Telerik'in Flow Document modelinin ele alamadığı modern CSS'yi doğru şekilde işler.
Kod Göç Örnekleri
HTML'yi PDF'ye Dönüştürme
Bu, en yaygın PDF üretim kullanımı senaryosudur. Telerik Belge İşlemeve IronPDF arasındaki mimari farklılıklar bu karşılaştırmada belirginleşir.
Telerik Document Processing Yaklaşımı:
// NuGet: Install-Package Telerik.Documents.Flow
// NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using System.IO;
string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(html);
PdfFormatProvider pdfProvider = new PdfFormatProvider();
using (FileStream output = File.OpenWrite("output.pdf"))
{
pdfProvider.Export(document, output);
}Imports Telerik.Windows.Documents.Flow.FormatProviders.Html
Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Flow.Model
Imports System.IO
Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
Dim htmlProvider As New HtmlFormatProvider()
Dim document As RadFlowDocument = htmlProvider.Import(html)
Dim pdfProvider As New PdfFormatProvider()
Using output As FileStream = File.OpenWrite("output.pdf")
pdfProvider.Export(document, output)
End UsingIronPDF Yaklaşımı:
// NuGet: Install-Package IronPdf
using IronPdf;
string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");Imports IronPdf
Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")Telerik sürümü, bir HtmlFormatProvider oluşturmayı, bir RadFlowDocument 'e aktarmayı, bir PdfFormatProvider oluşturmayı ve dosya akışlarını manuel olarak yönetmeyi gerektirir. IronPDF'nin ChromePdfRenderer tüm süreci tek bir yöntem çağrısıyla ele alır.
Daha gelişmiş HTML'den PDF'ye senaryolar için HTML to PDF dönüşüm kılavuzuna bakın.
URL'leri PDF'ye Dönüştürme
Web sayfalarını PDF olarak yakalamak, kütüphaneler arasında başka bir önemli farkı ortaya koyar.
Telerik Document Processing Yaklaşımı:
// NuGet: Install-Package Telerik.Documents.Flow
// NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
string url = "https://example.com";
using HttpClient client = new HttpClient();
string html = await client.GetStringAsync(url);
HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(html);
PdfFormatProvider pdfProvider = new PdfFormatProvider();
using (FileStream output = File.OpenWrite("webpage.pdf"))
{
pdfProvider.Export(document, output);
}Imports Telerik.Windows.Documents.Flow.FormatProviders.Html
Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Flow.Model
Imports System.IO
Imports System.Net.Http
Imports System.Threading.Tasks
Module Module1
Sub Main()
Dim url As String = "https://example.com"
Using client As New HttpClient()
Dim html As String = Await client.GetStringAsync(url)
Dim htmlProvider As New HtmlFormatProvider()
Dim document As RadFlowDocument = htmlProvider.Import(html)
Dim pdfProvider As New PdfFormatProvider()
Using output As FileStream = File.OpenWrite("webpage.pdf")
pdfProvider.Export(document, output)
End Using
End Using
End Sub
End ModuleIronPDF Yaklaşımı:
// NuGet: Install-Package IronPdf
using IronPdf;
string url = "https://example.com";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");Imports IronPdf
Dim url As String = "https://example.com"
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf(url)
pdf.SaveAs("webpage.pdf")Telerik Document Processing'in yerel URL'den PDF'ye dönüştürme yeteneği yoktur. HTML içeriğini HttpClient kullanarak manuel olarak getirmelisiniz, bu süreçte dış CSS, JavaScript yürütmesi ve dinamik içerik kaybolur. IronPDF'nin RenderUrlAsPdf yöntemi, tarayıcıda göründüğü gibi tam olarak işlenmiş sayfayı yakalar.
URL to PDF belgelerini kimlik doğrulama ve özel başlıklar dahil olmak üzere ek seçenekler için inceleyin.
Birden Fazla PDF'yi Birleştirme
PDF birleştirme, bu .NET PDF kütüphaneleri arasındaki ayrıntılardaki farkı ortaya koyar.
Telerik Document Processing Yaklaşımı:
// NuGet: Install-Package Telerik.Documents.Fixed
using Telerik.Windows.Documents.Fixed.FormatProviders.Pdf;
using Telerik.Windows.Documents.Fixed.Model;
using System.IO;
PdfFormatProvider provider = new PdfFormatProvider();
RadFixedDocument document1;
using (FileStream input = File.OpenRead("document1.pdf"))
{
document1 = provider.Import(input);
}
RadFixedDocument document2;
using (FileStream input = File.OpenRead("document2.pdf"))
{
document2 = provider.Import(input);
}
RadFixedDocument mergedDocument = new RadFixedDocument();
foreach (var page in document1.Pages)
{
mergedDocument.Pages.Add(page);
}
foreach (var page in document2.Pages)
{
mergedDocument.Pages.Add(page);
}
using (FileStream output = File.OpenWrite("merged.pdf"))
{
provider.Export(mergedDocument, output);
}Imports Telerik.Windows.Documents.Fixed.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Fixed.Model
Imports System.IO
Dim provider As New PdfFormatProvider()
Dim document1 As RadFixedDocument
Using input As FileStream = File.OpenRead("document1.pdf")
document1 = provider.Import(input)
End Using
Dim document2 As RadFixedDocument
Using input As FileStream = File.OpenRead("document2.pdf")
document2 = provider.Import(input)
End Using
Dim mergedDocument As New RadFixedDocument()
For Each page In document1.Pages
mergedDocument.Pages.Add(page)
Next
For Each page In document2.Pages
mergedDocument.Pages.Add(page)
Next
Using output As FileStream = File.OpenWrite("merged.pdf")
provider.Export(mergedDocument, output)
End UsingIronPDF Yaklaşımı:
// NuGet: Install-Package IronPdf
using IronPdf;
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");Imports IronPdf
Dim pdf1 = PdfDocument.FromFile("document1.pdf")
Dim pdf2 = PdfDocument.FromFile("document2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")Telerik sürümü, her belgeyi ayrı ayrı ithal etmeyi, sayfaları manuel olarak yineleyerek yeni bir belgeye eklemeyi ve birden fazla dosya akışını yönetmeyi gerektirir. IronPDF'nin PdfDocument.Merge() yöntemi her şeyi tek bir çağrıda ele alır.
Seçici sayfa çıkartma dahil gelişmiş birleştirme senaryoları için birleştirme ve parçalama PDF kılavuzuna bakın.
Telerik Belge İşlemeAPI'den IronPDF'ye Eşleme
Bu referans tablosu doğrudan API eşdeğerlerini göstererek geçişi hızlandırır:
| Telerik Belge İşleme | IronPDF |
|---|---|
HtmlFormatProvider | ChromePdfRenderer |
RadFlowDocument | Gerekli değil |
PdfFormatProvider | pdf.SaveAs() |
RadFlowDocumentEditor | HTML manipülasyonu |
Section | HTML <section> |
Paragraph | HTML <p> |
PdfExportSettings | RenderingOptions |
RadFixedDocument | PdfDocument |
| Manuel sayfa yinelemesi | PdfDocument.Merge() |
Başlıklar ve Altbilgileri Ele Alma
Telerik Document Processing, başlıklar ve altbilgiler için programatik bir model kullanır. IronPDF, dinamik yer tutucularla HTML tabanlı başlıklar sağlar.
Telerik Belge İşleme:
section.Headers.Default.Blocks.AddParagraph().Inlines.AddRun("Header Text");
section.Footers.Default.Blocks.AddParagraph().Inlines.AddRun("Footer Text");section.Headers.Default.Blocks.AddParagraph().Inlines.AddRun("Header Text")
section.Footers.Default.Blocks.AddParagraph().Inlines.AddRun("Footer Text")IronPDF:
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center;'>Header Text</div>",
MaxHeight = 25
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center;'>Footer Text</div>",
MaxHeight = 25
};Imports System
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
.HtmlFragment = "<div style='text-align:center;'>Header Text</div>",
.MaxHeight = 25
}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
.HtmlFragment = "<div style='text-align:center;'>Footer Text</div>",
.MaxHeight = 25
}IronPDF'nin HTML tabanlı yaklaşımı, başlıklar ve altbilgilerde tam CSS stili ve sayfa numaraları ile tarihler için dinamik yer tutucular sağlar. Başlıklar ve altbilgiler belgelerinde daha fazlasını öğrenin.
Birim Dönüşümü: DIPs'ten Milimetrelere
Telerik Document Processing, ölçümler için cihazdan bağımsız pikseller (DIP) kullanır.IronPDF milimetre kullanır. Bu, geçiş sırasında dönüştürmeyi gerektirir:
// Telerik uses DIPs (device-independent pixels)
//IronPDF uses millimeters
// 1 inch = 25.4mm
renderer.RenderingOptions.MarginTop = 25.4; // 1 inch
renderer.RenderingOptions.MarginBottom = 25.4;
// Or use the helper method for paper size
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);' Telerik uses DIPs (device-independent pixels)
' IronPDF uses millimeters
' 1 inch = 25.4mm
renderer.RenderingOptions.MarginTop = 25.4 ' 1 inch
renderer.RenderingOptions.MarginBottom = 25.4
' Or use the helper method for paper size
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11)Telerik Belge İşlemeGeçiş Kontrol Listesi
Geçiş Öncesi Görevler
Kod tabanınızı tüm Telerik Belge İşlemekullanımını belirlemek için inceleyin:
grep -r "using Telerik.Windows.Documents" --include="*.cs" .
grep -r "RadFlowDocument\|HtmlFormatProvider\|PdfFormatProvider" --include="*.cs" .
Kullanılan biçim sağlayıcıları, başlık/altbilgi yapılandırmaları, özel sayfa ayarları ve herhangi bir Flow Document modeli değişiklikleri dahil mevcut uygulamaları belgeleyin.
Göç Sırasında
- Telerik NuGet paketlerini kaldırın 2.IronPDF NuGet paketini yükleyin
- Kullanım bildirimlerini
Telerik.Windows.Documents'denIronPdf'ye güncelleyin - Başlangıçta lisans anahtarı başlatma ekleyin
HtmlFormatProvider'iChromePdfRendererile değiştirinRadFlowDocumentara basamakları kaldırınPdfFormatProviderçıktıları doğrudanSaveAs()çağrıları ile değiştirin- Başlıkları/altbilgileri
HtmlHeaderFooterkullanacak şekilde güncelleyin - Sayfa ayarlarını
RenderingOptionsbiçimine dönüştürün - Marj birimlerini DIPs'tan milimetrelere güncelleyin
Geçiş Sonrası Doğrulama
Geçişten sonra, bu iyileştirmeleri doğrulayın:
- CSS işleme önemli ölçüde iyileşmelidir
- Bootstrap düzenleri doğru şekilde işlenmelidir (Telerik'te böyle değil)
- Flexbox ve Grid düzenleri çalışmalıdır (Telerik'te çalışmaz)
- Dinamik içerikler için JavaScript çalıştırma işlevi sağlanmalıdır
- Büyük belge üretimi bellek istisnaları olmadan tamamlanmalıdır
IronPDF'e Geçmenin Temel Faydaları
Telerik Document Processing'ten IronPDF'ye geçmek hemen faydalar sağlar:
Modern Chromium İşleme Motoru: IronPDF, aynı işleme motorunu Google Chrome gibi kullanır, bu da PDF'lerin modern tarayıcılarda görünen içerik gibi doğru şekilde işlenmesini sağlar. Bu, Telerik'in Flow Document modeline özgü CSS uyumluluk sorunlarını ortadan kaldırır.
Tam CSS3 ve JavaScript Desteği: Flexbox, Grid, Bootstrap 5, CSS değişkenleri ve modern JavaScript hepsi doğru şekilde çalışarak, çağdaş web standartlarıyla uyumluluğu sağlar.
Daha Basit API: Daha az kod satırı, ara belge modelleri olmadan ve sezgisel yöntem adları geliştirme süresini kısaltır ve bakım yükünü azaltır.
Bağımsız Lisanslama: IronPDF, kapsamlı bir paket satın alımı gerektirmeyen basit bir lisanslama sunar, yalnızca PDF yetenekleri ihtiyacı olan ekipler için maliyet-etkin bir çözüm sağlar.
Aktif Geliştirme: Düzenli güncellemeler mevcut ve gelecekteki .NET sürümleri, güvenlik yamaları ve özellik iyileştirmeleri ile uyumluluğu sağlar.

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.