Naprawdę nie jestem pewien, jaka jest różnica między C #, C # .NET i tym samym dla ASP i innych języków „.NET”.
Z tego, co rozumiem, .NET jest biblioteką / strukturą ... rzeczy. Myślę, że zasadniczo mają dostęp do danych systemu Windows, takich jak elementy formularzy itp., Ale wydaje się, że nie dotyczy to ASP.NET.
Ponadto widzę ludzi nazywających siebie programistami „.NET”. Czy to oznacza, że biegle posługują się językiem C #, ASP i innymi językami?
Wreszcie, nigdy nie widzę C # bez dołączonego .NET. Czy C # jest tak blisko związany z .NET, że bez niego nie można go używać?
Podsumowując: co dokładnie zapewnia .NET? Jak to się ma do C # i ASP itp.? Co oznacza „programista .NET”? I wreszcie, dlaczego nigdy nie widzisz C # bez .NET?
[Nawiasem mówiąc, zdaję sobie sprawę, że są to liczne pytania, ale myślę, że są one bardzo powiązane (lub przynajmniej takie wrażenie wywarło na mnie przeglądanie Programistów / SO itp.)].
.NET to platforma programistyczna - zawiera wiele bibliotek zawierających szereg funkcji.
C # to język stworzony do użytku z .NET. To nie jedyny język zgodny z .NET - inne opcje to VB.NET, F #, Managed C ++, IronRuby i IronPython. Aby używać funkcji w .NET, piszesz kod w wybranym języku.
ASP.NET to rozszerzenie platformy .NET, które pomaga pisać aplikacje i witryny internetowe. W tym kontekście wiele ogólnych ram jest dostępnych (lub przydatnych, w przypadku np. WinForm).
[Classic] ASP to starsza platforma internetowa, również firmy Microsoft. Pomimo podobnych nazw, ASP i ASP.NET są zupełnie inne pod maską. Istotną różnicą jest to, że jedynymi opcjami językowymi dla ASP są VBScript i JScript. ASP to starsza i nieaktualna technologia, nie kłopocz się nią.
źródło
Po pierwsze .Net jest strukturą kodu bajtowego, podobną do kodu bajtowego Java. .Net jednak jest tylko BYTECODE. Nie ma oficjalnego języka „.Net”. Dwa główne języki docelowe .Net to C # i VB.Net. ASP.Net jest rozszerzeniem dostarczonej biblioteki .Net, aby umożliwić aplikacjom napisanym w języku C # lub VB.Net (lub innym docelowym językiem .Net) działanie jako strona internetowa.
Programiści, którzy twierdzą, że znają .Net, zwykle oznaczają, że znają C # lub VB.Net, lub oba, i mogą łatwo nauczyć się dowolnego, którego nie znają (C # i VB.Net to bardzo podobne języki oprócz ogólnej składni)
Wreszcie, ASP NIE JEST tym samym, co ASP.Net. Mają ogromne różnice
źródło
Ponieważ tylko jedna odpowiedź wymienia Mono bez wchodzenia w szczegóły:
Chociaż C # jako język został pierwotnie opracowany w Microsoft jako część .NET Framework, został później znormalizowany przez ECMA , co oznacza, że można opracować niezależne, zgodne ze standardami implementacje języka, i rzeczywiście tak było. Najważniejszym z nich jest Mono .
Mono to implementacja standardowego zestawu narzędzi zgodnych ze standardem .NET Framework zgodnego ze standardem ECMA, w tym kompilatora C # i implementacji CLI (Mono Runtime, odpowiednik CLR firmy Microsoft - wirtualnej maszyny .NET Framework). Jego celem jest uruchamianie aplikacji .NET na różnych platformach. Na dzień dzisiejszy obsługuje C # 4.0 i znaczną część funkcji .NET Framework . Oprócz dublowania implementacji Microsoft zespół Mono wprowadza również własne innowacje.
Tak, tak, jest możliwa i wykonalna praca w języku C # bez platformy .NET. Jest jednak mało prawdopodobne, aby Mono mogło konkurować udziałem Microsoft w rynku i pozycją platformy .NET Framework, nie teraz i nie w najbliższej przyszłości.
źródło
Książka Jona Skeeta, C # In Depth, dość zwięźle psuje platformę .NET. Jest często używany w połączeniu z
źródło
pozostałe odpowiedzi dobrze wyjaśniają, na czym polega każda technologia, ale myślę, że brakuje jednego z głównych powodów zamieszania. C # i C # .NET są zasadniczo synonimami, jednak VB.NET i VB są różne, a ASP i ASP.NET są również różne. VB ogólnie odnosi się do VB6 i starszych, a ASP odnosi się do klasycznej ASP. Technologie te zostały radykalnie przeprojektowane wraz z wydaniem platformy .NET i zamiast wymyślać nowe nazwy produktów, które Microsoft dołączył do .NET do prawie wszystkiego, ale C # był również nowy, więc obie nazwy naprawdę odnoszą się do tego samego.
źródło
Musisz rozróżniać języki, frameworki, CLR, wzorce i metody programowania.
ASP.Net używa zupełnie innego wzorca programowania do programowania Winforms, chociaż mają one te same podstawy. Możesz programować aplikacje ASP.net i .Net w różnych językach.
Potem jest Mono i język C # używane w kontekście Mono - prawdopodobnie warte trochę badań.
Przeczytaj poniższe linki:
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
źródło