Я разработчик .NET, и у меня нет перхоти. Компания, с которой я работаю, использует С++ Builder 6. Мы разрабатываем собственный код с момента создания. Наш флагманский продукт полностью написан в собственном коде.
Входит в .NET Framework с прекрасными колокольчиками, свистами, пушистыми кроликами и cudly котятами. Я падаю, крюк, линия и грузило. Я убеждаю руководство, что .NET должен быть абсолютно новой основой для всех новых разработок программного обеспечения и что мы должны начать миграцию существующей кодовой линии как можно скорее. Со всеми преимуществами это не занимает много убедительных результатов. Они принимают мое предложение, как обычно.
На этом этапе я начинаю разрабатывать свое первое приложение .NET. Все идет так, как планировалось. Проект является лишь одним из компонентов нашего продукта. И поэтому я дошел до создания установщика для этого нового компонента. Как компания мы гордимся тем, что делаем вещи для пользователя как простой как возможно. Даже Microsoft с тысячами разработчиков не создает установщиков, как мы. Когда вы устанавливаете Microsoft CRM, например, вы получите список отказов и предварительных условий, которые необходимо установить, прежде чем вы сможете продолжить. Не нам. Никогда. Если вам что-то нужно, мы установим его для вас. Представь это.
Нас, запуская EXE, для вас...
Это делает наши установки такими легкими..NET Framework не установлен? Нет проблем! Мы сделаем это за вас. Нужен клиент SQL Native? Отлично!
Проблема в том, что теперь, когда один компонент нашего решения написан на .NET, это усложняет процесс установки невероятно. Прежде чем я смогу даже приступить к установке нашего продукта, мне нужно сделать следующее:
-
Определите, установлено ли предварительное условие.
-
Установите его, если он не
-
Убедитесь, что он был успешно установлен
-
Следующее предварительное условие
Для установки .NET Framework сначала нужен установщик Windows 4.5. Но для разных ОС существуют разные версии, поэтому я добавляю обнаружение ОС и запускаю правильный EXE. О,.NET framework уже упакован с 2k8, и exe-программа установки не может работать на нем, вам нужно запустить OCSetup.exe с параметрами для его установки. Вздох.
И так оно продолжается. Затем необходимо установить SQL Express 2005. Зависимости снова увеличиваются.
Я спорю с руководством, что даже Microsoft не делает это легко для пользователя. Их ответ заключается в том, что нет причин для того, чтобы мы не были лучше, чем они, таким образом. Я не могу спорить с этим, кроме того, что я чувствую, что есть очень веские причины, по которым они пошли с их подходом.
Внезапно наш установщик массивный. Все предпосылки для .NET, даже не говоря о 64-битной поддержке, которая имеет целый ряд EXE для установки. Таким образом, теперь он доходит до того момента, когда мы хотим, чтобы пользователи могли загрузить "быструю" оценку. Ну и шутка. Вам нужно загрузить 500 МБ, чтобы запустить 30-мегабайтное приложение. Магистрат установочного пакета является предпосылкой.
Руководство считает, что у нас слишком много зависимостей/предварительных условий. Я полностью понимаю. Они предлагают нам отойти от платформы .NET, вернуться на родину, где вещи все еще "легки" с точки зрения установки. Именно здесь одна часть меня хочет поддержать .NET, объясняя преимущества в общей картине, улучшенный опыт разработки, упрощение обслуживания и общее качество кода. Другая часть меня полностью согласна с ними! Для разработки в .NET просто требуется установить слишком много других предварительных условий, которые усложняют установку.
Да, некоторые сторонники .NET заявляют, что все должно быть установлено на исправленной и обновленной операционной системе. Это правда, но не все клиенты имеют это, и просто говорят: "Извините, сначала обновите", просто не сократит. Помните, мы гордимся общим опытом пользователей.
Мы сейчас рассматриваем возможность написания собственного кода снова, и я знаю, что мы проигрываем с точки зрения скорости разработки и всех преимуществ .NET. Но мы набираем обороты в этой области, будь то маленький, если вы посмотрите на общую картину или нет. Поскольку у нас есть навыки разработки собственного кода, и .NET на самом деле является новой основой для нас, даже имеет смысл вернуться назад.
Мой вопрос, в конце концов, так это то, что ваша компания рассматривает по этой проблеме, даже если это вообще проблема, и каково будет бизнес-пример, который я предлагаю руководству, предполагая, что я хочу продолжить миграцию всех наших продуктов на .NET?