Введение в С# для пользователей C/С++

У меня есть 6+ лет опыта работы на C/С++. Завтра начинается университетское задание, где мне придется использовать С#. Поэтому я хотел бы иметь список ссылок/ресурсов, которые, по вашему мнению, важны или обширный учебник - вкратце все, что вы считаете достойным.

Стиль кодирования, лучшие практики,...

(Я не знаю каких-либо особенностей среды С#, которую я буду использовать (IDE, ОС, w/e), первая встреча - завтра вечером).

(Я никогда раньше не кодировал С#)

Еще одна вещь: я хотел бы работать с Linux (kubuntu 10.4). Рекомендации IDE/среды/учебника относительно Linux особенно приветствуются.

Спасибо за вашу помощь!

Ответ 2

Краткое введение в синтаксис + основы языка.

Очевидная ссылка на обзор платформы:)

Рекомендации, обсуждаемые здесь, на SO

Лучше читать книги, конечно, когда доступно достаточное количество времени. Я лично начал изучать С#, читая Pro С# 2008 и платформу .NET 3.5

P.S. Если вы хотите использовать Linux, здесь вы идете:

IDE

Рамки

Ответ 3

Когда я переключился с C/С++ на .NET, я нашел Чарльза Петцольда бесплатным PDF очень полезным.

http://www.charlespetzold.com/dotnet/

Ответ 4

В основном есть один редактор для С#, который используется, по-моему, 80% разработчиков С#, Visual Studio.

Начать загрузку/загрузку. У вас есть экспресс-издание, которое бесплатно и предназначено для личного использования. Это просто простая среда разработки, в которой нет ничего необычного. Если у вас есть несколько долларов, чтобы потратить (или получить его через университет), перейдите к более продвинутой версии VS, например, к профессиональной или командной системе. Оба включают конструкторы форм и гораздо более продвинутые возможности.

Так много для IDE.

Я думаю, если вы перейдете от С++ к С#, самой большой "проблемой" будет использование существующих функций в .NET framework вместо того, чтобы делать это самостоятельно. Это то, что я часто вижу, когда люди переходят с С++ (даже с boost) на .net. Структура настолько велика и содержит почти все, поэтому каждый раз, когда вы обнаруживаете, что пишете какое-то дополнительное. класс, который не является доменом, поиск в руководстве, если что-то подобное не существует. Скорее всего, они находятся в рамках.

И, наконец, научитесь использовать лямбда, вы будете так им пользоваться! Это единственное значение, которое С++ не поддерживает сам по себе. Все расширения, такие как boost, которые добавляют лямбда, сложны и далеки от элегантности, что обычно не стоит использовать.

Ответ 5

Я бы начал с двух книг:

  • "С# в двух словах", O'Reilly (последнее издание охватывает С# 4).
  • "Руководство по разработке рамок: соглашения, идиомы и шаблоны для многоразовых библиотек .NET, второе издание", AW

30-дневный трейлер Safari Books Online предоставит вам доступ к ним до тех пор, пока вы не решите, если они вас устраивают).

Сначала все внимание сосредоточено на # 1.

Когда я узнал С# 1 (хотя .NET 1.0 в течение нескольких часов с "С# Essentials", мне просто нужно было что-то показать синтаксис и семантику, поскольку я уже знал, как программировать.

Ответ 7

Если вы можете написать С++, вы можете написать С# с минимальными усилиями. Но язык С# - очень небольшая часть того, чтобы быть разработчиком .NET, это опыт работы с .NET Framework, который вам не хватит в течение некоторого времени. И базовая библиотека классов имеет небольшое общее ядро ​​и несколько почти полностью различных наборов инструментов (WinForms, ASP.NET, WPF, WSDL + WCF, Workflow Foundation), возможно, что очень опытный разработчик С# почти ничего не знает о некоторых из этих специальностей.

Пока вы не узнаете, какая у вас задача, мы не будем знать, в какой из этих областей вам нужно ознакомиться и не может дать очень много указателей.

Вероятно, вам будет полезно обратиться к "Альтернативному управляемому API" на pinvoke.net для всех видов встроенных функций Windows.