Выбор технологий/компонентов для КИС

Helga87

Добрый день, уважаемые форумчане и немногочисленные форумчанки (с наступающим вас)!
Передо мной поставлена задача разработки автономной информационной системы, грубо говоря — автоматизированное место специалиста (далее — арм). В мире существует уже достаточно много подобных программ, как автономных и специализированных, так и интегрированных систем. Цель данной разработки — дать в руки специалиста инструмент, который позволит уменьшить количество рутинной работе в организации, в которой нет внедренной интегрированной системы. Т.е. документооборот в организации остается бумажный, а компьютер специалист будет использовать преимущественно как удобную печатную машинку.
Из всего вышесказанного и состояния парка компов у подобных специалистов в России вытекают следующие свойства программы:
  • Это будет десктопное решение, которое должно запускаться на не слишком старом Windows и иметь разумные требования по памяти. Очень хочется, чтобы программа нормально работала на 256 МБ памяти.
  • Требуется красивый пользовательский интерфейс. Красивый — это не значит, что там будут мегаролики на флеше, скорее приятный на вид, соразмерный.
  • Система должна очень просто развертываться. Это означает, что либо она устанавливается простым копированием, либо она устанавливается по запуску setup-а и в ходе установки не требуется перезагрузок компьютера, скачивания обновлений windows и прочих неочевидных или тяжелых действий.

В настоящий момент идет выбор технологий и компонентов, на которых будет разрабатываться система. От технологии хочется получить следующие "стандартные" (т.е. встроенные в стандартную библиотеку или должно иметься внятное стороннее решение) кирпичики:
1. Генератор отчетов. Потребуется делать огромное количество различных бумажек. Как минимум, генератор должен позволять по шаблону и предоставленным данным создать отчет в форматах: .rtf, .pdf, .html, выводить на печать, делать предварительный просмотр. Как максимум: должен быть удобный редактор отчетов, чтобы даже "глупый" пользователь мог поменять какие-то вещи в нем (шапку там или поле добавить).
2. Графики Потребуется делать достаточно много графиков типа "Увеличение количество заболевших куриным гриппом" и пр. Хочется иметь весь стандартный набор графиков — круговые, столбчатые, и пр.
3. Элементы управления. От элементов управления (имеются ввиду библиотека контролов) хочется иметь во-первых все стандартные вещи: кнопка, надпись, поле ввода, выпадающий список, сетка/таблица, а во-вторых, удобный календарь. Особое внимание уделяется возможности работы только на клавиатуре и возможности взаимодействия с пером (возможно придется запускать на Tablet PC-ях). Желательна возможность докинга, внятного механизма layouting-а. Также очень хочется, чтобы даже среднестатистеская формочка выглядело субъективно приятно (для примера: обычный диалог, сделанный с помощью Oracle Forms вызывает мат и реплики: какой безрукий козел это слабал?)
Возможно, что-то еще придет в голову, тогда список кирпичиков чуть расширится.
От многоуважаемой публики хочется услышать ответы на следующие вопросы:
1. Какая технология даст требуемый результат?
2. С каким набором кирпичиков лучше иметь дело?
3. Насколько просто будет разворачивать систему и какие требования будут к ОС и памяти?
Достаточно ясно, что реальным решением всего это дела является .net с его многочисленными сторонними кирпичиками (с радостью услышу предложения каких-то конкретных, потому что некоторые мне известны, но далеко не все). Недостатками является: относительная сложность развертывания (.net не умеет "тихо" ставиться, придется пользователю терпеть отдельный процесс установки самого .net runtime требования к памяти (на 256 мегабайтах работает скорее плохо, чем хорошо и еще раз требования к памяти (если делать интерфейс на широко и за дело разрекламированном WPF, мы сможем задешево получить достаточно красивый и функциональный интерфейс, но при этом нам уже 512 будет почти не хватать). Поэтому ищутся реальные конкуренты .net-у для такого приложения.

evgen5555

JRE, хаха

vall

Eclipse RCP
тоже готового дофига.
+реальная кроссплатформенность, в свете последней понософфщины может стать актуально =)
-java шевелится на гавнокомпах не шустрее .net, хотя возможностей для тьюнинга имхо больше.

Helga87

JRE, хаха
чем лучше? по моим данным, те же проблемы с памятью, чуть большие проблемы с интерфейсом. Редкая программа на java выглядит красиво. Такие есть, но их скорее мало. По-видимому, написание симпатичного интерфейса на java дороже, чем хочется большинству.
Плюс — это, конечно, простота развертывания.

Helga87

в свете последней понософфщины может стать актуально =)
мы обсуждали с руководителями организаций этот вопрос: к сожалению, довольно много специализированного софта жестко завязано на винду, поэтому от переносимости специально отказываться не будем, но и в приоритет это ставить не стоит.

KViH

Требуется красивый пользовательский интерфейс. Красивый — это не значит, что там будут мегаролики на флеше, скорее приятный на вид, соразмерный.
А это кто придумал? Начальство, заказчики или сам?

Helga87

Сам. Такое жесткое желание пришло после анализа всего того, что наляпано на российском рынке. Работает, но выглядит очень убого. Поскольку начальство аргументы, что на выставках/презентациях лучше показывать красивый интерфейс, приняло и готово выделить специалиста по Gui, то вопрос достижения "красоты" теперь рассматривается с позиции "а как это сделать подешевле".
Тут еще один момент есть: некрасивый, но функциональный интерфейс можно делать в системе, которая внедряется во всей организации и люди волей-неволей начинают на ней работать. Здесь в немалой степени делается ставка на специалистов, которых заколебал геморрой с оформлением бумаг, и которые хотят облегчить свою жизнь. Наличие приятного интерфейса заметно повысит их желание выбить у начальства деньги на эту программу или купить самому (тут уже каждый сам себе Рокфеллер).

shlyumper

Я бы сказал, что вот эти требования:
Это будет десктопное решение, которое должно запускаться на не слишком старом Windows и иметь разумные требования по памяти. Очень хочется, чтобы программа нормально работала на 256 МБ памяти.
...
Система должна очень просто развертываться. Это означает, что либо она устанавливается простым копированием, либо она устанавливается по запуску setup-а и в ходе установки не требуется перезагрузок компьютера, скачивания обновлений windows и прочих неочевидных или тяжелых действий.
однозначно означают, что .NET/JRE идут нах, и остается... давно забытое старое!
Borland Delphi/C++ Builder. Писать будет быстро, немного непривычно, но зато получится компактное быстрое приложение, которое можно будет устанавливать простым копированием. Да и библиотеки компонентов под твои требования доступны.
Еще я бы как альтернативный вариант рассмотрел возможность текстового консольного приложения, управляемого функциональными клавишами и интуитивно понятными клавиатурными сочетаниями, а не мышкой. На полном серьезе, для рутинной работы это на порядки удобнее, чем ГУЙ

Helga87

однозначно означают, что .NET/JRE идут нах, и остается... давно забытое старое!
Borland Delphi/C++ Builder. Писать будет быстро, немного непривычно, но зато получится компактное быстрое приложение, которое можно будет устанавливать простым копированием. Да и библиотеки компонентов под твои требования доступны.

Конкуренты как раз в основном и написаны на Delphi и Oracle Forms. Их преимущество в том, что они уже давно существуют. Тягаться с ними на устаревающем поле не имеет смысла — все равно не догоним.
Существует, правда, идея увелилить разрешенное количество памяти хотя бы до 512 Мб.
Еще я бы как альтернативный вариант рассмотрел возможность текстового консольного приложения, управляемого функциональными клавишами и интуитивно понятными клавиатурными сочетаниями, а не мышкой. На полном серьезе, для рутинной работы это на порядки удобнее, чем ГУЙ
Идея рассматривалась и отметена по простым соображениям: показать и убедить, что это круто, будет невозможно. Тем не менее, ставится жесткая цель минимизировать количество мест, где надо тянуться к мыши. В прототипе редактора в моей голове такая цель уже почти достигнута.

olga1969

Редкая программа на java выглядит красиво.
Swing конечно выглядит не очень...
Но SWT вроде на вид ничего так.

shlyumper

Тягаться с ними на устаревающем поле не имеет смысла — все равно не догоним.
Погоди. Какое устаревающее поле? Выше ты писал, что конкуренты от вас отличаются функционально. У тебя в требованиях: минимум гемора с установкой, и максимум производительности на старом железе. Если ты этого хочешь, то никакие новомодные технологии (tm) тебе не помогут. JRE будет мегатормозом, а .NET будет требовать танцев с бубном для установки. Даже если память до 512 мегов увеличить. Хотя для такого приложения - досовской машины с 4 мегами оперативки заглаза.
Идея рассматривалась и отметена по простым соображениям: показать и убедить, что это круто, будет невозможно. Тем не менее, ставится жесткая цель минимизировать количество мест, где надо тянуться к мыши. В прототипе редактора в моей голове такая цель уже почти достигнута.
Не хочу учить тебя вести бизнес, но сдается мне, что в конечном итоге ты изобретешь приложение, которое будет нравиться руководству покупателей красивыми рюшечками, и в лучшем случае тормозное (новые технологии нах!) на рабочих машинах, а может еще и неудобное для пользователя.

Helga87

swt достаточно часто почему-то ругают. То ли писать сложно, то ли "иделогически" неверный, не в курсе.
Кто писал под swt, что можете сказать хорошего/плохого?

KViH

Не очень складно получается.
Вы собираетесь делать коробочный продукт и продавать его? Сомнительная затея. Думаю, скорее у вас есть конкретные договоренности с конкретными заказчиками. А следовательно, для ответственных лиц, важно, чтобы продукт был сделан, сдан и заработал. Как поможет этому наличие приятного интерфейса? - а никак. А помешать может. Почему?
Людям, которые будут работать с вашей системой не нужен приятный интерфейс. Им скорее всего и не нужен ваш продукт, кроме пары-тройки энтузиастов, которые всегда найдутся. Но так как договоренности менеджмента есть и работать с этим придется, чтобы старт был мягким система должна быть минимально функциональна, максимально проста и надежна. Зачем здесь красивый интерфейс? - непонятно. Да он должен быть красив, но в том смысле, что и автомат калашникова. Для того чтобы так получилось - нужен один грамотный умный и опытный человек.
А на чем писать - это по барабану. На чем умеете - на том и пишите, vb, delphi, asp.net, пофик, используя стандартные кирпичи.

Helga87

Погоди. Какое устаревающее поле? Выше ты писал, что конкуренты от вас отличаются функционально.
ммм.. видимо сверху есть недостаточно понятная моя фраза, которая ввела тебя в заблуждение. Сильных функциональных отличий у конкурентов нет. Глобально они делают то же самое. Основной вопрос в том, насколько это будет удобно и красиво.
Под старым железом понимается не совсем пылесос. Стоит отталкиваться от минимальной конфигурации Celeron 1.7 Ghz, 256 мегабайт оперативной памяти, Windows XP
Не хочу учить тебя вести бизнес, но сдается мне, что в конечном итоге ты изобретешь приложение, которое будет нравиться руководству покупателей красивыми рюшечками, и в лучшем случае тормозное (новые технологии нах!) на рабочих машинах, а может еще и неудобное для пользователя.
Насчет тормозов: аппетиты по памяти временно уменьшат круг людей, которые установят софт. А вот как это скажется на удобстве пока не ясно. Как раз и хочется нестарые технологии юзать, чтобы основную часть времени не их косяки обходить, а бороться за удобство и функционал.
Чтобы не быть голословным, кроме Java и .net одно время рассматривался Python. Его требования по памяти поскромнее, десктопные приложения на нем, вроде, пишут, но взяли серьезные сомнения, что получится найти все перечисленные кирпичики приемлемого качества и что в случае возникновения новых потребностей не придется писать велосипед. Буду рад, если те, кто сталкивался с Python поругают/похвалят этот вариант.

Helga87

Начальство хочет закрыть следующие задачи:
1. Да, оно хочет сделать коробочный вариант. Хотя у начальства есть оптимизм пытаться это продавать специалистам в государственных организациях, выглядит более реальным покупка такой программы небольшой частной организацией. Пример: я являюсь клиентом в небольшой частной организации, которая имеет несколько специалистов. Посетителей учитывают в Outlook, а при расчете стоимости заказа и выписке счета руководствуются старой доброй бумажкой и калькулятором. У них не встанет проблемы отдать 1/3-1/2 дневной выручки на автоматизацию процесса. Сейчас на оформление бумаг тратится 10-15 минут на каждого посетителя.
2. Есть большая интегрированная система, которая позволяет делать все, вплоть до того, что по организации вообще не ходят бумажки. При этом возникают случаи, когда специалист из этой организации едет в командировку "в тайгу". Необходимо, чтобы он мог там обслужить клиентов и дальше результаты слить в большую систему. В этом смысле заказчик находится внутри самой компании.
3. Вся эта система будет активно показываться партнерам и клиентам на всяких выставках, презентациях и прочих мероприятиях. Обладая приятным интерфейсом автономного АРМ-а будет проще продать большую систему.
Но вообще, вопрос о том, какие ресурсы тратить на красоту решается просто: чем меньше, тем лучше. Т.е. приоритетность маленькая.

Dasar

> относительная сложность развертывания (.net не умеет "тихо" ставиться, придется пользователю терпеть отдельный процесс установки самого .net runtime)
это откуда такие данные?

Dasar

> .NET будет требовать танцев с бубном для установки.
какого рода?

Helga87

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

vall

второй точно умеет, сам делал. третьего не видел

Dasar

любой msi (кроме совсем извратных) поддерживает ключ /q

Helga87

раз второй умеет, то и третий. Слава богу, с инсталляторами последний раз имел дело еще во времена первого, а тогда у них была фишка, что они такого не позволяли почему-то.
значит, проблема сложности развертывания у .net отпадает.

Helga87

Спасибо.
Теперь я знаю больше. (с)

6yrop

1. Генератор отчетов. Потребуется делать огромное количество различных справок, выписок и прочего. Как минимум, генератор должен позволять по шаблону и предоставленным данным создать отчет в форматах: .rtf, .pdf, .html, выводить на печать, делать предварительный просмотр. Как максимум: должен быть удобный редактор отчетов, чтобы даже "глупый" пользователь мог поменять какие-то вещи в нем (шапку там или поле добавить).
и как ты это собираешься делать на .NET. Во втором дотнете с этим убого и заказчики будут явно не в восторге. Имхо, это придется писать самим.

6yrop

2. Графики Потребуется делать достаточно много графиков типа "Увеличение количество заболевших куриным гриппом" и пр. Хочется иметь весь стандартный набор графиков — круговые, столбчатые, и пр.
видимо тоже самим, либо завязываться на сторонних разработчиков контролов, а это даже хуже чем Майкрософт

Helga87

Из генераторов отчетов под .net есть вполне вменяемый NineRays Report SharpShooter. С этим, как раз, в .net проблем нет.

Helga87

Тут свои разработки уже есть + возможно будет юзаться WPF, который проблемы с интерфейсом решает.
Короче говоря, .net всем устраивает, кроме аппетитов по памяти. Причем, с мнением о том, что если компы вчерашнего дня, то и технологии придется использовать вчерашние, я согласен.

6yrop

осталось найти программистов вчерашнего дня

Helga87

Ищутся программисты вчерашнего дня для написания системы вчерашнего дня, которая будет работать на компах вчерашнего дня. Система должна быть написана вчера.

shlyumper

> .NET будет требовать танцев с бубном для установки.
какого рода?
Хотя бы установки пачки критичных апдейтов на Windows Installer с последующими перезагрузками.
А еще я забыл, .NET 2/3 хорошо ставится на Win98, WinME?

Helga87

Никак он на 98-ю не ставится. Но это не критично — задачи поддержать Win9x не стоит. Таких людей мало и сделать свою жизнь лучше они не стремятся.

kokoc88

Короче говоря, .net всем устраивает, кроме аппетитов по памяти. Причем, с мнением о том, что если компы вчерашнего дня, то и технологии придется использовать вчерашние, я согласен.
Сложные GUI на .NET будут тормозными. Если на машине Windows Installer версии меньшей, чем 3.1, то потребуется ребут при установке framework. Чтобы удовлетворить всем требованиям по качеству, придётся писать на Си++ под MFC или Widgets.

Dasar

> Никак он на 98-ю не ставится.
обманывают?
http://www.microsoft.com/downloads/details.aspx?familyid=085...
Supported Operating Systems: Windows 2000 Service Pack 3; Windows 98; Windows 98 Second Edition; Windows ME; Windows Server 2003; Windows Vista Business; Windows Vista Business 64-bit edition; Windows Vista Enterprise; Windows Vista Enterprise 64-bit edition; Windows Vista Home Basic; Windows Vista Home Basic 64-bit edition; Windows Vista Home Premium; Windows Vista Home Premium 64-bit edition; Windows Vista Starter; Windows Vista Ultimate; Windows Vista Ultimate 64-bit edition; Windows XP Service Pack 2

Helga87

Да, плюсы — это вполне реальный вариант удовлетворить всем перечисленным в первом сообщении требованиям.
Правда, в данном случае с ним будет тяжело по срокам: через два месяца уже должна быть работоспособная первая версия, которую можно показывать людям. Возможно люди, которые способны сделать на плюсах за два месяца подобную систему и существуют, но это не я, к сожалению.

nikita270601

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

Helga87

Не совсем
http://www.microsoft.com/downloads/details.aspx?FamilyId=10C...
А для того, чтобы поставить второй дотнет на 98-ю надо установить unicode layer, wndows installer 3.1, затем сам framework, а потом еще оказывается, что windows forms иногда забавно глючат, как докладывает Fj_
Оставить комментарий
Имя или ник:
Комментарий: