it-swarm-eu.dev

Vztah mezi C #, .NET, ASP, ASP.NET atd

Opravdu nejsem nejasný, pokud jde o rozdíl mezi C #, C # .NET a stejným jazykem pro ASP a další jazyky .NET '.

Z toho, co jsem pochopil, .NET je knihovna/rámec ... věcí. Myslím, že v zásadě mají přístup k datům systému Windows, jako jsou například prvky formulářů atd., Ale zdá se, že to neplatí pro ASP.NET.

Kromě toho vidím lidi, kteří si říkají vývojáři „.NET“. Znamená to, že hovoří plynně v C #, ASP a dalších jazycích?

Nakonec jsem nikdy neviděl C # bez připojeného .NET. Je C # tak úzce svázáno s .NET jako bez něj použitelné?

V souhrnu: co přesně poskytuje .NET? Jak to souvisí s C # a ASP atd.? Co znamená „vývojář .NET“? A konečně, proč nikdy nevidíte C # bez .NET?

[Kromě toho si uvědomuji, že se jedná o několik otázek, ale myslím si, že jsou velmi provázané (nebo přinejmenším to je dojem, který mi procházeli Programátoři/SO atd.)]].

146
Megan Walker

Chápu vaše zmatky, věřte mi, že mám stejný pohled, pokud jde o svět Java=!!) Každopádně se pokusím vaše otázky rozebrat a řešit je jeden po druhém ... také jako přidat další body, které snad pomohou objasnit, co se děje:

  1. C # a C # .NET jsou totéž ... C #
  2. .NET je, jak říkáte, knihovna kódu, se kterou mohou jazyky .NET komunikovat.
  3. .NET jazyky přicházejí v různých příchutích, jako jsou: C # .NET, VB.NET, Managed C++, F #.
  4. .NET jazyky se kompilují do CIL ( Common Intermediate Language ), což znamená, že všichni začínají „mluvit“ stejným jazykem, a proto mohou spolupracovat.
  5. ASP.NET je část knihovny .NET, která se používá k vytváření webových stránek. Existují i ​​další subsekce ASP.NET, jako jsou WebForms (starý způsob vytváření webových stránek) nebo rychle zrající knihovna MVC, která stojí za to se na ni také podívat.
  6. Forms (old tech) nebo nový WPF (Windows Presentation Foundation) jsou technologie, které obvykle používáte v prostředí .NET k vytvoření toho, co víte jako tradiční stolní aplikace.

Poslední věc, na které bych chtěl skončit, je rozdíl mezi knihovnou a rámcem. V posledních letech byly tyto dva termíny použity jako synonyma, nicméně tomu tak není. Nejjednodušší způsob, jak si mohu myslet, že je odliším, je:

  • Knihovna obsahuje mnoho funkcí, z nichž si můžete vybrat a vybrat si, tj. Pomocí jedné technologie neznamená, že jste ve zbývající části. To znamená svobodu, ale budete mít pro vás více práce.
  • Rámec však velmi stanoví, jak budete pracovat. Poskytuje pracovní postup, který pro lepší nebo horší je těžké změnit. To znamená rychlý vývoj/prototypování, ale pokud dojde v budoucnu k významným změnám, může být nemožné (nebo velmi časově náročné) implementovat je.

Projekt, na kterém pracujete, bude záviset na tom, kterou volbu provedete.

172
PaulCarroll

.NET je framework pro vývoj aplikací - obsahuje četné knihovny obsahující řadu funkcí.

C # je jazyk vytvořený pro použití s ​​.NET. Nejedná se pouze o jazyk kompatibilní s .NET - další možnosti zahrnují VB.NET, F #, Managed C++, IronRuby a IronPython. Píšete kód v jazyce podle vašeho výběru, abyste mohli používat funkce v rámci .NET framework.

ASP.NET je rozšíření .NET, které vám pomáhá při psaní webových aplikací a webových stránek. V tomto kontextu je k dispozici velká část celkového rámce (nebo užitečná, například v případě WinForms).

[Classic] ASP je starší webový rámec, také od společnosti Microsoft. Přes podobné názvy, ASP a ASP.NET jsou docela odlišné pod kapotou. Jeden pozoruhodný rozdíl je v tom, že vaše jediné jazykové možnosti pro ASP jsou VBScript a JScript. ASP je starší a zastaralá technologie, s tím se neobtěžujte).

23
Grant Palin

Za prvé, .Net je rámec bytecode, podobný Java bytecode. .Net je však pouze BYTECODE. Neexistuje oficiální jazyk „.Net“. Dva hlavní jazyky, které cílí na .Net jsou C # a VB.Net. ASP.Net je rozšíření poskytované knihovny .Net, která umožňuje aplikacím napsaným v C # nebo VB.Net (nebo v jiných cílených jazycích .Net) pracovat jako webová stránka.

Vývojáři, kteří říkají, že znají. Net obvykle znamenají, že znají C # nebo VB.Net, nebo obojí, a mohou se snadno naučit toho, koho neznají (C # a VB.Net jsou velmi podobné jazyky kromě obecné syntaxe)

Nakonec ASP IS NENÍ to samé jako ASP.Net. Mají obrovské rozdíly

14
Earlz

Protože pouze jedna odpověď zmiňuje Mono, aniž by šla do detailů:

Ačkoli C # jako jazyk byl původně vyvinut v Microsoftu jako součást .NET Framework, byl později standardizován ECMA , což znamená, že implementace nezávislých standardních implementací jazyk může být vyvinut, a opravdu to bylo. Nejvýznamnější z nich je Mono .

Mono je open source implementace ECMA standard kompatibilní sady nástrojů kompatibilní s .NET Framework, včetně kompilátoru C # a implementace CLI (Mono Runtime, ekvivalent Microsoft CLR - virtuální stroj .NET Framework). Jeho cílem je provozovat .NET aplikace napříč platformami. Od dnešního dne podporuje C # 4.0 a podstatná část funkcí rozhraní .NET Framework . Kromě zrcadlení implementace Microsoftu tým Mono také vyvíjí své vlastní inovace.

Takže ano, je možné a proveditelné pracovat v C # bez .NET. Je však nepravděpodobné, že Mono bude schopno soupeřit s tržním podílem Microsoftu a pozicí .NET Framework, ne nyní a ne v nejbližší budoucnosti.

8
scrwtp

Kniha Jon Skeet, C # In Hloubka, rozbije .NET poměrně stručně. Často se používá ve spojení s

  1. Programovací jazyky (C #, VB)
  2. Runtime (CLR), které spouští bajtkód, do kterého jsou tyto jazyky kompilovány.
  3. Knihovny frameworků (Windows Forms/ASP.NET)
7
mootinator

ostatní odpovědi dobře vysvětlují, co každá technologie, ale myslím, že jim chybí jeden z hlavních důvodů záměny. C # a C # .NET jsou v podstatě synonymem, nicméně VB.NET a VB jsou různé a ASP a ASP.NET jsou také odlišné. VB obecně odkazuje na VB6 a starší a ASP odkazuje na klasickou ASP.) Tyto technologie byly radikálně přepracovány s vydáním .NET framework a místo toho, aby přišly s novými názvy pro produkty Microsoft připojil .NET téměř ke všemu, ale C # byl také nový, takže obě jména opravdu odkazují na stejnou věc.

2
Ryathal

Musíte rozlišovat mezi jazyky, kostry, CLR, vzory a programovacími metodami.

ASP.Net používá pro vývoj Winforms zcela odlišný vzorec programování, i když sdílejí stejný základ. Můžete naprogramovat aplikace ASP.net a .Net v různých jazycích.

Pak je zde Mono a jazyk C # používaný v Mono kontextu - pravděpodobně stojí za nějaký výzkum.

Přečtěte si tyto odkazy:
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