Платформа .NET
В Visual Studio .NET входят такие языки программирования как: С++, C#(Sharp), J# (По синтаксису очень похож на Java), Visual Basic На данный момент .NET является самой мощной платформой. И используется для создания как Windows приложений, так и internet приложений.
.NET представляет собой совершенно новый способ создания распределённых, настольных и встроенных приложений. Специально для этой платформы Microsoft разработала новый язык программирования – C#. Этот язык, как и Java, очень многое позаимствовал из C++ (особенно с точки зрения синтаксиса). Однако на C# сильно повлиял и Visual Basic 6.0 (VB). В целом можно сказать, что C# впитал в себя многое из того лучшего, что есть в самых разных языках программирования.
Как живут программисты, использующие Win32/C.
Изначально под программированием под Windows подразумевалось программированием Windows Application Programming Interface (интерфейсом прикладного программирования Windows, в 32-разрядных версиях Windows – Win32 API)
C достаточно суровый по отношению к программисту язык. Тем кто создаёт на нём свои приложения, приходиться заниматься управлением памятью, выполнять расчёты при использовании указателей и работать с совершенно неестественными с точки зрения человеческого языка синтаксическими конструкциями.
Как живут программисты, использующие C++/MFC.
C++ – это огромный шаг вперёд в отношении новых возможностей по сравнению с исходным языком C. Программисты использующие С++, остаются незащищёнными от многих и часто опасных особенностей С (теме же самыми низкоуровневыми возможностями работы с памятью и трудными для восприятия синтаксическими конструкциями).
Существует множество библиотек для С++, основное назначение которых облегчить написание приложений под Windows, предоставив для этой цели уже готовые классы. Одна из наиболее распространённых библиотек – это MFC (Microsoft Foundation Classes). MFC – это дополнительный уровень для над Win32 API который значительно упрощает работу программиста за счёт готовых макросов, классов и мастеров. Однако MFC это лишь частное решение проблемы.
Как живут программисты, использующие Visual Basic.
Люди всегда стремятся сделать свою жизнь проще. Повинуясь этому стремлению многие программисты на С++ обратили свои взоры к гораздо более простому и дружелюбному языку, каким является VB. Visual Basic позволяет работать с достаточно сложными элементами интерфейса, пользоваться библиотеками кода (например COM-сервисами) и средствами доступа к данным при минимальных затратах времени и сил.
Однако у VB есть и недостатки. Главный из них – это гораздо меньшие возможности, которые предоставляет этот язык, по сравнению с C и C++ (это утверждение справедливо для более ранних версий, чем VB.NET). Visual Basic – это язык «для работы с объектами», а не объектно-ориентированный язык в обычном понимании этого слова. В VB нет классического наследования, нет поддержки создания параметризированных классов, нет собственных средств создания многопоточных приложений (в отличии от VB.NET).
Как живут программисты, использующие Java.
Язык программирования Java – это полностью объектно-ориентированный язык, который в отношении синтаксиса многое унаследовал от С++. Конечно преимущества Java далеко не исчерпываются межплатформенностью. Язык Java в синтаксическом отношении проще и логичнее, чем С++. Java как платформа предоставляет в распоряжение программистов большое количество библиотек, в которых содержится большое количество описаний классов и интерфейсов. С их помощью можно создавать приложения с возможностью обращения к базам данных, поддержкой передачи почтовых сообщений, с клиентской частью, обладающей изощрённым интерфейсом.
Java – это очень элегантный и красивый язык. Однако при его использовании проблем так же избежать не удаётся. Одна из серьёзных проблем заключается в том, что при создании сложного приложения на Java вам придётся использовать только этот язык для создания всех частей приложения.
Java далеко не идеальный язык во многих ситуациях. Простой пример, если вы попытаетесь создать только на Java приложение работающее с 3D графикой, скорее всего, вы обнаружите, что оно работает не слишком быстро, поэтому для работы с 3D графикой лучше всего использовать код, написанный на языке с более развитыми низкоуровневыми возможностями. Однако интегрировать такой код с кодом на Java будет очень сложно.
Решение .NET.
Полные возможности взаимодействия с существующем кодом. Двоичные компоненты COM отлично работают вместе с двоичными файлами .NET
Полное и абсолютное межъязыковое взаимодействие.
Общая среда выполнения для любых приложений .NET, вне зависимости от того на каких языках они были созданы. Одним из важных моментов при этом – то, что для всех языков используется один и тот же набор встроенных типов данных.
Упрощение процесса развёртывания приложения. В .NET нет необходимости регистрировать двойные типы в системном реестре. Более того, .NET позволяет разным версиям одного и того же модуля DLL мирно сосуществовать на одном компьютере.
Преимущества C#.
Специально для платформы .NET Microsoft был разработан новый язык программирования С#. C# – это язык программирования, синтаксис которого очень похож на синтаксис Java (Но не идентичен ему).
С# – это фактически гибрид разных языков (Visual Basic, Java, C++). При этом C# синтаксически не менее (если не более) чист, чем Java, так же прост как Visual Basic, и обладает практически той же гибкостью, что и С++
Указатели больше не нужны! В программах на С#, как правило, нет необходимости в работе с ними (Однако если вам это потребуется, пожалуйста, – возможности для работы с указателями в вашем распоряжении)
Управление памятью происходит автоматически
В С# предусмотрены встроенные синтаксические конструкции для работы с перечислениями, структурами и свойствами классов.
В С# осталась возможность перегружать операторы, унаследованные от С++. При этом значительная часть возникавших при этом сложностей ликвидирована.
Предусмотрена полная поддержка использования программных интерфейсов. Однако в отличии от классического COM применение интерфейсов – это не единственный способ работы с типами, используя различные двоичные модули. .NET позволяет передавать объекты через границы программных модулей.
Возможно самое важное в С# – это то что он генерирует код, предназначенный для выполнения только в среде выполнения .NET.