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


143

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

Anladığım kadarıyla .NET, şeylerin bir kütüphanesi / çerçevesidir. Temelde form elemanları vb. Gibi Windows verilerine eriştiklerini düşünüyorum, ancak ASP.NET için geçerli görünmüyor.

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

Son olarak, .NET olmadan C # göremiyorum. C #, onsuz kullanılamaz olacağı için .NET'e yakından bağlı mı?

Özetle: .NET tam olarak ne sağlar? C # ve ASP vb. İle ilgisi nedir? 'Bir .NET geliştiricisi' ne anlama geliyor? Ve son olarak, neden .NET olmadan C # görmüyorsunuz?

[Bir yana, bunların birden fazla soru olduğunun farkındayım, ancak birbirleriyle çok ilişkili olduklarını düşünüyorum (ya da en azından bu Programlayıcılar / SO vb.

Yanıtlar:


172

Kafanızın karışıklığını anlıyorum, inan bana Java dünyasına gelince aynı bakış açısına sahipim! Her neyse, sorularınızı yıkmaya ve bunları tek tek ele almaya çalışacağım ... ve neler olup bittiğini açıklığa kavuşturacak başka noktalar da ekleyeceğim:

  1. C # ve C # .NET aynı şeydir ... C #
  2. .NET, söylediğiniz gibi, .NET dillerinin konuşabileceği bir kod kütüphanesidir.
  3. .NET dilleri gibi farklı lezzetler gelir: C # .NET, VB.NET, Yönetilen C ++, F #.
  4. .NET dilleri, CIL ( Common Intermediate Language ) derler; bu, hepsi aynı dili "konuşmaya" başlar ve bu nedenle birlikte çalışabilir.
  5. ASP.NET, .NET kütüphanesinin web siteleri oluşturmak için kullanılan kısmıdır. ASP.NET'in WebForms (alt sayfalar yapmanın eski yolu) veya hızla olgunlaşan MVC kitaplığı gibi alt bölümleri de bakılmaya değer.
  6. Formlar (eski teknoloji) veya yeni WPF (Windows Presentation Foundation), geleneksel masaüstü uygulamaları olarak bildiklerinizi oluşturmak için genellikle .NET'te 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ğil. İkisini ayırt etmeyi düşünmenin en kolay yolu şudur:

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

Üzerinde çalıştığınız proje, yaptığınız seçime bağlı olacaktır.


7
+1, fakat # 2 üzerindeki küçük bir kıkırdama - .NET, bir "kod kütüphanesi" değildir, bu, programlarınızın nasıl tanımlandığını ve çalıştırıldığını tanımlayan bir "iş akışı" olarak tanımladığınız bir çerçevedir. Microsoft tarafından yayınlanan, .NET dillerinde kullanılabilen standart kitaplıkların koleksiyonu .NET Temel Sınıf Kütüphanesidir (BCL).
nlawalker

7
ASP'nin ASP.NET yerine klasik ASP'ye başvurmak için kullanılabileceğini unutmayın.
Brian,

11
Nokta 1 ile aynı fikirde değilim. C #. NET olmadan kullanılabilir, bu nedenle C #. NET açıkça C # kullanmazsınız. Pratikte çoğu insan C # 'nın .NET ile kullanıldığını varsayar.
Ian Newson,

23

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

C #, .NET ile kullanılmak üzere oluşturulmuş bir dildir. Sadece .NET uyumlu bir dil değil - diğer seçenekler arasında VB.NET, F #, Managed C ++, IronRuby ve IronPython var. .NET çerçevesindeki işlevselliği kullanmak için istediğiniz dilde kod 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 daha eski bir web çerçevesidir. Benzer isimlere rağmen, ASP ve ASP.NET başlık altında oldukça farklıdır. Dikkat çeken bir fark, ASP için tek dil seçenekleriniz VBScript ve JScript olmasıdır. ASP eski ve modası geçmiş bir teknolojidir, kendisiyle sorun yaşamazsınız.


14

Öncelikle .Net, Java bytecode'una benzeyen bir bytecode çerçevesidir. .Net, ancak sadece BYTECODE. Bir ".Net" resmi dili yoktur. .NET'i hedefleyen iki ana dil C # ve VB.Net'tir. ASP.Net, C # veya VB.Net'te (veya diğer .Net hedefli dillerde) yazılmış uygulamaların bir 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'i veya her ikisini de bildiklerini gösterir ve bilmediklerinin hangisi olduğunu kolayca öğrenebilir (C # ve VB.Net, genel sözdiziminden farklı olarak benzer dillerdir)

Son olarak, ASP, ASP.Net ile aynı değildir. Çok büyük farklar var


Yani ac # uygulama ve ac # .net uygulama arasında bir fark var mı? Cevabınız içinde. Net geliştiriciler bölümü olsa da çok yardımcı oldu.
Megan Walker,

5
Eh, C # aslında sadece bir dildir. Net ile bağlı değil. ANCAK C # 'nin tüm güncel kullanımları .Net
iledir

Bir ".NET" geliştiricisi olarak, talepte bulunduğum için dili özel yöntemlerden / özelliklerden olabildiğince uzak tuttum, böylece tüm .NET dillerinde yalnızca sözdizimi değişiklikleriyle atlayabiliyorum.
Wayne,

1
C # dil sadece bir dildir. .NET arka uç veya çerçeve ile konuşmak zorunda kalmadan C # ile herhangi bir şey yazabilirsiniz. Benden şüphelenenler için Xamarin C # 'ya bakın: iOS ve Android yerel uygulamalarını herhangi bir .NET kullanmadan yazmanın bir yolu.
Phil Ryan

@PhilRyan Neye mal olursa olsun, Xamarin bu cevap gönderildiğinde bile icat edilmedi.
TylerH

8

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

Bir dil olarak C # orijinal olarak Microsoft’ta .NET Framework’ün bir parçası olarak geliştirilse de, daha sonra ECMA tarafından standartlaştırılmıştır , yani dilin bağımsız standart uyumlu uygulamalarının geliştirilebileceği ve gerçekten de öyle oldukları anlamına gelir. Bunların en belirginleri Mono .

Mono, bir C # derleyicisi ve bir CLI uygulaması (.NET Framework'ün sanal makinesi olan Mono Çalışma Zamanı, Microsoft'un CLR'sinin eşdeğeri olan Mono Çalışma Zamanı) dahil olmak üzere, .NET Framework ile uyumlu bir dizi ECMA standardı uyumlu araç setidir. Amaç, .NET uygulamaları çapraz platform çalıştırmaktır. Bugün itibariyle, C # 4.0'ı ve .NET Framework özelliklerinin önemli bir bölümünü destekliyor . Microsoft uygulamasını yansıtmanın yanı sıra, Mono ekibi de kendi yeniliklerini yapıyor.

Yani, evet, C # ile .NET olmadan çalışmak mümkün ve mümkün. Ancak Mono’nun Microsoft’un pazar payına ve .NET Framework’ün pozisyonuna yakın bir zamanda rakipsiz olamayacağı tahmin ediliyor.


.NET ile eşleştirilmeden C # göremediğiniz yanlış varsayımını düzeltmek için birinin Mono'yu açıklamasını bekliyordu. +1.
KChaloux,

7

Jon Skeet'in kitabı, C # In Depth, .NET'i oldukça kısaca yıkar. Sıklıkla bağlantılı olarak kullanılır

  1. Programlama Dilleri (C #, VB)
  2. Bayt kodunu çalıştıran Çalışma Zamanı (CLR) bu dillerin derlendiği
  3. Çerçeve Kütüphaneleri (Windows Forms / ASP.NET)

2

diğer cevaplar, her bir teknolojinin ne olduğunu açıklamak için iyi bir iş çıkarsa da, kafa karışıklığının ana nedenlerinden birini özlediklerini düşünüyorum. 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 eskileri, ASP ise klasik ASP'yi ifade eder. Bu teknolojiler .NET çerçevesinin piyasaya sürülmesiyle radikal bir şekilde yeniden tasarlandı ve Microsoft'un .NET'e hemen hemen her şeyi eklemiş olduğu ürünler için yeni isimler bulmak yerine, C # da yeniydi, bu yüzden her iki isim de aynı şeyi ifade ediyordu.


0

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

ASP.Net, aynı temeli paylaşmalarına rağmen, Winform'un geliştirilmesinde tamamen farklı bir programlama deseni kullanıyor. 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ı okudunuz:
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


"ASP.net ve .Net uygulamalarını çeşitli dillerde programlayabilirsiniz." Bununla ne demek istediğini anlamadım. Bir ASP.net programını çeşitli dillerde yazabileceğinizi söylüyorsunuz. Ama ASP’nin dil olduğunu ve .NET’in eklediğiniz çerçeve olduğunu düşündüm.
Megan Walker,

ASP.net bir çerçevedir ve bunu bir programlama yöntemi olarak görüyorum. ASP.net bu listeden herhangi bir dilde kodlanabilir en.wikipedia.org/wiki/List_of_CLI_languages ASP Class'ın yapamadığı durumlarda.
Jeremy,

1
ASP bir dil değil.
Marcie
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.