Есть некоторые проблемы, которые вы должны рассмотреть:
Поэтому, я думаю, единственный эффективный способ - это перевести его в граф (многодетное дерево) с указателями вместо индексов.
struct Object2
{
void* data;
Object2* FirstChild; // Will point to first child (if there is), or null.
Object2* NextSibling;// Will point to next sibling (if there is), or null.
};
На самом деле, вы можете использовать любую библиотеку XML для сортировки:
Я обычно задаю несколько вопросов:
РЕДАКТИРОВАНИЕ:
Если Вы выпускаете как веб-приложение, Вы не должны будете портировать его. У Вас также будет доступ к нему везде, куда Вы идете.
Я основываю свой выбор на GUI главным образом. Если GUI будет быть сложным, и (должно быть быстрым или будет иметь аспекты его, которые займут много времени для обработки), затем, то я пойду с Рабочим столом. Если это будет просто, и будет всегда иметь небольшие наборы данных для работы со сразу, то я пойдет с сетью.
я работал над приложением, которое было сделано как веб-приложение, когда ясно оно лучше подошло для рабочего стола. Это был крупный отказ. Я не знаю, КАК клиенты выносят его, вызывают, я, конечно, не использовал бы его. Настольная версия (который принял 6 месяцев для переписывания) унесла веб-версию из воды.
Однако я видел некоторые хорошие веб-приложения.
Все, что я могу предложить, является несколькими факторами, которые были бы соответствующими. Как Вы определяете ответ, и вес для фактора ваше дело и другие обстоятельства:
Примечание, что Ваш выбор также может включать приложение Java WebStart, которое смягчает некоторые недостатки типичного настольного приложения.
Мой выбор по умолчанию состоит в том, чтобы пойти с веб-решением, поскольку легче развернуться и обычно многоплатформенный. Единственное время я иду с приложениями winforms, - когда там нажимают безопасность, производительность или проблемы функциональности, которые требуют его.
Когда-то сеть может быть хорошей и когда-то нет. Мы находимся в новой волне, которые входят в сеть, но не забывают немного вещей:
, Но сеть имеет преимущество в deployement и в мобильности. Если Ваша система хорошо структурирована, Вы могли бы сделать обоих или изменить на одного к другому позже с чем-то сборку с MVC. Просто измените свое визуальное, и Вы будете в порядке.
Два важных вопроса не в списке до сих пор:
довольно легко ответить на первое, но предоставление второго некоторой мысли может сохранить Вас некоторая головная боль в будущем.
Если это было приложением, которое будет использоваться мои многочисленные пользователи с совместно используемыми данными, Вы, вероятно, собираетесь хотеть сервер так или иначе. В этом случае я склонился бы к веб-приложению. Иначе у Вас есть сложность синхронизации данных между рабочим столом и сервером.
Я сказал бы, что большинство приложений должно быть основано на рабочем столе. Преимущества быстрее и больше жидких приложений.
необходимо только создать веб-приложение, если существуют очевидные преимущества от него, как доступ отовсюду. (Если это необходимо для Вашего приложения.)
оборотная сторона А веб-приложений может также быть то, что это зависит от разработчика при выходе из поддержки всего этого пользователи (если у Вас будет кто-либо), не может больше использовать его. Кроме того, существует шанс, что пользователи не готовы хранить свои данные онлайн.
В конечном счете это зависит от того, какое приложение Вы хотите записать. Даже при создании его как настольного приложения можно позже переписать его для сети. Часто 2,0 версии потребностей программного обеспечения почти завершают перезапись так или иначе.
Ранее Вы записали бы настольное приложение, поскольку инструмент был лучше для этого, и Вы запишете это быстрее. Люди раньше хотели веб-приложения, но всегда заканчивали с рабочим столом.
В наше время вещи отличаются, можно записать веб-сервис столь же быстро и легко таким образом, нет никакой причины не пойти веб-.
преимуществами веб-является гибкость, масштабируемость и простота развертывания. Это не будет столь быстро реагирующим, как настольное приложение могло быть, но это не большая часть проблемы, если Вы думаете о своем дизайне.