Что лучший способ состоит в том, чтобы разработать веб-приложение C++? [закрытый]

На момент написания статьи октябрь 2014 г. - так вот современное решение. Пишу решение в виде Node Module и включаю тест с использованием Mocha и Chai, а также underscoreJS. Вы можете легко их игнорировать и просто взять код Enum, если хотите.

Видел много постов с чрезмерно запутанными библиотеками и т. Д. Решение получить поддержку enum в Javascript настолько простое, что действительно не нужно. Вот код:

Файл: enums.js

_ = require('underscore');

var _Enum = function () {

   var keys = _.map(arguments, function (value) {
      return value;
   });
   var self = {
      keys: keys
   };
   for (var i = 0; i < arguments.length; i++) {
      self[keys[i]] = i;
   }
   return self;
};

var fileFormatEnum = Object.freeze(_Enum('CSV', 'TSV'));
var encodingEnum = Object.freeze(_Enum('UTF8', 'SHIFT_JIS'));

exports.fileFormatEnum = fileFormatEnum;
exports.encodingEnum = encodingEnum;

И тест для иллюстрации того, что он вам дает:

file: enumsSpec.js

var chai = require("chai"),
    assert = chai.assert,
    expect = chai.expect,
    should = chai.should(),
    enums = require('./enums'),
    _ = require('underscore');


describe('enums', function () {

    describe('fileFormatEnum', function () {
        it('should return expected fileFormat enum declarations', function () {
            var fileFormatEnum = enums.fileFormatEnum;
            should.exist(fileFormatEnum);
            assert('{"keys":["CSV","TSV"],"CSV":0,"TSV":1}' === JSON.stringify(fileFormatEnum), 'Unexpected format');
            assert('["CSV","TSV"]' === JSON.stringify(fileFormatEnum.keys), 'Unexpected keys format');
        });
    });

    describe('encodingEnum', function () {
        it('should return expected encoding enum declarations', function () {
            var encodingEnum = enums.encodingEnum;
            should.exist(encodingEnum);
            assert('{"keys":["UTF8","SHIFT_JIS"],"UTF8":0,"SHIFT_JIS":1}' === JSON.stringify(encodingEnum), 'Unexpected format');
            assert('["UTF8","SHIFT_JIS"]' === JSON.stringify(encodingEnum.keys), 'Unexpected keys format');
        });
    });

});

Как видите, вы получаете фабрику Enum, вы можете получить все ключи, просто вызвав enum.keys, и вы можете сопоставить сами ключи с целочисленными константами. И вы можете повторно использовать фабрику с другими значениями и экспортировать сгенерированные Enums, используя модульный подход Node.

Еще раз, если вы обычный пользователь или в браузере и т. Д., Просто возьмите заводскую часть кода, потенциально удалив также библиотеку подчеркивания, если вы не хотите использовать ее в своем коде.

20
задан user32262 24 June 2009 в 04:14
поделиться

6 ответов

Взгляните на Wt .

Wt (произносится как «остроумие») - это C ++ библиотека и сервер приложений для разработка и развертывание сети Приложения. Это не каркас, который обеспечивает способ программирования, но библиотеку.

API ориентирован на виджеты, и вдохновлен существующим C ++ Graphical API пользовательского интерфейса (GUI). К разработчик, он предлагает полный абстракция любого веб-ориентированного детали реализации, включая обработка событий и поддержка графики.

Однако это не бесплатно для коммерческого использования.

10
ответ дан 30 November 2019 в 00:40
поделиться

Используйте веб-фреймворк C ++, например CppCMS , если вам нравится веб-интерфейс разработка, ориентирована на высокую производительность и работает с.

Обеспечивает:

  • интерфейсы FastCGI, SCGI и CGI.
  • Обработка и проверка форм
  • Система HTML-шаблонов
  • Управление сеансами
  • Кэш система
  • Прозрачное масштабирование до множества серверов.

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

10
ответ дан 30 November 2019 в 00:40
поделиться

Я говорю это как разработчик на C ++ ...

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

Если вы настаиваете на использовании C ++, посетите:

http: // rudeserver. com /

6
ответ дан 30 November 2019 в 00:40
поделиться

Как можно преодолеть такие проблемы, как сеансы, постоянство, переключение контекста, многопоточность и т. д. с C ++?

Ответ такой, как вы ожидаете:

0
ответ дан 30 November 2019 в 00:40
поделиться

Вы можете использовать библиотеки Qt framework, Boost и Poco для веб-разработки на C ++. Qt & Poco поддерживает БД для различных СУБД. Вы можете изучить Axis C ++, если вам нужно разрабатывать веб-сервисы на C ++. ClearSilver имеет библиотеку C для обработки CGI, и вы можете использовать C ++ поверх нее. У вас большой выбор!

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

Посмотрите на Snorkel Embedded Web Server SDK. Он прост в использовании и создает самые быстрые решения для веб-приложений. http://sites.google.com/site/snorkelembedded

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

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