Используются ли C ++ и .NET совместно в таких областях, как банковское дело, здравоохранение и телекоммуникации? - PullRequest
4 голосов
/ 09 декабря 2010

Или я должен спросить, насколько полезным и полезным будет начать с C ++

Это может показаться неуместным, но это имеет какое-то значение для меня, может быть несколько таких, как я.

Я просто хочу знать, насколько важно изучать C ++, COM и ATL, пока вы программист .NET?

Мне нравится программировать с использованием .NET и C #. Visual Studio просто имеет свое очарование интеллектуальности, цветовой кодировки и других приятных функций, которые делают нас зависимыми от него.

Я думал, почти мы можем построить что-нибудь с C #, и все же это в основном верно, но иногда оно отстает как:

Пока я пытаюсь создать расширение Shell, настоятельно рекомендуется использовать неуправляемый код вместо какого-либо управляемого кода. Также есть несколько других вещей, таких как COM, ATL, которые предпочитают кодировать в C ++, а не в C #. Я всего 4 года в ИТ-индустрии и люблю быть архитектором решений.

Поэтому нужно, чтобы все ваши материалы знали, насколько важно / полезно будет в моем будущем предприятии, если я буду заниматься своим текущим COM-проектом с C ++, который интегрируется с .NET UI.

Существует ли реализация C ++ и .NET в общих областях, таких как здравоохранение, банковское дело и телекоммуникации?

Ответы [ 2 ]

6 голосов
/ 09 декабря 2010

Проблема (по крайней мере для конкретных случаев, которые вы упоминаете, например, расширения оболочки) при попытке «интегрироваться с .NET UI» заключается в том, что вы действительно не можете.Причина, по которой не стоит писать расширения оболочки в управляемом коде, состоит в том, что данный процесс может загрузить только одну версию CLR в любой момент времени.Если два расширения оболочки зависят от разных версий CLR, и они оба пытаются загрузить одновременно, произойдет сбой.Вы не можете каким-либо образом загружать CLR или форму в контексте вашего расширения оболочки и быть хорошим поведением расширения оболочки.

Мой совет будет не беспокоиться о C ++ до тех пор, пока у вас действительно не появится причинавыучить это (несмотря на то, что C ++ - мой любимый язык).Но когда вы изучаете C ++, оставьте свой багаж .NET у двери .Есть много вещей (таких как чрезмерное использование приведения, постоянное использование new и т. Д.), Которые являются идиоматическими C # и просто неправильными в C ++.Вы будете намного счастливее, если не попытаетесь понять концепции C ++ с точки зрения CLR - просто потому, что C ++ там не работает.Вы можете использовать некоторые из шаблонов проектирования, которые вы, возможно, изучили для C #, но то, как работает базовый язык и машина, совершенно не зависит от двух языков.

Вероятно, наиболее запутанным отличием для новых программистов на C или C ++ являетсяКонцепция неопределенного поведения.Стандарты C и C ++ написаны таким образом, чтобы не привязываться к конкретной машине.Это резко контрастирует с такими архитектурами, как Java или .NET, где язык фактически определяется в терминах виртуальной машины (и, следовательно, чрезвычайно зависит от этой виртуальной машины).Это приводит к местам, где стандарт буквально не говорит, каким должен быть правильный вывод программы;и вместо этого говорит «однако основная машина обычно делает это».Вы, вероятно, заметите это совсем немного, если будете иметь дело с математикой с плавающей точкой.В то время как в C # существуют строгие и конкретные правила о том, как и где вычисляются и округляются числа с плавающей запятой, в C и C ++ таких квалификаций нет.

Как только вы понимаете C ++, вы можете перейти к COM и ATL.COM в основном разработан, чтобы сделать структуру класса, подобную C ++, доступной на языке (COM ABI), машине (сортировка между 32-битными и 64 процессами в одной системе и т. Д.) И местоположении (DCOM предоставляет средства RPC) независимым способом.Если вы не понимаете объектную модель C ++, у вас будет чрезвычайно трудное время с объектной моделью COM, потому что они чрезвычайно похожи.ATL - это набор шаблонов классов C ++, основанных на основах COM, которые просто обрабатывают некоторые из шаблонов для вас.

1 голос
/ 09 декабря 2010

Я просто хочу знать, насколько это важно это учить C ++, COM и ATL пока Вы программист .NET?

Зависит от того, что вы делаете. Вы лучше узнать о базах данных. Практически каждое серьезное приложение использует базу данных.

Но C ++ используется вместе с .NET - особенно C ++ / CLI (управляемый вариант), поскольку он очень хорош для эффективной интеграции кода C ++ с управляемым кодом. Довольно часто в значительной степени единственный эффективный способ. Что важно, если вы, например, поднимаете события для рыночных данных. С частотой, превышающей 100.000 раз. В секунду.

Но это НИША. Я работаю в финансовой сфере, и использование C и интеграция в С ++ являются МАЛЫМИ по сравнению с людьми, работающими в .NET / В приложении.

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