русский
Germany.ruForen → Архив Досок→ Programmierung

Задачки на подумать

04.06.17 12:43
Re: Задачки на подумать
 
Программист коренной житель
in Antwort AlexNek 03.06.17 00:46, Zuletzt geändert 04.06.17 12:47 (Программист)
А у нас есть такая проблема? Ничего глобально не становится.

Ну т.е. если у вас есть плагин1, который использует компонентуА и плагин2, который использует туже самую компоненту, то компонентаА 2 раза устанавливается на систему - в каталог с плагином1 и в каталог с плагином2. И потом ты удивляешься, что у тебя пытаются загрузиться типы с одинаковыми названиями, но с разными версиями? :) Как говорится, сами себе злобные Буратины :)


Но с выходом новой версии всегда возникают проблемы.

Да ладно? Я что-то не припомню проблем при переходе со сторой VS на новую...


А инсталлер еще чувствительнее, как бы в нём не косячили в пределах разумного, он не должен вставать на рога и не выполнять своей основной функции.

Уверяю тебя, MSI работает предсказуемо. Более того, работа MSI очень хорошо описана в MSDN. Я не совсем понимаю, о каких "пределах разумного" ты говоришь... Фактически, MSI-файл - это база данных, в которой прописаны связи между новыми и уже установленными продуктами и файлами. Очевидно, что если нарушены какие-то связи, то что-то обязательно пойдет не так и тут нет и не может быть никакого механизма восстановления или исправления неправильных связей.



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

Тэг в репозитории? Вы там на коленке собираете? :) Нет, я уже понял, что вы не используете инсталлер. Хотя в данном случае есть еще один повод таки задуматься над инсталлером, т.к. в таком случае версиб продукта можно будет посмотреть в Add and Remove Programms, после чего можно будет легко выяснить какие именно файлы и каких версий входили в этот конкретный релиз. Единственный тэг в репозитории - это версия релизнутого продукта. И совершенно не важно с железом идет софт или нет, по индивидуальному заказу или нет. Есть релиз - есть уникальная версия продукта. Что может быть проще?


Не пробовали на ХП сейчас что инсталлировать?

Какая разница сейчас или не сейчас? На XP тоже есть MSI и работает он также, как на Win10 (еще года два тому назад мы поддерживали установку на XP и все работало на ура, так что я знаю о чем говорю :) ).


А что инсталлер не умеет, умеет Паскаль

Ну в MSI тоже есть Custom Actions, которые можно писать на VBScript или JScript ну или просто исполнять или dll.



А вот вопросик, на форме есть 10 полей для ввода текста и 10 лейблочек к ним. Сколько может быть ИД?

От 10 до 20. Лейблы могут быть без ИД, но в таком случае лейблы не генерят никаких сообщений и их нельзя ни задизейблить, ни покрасить... короче ничего с ними нельзя сделать.


А енто что?

очепятка :) "фигуры"



А примерчик мона? Что никак не доходит.
class MyCoolEventArgs : EventArgs
{
   public bool FireException {get; set; }
}
someButton.Click += OnClick;
class SomeForm : Form
{
   public void OnClick (object sender, EventArgs args)
   {
      MyCoolEventArgs myEvent = args as MyCoolEvent;
      if (myEvent.FireException)
         throw new MyCoolEventException ();
      else
      {
         string fileName;
         if (OpenForm (out fileName) == DialogResult.OK)
            Save (fileName);
      }
   }
   public virtual DialogResult Openform (out string fileName)
   {
      OpenFileDialog openFiledialog = new OpenFileDialog();
      fileName = openFileDialog.FileName;
      return openFileDialog.ShowDoalog ();
   }
   public virtual void Save (string fileName)
   {
     ....
   }
}

Теперь тесты:

Вот как-то так. Писал тут, так что ежели какие-то ошибки, то сори :) Но смысел, думаю, понятен.

Млять! Тесты потерлись :( Гребаный движок :( Лениво все восстанавливать. Если не понятно, как могут выглядеть тесты, то я восстанавлю, но надеюсь, что все понятно :D

 

Sprung zu