Изучение и кросс-платформенная разработка (C++)

Примите во внимание, что документация EntLib конкретно регулирует Вас к кэшу ASP.NET для приложений ASP.NET. Это - вероятно, самая сильная рекомендация к использованию его здесь. Плюс EntLib кэш не имеет зависимостей, который для меня является большой причиной не использовать его.

я не думаю, что существует техническое ограничение как таковое на поставлющуюся Систему. Сеть как часть Вашего приложения, хотя это немного нечетно, что они вставили то уведомление на.NET 3,5 страницы. Hanselman на самом деле говорит, что начал выползаться этим понятием, но стал убежденным. Также, если Вы читаете комментарии, он говорит, что блок имеет слишком много подвижных частей, и Кэш ASP.NET является намного большим количеством lightweght.
я думаю, что это - точно вид проблемы, которую Скорость собирается решить, но это - только предварительный просмотр на данный момент:-(

, я сказал бы сеть использования. Кэширование и видит, как Вы преуспеваете. При помещении некоторого уровня абстракции поверх него Вы всегда получали опцию выгрузить его для блока EntLib позже при нахождении проблем.

17
задан shiouming 13 October 2009 в 04:31
поделиться

9 ответов

Может ли кто-нибудь дать совет, есть ли какие-то «лучшие практики» для кроссплатформенной разработки на C ++?

Есть три вещи:

  1. Напишите свой собственный код, чтобы он был переносимым

  2. Оберните платформенно-зависимые API за уровнем абстракции / изоляции / утилит

  3. Выберите кроссплатформенные библиотеки

Вы можете выбрать вариант №2 и / или №3.

Преимущества №3 перед №2 обычно быть такими, как «Это уже написано, отлажено и поддерживается»; а недостатки такие: «Мне нужно выучить это, мне, возможно, придется заплатить за это, я не обязательно могу поддерживать его сам, и он может не делать именно то, что я хочу».

Разработчики часто предпочитают вариант # 3 вместо № 2, особенно если это бесплатный открытый исходный код (каковыми являются все три библиотеки, которые вы процитировали).

16
ответ дан 30 November 2019 в 11:17
поделиться

Используйте gcc. Он доступен как для Windows, так и для Linux, библиотеки и синтаксис языка идентичны на обеих платформах.

Для кроссплатформенных приложений с графическим интерфейсом пользователя Qt - хорошая идея. Если вы пытаетесь добиться независимости от платформы, вам не избежать зависимости от среды графического интерфейса пользователя.

3
ответ дан 30 November 2019 в 11:17
поделиться

Если вы не занимаетесь графическим интерфейсом, кроссплатформенность не является большой проблемой.

Есть некоторые небольшие проблемы, связанные с файловыми системами (различные разделители / \, разрешенные символы в именах файлов и т. д.), но они относятся к уровню приложения, а не к C ++.

Выполнение основных приложений становится более сложным, вам нужно обрабатывать справку, расположение файлов, возможно, безопасность и информацию о пользователе в кроссплатформенный способ. Для программирования простого алгоритма проблем нет.

Qt - это в основном библиотека с графическим интерфейсом пользователя, хотя она имеет дополнительные кроссплатформенные файловые системы. STL, Boost,

2
ответ дан 30 November 2019 в 11:17
поделиться

Используйте их! Шутки в сторону. Единственная причина, по которой вы можете не использовать их, - это если вы планируете работать в среде, где они недоступны. Но, учитывая их кроссплатформенный характер, это маловероятно.

Вы обнаружите, что выгода, которую вы получаете от их использования, огромна, даже если бы они не были кроссплатформенными. «Лучшая практика», о которой вы говорите, - это иметь возможность доставить свой «продукт» как можно быстрее и проще.

Однажды я ответил на вопрос человека, который заявил, что не хочет использовать библиотеки GUI на более высоком уровне. Xlib. Если бы он действительно когда-либо использовал Xlib, он бы знал, какую боль мы все испытываем, когда вынуждены писать код на таком низком уровне абстракции.

2
ответ дан 30 November 2019 в 11:17
поделиться

Это действительно хорошие ответы, и вы можете составить список, чтобы найти начало. но я думаю, вам следует прочитать несколько статей о «переносе приложения». Не имеет отношения к кроссплатформенной разработке, но это может дать вам очень широкое представление о кроссплатформенной разработке. В кроссплатформенной разработке одна из важных причин - это проблемы с памятью, такие как "endian" (порядок байтов - порядок байтов может показывать различия для технологий или платформ)

2
ответ дан 30 November 2019 в 11:17
поделиться

Думаю, вы многому можете научиться, используя ACE или эквивалентные библиотеки. они улучшат ваше понимание C ++ и шаблонов проектирования. я думаю, что это лучшее, что вы можете сделать, чтобы улучшить свои навыки программирования.

1
ответ дан 30 November 2019 в 11:17
поделиться

Если вы действительно заинтересованы в том, чтобы сделать ваш код максимально кроссплатформенным, используйте как можно больше компиляторов. Если вы используете Windows и Linux, используйте как минимум VC и gcc. Это гарантирует, что вы не будете использовать специфические функции компилятора и не будете полагаться на поведение системы. Используйте больше компиляторов (Intel, IBM и т. Д.) И операционных систем (OS X, Solaris), если у вас есть к ним доступ.

1
ответ дан 30 November 2019 в 11:17
поделиться

использовать ускорение. они позаботятся о кроссплатформенности за вас.

boost :: filesystem отличный пример

2
ответ дан 30 November 2019 в 11:17
поделиться

Вы можете попробовать использовать U ++> http://www.ultimatepp.org/index.html

0
ответ дан 30 November 2019 в 11:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: