it-swarm.dev

Beziehung zwischen C #, .NET, ASP, ASP.NET usw.

Ich bin mir über den Unterschied zwischen C #, C # .NET und demselben für ASP und andere '.NET'-Sprachen wirklich unklar.

Soweit ich weiß, ist .NET eine Bibliothek/ein Framework von ... Dingen. Ich denke, sie haben im Wesentlichen Zugriff auf Windows-Daten wie Formularelemente usw., aber das scheint für ASP.NET nicht zu gelten.

Außerdem sehe ich Leute, die sich ".NET" -Entwickler nennen. Bedeutet dies, dass sie C #, ASP und andere Sprachen) fließend sprechen?

Schließlich sehe ich nie C # ohne .NET. Ist C # so eng mit .NET verbunden, dass es ohne es nicht verwendet werden kann?

Zusammenfassend: Was genau bietet .NET? Wie hängt es mit C # und ASP usw.) zusammen? Was bedeutet "ein .NET-Entwickler"? Und schließlich, warum sehen Sie C # nie ohne .NET?

[Abgesehen davon ist mir klar, dass dies mehrere Fragen sind, aber ich denke, dass sie sehr miteinander zusammenhängen (oder zumindest ist dies der Eindruck, den das Durchsuchen von Programmierern/SO usw. mir vermittelt hat)].

146
Megan Walker

Ich verstehe Ihre Verwirrung, glauben Sie mir, ich habe die gleiche Perspektive, wenn es um die Java Welt!) Geht. Wie auch immer, ich werde versuchen, Ihre Fragen aufzuschlüsseln und sie einzeln anzugehen ... auch Wenn Sie noch einige weitere Punkte hinzufügen, können Sie hoffentlich klarstellen, was los ist:

  1. C # und C # .NET sind dasselbe ... C #
  2. .NET ist, wie Sie sagen, eine Codebibliothek, mit der .NET-Sprachen kommunizieren können.
  3. .NET-Sprachen gibt es in verschiedenen Varianten, z. B.: C # .NET, VB.NET, Managed C++, F #.
  4. .NET-Sprachen werden zu CIL kompiliert ( Common Intermediate Language ), was bedeutet, dass alle dieselbe Sprache "sprechen" und daher zusammenarbeiten können.
  5. ASP.NET ist der Teil der .NET-Bibliothek, der zum Erstellen von Websites verwendet wird. Es gibt andere Unterabschnitte von ASP.NET wie WebForms (die alte Methode zum Erstellen von Webseiten) oder die schnell ausgereifte MVC-Bibliothek, die ebenfalls einen Blick wert sind.
  6. Formulare (alte Technologie) oder die neue WPF (Windows Presentation Foundation) sind die Technologien, die Sie normalerweise in .NET verwenden, um herkömmliche Desktopanwendungen zu erstellen.

Eine letzte Sache, die ich abschließen möchte, ist der Unterschied zwischen Bibliothek und Framework. In den letzten Jahren wurden diese beiden Begriffe synonym verwendet, dies ist jedoch nicht der Fall. Der einfachste Weg, die beiden zu unterscheiden, ist:

  • Eine Bibliothek enthält viele Funktionen, aus denen Sie auswählen können, d. H. Die Verwendung einer Technologie bedeutet nicht, dass Sie an den Rest gebunden sind. Dies bedeutet Freiheit, Sie werden jedoch mehr Arbeit für sich haben.
  • Ein Framework legt jedoch sehr genau fest, wie Sie arbeiten werden. Es bietet einen Workflow, der sich zum Guten oder Schlechten nur schwer ändern lässt. Dies bedeutet eine schnelle Entwicklung/Prototyping. Wenn jedoch in Zukunft wesentliche Änderungen vorgenommen werden, kann es unmöglich (oder sehr zeitaufwändig) sein, diese zu implementieren.

Das Projekt, an dem Sie arbeiten, hängt davon ab, welche Wahl Sie treffen.

172
PaulCarroll

.NET ist ein Anwendungsentwicklungsframework - es enthält zahlreiche Bibliotheken mit einer Reihe von Funktionen.

C # ist eine Sprache, die für die Verwendung mit .NET erstellt wurde. Es ist nicht die einzige .NET-kompatible Sprache. Weitere Optionen sind VB.NET, F #, Managed C++, IronRuby und IronPython. Sie schreiben Code in der Sprache Ihrer Wahl, um die Funktionalität im .NET Framework zu nutzen.

ASP.NET ist eine Erweiterung von .NET, mit der Sie webbasierte Anwendungen und Websites schreiben können. In diesem Zusammenhang ist ein Großteil des Gesamtrahmens verfügbar (oder nützlich, im Fall von beispielsweise WinForms).

[Classic] ASP ist ein älteres Webframework, ebenfalls von Microsoft. Trotz der ähnlichen Namen sind ASP und ASP.NET unter der Haube sehr unterschiedlich Bemerkenswerter Unterschied ist, dass Ihre einzigen Sprachoptionen für ASP sind VBScript und JScript. ASP ist eine ältere und veraltete Technologie, machen Sie sich keine Sorgen damit.

23
Grant Palin

Zunächst einmal ist .Net ein Bytecode-Framework, ähnlich wie Java Bytecode. .Net ist jedoch nur BYTECODE. Es gibt keine offizielle ".Net" -Sprache. Die beiden Hauptsprachen zielen auf .Net ab sind C # und VB.Net. ASP.Net ist eine Erweiterung der bereitgestellten .Net-Bibliothek, damit Anwendungen, die in C # oder VB.Net (oder anderen .Net-Zielsprachen) geschrieben sind, als Website funktionieren können.

Entwickler, die sagen, dass sie .Net kennen, bedeuten normalerweise, dass sie C # oder VB.Net oder beides kennen und leicht lernen können, welche sie nicht kennen (C # und VB.Net sind abgesehen von der allgemeinen Syntax extrem ähnliche Sprachen).

Schließlich ASP IS NICHT dasselbe wie ASP.Net. Sie haben große Unterschiede

14
Earlz

Da nur eine Antwort Mono erwähnt, ohne ins Detail zu gehen:

Obwohl C # als Sprache ursprünglich bei Microsoft als Teil von .NET Framework entwickelt wurde, wurde es später durch ECMA standardisiert, was bedeutet, dass unabhängige standardkonforme Implementierungen von Sprache kann entwickelt werden, und tatsächlich waren sie es. Das bekannteste davon ist Mono .

Mono ist eine Open-Source-Implementierung eines ECMA-Standard-kompatiblen Satzes von Tools, die mit .NET Framework kompatibel sind, einschließlich eines C # -Compilers und einer CLI-Implementierung (Mono Runtime, das Äquivalent zu Microsoft CLR - der virtuellen Maschine von .NET Framework). Ziel ist es, .NET-Anwendungen plattformübergreifend auszuführen. Ab heute werden C # 4.0 und wesentlicher Bestandteil der .NET Framework-Funktionen unterstützt. Das Mono-Team spiegelt nicht nur die Microsoft-Implementierung wider, sondern macht auch eigene Innovationen.

Ja, es ist möglich und machbar, in C # ohne .NET zu arbeiten. Es ist jedoch unwahrscheinlich, dass Mono nicht jetzt und nicht in naher Zukunft mit dem Marktanteil von Microsoft und der Position von .NET Framework mithalten kann.

8
scrwtp

Jon Skeets Buch C # In Depth bricht .NET ziemlich prägnant auf. Es wird oft in Verbindung mit verwendet

  1. Programmiersprachen (C #, VB)
  2. Die Laufzeit (CLR), mit der der Bytecode ausgeführt wird, zu dem diese Sprachen kompiliert wurden.
  3. Framework-Bibliotheken (Windows Forms/ASP.NET)
7
mootinator

die anderen Antworten erklären gut, was jede Technologie ist, aber ich denke, sie vermissen einen der Hauptgründe für Verwirrung. C # und C # .NET sind im Wesentlichen synonym, jedoch sind VB.NET und VB unterschiedlich und ASP und ASP.NET sind ebenfalls unterschiedlich. VB bezieht sich im Allgemeinen auf VB6 und älter, und ASP bezieht sich auf klassisches ASP. Diese Technologien wurden mit der Veröffentlichung des .NET-Frameworks radikal überarbeitet und haben keine neuen Namen für Produkte Microsoft hat .NET an so ziemlich alles angehängt, aber C # war auch neu, sodass beide Namen wirklich auf dasselbe verweisen.

2
Ryathal

Sie müssen zwischen Sprachen, Frameworks, CLR, Mustern und Programmiermethoden unterscheiden.

ASP.Net verwendet ein völlig anderes Programmiermuster als die Winforms-Entwicklung, obwohl sie dieselbe Grundlage haben. Sie können ASP.net- und .Net-Anwendungen in verschiedenen Sprachen programmieren.

Dann gibt es Mono und die im Mono-Kontext verwendete C # -Sprache - wahrscheinlich eine Recherche wert.

Lesen Sie diese Links:
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