Поможет ли изучение COM с C / C ++ лучше понять .NET? - PullRequest
2 голосов
/ 19 мая 2011

Часто, узнавая о .NET, я сталкиваюсь с вещами, происходящими из мира COM или C / C ++ (дескрипторы, gdi, interop, STA / MTA и т. Д., Список можно продолжить!).

Стоило бы потратить мое время, чтобы научиться программировать в COM на C или C ++, убивая, таким образом, двух зайцев одним выстрелом?

Может ли это углубить мои знания по разработке с использованием .NET? Я устал от чувства "ЭТО СЛУЧАЕТСЯ МАГИЕЙ"!

Ответы [ 7 ]

4 голосов
/ 19 мая 2011

Изучение COM поможет вам лучше понять некоторые части .NET, но в основном это те части, которые связаны с COM-взаимодействием. Это не поможет (сильно) для общей разработки .NET в целом, за исключением определенных сценариев.

При этом, если ваша основная цель - изучить и сосредоточиться на .NET, я бы сосредоточился на изучении некоторых из новых технологий .NET. Между WCF, WPF, Silverlight, WF, EF и т. Д. Никто не сможет стать настоящим экспертом во всех существующих технологиях .NET, не говоря уже о других. Сосредоточив внимание на основных технологиях .NET, которые вас интересуют, вы можете более продуктивно использовать свое время.

Если вы хотите попытаться расширить свои знания в целом, то, возможно, стоит изучить COM - но я, вероятно, лично рекомендую изучать новый язык, особенно тот, который использует совершенно другую парадигму, чем ваш основной язык .NET. Например, изучение функционального языка программирования может реально расширить ваше представление о программировании и намного лучше использовать ваше время.

4 голосов
/ 19 мая 2011

Вместо того, чтобы углубляться в это, прочитайте тома Дона Бокса о платформе .NET и узнайте, почему все работает так, как они работают внутри .NET. Вся магия будет оставлена ​​после этой книги (хотя она и устарела, но все еще очень актуальна).

3 голосов
/ 19 мая 2011

Мое личное мнение ... имейте ввиду, это только мое мнение:

Я рад, что сначала изучил .NET. Я не был вынужден думать о таких вещах, как двоичная совместимость и ActiveX. Это устаревшие концепции, которые мне действительно нужны только при работе со старыми библиотеками COM.

Я признаю, что возвращение и изучение COM было полезно в определенных аспектах, поскольку вы действительно должны понимать, как работает совместимость. Тем не менее, моя ситуация немного отличалась тем, что я узнал о COM с vb6, который может быть ОЧЕНЬ другим.

Я бы сказал, что сначала неплохо изучите .NET, но вернитесь и изучите MTA и многопоточность с C ++. Похоже, что в этой области многие люди не решаются говорить, что .NET лучше.

Чтобы добавить еще одну мысль, я работаю со многими унаследованными программистами, пришедшими из мира COM. Они настолько застряли в этом мире, что это мешает им двигаться дальше. Если я увижу что-то вроде clsOrder еще раз, я могу ссориться. Сделайте себе одолжение и узнайте, как на самом деле программировать в .NET. Не просто программируйте vb6 / c / c ++ в .NET. Это огромная трата времени.

1 голос
/ 19 мая 2011

Это не повредит, но если вы не очень хорошо знаете C / C ++, особенно указатели и распределение памяти, вам может понадобиться освежить в них те, прежде чем перейти непосредственно к взаимодействию с объектами COM.

1 голос
/ 19 мая 2011

Изучение всего поможет вашему пониманию подобных понятий, так что почему бы и нет.

0 голосов
/ 19 мая 2011

Я бы не изучал c ++ / C для com, я бы изучал его, потому что это совсем другой способ взглянуть на то, как структурировать проблемы и решения.Любой из языков более высокого уровня делает много по волшебству, и чем ближе вы подходите к машине, тем меньше это происходит.

0 голосов
/ 19 мая 2011

"C / C ++" подсказывает мне, что вы определенно ничего не знаете об этом. Я бы пропустил это, если вы просто хотите узнать о .NET, так как они, вероятно, будут поставляться с соответствующей документацией, которая объяснит, как это работает со стороны .NET. Тем не менее, если вы хотите узнать более общие сведения или узнать о деталях, связанных с реализацией .NET, например о магии, связанной с взаимодействием, то я определенно остановлюсь на C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...