С# — С++ MFC против .NET?
Я давно и активно использую MFC и Windows Forms. Я работаю в индустрии видеоигр, поэтому за эти годы мне пришлось написать множество настольных приложений, и до появления .net MFC был чрезвычайно полезен. Еще до этого я писал инструменты на чистом Win32. У
MFC определенно были свои особенности, но в целом это значительно облегчало жизнь. Было очень легко интегрировать OpenGL и Direct3D в пользовательские представления, и как только вы освоили это, написание пользовательских элементов управления стало проще простого. Лучше всего то, что я мог просто кодировать на чистом C++, который оказался моим любимым языком. Кроме того, я обнаружил, что MFC очень эффективен и быстр.
Постепенно MFC начала получать поддержку библиотек внешних элементов управления, особенно библиотек стыковки/панелей инструментов, поэтому мои инструменты, такие как средства просмотра 3D-моделей и редакторы уровней, выглядели довольно мило.
Большинство приложений, которые я написал, создавали пользовательский интерфейс программно, поэтому инструмент макета диалога/окна был более чем достаточным для моих нужд.
MFC 9 тоже довольно крут, особенно с библиотекой управления/стыковки ленты, которую Microsoft выпустила как часть Feature Pack. Так что в старом псе еще есть жизнь, это точно! 🙂
Когда вышла версия .net 1.0, переход был довольно простым, поскольку она поддерживала управляемый C++. Это было некрасиво, но дало относительно простой доступ к платформе .net. Но переломный момент для меня наступил, когда я начал писать инструменты, которые больше нуждались в конструкторе Windows Forms, примерно во времена .net 2.0. Я решил начать заново и выучить C#, который мне очень нравился, хотя я никогда не привыкну к new() без delete() ;). Затем я начал писать пользовательские элементы управления, найдя весь процесс очень приятным и простым. Фреймворк .net был огромным, хорошо поддерживался, и в целом мне было проще делать практически все на C#/.net. Кроме того, компиляция была молниеносной, а возможность рефакторинга в Visual Studio была потрясающей.
Прелесть c#/.net в том, что он не ограничивает вас только написанием управляемого кода. Вы по-прежнему можете использовать неуправляемый код, если, например, важна производительность или если вам нужно использовать код на разных платформах. Например, мои математические библиотеки написаны на C/C++, которые я помещаю в библиотеки, позволяющие C# использовать один и тот же код, хотя это временно. Со временем я тоже собираюсь портировать эти библиотеки на C#, чтобы все было чисто .net.
Последний опыт, который я хочу упомянуть, это то, что я провел последние несколько месяцев вдали от программирования игр для консолей и тратил время на программирование InterWeb. Я использовал стек Microsoft, программировал на ASP.net/C#, и должен сказать, что это очень приятно, поскольку все знания о C# применимы напрямую. Единственной кривой обучения был ASP.net, а не язык и вспомогательные библиотеки. С появлением .net 3.5 (LINQ прекрасен) жизнь в среде .net с C# прекрасна.
В любом случае, я не хочу превращать это в историю своей жизни, я просто хотел поделиться кратким опытом человека, который прошел через все технологии, о которых вы спрашивали. Я также хотел бы отметить, что вам полезно попробовать разные языки/фреймворки. Я программирую для iPhone уже год и очень полюбил Objective-C. Это все программирование, и все хорошо.
Что касается MFC/.net, у обоих есть свои плюсы и минусы, и я действительно совсем не против MFC, но с точки зрения продвижения вперед я бы, вероятно, придерживался C#/.net, но, пожалуйста, пожалуйста , пожалуйста, поймите, как это работает. Единственная проповедническая вещь, которую я скажу, это понять, как работает память в .net, хотя «обо всем позаботятся за вас»;)
Ваше знание C/C++ должно быть полностью независимым от того, используете ли вы MFC или нет, это по-прежнему критический язык (особенно в программировании видеоигр на основе консолей), но для программирования настольных приложений в Windows становится все труднее и труднее возражать против .net. Это быстро, просто, с отличной поддержкой инструментов, отличными сторонними библиотеками, огромным растущим сообществом, теперь является кросс-платформенным (Mono) и позволит вам переключаться между всеми текущими/появляющимися технологиями Microsoft (ASP. net, WPF, Silverlight, WCF). и т. д).
Однако для всего этого я все же настроил Visual Studio как среду C++. Некоторые привычки никогда не умирают 😉
Мировой рейтинг паспортов: 10 самых мощных паспортов
Знаете ли вы, что владельцы индийских паспортов могут путешествовать без визы или с визой по прибытии в 58 стран мира? Если нет, то вы будете удивлены, узнав, что в мире существует гораздо больше стран, владельцы паспортов которых могут путешествовать без визы или с визой по прибытии в более чем 100 стран мира. Большинство из этих паспортов принадлежат странам, входящим в Европейский Союз. Ниже мы составили список из «10 самых мощных паспортов в мире» (Согласно индексу паспортов Henley)
10 самых мощных паспортов в мире:
10. Венгрия
D адрес: 182
Десятый в этом списке находятся венгерские паспорта, выданные венгерским гражданам, и следует отметить, что каждый гражданин Венгрии также является гражданином Европейского Союза.
Паспорт, за исключением национального удостоверения личности, дает право на свободное передвижение и проживание в любом из государств Европейского Союза, Европейской экономической зоны, Швейцарии и Соединенного Королевства.
9. Канада, Австралия
Пункты назначения: 183
Канадский паспорт , выданный Паспортной программой иммиграции, беженцев и гражданства. Канада (IRCC) служит доказательством паспорта личность владельца и статус гражданства за пределами Канады. Кроме того, Канада является членом Паспортной группы пяти наций, которая представляет собой международный форум для сотрудничества между органами, выдающими паспорта, Канады, Австралии, Новой Зеландии, Соединенного Королевства и Соединенных Штатов.
Австралийский паспорт , выданный австралийским гражданам в соответствии с Законом об австралийских паспортах 2005 года паспортным управлением Австралии как в Австралии, так и за рубежом, позволяет владельцу паспорта путешествовать по миру. С 24 октября 2005 года Австралия выдает только биометрические паспорта, называемые электронными паспортами, и, поскольку срок действия всех предыдущих паспортов истек, все австралийские паспорта теперь являются биометрическими.
8. Греция, Новая Зеландия, Мальта, Чехия
Направления: 184
Греческие паспорта выдаются гражданам Греции для международных поездок, и каждый гражданин Греции также является гражданином Европейского Союза.
Новая Зеландия Паспорта , выданные исключительно гражданам Новой Зеландии, также занимают восьмое место в этом списке вместе с другими упомянутыми странами.
Каждый гражданин Республики Мальта , имеющий мальтийский паспорт, также является гражданином Европейского Союза и гражданином Содружества.
Проездной документ, выдаваемый гражданам Чешской Республики , известен как чешский паспорт. Граждане Чехии также являются гражданами ЕС.
7. Швейцария, США, Великобритания, Норвегия, Бельгия
Пункты назначения: 185
Владельцы швейцарских паспортов также могут свободно передвигаться, жить и работать во всех 27 странах-членах Европейского Союза. как Исландия, Норвегия и Лихтенштейн.
Паспорта США выдаются исключительно Государственным департаментом США своим гражданам. Следует отметить, что в 2017 году правительство США объявило, что американским гражданам больше не будет разрешено посещать Северную Корею в качестве туристов.
Все категории британских паспортов выдаются правительством Ее Величества в соответствии с королевской прерогативой, и из-за множества различных категорий в британском законе о гражданстве существуют разные типы паспортов для каждой категории британского гражданства.
Норвежский Паспорта действительны в течение десяти лет и имеют стандартную структуру большинства стран Европейского Союза (ЕС). Кроме того, его граждане обычно имеют те же права, что и граждане ЕС, и рассматриваются как граждане ЕС в целях поездок и въезда в страны ЕЭЗ и Швейцарию.
Бельгийские паспорта выдаются Федеральной государственной службой иностранных дел. Каждый гражданин Бельгии также является гражданином ЕС.
6. Швеция, Франция, Португалия, Нидерланды, Ирландия
Пункты назначения: 186
Помимо подтверждения шведского гражданства, Шведский паспорт облегчает процесс получения помощи от шведских консульских работников за границей или других стран-членов Европейского Союза.
Французские паспорта , выданные гражданам Франции, действительны в течение 10 лет для заявителей в возрасте 18 лет и старше и 5 лет для заявителей в возрасте до 18 лет. Карта дает право на свободное передвижение и проживание в любом из государств Европейского Союза, Европейской экономической зоны, Швейцарии и Великобритании.
Голландские паспорта выдаются гражданам Королевства Нидерландов , и паспорт соответствует правилам для паспортов Европейского Союза.
Ирландский паспорт выдается гражданам Ирландии и позволяет его владельцу путешествовать по всему миру и служит доказательством ирландского гражданства и гражданства Европейского Союза.
Читайте также: 10 самых дешевых стран мира для жизни в 2020 году
5. Дания, Австрия
Направления: 187
Датский паспорт выдается гражданам Дании и каждый гражданин Дании, за исключением тех, кто проживает на Фарерских островах, также является гражданином Европейского Союза.
Австрийский паспорт выдается гражданам Австрии , и все австрийские граждане также являются гражданами Европейского Союза.
4. Италия, Финляндия, Испания, Люксембург
Пункты назначения: 18
Итальянские паспорта выдаются гражданам Италия с целью международных поездок. Кроме того, каждый гражданин Италии также является гражданином Европейского Союза.
Финские паспорта выдаются гражданам Финляндии , и они имеют стандартную форму и бордово-красную обложку с другими странами ЕС.
Испанские паспорта выдаются гражданам Испании с целью выезда за пределы Испании, и каждый гражданин Испании также является гражданином Европейского Союза.
Люксембургский паспорт — это международный проездной документ, выдаваемый гражданам Великого Герцогства Люксембург , и его граждане также являются гражданами ЕС.
3. Южная Корея, Германия
Направления: 189
Паспорт Республики Корея выдается гражданину Южной Кореи . Помимо включения основной личной информации владельца, южнокорейские паспорта также указывают регистрационный номер резидента владельца.
Помимо немецкого удостоверения личности и немецкого экстренного проездного документа, немецкий паспорт является единственным другим официально признанным документом, который власти Германии принимают в качестве удостоверения личности граждан Германии.
Leave a Reply