Blazor - Razor - WebAssembly (1 Viewer)

Joined
Mar 22, 2019
Credits
71
Rating - 0%
Razor
View hidden content is available for registered users!

Asp.Net Mvc 3 teknolojisiyle birlikte gelen razor view engine görüntüleme biçimidir. Razor syntax aracılıyla ana makine kısmında ( server side ) çalışacak kodların ayrımını ' @ ' işareti aracılıyla yapmaktayız.

for döngüsü şu şekilde

if-else sorgusu şu şekilde



WebAssembly

View hidden content is available for registered users!

WebAssembly veya wasm; Browser’lar için geliştirilmiş low-level bir bytecode formatı. C/C++ve Rust gibi low-level dillerde yazdığımız kodların derlenip browser’da çalışmasına olanak sağlıyor ve şu an bütün Browser’lar tarafından destekleniyor.

Proje 2015 yılında Google, Mozilla, Apple ve Microsoft’un bir araya gelerek WebAssembly Community Group’u kurmalarıyla başladı. Şuan belli bir olgunluk seviyesine ulaşmış durumda.
Browser üreticileri ise her versiyonda kendi javascript engine’lerini (Google V8, Microsoft Chakra, Mozilla SpiderMonkey) geliştirerek javascript’in daha hızlı, performanslı çalışmasını sağlıyorlar.

Fakat javascript dynamic-typed bir dil ve static-typed dillere karşılaştırılınca optimize edilmesinin bir sınırı var. Özellikle günümüzde 3d, VR (Virtual Reality) gibi işlerin browser’lara taşınmasıyla beraber performans beklentileri iyice yükseldi.

Yani javascript’in bottleneck olduğu bir noktaya doğru gidiyoruz. İşte WebAssembly’e ihtiyaç tam bu noktada çıkıyor. Performans!!!

Peki Nasıl Çalışıyor WebAssembly?
View hidden content is available for registered users!



C/C++ veya Rust ile yazdığınız kod binary formatta bir AST’ye (Abstract Syntax Tree) derlenir ve browser’a gönderilir. Javascript gibi interpret(yorumlanan) edilen dillerin aksine run-time da herhangi bir parsing işlemi yapılmadığından dolayı başlangıç zamanı çok daha hızlıdır. Çünkü zaten elinizde parsing ve optimizasyon yapılmasına ihtiyaç olmayan bir modül var. Yani AST direkt olarak platforma en uygun en optimize machine koduna derlenebilir.

WebAssembly ve Node.js
View hidden content is available for registered users!

Yazıyı buraya kadar okuduktan sonra WebAssembly‘in sadece Browser’da çalışan bir teknoloji olduğunu düşünmüş olabilirsiniz. Ama Node.js, Google V8 Engine kullandığından dolayı WebAssembly modüllerini kullanabiliyorsunuz. Hatta bu şekilde geliştirdiğiniz node.js uygulamalarında ürettiğiniz WebAssembly modüllerini hem Browser tarafında hem de back-end de ortaklaştırmanız da mümkün...

WebAssembly ve Diğer Diller
View hidden content is available for registered users!

Ağırlıklı olarak C# ile uygulama geliştiren biri olarak ilk işim C# ile WebAssembly geliştirmeyi araştırmak oldu.

Peki WebAssembly Kullanmalı Mıyız?
View hidden content is available for registered users!

Hala yeni bir teknoloji ama üzerinde Microsoft, Google, Apple, Mozilla gibi büyük şirketlerin çalıştığını göz önünde bulundurusak ilerleyen yıllarda bir standart olacağını ön görebiliriz. Bence bir Web Developer olarak üzerinde denemeler yapmaya başlamanız lazım. Eğer hem JavaScript hem de C/C++ bilen biriyseniz zaten öğrenmeniz çok uzun sürmeyecektir.


Blazor

Blazor Nedir?
View hidden content is available for registered users!

Blazor, Microsoft tarafından geliştirilmiş istemci tarafı için C# ile kod geliştirmeye imkan veren bir çatıdır. Blazor sayesinde istemci tarafı için yazdığınız C# kodu bir eklenti kurmadan ya da bir çevrim (transpile) işlemi yapmadan tüm modern tarayıcılarda çalışacaktır.

Aynı dil ile hem backend hem frontend için geliştirme yapabilmek bizi önemli bir geliştirme eforundan ve maliyetinden kurtaracaktır.
Diğer bir avantajı ise Visual Studio gibi gelişmiş ide’ler ile çalışabiliyor olmamız olacaktır.

Peki Bu Nasıl Mümkün Olabilmektedir?
View hidden content is available for registered users!

Yeni geliştirilmiş olan WebAssembly (Wasm) standardı sayesinde anlattığımız şeyler mümkün olmaktadır. WebAssembly ikili formatta (binary) assembly benzeri düşük seviyeli bir dildir. Tarayıcılarda çalışmak üzere geliştirilmiştir. Javascript gibi tarayıcının barındırmış olduğu korumalı alanda (sandbox) çalışmak üzere geliştirilmiştir.

Blazor çatısıyla da aynı şekilde C# ve Razor kodunu wasm formatına çevirebilmektesiniz.

Blazor’u önemli yapan taraflardan birisi de Microsoft tarafından geliştirilmiş olması ve resmi olarak desteklenmesidir.

Blazor’un Dezavantajları
View hidden content is available for registered users!

Mevcut haliyle Blazor’un dezavantajlarından da bahsetmiş olalım.

Dosya Büyüklüğü: Javascript ile geliştirilmiş kodlara kıyasla Blazor ile oluşturulmuş uygulama dosyaları daha büyüktür ve diskte daha fazla yer işgal etmektedir. Bu durumda sayfanın ilk açılışında yavaşlamaya sebep olabilir.

Hata Ayıklama (Debugging): Hata Ayıklama anlamında henüz yeterince gelişmiş olduğunu söylememiz zor.
Bahsetmiş olduğum dezavantajların yeni sürümlerinde giderilecek ya da bu konularda iyileştirmeler mutlaka olacaktır.


View hidden content is available for registered users!

WebAssembly + Razor = Blazor' da denebilir

-------------
Çeşitli kaynaklardan yaptığım araştırmaları sizin için bir konuda topladım.


Umarım işinize yarar...
 

Users who are viewing this thread

Top