C#, Asp.Net, .Net Core
.Net Platformu İle Uğraşan Yazılımcılara Bir Sorum Var (CIL Ve Assembly)
.Net Platformu İle Uğraşan Yazılımcılara Bir Sorum Var (CIL Ve Assembly)
-
Aradan yaz dönemi geçti, bu dönemde daha önce yarım bıraktığım kitabı bitirdim ve birkaç şey daha öğrendim ancak şimdi apress'in pro c# and the .NET 4 Platform kitabına başladım c# bilgilerimi tazelemek ve üstüne birşeyler daha ekleyip c#la yapılabilecek çoğu şeyi görmek için.
Şimdi kafama takılan nokta şu oldu; kitabın başında .net platformunun 3-5 farklı dilin aynı anda bir projede kullanımına izin verdiğini anlatıyor(bunu zaten biliyordum ama) CIL kavramı ile daha bi detaya iniyor. Bu teknik bilgileri de öğrenmem gerekiyormu yoksa şu çoğu kitapta bulunan maksat yeşillik olsun,genel kültür olsun diye konan bilgilerden mi bu da?
Mesela pyhtonla bazı fonksiyonlar yazılıyor, c++ ile başka şeyler, c# ile başka şeyler falan daha sonra bunlar ortak bir dile çevrilip hepsi tek uygulamayı oluşturuyor. İşte bu CIL de ordaki ara kod, ama bunu öğrenmek ne kazandırır ya da öğrenmemek ne kaybettirir?
(c# kütüphaneleri,algoritma geliştirme kabiliyeti falan bir uygulama geliştirmek için yetiyor. E optimizasyondu falan visual studio kendisi hallediyor zaten.)
-
öğrenmenin bir anlamı yok. visual stuido bu işi yapıyor (derlerken)
c# syntaxını cil diline çeviriyor. o yüzden derlenen bir dil. .net framework e bu yüzden ihtiyacın oluyor
-
Tam detaylı olmasada CIL'in makine koduna çevrildiğini falan biliyorumda işte CILi detaylı öğrenmek ne işe yarar merak ettim :D sanırım .net uygulamalarında reverse engineering cil üzerinden yapılıyormuş, kaynak kodu şifrelemek için obfuscating diye bir teknik uygulanıyormuş falan... Bunun dışında bir işe yaramıyor o zaman?
-
yok hocam program yazarken ihtiyacın yok.
reverse engineering ng yapmak istersen başka :)
-
O zaman atlayabilirim ama şöyle bi bakmamında zararı olmaz =)
-
wasd bunu yazdı
O zaman atlayabilirim ama şöyle bi bakmamında zararı olmaz =)
boşver atla sen :d
-
Reverse yaparken de çoğu zaman gerek yok.
Şimdi normal exeyi decompile edersin x86 assembly elde edersin.
.Net ise platfrom independent tasarlandığından her mikrochipin assemblysine uyarlanabilecek bir ortak ara dil var.
Yani ordaki instructionin altında x86 için başka şey yazar, arm işlemci için başka şey yazabilir powerpc için altında başka bişi olabilir ama cil kodun sana görünümü aynı olacaktır.
Kısaca hayat boyu muhtemelen kullanmayacaksın
-
ya hocam saçma işlere girme bence :)
cil kasacağına 2 design pattern öğrensen, 2 tane performance tip öğrensen, mvc öğrensen daha bi yararı olur senin için.
yıl olmuş 2012 artık baştan keşfetmeye çalışmıcan. çünkü dünyadaki diğer yazılımcılardan daha iyisini yazacak halin yok :)
-
@şeyh: Ne gibi muhtemel olmayan durumlarda kullanılıyo? Hani çok extreme durumlarda mı yoksa sadece mikrosoft çalışanı olma durumundamı kullanılıyor?
@sharpshooter: tasarım desenlerini okulda ucundan azcık gösterdiler, performans içinde küçük küçük ipuçlarını aklımda tutuyorum karşıma çıktıkça zaten...
Bunu sorma sebebim şu; şimdi kitap 1753 sayfa :D içinde c#tı asp.netti falan herşey var uzun uzun. Türkçe olsa yine bi derecede 1753 sayfalık ingilizce kitabı gereksiz yerlerini çıkarmadan okumaya kalksam mezun olana kadar anca biter kitap. Bide neredeyse her kitapta bahsedildiği için merak ettim :)
-
Aynı kitabı ben de okumuştum zamanında C# compiler vs yazmayacaksan veya işin arkaplanını -boş yere- öğrenmek istemiyorsan CIL işine yaramaz
-
ne kadar işine yarar bilmem ama clr yi detaylca anlatan ms in kitabını inceleyebilirsin
http://depositfiles.com/files/depcj88rm