Şimdi Ara

Hakkaten java en iyisi mi? (3. sayfa)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
42
Cevap
0
Favori
2.364
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: önceki 123
Sayfaya Git
Git
Giriş
Mesaj
  • quote:

    Neden DB Engine yazılmasın sayın dinazor, öyle güzel yazılırki.


    Cümleten anlama özürlü adamlarsınız vesselam..

    Yazılmaz diyen ben değilim birader, C# avukatları bunu diyen. Sizin daha okuduğunuzu anlama kabiliyetiniz yok ki; ben ne anlatabileyim size.

    Benim adama sorum şu: Yahu madem bu C# bu işi o kadar kolaylaştırıyor, çabucak ve düzgünce yazıyorsun. Hatta 550 kullanıcılı sistem fişek gibi oluyor. O zaman Microsoft neden Office, MSSQL, Explorer veya her neyse uygulamalarını C# ile yazmıyor?

    Ve "Efenim C3 ile veri tabanı mı yazılırmış yahu.. " diye boyuna nakarat okuyanda başkası. Bize ne diyorsun ki sen.

    Ama madem olur diyorsun, buyur bize sen ver cevabını. Madem C# ile DBEngine yazılır, OS yazılır, neden MS MSSQL veya Access'i yada Windows'u C# ile yazmayıp, o pek zor, pek eziyetli dediğiniz C/C++'yı kullanıyor? Buyur ver o zaman cevabını...



    < Bu mesaj bu kişi tarafından değiştirildi skoylu -- 28 Mart 2010; 18:49:50 >




  • quote:

    çünkü c# veritabanı yazmak için geliştirilmedi, c# veritabanındaki verileri işlemek için geliştirildi, microsoft .neti kalkıp c++'ı bıraksın diye geliştirmedi, amaç yüksek seviyeli uygulamalar, dağıtık uygulamalar, web tabanlı uygulamalar geliştirmekti


    Hala aynı teraneyi sayıklıyorsun. C#'ın geliştirme hedefleri bunlar değil. Nerden saıyklıyorsun ki bunları.

    Wiki'den alıntı yapmışsın. Daha aldığın şeyin ne dediğinden bihabersin. Ne diyor? C# ile performans vs. kritik uygulamalar yazmak "ekonomik olmaz.". Bunu zaten biliyoruz. Nerden biliyoruz, eğer ekonomik olsaydı MS MSSQL'i bununla yazardı.

    Bizde sana, neden böyledir onu soruyoruz. Ama cevabın tıss.. Boyuna yok C# bunu yapmak için geliştirilmedi de.. Bunu bizde biliyoruz, ama biz C#'ın WEB programcılığı için geliştirilmediğini de biliyoruz. C# ile WEB uygulaması elbette yazılır, ama WEB için geliştirilmek başka, CGI vs. olabilmek başka.

    Ha, daha promcılığın p'sinden haberiniz de yok..

    Veri tabanı gibi uygulamalar performans için, "düşük düzey" asenkron dosya erişimi kullanurlar. Bu erişim o saydığınız aio_* fonksiyonları değildir. "aio_*", yani aio_read, aio_write vs. stream tabanlı başka amaçlara hizmet der. Veritabanları bu noktada bir kaç metod uygular. Örneğin ORACLE veritabanı için tamamen kendi RAW disk partisyonunu kullanır. Evet, MSSQL'de bunu yapar. Ama MS-SQL bunu yapmadığı zaman, CACHE yükünü vs. azaltmak için dosyaları "memory mapped" olarak kullanır. Bu dosyanın içeriğini gösteren bir pointerden ibarettir.

    Bazı basit taklalarla C#'a mmap() desteği eklenebilir. Ama bu astarı yüzünden pahalıya çıkar.

    Bu yolların her ikisinde de, uygulama asenkron çalışır. Burada iki ana olgu söz konusudur. Birincisi PAGE FAULT'ları yakalamak. Diğeri ise disk alt sisteminden gelen "buffer complete" gibi mesajları yakalamak. Bunlar için veritabanı oturup beklemez, çalıştırılırken gerek sistem kesmeleri gerekse sinyaller gibi yollarla bu işlevleri ele alır.

    İşte benim bahsettiğim "düşük düzey asenkron dosya erişim" bu. Elbette siz iki kelime Google'a yazıp bulduğuna atlayan sazanlar olarak ne haberiniz olacak ki veritabanı yazmaktan?

    Ne demiştik:

    quote:

    Halbuki C# kontrollü bir ortam, bir tür sanal makine ile kod yazmanızı sağlar. Bu durumda, alt düzey sistem çağrılarını, mesela asenkron dosya yazımını kullanamazsınız.


    Evet beyler, C# gibi kontrollü bir ortamdan, nasıl sistem kesmelerini yakalamayı düşünüyorsunuz? Yada doğrudan disk erişimini, PIO, UDMA vs. desteklemeyi?

    Daha yiyecek çok ekmeğiniz var ama, siz fırının yerini gösterene tu kaka ediyorsunuz. Bu kafayla bir yere varır mısınız? Bence hayır..




  • 
Sayfa: önceki 123
Sayfaya Git
Git
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.