Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > КИС Lack & УС Land

Для компьютерщиков! Инструмент разработки системы "УС Land" : КИС Lack & УС Land

29.03.2024 0:32


25.07.2014 11:30
AndreyZh
 
В данной теме, по мере возможности или нахождения интересно представленного материала буду размещать статьи по системам разработки "УС Лэнд" и снятой с поддержки "КИС Lack"... может быть тогда "опоненты" смогут относится к данным системам более объективно?

Начну со статьи Александра Кресина на харбе (статью сократил, убрав примеры программ). А.Кресин - один из Российских гуру (раньше на Клиппер, теперь на Harbour), "стартовый" разработчик open source инструментов на (x)Harbour весьма популярных в России, Украине (в основном из регионов затронутых войной), Польше и латиноамериканских странах, таких как: графический инструмент hwGUI и SQL СУБД, базирующаяся на "родных" файлах стандарта dBase - LetoDB... сейчас данные "инструменты" развиваются "своими" международными сообществами. И так - статья:



Harbour — новое лицо xBase family

(КИС Lack...) Для справки: xBase — семейство систем программирования, СУБД, берущих начало с dBase (1980 г.). Их объединяет общий язык программирования ( естественно, с вариациями, присущими конкретной реализации ) и встроенные в этот язык средства доступа к реляционным базам данных формата DBF. Собственно, dBase начинался как СУБД с языком, предназначеннным для обслуживания баз данных. Это процедурный язык программирования, он относится к группе интерпретируемых языков и обладает многими, если не всеми, их родовыми чертами, такими, например, как динамическая типизация.

Clipper, непосредственный предшественник Harbour, был создан в 1985 г. с целью повышения производительности dBase III. Для этого исходный код программы преобразовывался на стадии компиляции в байт-код, который встраивался в исполнямый файл вместе с виртуальной машиной, предназначенной для исполнения этого байт-кода. Таким образом, Clipper давал на выходе автономный exe файл, не требующий для своего запуска и выполнения внешнего интерпретатора, как в случае dBase или FoxBase ( другой популярный xBase продукт ).

В конце 80-х и начале 90-х Clipper был очень популярен, он был одним из основных средств программирования для приложений, связанных с использованием баз данных, в первую очередь бухгалтерских, управленческих, банковских. Язык модернизировался от версии к версии, добавлялись новые подсистемы. Среди последних особенно следует отметить Extend System и RDD. Extend System (система расширения) предназначена для связи с модулями, написанными на С — вызов функций, передача параметров, получение возвращаемых значений. RDD — Replaceable Database Drivers (заменяемые драйверы баз данных) — технология, которая позволяла, прилинковав взамен стандартной другую, специальную библиотеку, работать с БД другого типа, не изменив ни строчки кода. Именно так Clipper-приложения работали, например, с Novell'овским Btrieve (если кто помнит, была такая клиент-серверная не SQL СУБД).

XBase системы всегда воспринимались как предназначенные, в первую очередь, для работы с базами данных и, возможно поэтому, с ростом популярности SQL стали выходить из тренда. И если с Fox'ом все было более-менее благополучно — купившая его Microsoft сделала на его основе популярный продукт Visual Foxpro, который еще несколько лет назад (в 2006, согласно Википедии), был на почетном 12-м месте в списке TIOBE, то у Clipper дела были куда хуже. Computer Associates, которая владела им с начала 90-х, сделала ставку на другие продукты. Clipper же остался в стороне от магистрального пути, назревшие проблемы не решались, а в 1997 году Computer Associates объявила о закрытии дальнейшей его разработки, оставив пишущих на нем программистов наедине с 16-разрядной, рассчитанной на применение в среде MS-DOS системой программирования.


(УС Лэнд...) Многие из тех, кто задумывался о своем будущем, мигрировали на другие платформы, но остались и те, кто считал, что достоинства Clipper, будучи реализованы в современной среде программирования, будут востребованы и дальше. Были созданы несколько таких реализаций (xBase++, Clip, Harbour), об одной из которых, наиболее успешной на этот день я и поведу речь — прошу простить меня за такое длинное, но, на мой взгляд, необходимое вступление.

Итак, Harbour. Проект стартовал в 1999 году, официальный сайт — http://www.harbour-project.org. Текущая версия — 3.0 (stable), 3.2 (development).

Как и Clipper, Harbour транслирует исходный текст программы в байт-код, но, в отличие от своего предшественника, компилятор Harbour создает не объектные, а с файлы, которые потом надо «скормить» С компилятору...

Я не случайно уделил столько внимания С в Harbour. Расширенная ( извините за невольную тавтологию ), по сравнению с Clipper, Extend System и Item API, предоставляющая доступ из С кода к внутренним структурам Harbour, его переменным, массивам, объектам позволяют говорить о симбиозе двух языков, я считаю это одной из важнейших особенностей Harbour. Благодаря этому Harbour уже «оброс» большим количеством модулей — оболочек к разнообразным продуктам, имеющим C API и список таких модулей, как open source, так и коммерческих, постоянно растет (в настоящее время подумываю об OpenCV). Конечно же, С используется в Harbour не только для создания оболочек к готовым продуктам, но и для самостоятельных разработок — новые RDD, GUI библиотеки и др. Иногда, в контексте некоторых приложений я рассматриваю Harbour как оболочку к С коду — для облегчения реализации пользовательского интерфейса, доступа к БД и пр.

Встроенный доступ к БД, эта родовая черта xBase, — еще одна тема, которой хочется уделить особое внимание. Это, действительно, очень удобно — иметь возможность, не используя внешние СУБД, с помощью только встроенных языковых средств производить все необходимые манипуляции с базами данных — создание, модификация, пополнение, редактирование, поиск. В случае, когда количество информации, хранящейся в БД, сравнительно невелико, использовать внешнюю СУБД представляется совершенно излишним, для таких приложений и MySQL выглядит монстром (а ведь некоторые даже MS SQL ставят) — xBase подход здесь выглядит наиболее адекватным решением. Впрочем, и для больших БД Harbour может применяться (и применяется) вполне успешно.

Приведу небольшой фрагмент кода, демонстрирующий типичные конструкции доступа к данным — для тех, кто не сталкивался с xBase языками раньше. Конечно же, арсенал средств для работы с БД в Harbour гораздо богаче, чем использованный в этих нескольких строчках....

Средства доступа к БД не ограничиваются стандартными. Есть RDD, написанные для клиент-серверных СУБД, как основанных на DBF ( коммерческая Advantage Database Server от Sybase и open source LetoDb ), та и SQL. Есть модули, обеспечивающие доступ посредством ODBC и ADO, есть модули для MySQL, PostgreSQL, SQLite, использующие C API этих СУБД.

В Harbour получили дальнейшее развитие все особенности Clipper, сделавшие его языком высокого уровня, на котором удобно программировать — автоматическое выделение и освобождение памяти, сборщик мусора, так называемые raw arrays, возможность компилировать и исполнять в run-time, в динамике фрагменты кода. Добавлена полноценная реализация ООП. Препроцессор, сохранив всю мощь Clipper'овского, расширен за счет некоторых конструкций, взятых из С. Впрочем, не буду перечислять здесь все новшества, а просто сошлюсь на раздел моего сайта "Harbour для начинающих".

Да, я, кажется, забыл сказать, что Harbour — кроссплатформенная система с открытыми исходниками. Он существует на 32- и 64-разрядных платформах, на Windows, Linux, Unix, Mac OS X, QNX, OS/2, вроде бы и на Android, и еще на чем-то, чего я не видел.


-----------------------------------------------
P.S. Универсальная учетная система "УС Лэнд" разрабатывается пока не на Harbour, а xHarbour... xHarbour - open source ответвление развиваемое, как часть коммерческого продукта единственной фирмой разработчиком, что мне кажется более надежной, чем разработка Harbour "шалманом" программистов разных стран. Во вторых на момент перевода УС на новый инструментарий у xHarbour была большая совместимось со "старой" системой разработки.

"На сейчас" Harbour стал более надежной, гибкой и быстрой системой, чем xharbour. Для него создано гораздо больше библиотек расширяющих его возможности, включая доступы к "облаку", ГУИ, СУБД, гаджетам. При этом сейчас уже инструмент УС Лэнд 100% совместим с Harbour, т.е. возможна смена мной инструментария.
25.07.2014 13:18
OlegON
 
А есть ли модуль для подключения к Oracle? Не гуглится просто так :(
25.07.2014 14:08
AndreyZh
 
Цитата:
OlegON А есть ли модуль для подключения к Oracle? Не гуглится просто так :(
Ссылка на сайт производителя RDD, в т.ч. для Oracle (вроде разрешено): http://www.otc.pl/index.asp?s=1&l=2 - это для Harbour и xHarbour

Для xHarbour (инструмент УС Лэнд) http://www.xharbour.com/products/sqlrdd.php есть редакция коммерческой обёртки, где "SQLRDD was created to access SQL database servers like Oracle, Microsoft SQL Server, IBM DB/2, Postgres, Sybase, MySQL, Firebird and others, from xHarbour xBase language just like you are used to use DBFCDX or any other regular xBase database driver", т.е. драйвера к СУБД (частности Oracle) вшиты в поставку.

Замечу, что технология RDD - это не ODBC... вызовы запросов преобразуются в прямые вызовы программ на C, т.е. система работает со скоростью "родных" библиотек под C.
25.07.2014 18:45
FinSoft
 
Привет.
Я предпочел расширить арсенал инструментов.
Базовый функционал учетной системы работает на десктопах и остается на clarion. Единственное, что планируется, подтянуть бюджетный терминальный сервер tsplus, так как система заточена для работы в терминальном режиме со встроенной базой данных. Tsplus позволяет организовывать удаленный доступ к приложению с любых устройств, включая мобильные, благодаря html5 клиенту. В локальной сети ставится за 5-10 минут. По отзывам зарубежных коллег, работает весьма достойно. При стоимости порядка тысячи рублей за рабочее место и возможности использования под сервер настольной оси win7 или winxp.
Для web я стал использовать популярную связку html/css/php/javascript. Основная нагрузка приходится на php. Пишется все в notepad++. На этой связке работает web-магазин, полностью интегрированный с основной учетной системой.
Для мобильных устройств я остановился на андроиде, как самой распространенной платформе с массой дешевых девайсов. Есть ряд мобильных задач, прежде всего мобильная торговля, когда нужна локальная работа с периодической синхронизацией данных через интернет. Для разработки была взята система basic4android, которая имеет низкий порог вхождения (за небольшую плату) и позволяет быстро разрабатывать необходимый функционал, не погружаясь в дебри джавы. Как раз сейчас начали обкатывать в боевом режиме первое решение. Об этой системе я узнал от зарубежных коллег. Могу подтвердить ее эффективность.
28.07.2014 12:07
AndreyZh
 
Доброго дня Вячеслав

Имеет место быть некоторому непониманию... В начале по мне: я не админ, хотя больший доход от этой работы, я не чистый программист-эрудит, хотя и развиваю (поддерживаю) программную довольно большую систему, я не экономист (бухгалтер), хотя приходится быть в курсе законотворчества и так далее... Есть несколько направлений, в которых ориентируюсь, но если встречаются "сопутствующие" задачи стараюсь передать их специалистам в их решении, "интегрируясь" с ними.

В свете этой ремарки нужно будет и воспринимать ответы:

Цитата:
FinSoft Привет. Я предпочел расширить арсенал инструментов.
Боюсь, что Вы невнимательно прочитали статью А.Кресина и не увидели одно из основных примечаний по Harbour, а именно (x)Harbour == ANSII C, т.е. база на которой строятся все программные системы, в частности Ваша система разработки.

Как и в случае С для Harbour "на общественных началах" разрабатываются многочисленные библиотеки под любые ОС и они, как правило пишутся на C or Harbour. То есть для всего перечисленного Вами есть созданные (с толь или иной степенью проработки) инструментальные расширения.

Цитата:
FinSoft Базовый функционал учетной системы работает на десктопах и остается на clarion. Единственное, что планируется, подтянуть бюджетный терминальный сервер tsplus, так как система заточена для работы в терминальном режиме со встроенной базой данных. Tsplus позволяет организовывать удаленный доступ к приложению с любых устройств, включая мобильные, благодаря html5 клиенту. В локальной сети ставится за 5-10 минут. По отзывам зарубежных коллег, работает весьма достойно. При стоимости порядка тысячи рублей за рабочее место и возможности использования под сервер настольной оси win7 или winxp.
За "наколку" - tsplus спасибо, правда не для пользователей УС, а мученникам от "1С" - есть пара фирм, где ф-с архитектура еле дышит, а на "честные" терминалы нет денег.

Что Harbour: есть в доступе open source библиотеки, которые позволяют реализовывать терминальные режимы без стороннего п/о, есть библиотеки (в стандарте уже довольно развитые), позволяющие реализовывать связку "клиент - интернет - web сервер" и многое другое... Вопрос лишь "а оно мне надо?"... хотя, если потребуется - придется вникать!

Цитата:
FinSoft Для web я стал использовать популярную связку 1(html/css)/2()php/(3)javascript. Основная нагрузка приходится на php. Пишется все в notepad++. На этой связке работает web-магазин, полностью интегрированный с основной учетной системой.
Что Вы предлагаете? Наряду со знаниями основной моей платформы разработки, которой хорошо владею максимум на 20% ещё изучить и в совершенстве "пользовать" три столь же сложные платформы, по которым написаны тысячастраничные пособия (и даже по каждой из которых не встречать профессионалов (в Саратове), а они были нужны для решения серьёзных и дорогих задач... "трепло" быстро определялось)

Цитата:
FinSoft Для мобильных устройств я остановился на андроиде, как самой распространенной платформе с массой дешевых девайсов. Есть ряд мобильных задач, прежде всего мобильная торговля, когда нужна локальная работа с периодической синхронизацией данных через интернет. Для разработки была взята система basic4android, которая имеет низкий порог вхождения (за небольшую плату) и позволяет быстро разрабатывать необходимый функционал, не погружаясь в дебри джавы. Как раз сейчас начали обкатывать в боевом режиме первое решение. Об этой системе я узнал от зарубежных коллег. Могу подтвердить ее эффективность.
Harbour позволяет создавать "родные" приложения для андроид, правда пока "через опу" и когда будет желание размещу статью на эту тему... но и это пока находится вне моих интересов

А что "интересно" и беспокоит в "сей момент"? Например, как реализовать очередной дибилизм от ФСРАР по журналу учета - когда эти ... опубликовали очередную шараду (приказ), а как её разгадывать не удосужились подсказать... и приходится часами искать полезную инфу по этой теме
28.07.2014 13:50
FinSoft
 
Андрей, я просто для поддержания разговора про инструментальные средства. Если, конечно, ты не против.
Мир меняется и все больше и больше восстребованными становятся решения для веба и мобильных устройств. Тут надо отметить, что задачи в этой области являются решениями-карликами по сравнению с настольными учетными системами. То есть их функционал узок и заточен для решения какой-то небольшой задачи. К примеру, приложение с 20 диалоговыми окошками для андроида считается уже довольно серьезным. Что лучше, накрыть эти направления своими решениями или интегрироваться с другими разработчиками, вопрос не однозначный. Для своих пользователей я решил, что более оптимально иметь веб-магазин и мобильную торговлю из одной коробки с учетной системой. Для меня расширяются технические возможности и в целом взгляд на информационную систему, появляются новые мысли и идеи, в проект привлекается дополнительное финансирование. К слову, время вхождения в программирование для андроида составило где-то одну неделю, для веба порядка месяца. Это трудное время, связанное со стрессом при погружении в новые технологии, но постепенно все укладывается в голове. А опыт разработки учетных систем начинает коррелировать с этими платформами, давая определенные конкурентные преимущества.
28.07.2014 15:43
FinSoft
 
Сходил по ссылке на сайт harbour, последние новости по проекту - лето 2011 года. Наводит на грустные мысли...
28.07.2014 16:21
AndreyZh
 
Цитата:
FinSoft Андрей, я просто для поддержания разговора про инструментальные средства. Если, конечно, ты не против.
Конечно не против... но, так имеет место быть, что данный раздел предназначен для пользователей (в том числе возможно будующих) универсальной учетки "УС Лэнд", как следствие здесь приводится техническая информация по возможностям системы, механизмам продвижения и внедрения системы и изредка размещается инфа по темам "широкого профиля", отражающим точку мою (личную и возможно ошибочную) точку зрения.

Для чего конкретно эта тема? Очень понравилась (имел возможность неединожды убедиться) теория "рынка лимонов" Маркетинг, пиар, реклама! - Делюсь опытом , где мы, как разработчики реально существуем и выживаем. Из этой теории в частности следует, что если заказчик будет больше знать о товаре, то он сможет сделать более правильный выбор. Посему попытался и буду пытаться здесь размещать материалы, в которых простым языком описывается "внутренняя кухня" системы УС Land.

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

Цитата:
FinSoft Мир меняется и все больше и больше восстребованными становятся решения для веба и мобильных устройств.
Вполне возможно? Но в личной переписке и здесь неоднократно отмечал, что разуверился в ...

Почему и в чём? Очень объемный и сложный вопрос... Если конкретно, например в 2007 "интегрировался" в систему мобильной торговли: Palm -> Pocket PC -> Chrome OS -> Android -> OS iPhone с того момента хорошая знакомая (торговик), всего в двух фирмах освоила системы интеграции. Для каждой из этих систем свой инструментарий, на выбор платформы влияют мода и тренды. На Российском рынке уже несколько десятков систем для гаджетов... Вы "предлагаете" вступить в бизнес соревнования и на этом рынке?

Уже "проходил" - расширение сферы деятельности, области приложения труда ("мозгов") ведет к деградации в каждой отдельной сфере, а ещё необходимо учитывать, что "поджимают" маркетологи и "менеджеры" альтернативных систем, т.е. "исскуством продаж" необходимо владеть, как минимум... Не до жиру - быть бы живым!

Цитата:
FinSoft Тут надо отметить, что задачи в этой области являются решениями-карликами по сравнению с настольными учетными системами. То есть их функционал узок и заточен для решения какой-то небольшой задачи. К примеру, приложение с 20 диалоговыми окошками для андроида считается уже довольно серьезным.
Боюсь - это устаревшие сведения? Как и во всём в ИТ сфере:

1. Появляется принципиально новый продукт с ограниченным функционалом;
2. Он вырастает по достаточно хорошего до бизнеса функционала;
3. Появляется множество конкурентов;
4. Начинается война "плюшек" и маркетинговых преимуществ;
5. Продукты со слабым рекламным потенциалом уходят с рынка, освобождая места маркетингово успешным проектам... Сейчас уже 4 этап! - паровоз ушел...

Цитата:
FinSoft Что лучше, накрыть эти направления своими решениями или интегрироваться с другими разработчиками, вопрос не однозначный.
Для меня "маленького" и "слабого" лучше ИНТЕГРАЦИЯ:

1. Это много легче и проще, чем создавать очередной "лисапед";
2. Пользователь выбирает более "удобный" ему продукт и "я" не диктую ему выбор;
3. УС Land цепляется "вагончиком" к успешным маркетинговым проектам, а не пытается продавить рынок;
4. Это (интеграция) "уникальное" получается приложение, оплачиваемой и как следствие "финансирует" развитие проекта open source "для всех"...
28.07.2014 16:28
AndreyZh
 
Цитата:
FinSoft Сходил по ссылке на сайт harbour, последние новости по проекту - лето 2011 года. Наводит на грустные мысли...
Не там искали! Являясь open source проектом - поддерживается "открытой" командой разработчиков действия которой координируются "парой человек" и вся работа по развитию идет в "гетто" (открытом для команды репрозитарии). Релизы Harbour и наборов библиотек выпускаются пару раз в месяц, стабильные версии примерно раз в квартал (для xHarbour раз в полгода).

Не вхожу в команду разработчиков и необходимые новшества получаю с форума российско-украинских пользователей (x) Harbour (по мере необходимости)
28.07.2014 17:03
FinSoft
 
Цитата:
AndreyZh Для меня "маленького" и "слабого" лучше ИНТЕГРАЦИЯ:

1. Это много легче и проще, чем создавать очередной "лисапед";
2. Пользователь выбирает более "удобный" ему продукт и "я" не диктую ему выбор;
3. УС Land цепляется "вагончиком" к успешным маркетинговым проектам, а не пытается продавить рынок;
4. Это (интеграция) "уникальное" получается приложение, оплачиваемой и как следствие "финансирует" развитие проекта open source "для всех"...
Развитие своих веб и мобильной подсистем имеет смысл, конечно, только в связке с основным продуктом. Конечно, нет смысла пробовать конкурировать с имеющимися универсальными решениями. А вот для пользователей конкретной учетной системы такие расширения из коробки позволяют экономить немало денег и нервов. Самое главное, один раз настроил и все довольны - пользователи спокойно работают без лишних телодвижений, разработчик контролирует систему и получает некое материальное вознаграждение. Там не критичны изменения в законодательстве, небольшие программки, которыми пользуется большое количество людей. А "смежники" не напрягают попытками перетянуть одеяло на себя. Ну я просто высказываю по своему опыту.
Часовой пояс GMT +3, время: 00:32.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.