- 25 Şub 2019
- 277
- 2
Herkese merhaba değerli Türk Hack Team üyeleri bugün başlıkta da görmüş olduğunuz gibi Framework nedir ? Yaygın Frameworkler nelerdir ? Framework ne işimize yarar gibi sorularınıza elimden geldiği,dilimden döküldüğü kadar cevap vermeye çalışacağım haydi gelin başlayalım...
Arkadaşlar bilgisayarınıza sık bir şekilde program,uygulama,oyun gibi şeyler yüklüyorsanız birçoğunuz farketmişsinizdir o uygulamalarla birlikte çoğu kez yanında .Net Framework paketi de indiriyorsunuz.Peki neden böyle bir şeye ihtiyaç duyuyor o kurduğumuz uygulmalar gelin daha da yakından bir göz atalım.
~Framework Nedir ?~
Arkadaşlar framework dediğimiz şey içerisinde API(Uygulama Geliştirme Arayüzleri) ve paylaşımlı kod kütüphanelerinin bulunan paket sistemidir.Uygulamaları yazan coderlar bu paketin içerisinden uygulamada güncelleme yapmak isterlerse içinde bulunan kütüphanelerle bu paketin içinden kodları düzenleyebilirler yani kısaca ekstradan yeniden kod yazmamak için bu paket sistemi coderlara yardımcı olur... Gelişmiş frameworklerde form kontrolü, veri tabanı bağlantısı, kullanıcı giriş çıkış, mail atma, tema motoru gibi kütüphaneler de mevcuttur.
Giriş yaparken eposta ile giriş yapılır. Siz eğer kullanıcı adı ile giriş yapmak istiyorsanız sadece o fonksiyonu değiştirerek projenizi yazmaya devam edebilirsiniz. Framework kullanmak size bu bağlamda hız katar. Bu sayede tam olarak bitirilmesi 2 ayı bulacak projeler bazen 2-3 hafta da bitebilmektedir. Diğer bir kazancı ise belli standartları olduğu için bu standartlarda geliştirilen projeye yeni takım arkadaşları kolaylıkla entegre olabilir.
Giriş yaparken eposta ile giriş yapılır. Siz eğer kullanıcı adı ile giriş yapmak istiyorsanız sadece o fonksiyonu değiştirerek projenizi yazmaya devam edebilirsiniz. Framework kullanmak size bu bağlamda hız katar. Bu sayede tam olarak bitirilmesi 2 ayı bulacak projeler bazen 2-3 hafta da bitebilmektedir. Diğer bir kazancı ise belli standartları olduğu için bu standartlarda geliştirilen projeye yeni takım arkadaşları kolaylıkla entegre olabilir.
Framework uygulama programlama arayüzü denen API ile ilişkilidir ve teknik olarak bir framework bir API içerir. Framework, temel oluştururken, API; framework tarafından desteklenen öğelere erişim sağlar.
Ayrıca frameworkler, geliştiricilerin herhangi bir programlama dilini kullanarak yazdığı kaynak kodu bilgisayarın anlayabileceği makine diline yani 0 ve 1lere çeviren ve compiler (derleyici) denen aracı bir yazılım, kütüphaneler ve yazılım geliştirme sürecinde kullanılan diğer programları da içerebilir.
Belirli bir uygulama oluşturmak için genişletilen ve değiştirilen frameworkler, bir yazılımın temelini oluşturmak için soyutlama denen bir yüksek seviye kodu kullanır.
Bir frameworkle çalışmak genellikle oldukça kolaydır. Kaynak kodun tamamını indirip belirli bir ortama kurabilir ve kod yazmaya başlayabilirsiniz.
Ayrıca frameworkler, geliştiricilerin herhangi bir programlama dilini kullanarak yazdığı kaynak kodu bilgisayarın anlayabileceği makine diline yani 0 ve 1lere çeviren ve compiler (derleyici) denen aracı bir yazılım, kütüphaneler ve yazılım geliştirme sürecinde kullanılan diğer programları da içerebilir.
Belirli bir uygulama oluşturmak için genişletilen ve değiştirilen frameworkler, bir yazılımın temelini oluşturmak için soyutlama denen bir yüksek seviye kodu kullanır.
Bir frameworkle çalışmak genellikle oldukça kolaydır. Kaynak kodun tamamını indirip belirli bir ortama kurabilir ve kod yazmaya başlayabilirsiniz.
Örneğin bir websitesi geliştirmek istiyoruz. Proje geliştirirken projede çözülmesi gereken soruna odaklanmak yerine formlardaki verilerin formatlanmasına, güvenli hale getirilmesine veya yazdığımız kodun kullanacağımız temayla iç içe girmemesine odaklanmak bizi hem yoruyor hem de zaman kaybetmemize sebep oluyor. Tekerleği yeniden keşfetmek yerine oluşturacağımız ürünün fikrine yoğunlaşmak için Framework kullanmak en mantıklı yol olarak görünüyor.
Dünyadaki Frameworkler benim aradığım özelliğe sahip değiller, sahip olan da kendinin geliştirilmesine izin vermiyor, hız olarak projenin tipine göre düzenlenmiş en iyi optimizasyonu istiyorum diyorsanız Framework kullanmama konusunda serbestsiniz.
Dünyadaki Frameworkler benim aradığım özelliğe sahip değiller, sahip olan da kendinin geliştirilmesine izin vermiyor, hız olarak projenin tipine göre düzenlenmiş en iyi optimizasyonu istiyorum diyorsanız Framework kullanmama konusunda serbestsiniz.
Günümüzde bir çok framework opensource olarak geliştirilmekte. Bu da en ufak güvenlik sorununda güncellenmesi demektir. Ayrıca kendi projelerinde framework kullanan insanlar düzelttikleri hataları geliştirdikleri yeni özellikleri framework yapımcılarına bildirerek gelişmesini sağlamaktadırlar. Ayrıca composer ile çok sayıda paket birbiri ile uyum içinde çalışmaktadır.
~Yaygın frameworkler nelerdir?~
PHP;Komut dosyaları için yaygın olarak kullanılan çok amaçlı bir dildir. Mevcut PHP framworklerinden bazıları CakePHP,CodeIgniter, Laravel,Symfony,Yii ve Zenddir.
PYTHON;Python, özellikle veri bilimi alanlarında popüleritesi artan yüksek düzeyli, nesneye yönelik, çok amaçlı bir programlama dilidir. Web geliştirme için diğer diller kadar yaygın olarak kullanılmaz.Genellikle Django,Flask frameworkleri sık kullanılır.
JAVA;Kurumsal amaçla yaygın olarak kullanılan Java ile çalışanların en çok tercih ettiği framework Springtir.Yanında JSF, play! gibi frameworkler de alışılagelmiştir.
JavaScript;JavaScript, web uygulaması geliştirmenin çekirdeğini oluşturan teknolojilerden biridir. Angular.js,Express.js,Node.js,React.js sık kullanılan frameworkler arasındadır...
Not;Tercihen React.js kullanırım...
MİCROSOFT;Teknoloji endüstrisinin en büyük oyuncularından biri olan Microsoft, web uygulaması framework dünyasına önemli katkılarda bulunmuştur.ASP.NET/ASP.NET Core,Silverlight(Çoğunlukla eski ugulamalarda tercih edilir) çoğu coder tarafından kulanılan frameworkleridir...
Windows kullanıcıları her uygulama için genelikle .net frameworkleride uygulamalarla beraber indirir.Hemen hemen hepimizin gözüne eminim çarpmıştır...
Microsoft kütüphanelerinden biri de Framework Class Librarydir (FCL) ve .NET Framework de bu gruba dahildir.Bu kütüphane coderlara geniş ve kapsamlı bir çalışma ortamı sunar çok çeşitli kod yazabilme imkanı tanır...
.NET'i diğerlerinden ayıran özellik ise çalışma ortamında uygulama çalıştırma imkanı tanıyıp daha da işlevsel hale gelmesidir. NETin çalışma alanına Common Language Runtime (CLR) adı verilir. Benzer şekilde çalışma alanı sunan diğer geliştirme platformlarına Java, Ruby ve Rails gibi yazılım geliştirme platformları örnek olarak verilebilir.
Aslında NETin yazılımcılara sunduğu kolaylık, kullanıcılar için de geçerli diyebiliriz. Yani bu programın bilgisayarınızın sisteminde bulunması, bazı uygulamaları çalıştırabilmenizi sağlıyor. Windows 8 ile birlikte çıkan Net Framework 4.0, kendinden önce gelen sürümlerden epey farklı olarak geriye yönelik uyumluluk barındırmıyor. Eğer bir uygulama .NET Framework 4.0 ile yazıldıysa, çalıştırmak için de aynısı gerekiyor. Ancak endişeye gerek yok, çünkü bunu sizin düşünmeniz gerekmiyor. Windows hangi programın hangi NET yazılımı ile çalışacağını otomatik olarak belirliyor ve bu yazılımı sizin yerinize yüklüyor. Son kullanıcının bu adımla herhangi bir şekilde uğraşmasına da gerek kalmıyor.
.NET Framework Kullanmanın Faydaları;
Bu program, NET tabanlı uygulamaları oluşturmak ve çalıştırmak için gerekli olan çalışma yeri ve çalışma zamanı platformunu sağlar.
Kullanım kolaylığı ve kodun yeniden kullanımı göz önünde bulundurularak tasarlanmıştır. Birbiriyle etkileşime girebilen birçok programlama diline sahiptir.
NET kodlarını çağırırken programlama dilleri arasında hiçbir tür dönüştürme yapmak gerekmez.
Bellek sızıntıları minimuma indirilmiştir. Uzaktan servisler arasında da yüksek güvenlik önlemleri vardır.
XML formatı ile uyumludur.
Nesne yönelimlidir. Yinelenen senaryolara etkili bir şekilde cevap verebilmenizi sağlar. Uygulamalarınıza sadece erişmenizi değil, aynı zamanda onları kontrol edebilmenizi sağlar.
Zaman tasarrufu sağlar. Geliştirme maliyetlerini azaltır. Sıfırdan kod yazma gerekliliğini büyük ölçüde ortadan kaldırır. Bir uygulamanın daha kısa bir sürede yazılabilmesini sağlar. Programcıların işini kolaylaştırır.
Sağlam ve kullanımı oldukça kolay olan bir önbellekleme sistemi vardır.
Sayfaları kolayca yazmanızı ve sürdürmenizi sağlar. Web sayfalarınızı daha güçlü ve esnek bir hale getirir.
Site yapılandırması, istemci kimlik doğrulaması, formların dağıtımı ve sunulması gibi yaygın görevler, .NET'te kolayca gerçekleştirilebilir.
Pek çok avantajı olan .NET Frameworkün elbette dezavantajları da mevcut. Bazı kullanıcılar, nesne ilişki desteğinin sınırlı olduğunu düşünmekte. Ayrıca bu Framework ile çalıştırılan yönetilen kodların, yerel koddan daha yavaş olduğu durumlar da söz konusu olabilir. Tüm uygulamaların bu platforma taşınması da programcılar için yüksek maliyetli bir hale gelebilir.
RUBY;Programcıları mutlu etmek için tasarlanmış modern, kullanımı kolay, nesne yönelimli bir programlama dilidir.Ancak, Ruby on Rails frameworkünün başarısından önce Ruby çok ön planda olan bir dil değildi...
PYTHON;Python, özellikle veri bilimi alanlarında popüleritesi artan yüksek düzeyli, nesneye yönelik, çok amaçlı bir programlama dilidir. Web geliştirme için diğer diller kadar yaygın olarak kullanılmaz.Genellikle Django,Flask frameworkleri sık kullanılır.
JAVA;Kurumsal amaçla yaygın olarak kullanılan Java ile çalışanların en çok tercih ettiği framework Springtir.Yanında JSF, play! gibi frameworkler de alışılagelmiştir.
JavaScript;JavaScript, web uygulaması geliştirmenin çekirdeğini oluşturan teknolojilerden biridir. Angular.js,Express.js,Node.js,React.js sık kullanılan frameworkler arasındadır...
Not;Tercihen React.js kullanırım...
MİCROSOFT;Teknoloji endüstrisinin en büyük oyuncularından biri olan Microsoft, web uygulaması framework dünyasına önemli katkılarda bulunmuştur.ASP.NET/ASP.NET Core,Silverlight(Çoğunlukla eski ugulamalarda tercih edilir) çoğu coder tarafından kulanılan frameworkleridir...
Windows kullanıcıları her uygulama için genelikle .net frameworkleride uygulamalarla beraber indirir.Hemen hemen hepimizin gözüne eminim çarpmıştır...
Microsoft kütüphanelerinden biri de Framework Class Librarydir (FCL) ve .NET Framework de bu gruba dahildir.Bu kütüphane coderlara geniş ve kapsamlı bir çalışma ortamı sunar çok çeşitli kod yazabilme imkanı tanır...
.NET'i diğerlerinden ayıran özellik ise çalışma ortamında uygulama çalıştırma imkanı tanıyıp daha da işlevsel hale gelmesidir. NETin çalışma alanına Common Language Runtime (CLR) adı verilir. Benzer şekilde çalışma alanı sunan diğer geliştirme platformlarına Java, Ruby ve Rails gibi yazılım geliştirme platformları örnek olarak verilebilir.
Aslında NETin yazılımcılara sunduğu kolaylık, kullanıcılar için de geçerli diyebiliriz. Yani bu programın bilgisayarınızın sisteminde bulunması, bazı uygulamaları çalıştırabilmenizi sağlıyor. Windows 8 ile birlikte çıkan Net Framework 4.0, kendinden önce gelen sürümlerden epey farklı olarak geriye yönelik uyumluluk barındırmıyor. Eğer bir uygulama .NET Framework 4.0 ile yazıldıysa, çalıştırmak için de aynısı gerekiyor. Ancak endişeye gerek yok, çünkü bunu sizin düşünmeniz gerekmiyor. Windows hangi programın hangi NET yazılımı ile çalışacağını otomatik olarak belirliyor ve bu yazılımı sizin yerinize yüklüyor. Son kullanıcının bu adımla herhangi bir şekilde uğraşmasına da gerek kalmıyor.
.NET Framework Kullanmanın Faydaları;
Bu program, NET tabanlı uygulamaları oluşturmak ve çalıştırmak için gerekli olan çalışma yeri ve çalışma zamanı platformunu sağlar.
Kullanım kolaylığı ve kodun yeniden kullanımı göz önünde bulundurularak tasarlanmıştır. Birbiriyle etkileşime girebilen birçok programlama diline sahiptir.
NET kodlarını çağırırken programlama dilleri arasında hiçbir tür dönüştürme yapmak gerekmez.
Bellek sızıntıları minimuma indirilmiştir. Uzaktan servisler arasında da yüksek güvenlik önlemleri vardır.
XML formatı ile uyumludur.
Nesne yönelimlidir. Yinelenen senaryolara etkili bir şekilde cevap verebilmenizi sağlar. Uygulamalarınıza sadece erişmenizi değil, aynı zamanda onları kontrol edebilmenizi sağlar.
Zaman tasarrufu sağlar. Geliştirme maliyetlerini azaltır. Sıfırdan kod yazma gerekliliğini büyük ölçüde ortadan kaldırır. Bir uygulamanın daha kısa bir sürede yazılabilmesini sağlar. Programcıların işini kolaylaştırır.
Sağlam ve kullanımı oldukça kolay olan bir önbellekleme sistemi vardır.
Sayfaları kolayca yazmanızı ve sürdürmenizi sağlar. Web sayfalarınızı daha güçlü ve esnek bir hale getirir.
Site yapılandırması, istemci kimlik doğrulaması, formların dağıtımı ve sunulması gibi yaygın görevler, .NET'te kolayca gerçekleştirilebilir.
Pek çok avantajı olan .NET Frameworkün elbette dezavantajları da mevcut. Bazı kullanıcılar, nesne ilişki desteğinin sınırlı olduğunu düşünmekte. Ayrıca bu Framework ile çalıştırılan yönetilen kodların, yerel koddan daha yavaş olduğu durumlar da söz konusu olabilir. Tüm uygulamaların bu platforma taşınması da programcılar için yüksek maliyetli bir hale gelebilir.
RUBY;Programcıları mutlu etmek için tasarlanmış modern, kullanımı kolay, nesne yönelimli bir programlama dilidir.Ancak, Ruby on Rails frameworkünün başarısından önce Ruby çok ön planda olan bir dil değildi...
~Hangi Frameworkü kullanmalıyım ?~
Bu sorunun cevabı için öncelikle ne aradığımızı bilmek gerekiyor. (Özellik, hız, içerik, kullanım kolaylığı, kişiselleştirmeye olanak sağlaması, vb.)
Hâla karar veremediyseniz aşağıdaki linklerden de detaylı araştırmalarınızı yapıp istediğiniz frameworkleri kullanabilirsiniz;
Hâla karar veremediyseniz aşağıdaki linklerden de detaylı araştırmalarınızı yapıp istediğiniz frameworkleri kullanabilirsiniz;
http://www.yiiframework.com/performance/
PHP Benchmarks
Eğer projelerinizde işin teknik detayına gereksiz miktarda zaman harcadığınızı düşünüyorsanız, konuya odaklanmak yerine sayfalar arası gönderilen değişkenlere odaklanmak zorunda kalmanıza sinir oluyorsanız en kısa zamanda kendinize uygun bir Framework üzerinde çalışmaya başlayın derim. Geriye dönüp baktığınızda ben bunu neden daha önce öğrenmedim dememeniz için...
Moderatör tarafında düzenlendi: