Не надо их извлекать. Восстановите бэкап и у вас появится база данных.
Все это абсолютно штатные и много раз описанные процедуры. Уже из этой базы делаете эту ИПС.
И оправдано это только в случае "Киосков данных", когда нет возможности реплицировать данные или вообще запросить данные по сети.
Вот вам примерный сценарий.
1. Ваше приложение
2. SqlExpress 2019 (см его ограничения на обьем бд)
3.1 Скрипты для развертывания бэкапа.
3.2 Или в самом приложении делаете процедуру (отключения от всех датасорсов, и развертывание бэкапа)
PS а разбирать формат bak Так себе идея он для другого
1. Что вместо HTML, CSS, на чем строится интерфейс?
Разметка, графика, и немного (много) документации
2. Есть ли разделение на структуру, стили и программный код?
Есть макеты, к ним применяются стили, всем этим хозяйством управляете из кода
3. Какие вообще самые значимые отличия от веба?
Скорость, плавность, отсутствие костылей, и рекомендации от вендора.
Вроде бы все облачные клиенты могут мэпить аккаунт на диск. Впрочем все современные бэкапилки могут делать это непосредственно. Ну или вариант напишите батник который через клиент отправляет в облако
Ученики различаются от тупней до умников которые тебя уже переросли, но учебная программа обязывает вас прочесть курс. В итоге все знают кое как.
Самый хороший опыт приобретается через свои шишки с грамотным куратором, который вас поправит. Дело даже не в том что он скажет, а то что вы знаете что помогут, а еще вам стыдно тем что отрываете людей и вы сами роете, да так что и кураторы удивляются.
Кстати считаю рекомендацию насчет картинок крайне спорной.
Сегодня буквально столкнулся. В вебе все смотрится отлично, а на планшете полезли артефакты, так что смотрите за результатом работы этого оптимайзера.
Вторая претензия из разряда бурчалок. Я конечно понимаю что webp формат для отображения. Но то что в проводнике его не видно меня раздражает, как и невозможность открыть его в редакторе без лишних телодвижений.
Не диспозите объект или где то не чистите память.
Попробуйте запустить в режиме отладки и сделайте 2 или больше снимков памяти между вызовами вашего метода.
И потом сравнивайте.
Программирование довольно нудная штука.
Вы описываете действие, и переводите его с человеческого языка на известный вам язык программирования.
В идеале у вас есть ТЗ и вы тупо вставляете конструкции.
В вашем случае нужно зайти на описание этого контрола и изучить его "Жизненный цикл"
Простым языком при добавлении он создает кучу событий, вы выбираете нужное и в нем выполняете код который вам нужен.