Solid Web Content: Web-UI Framework
Solid Web Content Nedir?
Solid Web Content yani kısaca SWC (sivik diye okunuyor), yazılımsal gücünü, Microsoft .NET dillerinden alan (VB.NET, C#, J#) bir web yazılım geliştirme framework’üdür.
“Pardon anlayamadım biraz açar mısınız?” dediğinizi duyuyor gibiyim. Ozaman size ben kısaca bu framework’ün özelliklerinden bahsedeyim.
Öncelikli olarak SWC, WEB-UI geliştirme diline sahip bir yazılım platformudur. Yani ASP.NET’in saçma sapan tag yapısı ile uğraşmadan WEB-UI geliştirebilirsiniz, diğer yandan .NET dillerini kullanarak bu WEB-UI’a hakim olabilirsiniz. Buradaki temel amaç zaten ASP.NET’in bazı konulardaki zorluklarını aşmaktır.
Yazılımın belli başlı özelliklerini ayrıntılı olarak açıklamadan önce maddeler halinde bu özelliklerin neler olduğu hakkında bir ön bilgi verelim.
- ASP.NET’den %50 - %70 oranında daha hızlı sayfa oluşturma yapar.
- Internet Gezgini desteği ile ASP.NET’den %50 - %300 oranında daha hızlı sayfa yayını yapar.
- Bütünleşik “Gerçek” tema desteği vardır.
- Bütünleşik çoklu dil desteği vardır.
- Bütünleşik HTTPRequest (AJAX Benzeri) özelliği vardır.
- Bütünleşik Güvenlik (Authentication) desteği vardır.
- Gerçek “Plugin, Addon” desteği vardır. Tam modülerdir.
- WEB-UI dili çok basittir.
- Hersayfa için bir codebase dosyasına gerek yoktur. Bir yerde kullanılan kod başka sayfaya Copy-Paste yaparak rahatlıkla taşınabilir. Kod ile oynamanıza gerek yoktur.
- Tüm sayfalarınızı ve kodlarınızı sadece bir dosya haline getirip, şifreleme desteği vardır. Böylece kimse sizin kodlarınız veya sayfa tasarımlarınız ile oynayamaz. Yani WEB-UI Compile özelliği vardır. Tüm kaynak kodları gizlenebilir.
- Bütünleşik Release-Debug sistemi ile yazılımdaki hataları gizleyebilirsiniz.
- Bütünleşik Log sistemi ile bütün hatalar Log dosyalarında en ince ayrıntısına kadar tutulur. Kullanıcı sitede hata olduğunu anlamadan sizin hatadan haberiniz olur.
- Yazılım geliştirme sürenizi yarı yarıya kısaltır.
1. ASP.NET’den %50 - %70 oranında daha hızlı sayfa oluşturma yapar.
ASP.NET’den hızlıdır. Çünkü ASP.NET hayatınız boyunca bir web sayfasında kullanmayacağınız bir çok özelliği kendi bünyesinde barındırır. Yükleme hızı bundan dolayı yavaştır ve kendini yaptığı Cache’ler ile hızlı tutmaya çalışır. Bir çok ASP.NET yazılımcısının sorunu, SQL’den çektiği verilerin sayfa üzerinde gösterilmesinde geçen zamandır. Hem SQL yükünü azaltmak hemde daha fazla sayfa isteğini karşılamak için ASP.NET sayfalarını Cache ederler. Cache sonucunda anlık veri gösterimi gerçekleştirilemez, çünkü veriler ve yaratılmış sayfa zaten hafızadadır ve bu sayfa aynı sayfaya istekte bulunan tüm kullanıcılara gösterilir. Eğer Cache edilen sayfadaki veriler sürekli güncel tutulması istenirse, ASP.NET sayfasının Cache’ini kaldırmaktan başka çareniz yoktur. İşte bu noktada SWC, “Intelligent Cache” yapısı ile güncel bilgileri içermesi gereken sayfaları ASP.NET gösterim hızına göre %50 - %70 oranında daha hızlı gerçekleştirir. Bunu yaparken sayfalardaki güncel hiç bir bilgiden ödün vermez ve bunları yapmak için ayrı bir kodlama ve/veya özel fonksiyonların yazılımınıza eklenmesini gerektirmez.
2. Internet Gezgini desteği ile ASP.NET’den %50 - %300 oranında daha hızlı sayfa yayını yapar.
SWC bütünleşik olarak sayfa sıkıştırma özelliğine sahiptir. Eğer istemcinin internet gezgini sıkıştırılmış sayfayı gösterme özelliği destekliyorsa, bu SWC tarafından algılanıp durum analizi sonucunda sayfanın sıkıştırılmış veya sıkıştırılmamış şeklini istemciye göndermektedir. Bu sunucu tarafında çok az bir yük bindirmesinin yanında normalde 400K lık bir sayfayı 30K gibi bir boyuta düşürdüğünden sayfanın yüklenme süresini hatırı sayılır bir şekilde hızlandırmaktadır. Bu ASP.NET’de IIS ayarları ile oynamak ile mümkün olmaktadır. SWC’de herhangi bir ayar ile oynamanız gerekmemektedir. Kendisi bu işlemi bütünleşik olarak gerçekleştirmektedir.
3. Bütünleşik “Gerçek” tema desteği vardır.
Gerçek tema desteğine sahiptir. Hiç bir kodla uğraşmadan sitenize aynı anda farklı kullanıcılara farklı ara yüz gösterimi yapabilirsiniz. İsterseniz bu özelliği geliştireceğiniz yazılıma ekleyip bu seçimi kullanıcılarada bırakabilirsiniz.
4. Bütünleşik çoklu dil desteği vardır.
Bütünleşik çoklu dil desteğine sahiptir. ASP.NET’deki gibi gereksiz fonksiyonlar yazmanıza gerek yoktur. Bütünleşik bir komut ile hazırladığınız çoklu dil destekli yazılımınızı istediğiniz dilde veya dillerde gösterebilirsiniz. Kodla oynamanıza hiç gerek yoktur. Sadece XML dil dosyasının çevriminin yapılması tüm sitenizin çevrimi yapılan dilde gösterilmesi için yeterli olacaktır. Hiç bir artı (+) kod yazma gereksinimi olmadan isterseniz bu seçimi kullanıcıya bırakıp, sitenizin farklı kullanıcılarda farklı dillerde gözükmesini sağlayabilirsiniz. Bütün bunların yanında, her tema için farklı dil dosyaları tanımlayabilir veya dil dosyalarını farklı temalarda kullanmak üzere atayabilirsiniz.
5. Bütünleşik HTTPRequest (AJAX Benzeri) özelliği vardır.
Bütünleşik HTTPRequest özelliği vardır. Herhangi ek bir DLL dosyasına falan ihtiyaç yoktur. Sadece sayfanın içinde güncellenmesini istediğiniz alanı SWC komutlarını kullanarak çerçeve içine almanız yeterli olacaktır. Buna ek olarak ASP.NET’de bulunan HTTPRequest istemleri gibi tüm sayfayı oluşturup sonra istenen kısmı istemciye göndermez, sadece HTTPRequest edilen block oluşturulup istemciye gönderilir. Buda çok ciddi bir sunucu yükünden feragat etmenizi ve HTTPRequest block’nun ASP.NET’den daha çabuk gösterilmesine ortam sağlar. Ayrıca yaratılan block’daki verinin boyutu 2. madde de geçerli olan tüm özellikler ile istemciye aktarıldığından, sahip olduğunuz avantajın hesabı ASP.NET’i rakip kabul etmeyecek kadar fazladır.
6. Bütünleşik Güvenlik (Authentication) desteği vardır.
Bütünleşik Authentication desteği vardır. Siz halen her sayfanın Page_Load fonksiyonunda veya sayfaların başında güvenlik kontrolu yapan fonksiyonlar mı kullanıyorsunuz? Bu işi yapmak bir değişkeni True veya False yapmak kadar kısa artık. Sisteme giriş yapılmasını gerektiren bir sayfanız varsa, sadece bu sayfanın Authenticated değerini True yapmanız sayfanın güvenli bir sayfa olması için yeterli olacaktır. Başka hiç bir şey yapmanıza gerek yoktur.
7. Gerçek “Plugin, Addon” desteği vardır. Tam modülerdir.
Gerçek Addon desteği vardır. Tamamen modüler bir site yapabilirsiniz. Bu benim SWC’de en çok sevdiğim özelliği aslında. Bir web sitesini modüler yapmak için bir çok işlem yapmanız ve alt yapı oluşturmanız gerekir. SWC’de buna gerek yoktur. Kendisi bunu bütünleşik olarak barındırmaktadır. Örneğin Admin Paneli ek bir özellik olsun. Ozaman bu Paneli Addon olarak geliştirin ve yazılımınızın Addon klasörüne koyun. Artık sitenizin Admin Paneli var. Eğer kaldırırsanız bu modülde siteden kalkar. Bunların hepsini yaparken sitenizin hiç bir koduyla oynamazsınız. Bu modül eklendiğinde sayfalarda değişiklik yapmanıza gerek yoktur. Sadece ekle ve/veya kaldır, hepsi bu! Hepsine ek olarak Addon olarak geliştirdiğiniz bir sayfayı aynı zamanda kendisi bir siteymiş gibide kullanabilirsiniz. Sadece kodunuzda Addon’un bir site olduğunu belirten 2 veriyi değiştirmeniz yeterli olacaktır. Yaşasın modüler yapı!
8. WEB-UI dili çok basittir.
SWC’in yazılım dili çok çok basittir. Herhangi HTML tasarımcısı veya bir yazılımcı 5 dk içinde dile alışır. Temeli basittir ve kolay yazılır. Site üzerinde HTML’e tam hakim olmanızı sağlar. runat=”server” gibi saçma sapan tag attribute ları kullanmanıza gerek yoktur. Bir sayfada yazılan bir kodu Copy-Paste yaparak başka sayfada kullanabilirsiniz. Bunu yaparken kod taşımanıza gerek yoktur, kodu bilmenize veya düzenlemenize gerek yoktur. Sadece SWC kodunu taşımanız yeterli olacaktır.
9. Hersayfa için bir codebase dosyasına gerek yoktur. Bir yerde kullanılan kod başka sayfaya Copy-Paste yaparak rahatlıkla taşınabilir. Kod ile oynamanıza gerek yoktur.
ASP.NET’de her .aspx dosyasına bağlı bir kod dosyası vardır. Bir ASP.NET dosyasındaki ASP:Repeater tagı bir sayfadan bir başkasına taşındığında kod dosyasındaki onunla ilişkili ItemBounded benzeri fonksiyonlarında taşınılan .aspx dosyasının kod dosyasına taşınması gerekir. Yoksa döngü tagı çalışmayacaktır. SWC’de böyle birşey yoktur. Sadece SWC kodunu bir sayfadan diğerine taşımanız yeterlidir. Ayrıca ItemBounded gibi gereksiz fonksiyonlarıda gerek yoktur. Bir döngü içinde döngü yapmak SWC’ye göre çok zordur ASP.NET’de. SWC’de herşey elinizin altında, “ASP:Repeater” eventlerinin hiç birine ihtiyacınız yok. Ayrıca SQL Verilerini sayfada göstermek için <%# DataBinder.Eval(Container.DataItem, “FieldAdı”) %> gibi saçma sapan bir kodlama yapmanızada gerek yoktur. SWC’de bunu $#FieldAdı$ şeklinde kısaca yapabiliyorsunuz.
10. Tüm sayfalarınızı ve kodlarınızı sadece bir dosya haline getirip, şifreleme desteği vardır. Böylece kimse sizin kodlarınız veya sayfa tasarımlarınız ile oynayamaz. Yani WEB-UI Compile özelliği vardır. Tüm kaynak kodları gizlenebilir.
Bütün bir sitenizin sadece 1 dosya olduğunu hayal edin. Tüm HTML kodlarınız, VB.NET ve/veya C# kodlarınız gizli. Tek taraflı şifrelenerek saklanan bu dosya sayesinde sitenizin resimlerinden, HTML kodlarına, dil dosyalarına kadar herşey gizli! Dünya üstünde siteleri bu denli saklayan başka bir Framework yok!. ASP.NET dahi .aspx dosyalarını yayınlıyor. Bir Text düzenleyici ile açıp herhangi bir HTML kodu ile oynanabiliyor. SWC’de böyle birşey yapamazsınız. Sitenizin hiç bir yerinde bir nokta değiştirmeye sizden başka kimsenin yetkisi yok. Gerçek gizlilik ve kod güvenliği! Tabii isterseniz bu özelliği kullanmayarakta sitenizi yayınlayabilirsiniz.
11. Bütünleşik Release-Debug sistemi ile yazılımdaki hataları gizleyebilirsiniz.
Release-Debug özelliği ile SWC kodlarında oluşacak hataları kullanıcıya göstermeyi engelleyebilirsiniz. Böylece kullanıcı sayfa üzerinde SWC blocklarında oluşabilecek hataları görmek yerine, o alanı boş bir şekilde görecektir. Sayfanız veya siteniz ne hata yaparsa yapsın, kullanıcıya göstermeyi engelleyebilirsiniz. Bu’da sitenizde dolaşan bir kişinin hata ile karşılaşmasını önleyecek ve sitenizin imajını zedeleyici görüntülerin kullanıcıya aktarımının önüne geçecektir. Düşünün sitenizde kredi kartını kullanma potansiyeli olan bir kişi sayfaların birinde hata olduğunu görürse sitenizde sahip olduğu kredi kartını kullanmak isteyecek midir?
12. Bütünleşik Log sistemi ile bütün hatalar Log dosyalarında en ince ayrıntısına kadar tutulur. Kullanıcı sitede hata olduğunu anlamadan sizin hatadan haberiniz olur.
11. Maddeki özellik kullanılsın veya kullanılmasın, sitede oluşacak tüm hatalar bir Log klasörü içinde Yıl, Ay, Gün formatlı olarak en ince ayrıntısına kadar tutulmaktadır. Ayrıca SWC framework’ünde oluşacak hatalarda Microsoft Windows’un Event Viewer’ında kayıt altına alınmaktadır. Yazılımınızda bir hata oluştuysa bu mutlaka Log dosyalarında tutulacaktır. Ayrıca bir Log sistemi kurmanıza gerek yoktur. Kodda Try…Catch kod block’u bile kullanmasanız SWC nerede hata olduğunu Log dosyalarında kayıt altına alacaktır.
13. Yazılım geliştirme sürenizi yarı yarıya kısaltır.
Burada saymadığım ama SWC ile bütünleşik olarak bulunan bir çok özellik ve iş kısaltıcı araçlar ve bunların hepsine ek olarak .NET’in tüm yazılım gücü sayesinde site yapımında harcadığınız kodlama sürecinizi ciddi oranda azalacaktır. Bir siteyi veya web yazılımını çıkartmak öncekinden daha kısa sürecek ve daha az zamanda daha fazla iş çıkartmanızı sağlayacaktır.
Yakında SWC dili kullanımı hakkında yazılar yayınlayacağım, ayrıca HelloWorld örneği ve Geliştirmeye Hazır SWC Visual Studio Solution’larını yayınlayacağım. Bundan sonra sizde SWC’nin gücüyle tanışıp, ondan vaz geçemeyecek hale geleceksiniz. Ayrıca bu site üzerinden Solid Web Content kullanılarak geliştirilen yazılımların paylaşımınıda yapmak istiyorum.
SWC ile ilgili tüm sorularınızı, meraklarınızı Forum’da ilgili bölümlere başlık açarak bana sorabilirsiniz. En kısa zamanda cevap vermeye çalışacağım.
Faydalı Siteler başlığı altında bulunan tüm siteler ve burada yayınlamadığım bir çok firma iç operasyon ve web sitesi Solid Web Content Framework’u kullanılarak geliştirildi. Faydalı Siteler başlığı altında bulunan siteleri ziyaret ederek SWC ile geliştirilen siteleri inceleyebilirsiniz.