Rehber Winweb kütüphanesi nasıl kullanılır?

Bunu Windoc'a C# şeklinde entegre edene kadar hemen, test edebilmeniz ve önerileriniz; ekstra özellikleriniz, hataları söyleyebilmeniz için public bir repo hâline getirmek istedim.

Bu repo genel olarak şunu hedefliyor:
IDE'ye bağımlı olmadan:
Localizasyon destekli, UTF 8 BOM Türkçe karakter destekli.
  • Bütün dosyalar(HTML, ASPX, ASCX, CSS, JS, CS, ASHX, AJAX, XML FILES, INI, PS1) için Comment satırı silici
  • Bütün dosyalar için ölü kod bulucu ve siliciler.
  • Bütün dosyalar için klonlanan kod bulucu ve siliciler.
  • Bütün dosyalar için fazlalık satırları siliciler. "\r\n\r\n..." -> "\r\n", "<blabla/> " -> "<blabla/>", "blabla; " -> "blabla;"
  • Bütün dosyalar için duplicate satırları bulucu ve siliciler.
  • Bütün dosyalar için satırları silmek. "\r\n" -> "" (Methodlar, proplar vb. boşluklar korunur)
  • Bütün dosyalar için formatlama.
  • Bütün dosyalar için minify.
  • Bütün dosyalar için beatufiy.
  • Bütün dosyalar için obfuscating.
  • Bütün dosyalar için deobfuscating.
  • Frontend dosyalardaki kullanılmayan id, sınıfları bulucu ve siliciler.
  • JS dosyalardaki methodları bulucu ve siliciler.
  • CSS dosyalardaki stilleri bulucu ve siliciler.
  • CSS dosyalarındaki keyframe ve media'ları birleştirip dosyanın en altına sıralı bir şekilde kaydeder.
  • Bütün temp(seçmiş olduğunuz klasörler. Default olarak %temp%, temp ve ASP compiler temp) dosyalarını silici.
  • Bütün dosyalar için optimizasyon (boşlukları silici, yorum satırlarını kaldırıcı, media yapısını düzeltici ASP compiler vb.)
    NOT: Optimize edince ve minify yapınca, özellikle mobil kullanıcılar için ciddi şekilde performans artışı yaşarsınız.
    Dosya boyutu hatrı sayılacak kadar azalıyor.
  • Projeyi build edici. (Optimizasyon, Minify, Obfuscation vb.)
  • Proje hakkında ayrıntılı rapor çıkarıcı. (Kaç satır, kaç boyutunda vs.)
  • Ve biraz da gereksiz ama iş görebilecek scriptler.

Bunların hepsini -Preview, -Apply, -File, -OutputDir, -Verbose, -StartIndex, -NextIndex, -StopIndex vb. gibi argümanlarla özelleştirebiliyoruz ve aynı zamanda Config.ini dosyasından istediklerimizi filtreleyip istediğimiz path'leri ekleyip, çıkarabiliyoruz. Strings\ klasöründe tr.ini ve en.ini dilleri var isteğe bağlı ekleyebilirsiniz.

ÖNEMLİ NOT: Siz yine de %100 güvenerek "YEDEK ALMADAN" çalıştırmayın. En azından Windoc'a aynı işlevlerin C# hâlini yapana kadar.

İlk önce projenize ekleyin:

Görseldeki gibi örnek bir dizin: (Eğer config'i ayarlamadan kullanmak isterseniz, Assets\Scripts veya bir başka klasör altına koyun ki varsayılan olarak 2 yukarıya bakıyor bu scriptler)
1769701137645.png

Kodu çalıştırdığımda:
1769701202166.png


UTF 8 idi, bu da Türkçe karakterleri bozuyordu. UTF-8 Bom'a düzeltti. Yorum satırlarını ve aralardakı boşlukları sildi.
Şimdi şu anki hâliyle rapor çıkaralım:
1769701401229.png

1769701503335.png
1769701427824.png

1769701436815.png

Scripts\ klasörünü istisnaya eklemek isterseniz ekleyebilirsiniz. Zaten orta seviye bir projede bile bunları geçeceği için en büyük dosyalara girmez.

Şimdi de build deneyelim:
1769701601765.png


Tekrar rapor yapınca:
1769701682131.png

Dosya boyutlarının azaldığını görüyoruz. Tabi az satır olunca fark çok az. Minify yapınca hem boyut azalıyor yâni dolayısıyla kullanıcının sayfayı yükleme hızı artıyor. Aynı zamanda da browser'ın okumasında hız yaşanıyor olabilir.

Scriptlerin hâlâ kusursuz çalıştığını sanmıyorum. Hepsini test edemedim yâni her olasılığı falan ama olabildiğince hataları çözmeye çalıştım. Eğer sizin karşılaştığınız sorun varsa, belirtebilirsiniz. En azından C# versionunu yapınca ona dikkat ederim.

İyi günler ve iyi çalışmalar dilerim!
 
Öneri, derlenen dosyaların sonuna bir hash ekleyebilirsiniz. Ayrıca HTML'de bu dosyaya referans veren link'ler de otomatik güncellensin. Sürekli invalidate cache yapmak istemiyorum patron oynamak istemiyorum.
 
Öneri, derlenen dosyaların sonuna bir hash ekleyebilirsiniz. Ayrıca HTML'de bu dosyaya referans veren link'ler de otomatik güncellensin. Sürekli invalidate cache yapmak istemiyorum patron oynamak istemiyorum.
Hash değil ama diğerini yaptım sadece gite pushlamadım. Hash build için mi? Yapılabilir çok kolay bir şey. Bu arada kafamda çok daha kompleks optimizasyonlar var, beyin yakan. Hele bir şu projelerim bitsin de bir. (Tabi her dakka yenisi geliyor🥲)
 

Bu konuyu görüntüleyen kullanıcılar

Technopat Haberler

Yeni konular

Geri
Yukarı