Связь между C #, .NET, ASP, ASP.NET и т. Д. [Закрыто]

Я действительно не понимаю разницу между C #, C # .NET и тем же самым для ASP и других языков .NET.

Из того, что я понимаю, .NET - это библиотека /структура ... вещей. Я думаю, что они по сути являются доступом к данным Windows, таким как элементы формы и т. Д., Но это не похоже на ASP.NET.

Кроме того, я вижу, что люди называют себя разработчиками .NET. Означает ли это, что они свободно владеют C #, ASP и другими языками?

Наконец, я никогда не вижу C # без .NET. Является ли C # тесно связанным с .NET как непригодным для использования без него?

Вкратце: что именно предоставляет .NET? Как это относится к C # и ASP и т. Д.? Что означает «разработчик .NET»? И, наконец, почему вы никогда не видите C # без .NET?

[В стороне, я понимаю, что это несколько вопросов, но я думаю, что они очень взаимосвязаны (или, по крайней мере, это впечатление, что просмотр Programmers /SO и т. д. дал мне).

137 голосов | спросил Megan Walker 7 FebruaryEurope/MoscowbMon, 07 Feb 2011 01:27:06 +0300000000amMon, 07 Feb 2011 01:27:06 +030011 2011, 01:27:06

7 ответов


168

Я понимаю ваше замешательство, поверьте мне, у меня такая же точка зрения, когда речь заходит о мире Java! В любом случае я попытаюсь сломать ваши вопросы и решить их один за другим ... а также добавить некоторые другие моменты, которые, надеюсь, помогут уточнить, что происходит:

  1. C # и C # .NET - это то же самое ... C #
  2. .NET - это, как вы говорите, библиотека кода, с которой могут разговаривать языки .NET.
  3. Языки .NET приходят в разных вариантах, таких как: C # .NET, VB.NET, Managed C ++, F #.
  4. Языки .NET компилируются в CIL ( Обычный промежуточный язык ), что означает, что все они начинают «говорить» на одном языке и может поэтому взаимодействовать.
  5. ASP.NET - это часть библиотеки .NET, используемая для создания веб-сайтов. Существуют и другие подразделы ASP.NET, такие как WebForms (старый способ создания веб-страниц) или быстро созревающая библиотека MVC, на которую стоит обратить внимание.
  6. Формы (старые технологии) или новый WPF (Windows Presentation Foundation) - это технологии, которые вы обычно используете в .NET для создания того, что вы знаете как традиционные настольные приложения.

Последнее, что я хотел бы закончить, - это различие между библиотекой и каркасом. В последние годы эти два термина были использованы как синонимы, однако это не так. Самый простой способ, с помощью которого я могу отличить два, - это:

  • Библиотека содержит много функциональных возможностей, которые вы можете выбрать, например, используя одну часть технологии, не означает, что вы заблокированы в остальном. Это означает свободу, однако у вас будет больше работы для вас.
  • Однако структура очень многое определяет, как вы будете работать. Он обеспечивает рабочий процесс, который для улучшения или хуже трудно изменить. Это означает быстрое развитие /прототипирование, но если в будущем будут сделаны значительные изменения, это может оказаться невозможным (или очень трудоемким) для их реализации.

Проект, над которым вы работаете, будет зависеть от того, какой выбор вы сделаете.

ответил PaulCarroll 7 FebruaryEurope/MoscowbMon, 07 Feb 2011 01:58:02 +0300000000amMon, 07 Feb 2011 01:58:02 +030011 2011, 01:58:02
23

.NET - это платформа разработки приложений - она ​​содержит множество библиотек, содержащих ряд функциональных возможностей.

C # - это язык, созданный для использования с .NET. Это не единственный совместимый с .NET язык. Другие варианты включают VB.NET, F #, Managed C ++, IronRuby и IronPython. Вы пишете код на выбранном вами языке, чтобы использовать функциональные возможности в платформе .NET.

ASP.NET - это расширение .NET, которое помогает вам писать веб-приложения и веб-сайты. Большая часть общей структуры доступна (или полезна, в случае, например, WinForms) в этом контексте.

[Classic] ASP - это более старая веб-среда, также от Microsoft. Несмотря на аналогичные имена, ASP и ASP.NET сильно отличаются под капотом. Одна заметная разница заключается в том, что для ASP доступны только варианты языка VBScript и JScript. ASP - старая и устаревшая технология, не беспокойтесь о ней.

ответил Grant Palin 7 FebruaryEurope/MoscowbMon, 07 Feb 2011 02:47:38 +0300000000amMon, 07 Feb 2011 02:47:38 +030011 2011, 02:47:38
11

Во-первых, .Net - это байт-код, похожий на байт-код Java. .Net, однако, только BYTECODE. Официального языка «.Net» нет. Двумя основными языками, нацеленными на .Net, являются C # и VB.Net. ASP.Net является расширением предоставляемой библиотеки .Net, позволяющей приложениям, написанным на языках C # или VB.Net (или других .Net-адресах), работать в качестве веб-сайта.

Разработчики, которые говорят, что они знают .Net обычно означает, что они знают C # или VB.Net, или и то, и другое, и могут легко узнать, что они не знают (C # и VB.Net - очень похожие языки помимо общего синтаксиса)

Наконец, ASP не совпадает с ASP.Net. У них огромные различия.

ответил Earlz 7 FebruaryEurope/MoscowbMon, 07 Feb 2011 01:32:34 +0300000000amMon, 07 Feb 2011 01:32:34 +030011 2011, 01:32:34
7

Поскольку только один ответ упоминает Mono, не вдаваясь в подробности:

Хотя C # в качестве языка был первоначально разработан в Microsoft как часть .NET Framework, позднее он был стандартизован ECMA , что означает, что независимые стандартизованные реализации языка могут быть разработаны, и они действительно были. Наиболее заметным из них является Моно .

Mono представляет собой реализацию с открытым исходным кодом стандартного набора совместимых с ECMA инструментов, совместимых с .NET Framework, включая компилятор C # и реализацию CLI (Mono Runtime, эквивалент CLR Microsoft - виртуальная машина .NET Framework). Цель состоит в том, чтобы запускать .NET-приложения кросс-платформенными. На сегодняшний день он поддерживает C # 4.0 и значительную часть возможностей .NET Framework . Помимо зеркалирования реализации Microsoft, команда Mono также делает свои собственные инновации.

Итак, да, возможно и возможно работать на C # без .NET. Однако маловероятно, что Mono сможет конкурировать с долей рынка Microsoft и позицией .NET Framework, а не сейчас, а не в ближайшем будущем.

ответил scrwtp 13 J0000006Europe/Moscow 2012, 01:21:30
6

Книга Джона Скита, C # В Depth Breaks .NET вниз довольно лаконично. Он часто используется в связи с

  1. Языки программирования (C #, VB)
  2. В Runtime (CLR), которая запускает байт-код, эти языки скомпилированы.
  3. Библиотеки Framework (Windows Forms /ASP.NET)
ответил scrwtp 13 J0000006Europe/Moscow 2012, 01:21:30
2

другие ответы хорошо помогают объяснить, что каждая технология, но я думаю, что они пропустили одну из основных причин путаницы. C # и C # .NET по существу являются синонимами, однако VB.NET и VB различны, а ASP и ASP.NET также различны. VB обычно относится к VB6 и старше, а ASP относится к классическому ASP. Эти технологии были радикально переработаны с выпуском .NET framework и вместо того, чтобы придумывать новые имена для продуктов, добавленных Microsoft .NET, почти во все, но C # также был новым, так что оба названия действительно относятся к одной и той же вещи.

ответил Ryathal 13 J0000006Europe/Moscow 2012, 00:45:08
0

Вы должны различать языки, рамки, CLR, шаблоны и методы программирования.

ASP.Net использует совершенно другой шаблон программирования для разработки Winforms, хотя они имеют одинаковую основу. Вы можете программировать приложения ASP.net и .Net на разных языках.

Тогда есть Mono и язык C #, используемый в контексте Mono - возможно, стоит некоторых исследований.

Прочтите эти ссылки:
http://en.wikipedia.org/wiki/Common_Language_Runtime
http://en.wikipedia.org/wiki/.NET_Framework #Alternative_implementations
http://en.wikipedia.org/wiki/Файл: Overview_of_the_Common_Language_Infrastructure.svg

ответил Jeremy 7 FebruaryEurope/MoscowbMon, 07 Feb 2011 01:35:57 +0300000000amMon, 07 Feb 2011 01:35:57 +030011 2011, 01:35:57

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132