it-swarm-tr.com

C #, .NET, ASP, ASP.NET vb. Arasındaki ilişki

ASP ve diğer '.NET' dilleri için C #, C # .NET ve aynı arasındaki fark gerçekten belirsiz.

Anladığım kadarıyla, .NET ... şeylerin bir kütüphanesi/çerçevesidir. Ben aslında form öğeleri vb gibi Windows verilerine erişim olduğunu düşünüyorum, ama bu ASP.NET için geçerli görünmüyor.

Ayrıca, insanların kendilerini '.NET' geliştiricileri olarak adlandırdıklarını görüyorum. Bu, C #, ASP ve diğer dillerde akıcı oldukları) anlamına mı geliyor?

Son olarak, .NET olmadan C # görmüyorum. C #, .NET olmadan onsuz kullanılamayacak kadar yakından bağlı mı?

Özetle: .NET tam olarak ne sağlar? Nasıl C # ve ASP vb.) İle ilişkilidir? 'Bir .NET geliştirici' ne anlama geliyor?

[Bir yana, bunların birden fazla soru olduğunu anlıyorum, ama çok birbirleriyle ilişkili olduklarını düşünüyorum (ya da en azından Programcılar/SO vb.

146
Megan Walker

Karışıklıklarınızı anlıyorum, inanın bana Java dünya!)! çünkü neler olup bittiğini açıklığa kavuşturacak başka noktalar ekleyin:

  1. C # ve C # .NET aynı şeydir ... C #
  2. .NET, dediğiniz gibi, .NET dillerinin konuşabileceği bir kod kütüphanesidir.
  3. .NET dilleri farklı lezzetlerle gelir: C # .NET, VB.NET, Yönetilen C++, F #.
  4. .NET dilleri CIL ( Common Intermediate Language ) olarak derlenir, bu da hepsi aynı dili "konuşmaya" başlar ve bu nedenle birlikte çalışabilir.
  5. ASP.NET, .NET kitaplığının web siteleri oluşturmak için kullanılan kısmıdır. ASP.NET'in WebForms (web sayfaları oluşturmanın eski yolu) veya hızla olgunlaşan MVC kitaplığı gibi başka alt bölümleri de vardır.
  6. Formlar (eski teknoloji) veya yeni WPF (Windows Presentation Foundation), geleneksel masaüstü uygulamaları olarak bildiğiniz şeyleri oluşturmak için .NET'te genellikle kullandığınız teknolojilerdir.

Bitirmek istediğim son şey, kütüphane ve çerçeve arasındaki fark. Son yıllarda bu iki terim eş anlamlı olarak kullanılmıştır, ancak durum böyle değildir. Bu ikisini ayırt etmenin en kolay yolu:

  • Bir kütüphane, seçebileceğiniz ve seçebileceğiniz birçok işlevsellik içerir, yani tek bir teknoloji kullanmak, diğerlerine kilitlendiğiniz anlamına gelmez. Bu özgürlük anlamına gelir, ancak sizin için daha fazla işiniz olacaktır.
  • Bununla birlikte, bir çerçeve nasıl çalışacağınızı çok fazla belirler. Daha iyi veya daha kötü için değiştirmenin zor olduğu bir iş akışı sağlar. Bu, hızlı geliştirme/prototipleme anlamına gelir, ancak gelecekte önemli değişiklikler yapılırsa, bunların uygulanması imkansız (veya çok zaman alıcı) olabilir.

Üzerinde çalıştığınız proje hangi seçimi yaptığınıza bağlı olacaktır.

172
PaulCarroll

.NET bir uygulama geliştirme çerçevesidir - bir dizi işlevsellik içeren çok sayıda kitaplık içerir.

C #, .NET ile kullanılmak üzere oluşturulmuş bir dildir. Yalnızca .NET uyumlu dil değildir - diğer seçenekler arasında VB.NET, F #, Yönetilen C++, IronRuby ve IronPython bulunur. .NET çerçevesindeki işlevselliği kullanmak için kodu istediğiniz dilde yazarsınız.

ASP.NET, web tabanlı uygulamalar ve web siteleri yazmanıza yardımcı olan bir .NET uzantısıdır. Genel çerçevenin çoğu bu bağlamda mevcuttur (veya örneğin WinForms durumunda faydalıdır).

[Klasik] ASP, Microsoft'tan da eski bir web çerçevesidir. Benzer isimlere rağmen, ASP ve ASP.NET kaputun altında oldukça farklı. Önemli bir fark, ASP için tek dil seçeneklerinizin VBScript ve JScript olmasıdır. ASP eski ve modası geçmiş bir teknolojidir, kendinizle ilgili sorun çıkarmayın.

23
Grant Palin

Öncelikle, .Net Java bytecode. .Net'e benzer bir bytecode çerçevesidir, ancak yalnızca BYTECODE'dir. “.Net” resmi dili yoktur. .Net'i hedefleyen iki ana dil ASP.Net, C # veya VB.Net (veya .Net hedeflenen diğer diller) ile yazılmış uygulamaların web sitesi olarak çalışmasını sağlamak için sağlanan .Net kütüphanesinin bir uzantısıdır.

Bildiklerini söyleyen geliştiriciler .Net genellikle C # veya VB.Net veya her ikisini de tanıdıklarını ve hangilerini bilmediklerini kolayca öğrenebileceklerini söyler (C # ve VB.Net genel sözdizimi dışında son derece benzer dillerdir)

Son olarak, ASP IS ASP.Net ile aynı DEĞİLDİR.

14
Earlz

Sadece bir cevap Mono'dan ayrıntıya girmeden bahsettiğinden:

Bir dil olarak C #, başlangıçta Microsoft'ta .NET Framework'ün bir parçası olarak geliştirilmiş olsa da, daha sonra ECMA ile standartlaştırılmıştır, yani bağımsız standart uyumlu uygulamalar dil geliştirilebilir ve gerçekten öyleydi. Bunların en göze çarpanı Mono .

Mono, bir C # derleyicisi ve bir CLI uygulaması (.NET Framework'ün sanal makinesi olan Microsoft'un CLR'sinin eşdeğeri) dahil olmak üzere, .NET Framework ile uyumlu ECMA standardıyla uyumlu bir araç setinin açık kaynaklı bir uygulamasıdır. Amacı, .NET uygulamalarını çapraz platformda çalıştırmaktır. Bugün itibariyle, C # 4.0 ve .NET Framework özelliklerinin önemli bir kısmı destekler. Microsoft uygulamasını yansıtmanın yanı sıra, Mono ekibi de kendi yeniliklerini yapıyor.

Yani, evet, .NET olmadan C # 'da çalışmak mümkün ve mümkün. Ancak Mono'nun Microsoft'un pazar payına ve .NET Framework'ün konumuna şimdi değil, yakın gelecekte rakip olması mümkün değildir.

8
scrwtp

Jon Skeet'in C # In Depth adlı kitabı .NET'i oldukça kısa sürede bozar. Genellikle ile bağlantılı olarak kullanılır

  1. Programlama Dilleri (C #, VB)
  2. Bu dillerin derlendiği bayt kodunu çalıştıran Çalışma Zamanı (CLR).
  3. Çerçeve Kitaplıkları (Windows Forms/ASP.NET)
7
mootinator

diğer cevaplar her teknolojinin ne olduğunu açıklamak için iyi bir iş çıkarıyor, ancak bence kafa karışıklığının en büyük nedenlerinden birini kaçırıyorlar. C # ve C # .NET aslında eş anlamlıdır, ancak VB.NET ve VB farklıdır ve ASP ve ASP.NET de farklıdır. VB genellikle VB6 ve daha eski sürümleri ifade eder ve ASP klasik ASP anlamına gelir. Bu teknolojiler, .NET framework'ün piyasaya sürülmesiyle kökten yeniden tasarlandı ve bunun yerine ürünleri Microsoft hemen hemen her şeye .NET ekledi, ancak C # da yeniydi, bu yüzden her iki isim de gerçekten aynı şeyi ifade ediyor.

2
Ryathal

Diller, Çerçeveler, CLR, Desenler ve Programlama yöntemleri arasında ayrım yapmanız gerekir.

ASP.Net, aynı temeli paylaşsalar da Winforms geliştirmesi için tamamen farklı bir programlama modeli kullanır. ASP.net ve .Net uygulamalarını çeşitli dillerde programlayabilirsiniz.

Sonra Mono ve Mono bağlamında kullanılan C # dili var - muhtemelen biraz araştırmaya değer.

Bu bağlantıları okuyun:
http://en.wikipedia.org/wiki/Common_Language_Runtime
http://en.wikipedia.org/wiki/.NET_Framework#Alternative_implementations
http://en.wikipedia.org/wiki/File:Overview_of_the_Common_Language_Infrastructure.svg

0
Jeremy