Nedir Bu Framework ? //maj344

maj344

Katılımcı Üye
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.







~Peki Nasıl Çalışır ?~

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 1’lere ç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.








~Neden Framework kullanayım ?~

Ö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 Framework’ler 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.





~Framework gücünü nereden alıyor?~

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 Zend’dir.



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 Spring’tir.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 Library’dir (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. NET’in ç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 NET’in 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;



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:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.