Резюме для программиста
Вы чужую сигаретку изо рта в рот берёте? А бычки незнакомые поднимаете докурить? Из чужих стаканов пьёте? А зачем?
Я никакую сигаретку в рот не беру .
да и Сравнение некорректное.
если не пользоваться посудой в офисе, где с определённой гарантией нет гепатитников и посуда точно хорошо моется в посудомойке, то в ресторан уж точно ходить нельзя.
не говоря уже о пользовании общественным транспортом, туалетами и отелями.
Уже одни подсказки Интеллисенс значительно облегчают работу.
У викса тоже есть интеллисенс. Собственно говоря, это просто схема.
Я не знаю, нахрена был придуман Викс на XML.
А на чем его еще придумывать? Он так и называется (W)indows (i)nstaller (X)ML. Создали его в лохматые годы... Тогда кроме XML ничего и не было :) Да и сейчас врядли есть более подходящий формат.
Т.е. гипотетический "мастер по Викс и XML" всё равно должен уметь кодить - т.е. всё равно инсталлятор будет делать обычный разраб-кодер. Так сделайте сразу всё в коде.
Я много работал с WiX и ни разу не писал расширения :) Ничего особенного эти расширения не делают, это просто сахар. Иногда надо написать кастом экшен, но они расширяют MSI, а не WiX.
По-моему, это было сделано для совместимости с ещё более дремучей и муторной вещью - MSBuild. Так что какие-то сложные инсталляторы народ делал тупо спецприложением (те же Формы или WPF) и делал всё опять в привычном для себя коде.
Ты просто не в курсе :)
Технология MSI была сделана для установки офиса. Потом MSI стал расширяться и на другие продукты MS. Альтернатива MSI - скриптовые инсталляторы типа Wise или InnoSetup. Какой WPF? Все эти технологии появились еще до .Net :D
Как там и что у вас я без понятия.
Однако факт в том, что GAC используется для shared assemblies. Использовать его как-то иначе - стрелять себе в ногу :)
Соответственно, как хранилише сборок GAC имеет смысл использовать только на клиенской машине.
Ну и те сборки, которые идут в GAC должны по особому инсталлироваться. Если ты в 2 разных инсталлятора включишь одну и ту же сборку (для GACa), но с разными component id, то жди беды :)
Потом MSI стал расширяться и на другие продукты MS
MSI в 2000м году вышел не только для продуктов MS, мы тоже использовали в нашей программе MSI, т.к. Install Shield не было с Visual Basic 6.0, а инстолятор с Visual Basic 6.0 был отстой, Install Shield был только с Visual C++ 6.0 Professional, но у нас был только Visual Basic 6.0. Там была какая-то Visual Studio 2002 что-ли, и там был MSI Installer, но мы её отдельно скачивали с сайта Microsoft.
Альтернатива MSI - скриптовые инсталляторы типа Wise или InnoSetup.
Да не только Wise или InnoSetup, вы забыли упомянуть про NullSoft Installer, который имхо более популярнее выше перечисленных, кстати об этом я тут написал см. https://programming.mybb.ru/viewtopic.php?id=63 и https://programming.mybb.ru/viewtopic.php?id=244
-----
И почему это население предпочитает персональные жоповозки?
Сравнение - более-менее корректное - в том плане, что имея возможность уменьшить количество возможных источников заражения глупо не пользоваться этой возможностью. Я таки тоже имею свою кружку и свою ложку и мне глубоко насрать на то насколько качественно моется общественное - у меня исключена сама возможность опосредованного инфицирования...
А вот сравнение с общепитом - некорректное - там есть спец.требования по организации процессов направленные на уменьшение вероятности заражения. В частности - мед.книжки у персонала и регулярные мед.осмотры оного. Не панацея, но хоть что-то...
если не пользоваться посудой в офисе, где с определённой гарантией нет гепатитников и посуда точно хорошо моется в посудомойке, то в ресторан уж точно ходить нельзя.
не говоря уже о пользовании общественным транспортом, туалетами и отелями.
Суть не в том, чтобы на 100% отгородиться, а чтобы просто уменьшить вероятность. Ну и у всех свои бзики. Я, например, из чужого стакана пить не буду, а кусочек еды, упавший на колени или на пол у себя дома, могу подобрать и в рот положить. Непоследовательность? - Бзик.
Уже одни подсказки Интеллисенс значительно облегчают работу.У викса тоже есть интеллисенс. Собственно говоря, это просто схема.
Пользовался им где-то лет 7-8 назад. И там с подсказками и автокомплитом XML было туго. Ну и плюс нужно было такое - какие варианты поднодов XML могут быть в этой ноде? Вроде, подсказчик в Виксе такое не даёт - тупо всё перечисляет. А в C# подноды - это свойства объкта, поэтому там уже всё отфильтровано.
Вобщем, с чистым Виксом мне приходилось в разы болше в документацию подглядывать и руками теги набивать, чем в WiX#. И как я сказал, всё равно расширения в Виксе пишутся на каком-то языке программирования. А когда у тебя изначально всё на этом языке, то и переключаться не надо.
Т.е. гипотетический "мастер по Викс и XML" всё равно должен уметь кодить - т.е. всё равно инсталлятор будет делать обычный разраб-кодер. Так сделайте сразу всё в коде.Я много работал с WiX и ни разу не писал расширения :) Ничего особенного эти расширения не делают, это просто сахар. Иногда надо написать кастом экшен, но они расширяют MSI, а не WiX.
Я наверное не так назвал. Вобщем, когда требуется вызвать какую-то процедуру, логику написать, ещё для чего-то - случаи есть. Тогда надо накатать код. Я писал. Не помню, для чего.
Технология MSI была сделана для установки офиса. Потом MSI стал расширяться и на другие продукты MS. Альтернатива MSI - скриптовые инсталляторы типа Wise или InnoSetup. Какой WPF? Все эти технологии появились еще до .Net :D
Я со всеми ими работал. Хоть по разу или по два, но инсталляторы писал. Но лет 12 назад или больше. Я понял, что проще в коде накатать то же копирование файлов и прочее. Всё равно инсталлятор запускается с админскими правами, а значит и твой кастомный экзешник-инсталлятор на формах или WPF тоже будет ничем не хуже Викса, Вайза или там Инносетап. Только тебе не надо будет особенностей каждого продукта изучать, а будет достаточно знать лишь свой язык, свою область.
Сравнение - более-менее корректное - в том плане, что имея возможность уменьшить количество возможных источников заражения глупо не пользоваться этой возможностью. Я таки тоже имею свою кружку и свою ложку и мне глубоко насрать на то насколько качественно моется общественное - у меня исключена сама возможность опосредованного инфицирования...
Самое сложное, как это до коллег донести, чтобы не обидились и вообще. Вроде вежливо коротко говоришь, что извините, но я бы хотел пользоваться своим, но потом всё равно видно, что странно на тебя смотрят какое-то время.
И ещё не люблю жать руки. Особенно потные. А итальянцы вообще постоянно целуются.
А вот сравнение с общепитом - некорректное - там есть спец.требования по организации процессов направленные на уменьшение вероятности заражения. В частности - мед.книжки у персонала и регулярные мед.осмотры оного. Не панацея, но хоть что-то...
Кто работал в общепитах - готовка, производство полуфабрикатов, склад, официант - хоть отечественных, хоть зарубежных, знает, что всё это туфта и вилами по воде писано. И вообще, тупые немцы.
И там с подсказками и автокомплитом XML было туго.
Не знаю как ты там пользовался. У меня с подсказками все было хорошо :)
Ну и плюс нужно было такое - какие варианты поднодов XML могут быть в этой ноде? Вроде, подсказчик в Виксе такое не даёт - тупо всё перечисляет.
Посказчик в виксе - это просто xsd. И да, там все выдается с поднодами
Вобщем, когда требуется вызвать какую-то процедуру, логику написать, ещё для чего-то - случаи есть. Тогда надо накатать код. Я писал. Не помню, для чего.
Эту логику тебе придется писать и в WiX#. Т.к. этой логикой ты расширяешь процесс установки. И работает этот код, как не трудно догадаться, на клиенте.
Я понял, что проще в коде накатать то же копирование файлов и прочее.
Значит ты ничерта не понял :) Копирование файлов - это примитивная задача. Инсталлятор должен еще эти файлы удалить и обновить. Вот где все проблемы.
Всё равно инсталлятор запускается с админскими правами
Совсем не обязательно.
Только тебе не надо будет особенностей каждого продукта изучать, а будет достаточно знать лишь свой язык, свою область.
Тебе надо будет написать дополнительную программулину, а значит ты сделаешь 100500 ошибок. И помимо твоего основного продукта тебе придется сопровождать еще и инсталлятор. Как говорится "флаг в руки
и крест на могилу" :)
Ну и плюс нужно было такое - какие варианты поднодов XML могут быть в этой ноде? Вроде, подсказчик в Виксе такое не даёт - тупо всё перечисляет.Посказчик в виксе - это просто xsd. И да, там все выдается с поднодами
Я имею ввиду, что вот в этой ноде только такие подноды могут быть - ну тупо все возможные из автокомплита. Т.е. подсказчик знает контекст конкретной ноды, и какие подноды в ней могут быть, а какие нет. В ООП подсказчик это значет - даёт только свойства текущего объекта (грубо говоря), а не всё подряд.
Тебе надо будет написать дополнительную программулину, а значит ты сделаешь 100500 ошибок. И помимо твоего основного продукта тебе придется сопровождать еще и инсталлятор. Как говорится "флаг в руки и крест на могилу" :)
Вам и так придётся написать "программулину", т.к. инсталлятор на Виксе - та же программулина. Там тоже могут быть ошибки и прочее. И если уж мне нужно процедуры на том же Шарпе добавить, то и вообще весь инсталлятор проще на нём написать - вот что главное. А чтобы вручную обновляторы и удаляторы не писать, WiX# делает это всё автоматом - как и Викс. Только на знакомом языке, а не куче XML-нод.
А как работает переход к определению (F12) в Виксе, в XML? Я имею ввиду типа такое
в одной файле
<PropertyGroup>
<A>...</A>
<PropertyGroup>
а в другом
<PropertyGroup>
<B>$(A)</B>
<PropertyGroup>
Вот если кликнуть во втором случае по А и нажать ф12 - перекинет на определение А в первом файле? У меня переход к определению в другом файле не работает. А в Шарпе всё работает, даже если определение в другом файле, или проекте, или сборке.
весь инсталлятор проще на нём написать
И проще схватить еще море ошибок на системах которых в офисе просто не было.
Пока писать свой инсталлятор, проще штук 10 инсталляторов нагенерить на спец. софте.
А вот сравнение с общепитом - некорректное - там есть спец.требования по организации процессов направленные на уменьшение вероятности заражения. В частности - мед.книжки у персонала и регулярные мед.осмотры оного. Не панацея, но хоть что-то...
дада
В Biergarten‘ах видел, как они стаканы споласкивают.
Примерно как в совке в автоматах с газировкой.
Я имею ввиду, что вот в этой ноде только такие подноды могут быть - ну тупо все возможные из автокомплита. Т.е. подсказчик знает контекст конкретной ноды, и какие подноды в ней могут быть, а какие нет.
Ты же вроде делаешь что-то на WPF... когда ты редактируешь XAML у тебя выпадают все возмоный подноды или только те, которые можно добавить? Так вот в WiX'е все тоже самое.
Вам и так придётся написать "программулину", т.к. инсталлятор на Виксе - та же программулина. Там тоже могут быть ошибки и прочее.
Нет, инсталлятор на виксе - это фактически скрипт. Туда можно добавить код, но код это будет достаточно примитивным и легко (относительно) тестируемым.
А как работает переход к определению (F12) в Виксе, в XML?
А как работает комьюнити? Зайди на stackoverflow и сравни количество топиков под тэгом wix и под тэгом wix#.
WiX# - на данный момент непонятная поделка с неизвестным количеством багов и неясными персппективами.
Ну это зависит от накрученности парсера-подсказчика.
Вобщем, чего спорить. Просто мой опыт сравнения Викса и Виск-Шарпа несколько лет назад был в пользу последнего.
WiX# - на данный момент непонятная поделка с неизвестным количеством багов и неясными персппективами.
Это вы говорите после использования того и другого, и на Виксе у вас было меньше проблем, чем на Викс-Шарпе?