Лучшая база данных на основе XML [закрыто]

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

Рассмотрите приложение (без экрана всплесков) с конструктором, который занимает 1 секунду, и обработчик события на Показано, что занимает 2 секунды. Это приложение можно использовать через 3 секунды.

Но предположим, что вы устанавливаете заставку с помощью WindowsFormsApplicationBase. Вы можете подумать, что MinimumSplashScreenDisplayTime из 3 секунд разумно и не замедлит ваше приложение. Но попробуйте, ваше приложение теперь займет 5 секунд.


class App : WindowsFormsApplicationBase
{
    protected override void OnCreateSplashScreen()
    {
        this.MinimumSplashScreenDisplayTime = 3000; // milliseconds
        this.SplashScreen = new Splash();
    }

    protected override void OnCreateMainForm()
    {
        this.MainForm = new Form1();
    }
}

и

public Form1()
{
    InitializeComponent();
    Shown += Form1_Shown;
    Thread.Sleep(TimeSpan.FromSeconds(1));
}

void Form1_Shown(object sender, EventArgs e)
{
    Thread.Sleep(TimeSpan.FromSeconds(2));
    Program.watch.Stop();
    this.textBox1.Text = Program.watch.ElapsedMilliseconds.ToString();
}

Вывод: не используйте WindowsFormsApplicationBase, если ваше приложение имеет обработчик в событии Slown. Вы можете написать лучший код, который запускает всплеск параллельно как конструктору, так и событию Shown.

14
задан APC 19 June 2010 в 15:10
поделиться

4 ответа

Я просто ищу нечто подобное. И обнаружил, что существуют специальные xml-базы данных, делающие именно это.

Посмотрите здесь: Wikipedia

Я нашел, что эта довольно хороша: Sedna

5
ответ дан 1 December 2019 в 15:21
поделиться

У меня нет практического опыта с этим, но я читал, что IBM DB2 имеет специальные возможности XML .

SQL Server имеет тип поля xml, но налагает некоторые ограничения, когда у вас есть такие поля в таблице. Раздражает (для меня) то, что вы не можете использовать такую ​​таблицу на связанном сервере.

0
ответ дан 1 December 2019 в 15:21
поделиться

Даже если XML не имеет определенной структуры, пока он проверяет XML, вы все равно можете сохранить его в традиционной базе данных SQL, фактически выписав DOM. У вас будут таблицы для элементов и атрибутов. Элементы и атрибуты будут иметь столбец внешнего ключа для родительского элемента и столбец для имени.

Вы говорите, что вам нужно быстро читать. Что именно ты читаешь? Если вы будете искать определенные теги, то традиционная база данных SQL все равно сможет довольно быстро запросить их.

-1
ответ дан 1 December 2019 в 15:21
поделиться

Взгляните на этот проект: http://exist.sourceforge.net/

3
ответ дан 1 December 2019 в 15:21
поделиться
Другие вопросы по тегам:

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