runtime engine nedir? nasil calisir? mantığı nedir?

Başlatan mir_as82, 03 Aralık 2014, 18:11:41

mir_as82

Konu başlığı ile ilgili olarak bilgisi olan veya İngilizce Turkce video paylaşabilecek arkadaş varsa iyi olur.
Neden ihtiyaç duyulmuş, ne yapar?

Kabil ATICI

#1
Bilgi temel düzeyde, o da C#'dan geliyor.

Şimdi program yazıyorsunuz ve birçok program var. Hepsine kullandığı temel kütüphaneleri ayrı ayrı oluşturmak ve  oluşturulan yazılımın içine gömmek yerine  ayrı ortak bir kütüphane oluşturuyorsunuz. Halen de bazı uygulamalarda kullanılan dll kütüphaneleri gibi. Temel işlevleri ve ortak kullanılan öğeleri bu kütühaneden çağıracak şekilde oluşturuyor ve derliyorsunuz. Böylece programınızın boyutu küçülüyor ve aynı zamanda standartlaşıyor. Hele günümüzde programların giderek büyüdüğü bir ortamda küçük boyutlu programlar elbette daha az yer kaplayacak, internetten daha kolay inecek.

Bu şekilde çalışma aynı zamanda daha kolay program yazma olayını da beraberinde getirecek.

EK:
C#'dan ziyade .NET olarak tanımlanan kütüphane 'dir. Bu birçok dil tarafından ortak kullanılır.
ambar7

mir_as82

#2
O zaman programların kullandigi ortak kütüphane demek oluyor.
JVM gibi
Framework gibi.
Kocaman bir havuz oluşturuyoruz ve bütün programlar ( framework kullananlar ayri JVM kullananlar ayri) dll leri oradan cagirarak mi kullanıyor? Yani siniflari ayni olan programlarin kullandigi ortak kütüphaneden başka birşey değil mi?(siniftan kastim .net temelli diller ve java tabanlı diler)

MC_Skywalker

#3
Çalışma zamanı ortamı olarak birebir türkçeye çevrilir.  Temelde programlama dilleri ikiye ayrılır direk çalıştırlabilir program sunan derleyiciler vede yorumlayıcar.

Çalıştırlabilir program üretenler: C/C++
Yorumlayıcılı diller: BASIC vb.

Bu temelden yolaçıkarak ambar7 arkadaşımızın değindiği gibi küçük boyutlu ve çok platformlu yazıım geliştirme amaçlı diller üretilmiştir. Java bunlara örnektir java ile gelitridiğimiz program çalıştırlabilir değildir ve sanal makina üzerinde çalışır, her mimari için ayır ayrı derlemek yani corsscomple etmek gerekmez.

.NET gelince, DOS zamanında gliştirilen programlar donanıma doğrudan ulaşıyorlardı. örnek verecek olursak her oyun içinde ses kartı, ekrankartının donanım adresleri ve IRQ değerlerini elle ayarlamak gerekiyordu.  Bill amcamız windows'u  çıkartınca C/C++ programcıları bir pencere oluşturmak ve yıkmak  için 2-3bin satır kod yazmak zorunda kaldılar ve her firma kendi küpanesini geltirme durumunda kaldı.  Bill amca önce Visual C++/Basic çıkartıp bu pencere işlerini bir APı üzerine yükledi ve programcıyı bu işlerden kurtartdı.  daha sonra da DX i çıkartıp donanıma ulaşna uygulamları soyutladı. artık oyunları devasa boyutu kodda değil grafiklerin kalitesinin artmasıyla büyümeye başladı.

Derken Bill amca Java ile olan çekişmeyi kaybedince çoklu platformmumsu .NET i çıkardı. programcı sadece yapmak istediği ni yapıyordu diğer giriş çıkış ilemlerini hep bu kütüpaneyete bırakıyordu. kütüpanede yorumlama işlerini Runtime engine ile windows a bilidirip işleri hallediyor.

kısaca anlatmaya çalıştım. Uzun zamanadır bu işle ilgilenmiyorum hatalarımı eksikleri olumuş olabilir işlin içindeki arkadaşlar düzetirlerse sevinirim.

Kabil ATICI

#4
Acıkakademi.com adresinde c# eğitimlerinde yayınlanan .net dökümanlarından biri..

.NET'in Getirdiği Çözümler
- Varolan kodlarla tam çalışabilirlik desteği: Varolan COM binary'leri ile yeni .NET binary'leri bir arada uyumlu olarak çalışabilirler, ayrıca tam tersi de geçerlidir. Aynı zamanda .NET kodundan C-tabanlı kütüphanelerin çağrılmasına izin verilir.
- Tüm .NET dilleri tarafından paylaşılan ortak bir çalışma zamanı: .NET ortamında program geliştirirken (kullanılan dilden ve uygulama tipinden -web,masaüstü...- bağımsız olmak üzere) çalışma zamanı prensiplerini belirleyen ve temellerini sağlayan Ortak Çalışma Zamanı (Common Language Runtime), daha önce uygulama geliştiricinin düşünmek zorunda olduğu birçok işin üstesinden gelir (Bellek yönetimi (Memory management), tip güvenliği (Type safety), istisna yönetimi (Exception handling) vb...).
- Çoklu dil desteği: Microsoft radikal bir karar alarak CLR ile uyumlu her .NET dilinin kullanılmasına olanak sağlıyor. Visual Studio 2010 ile gelen yazılım geliştirme kitinde C#, VB.NET, J#.NET ve C++.NET kullanarak program geliştirilebiliyor. Öte yandan .NET ortamına entegrasyonu tamamlanmış 50'den fazla programlama diliyle de uygulama geliştirilebilir. (Örnek: Delphi.NET, Perl for .NET...)
- Tüm .NET dilleri tarafından paylaşılan ortak temel sınıf kütüphanesi: Artık karmaşık API çağrıları sona erdi. .NET ile birlikte uygulama geliştiricinin hizmetine sunulan 3500'den fazla sınıftan oluşan zengin kütüphane, daha hızlı program geliştirme imkanı ve bütün .NET dilleri tarafından kullanılan tutarlı bir nesne modeli sunuyor.
- Programlama modelinden bağımsız uygulama geliştirme ortamı: Tek bir uygulama geliştirme ortamı (Visual Studio 2010) kullanarak ASP.NET, masaüstü form (windows), mobil, web servisi ve remoting uygulamaları geliştirilebilir.
-Basitleştirilmiş masaüstü uygulama geliştirme ve yayınlama modeli: .NET ortamında geliştirilen bir masaüstü uygulaması, herhangi bir windows işletim sisteminin kurulu olduğu makinede çalıştırılabilir, gereken tek şey .NET Framework'ünün kurulu olmasıdır. Ayrıca sistem kayıt defterine (registry) yazılmasına gerek yoktur. Bunun yanında .NET aynı makinede bir .dll'in farklı versiyonları ile çalışılmasına izin verdiği için ".dll cehennemi" (".dll hell") adı verilen durum oluşmamaktadır.

Bir firmanın diğer ortamlarda kullanmak üzere .net kütüphanesi oluşturduğunu internette görmüştüm.
ambar7