Блог Александра Божко
Архивы
Рубрики

admin

Сегодня, 12/12/2017 было выпущено второе обновление Delphi 10.2.

В этом обновлении появились новые возможности, а так же были исправлены около полутора сотен  ошибок (полный список приведен здесь).

С новыми возможностями продукта вы можете ознакомится из статьи в DocWiki.

Так же на 14 декабря запланирован ознакомительный вебинар, посвящённый новой версии продукта.

 

Уважаемые коллеги!

Завтра, 07.12.2017 в 12:00 Мск состоится вебинар, посвящённый новым продуктам от Евгения Крюкова.

На вебинаре будут рассмотрены возможности FMXLinux и CrossVCL компании ksdev по созданию приложений под Linux и Mac OS.

Вы сможете составить общее представление о продуктах, а также узнаете о том, как легко можно трансформировать существующие и новые проекты, созданные как на основе FMX, так и на основе VCL.

Ведущий вебинара Всеволод Леонов. При участии Евгения Крюкова.

Предварительная регистрация – обязательная.

Сегодня была выпущена RAD Studio 10.2.1. Релиз содержит следующие новшества и исправления:

  • Повышена производительность Delphi Linux server, как для RAD Server так и для DataSnap.
  • Обновлены Delphi и C++ компилятор и  компоновщик, что  позволило решить задачу загрузки пакетов  (особенно в процессе отладки) с обновлениями Windows 10.
  • Поддержка последних версий iOS и Xcode (iOS 10.3 и XCode 8.3.2) при сборке для iOS App Store.
  • Поддержка FireDAC’ом  MSSQL 2012, 2014, 2016 и ODBC Driver 13.
  • Значительные улучшения компоновщика C ++, связанные со сборкой больших проектов.
  • Дополнительные улучшения для Android связанные с управлением рендерингом и производительностью и исправления проблем с TEdit в Android N.
  • Поддержка FireDAC’ом эксклюзивных уровней изоляции и времени ожидания транзакций в InterBase 2017.
  • Изменения в DataSize для полей типов ftInteger и ftLongWord, чтобы избежать использование платформозависмых типов LongInt и LongWord (изменения актуальны только для 64-bit Linux и 64-bit iOs платформ), и сопутствующие изменения в SetFieldData и GetFieldData.
  • Исправление 140 багов, о которых сообщили пользователи в Quality Portal.

Дополнительную информацию вы сможете найти в блоге Марко Канту.

Даже поражаюсь, насколько активно использую данную систему логгирования в своих проектах. Научился использовать её и в мобильных приложениях и даже в Delphi 7. Но об этом – в следующий раз. А сейчас небольшой солюшн.

Некоторое время назад заметил, что на машинах с Windows 10 или Windows 8 внезапно перестали отображаться CodeSite логи. При чем если программа запускается из-под IDE, то всё работает как часы, а вот если бинарник запускается отдельно, то логи не пишутся. Обычно, я стартую IDE от имени Администратора, и я сразу же подумал, что одна из возможных проблем – недостаток привилегий. Собственно говоря, догадка оказалась верна. После запуска скомпилированного приложения с повышенными привилегиями логи начали отображаться. Но такой вариант запуска приложения не всегда можно использовать. Например, при отладке dll или сервисов запуск от имени администратора будет сложно сделать.

Решение оказалось на удивление простым. Возможно оно вам тоже пригодится.

В каталоге. в котором установлен CodeSite вам следует найти папку Tools. В ней содержится пакет для установки на клиентских ПК. Просто установите этот пакет на своей машине. Переустановленный CodeSite Live Viewer будет работать корректно. Если через некоторое время проблема повторится – переустановите пакет ещё раз.

Сразу о двух новые книгах, посвящённых Delphi.

Первая – Delphi in Depth: FireDAC Керри Йенсена (Cary Jensen).

FireDAC_200  В свое время, когда я только начинал программировать и и, в принципе, еще не зарабатывал этим на жизнь, мне довелось сдавать допуск к экзамену по английскому. Те самые пресловутые тысячи. Выбор текста оставался за мной, и я решил совместить полезное с полезным ;). Интернета в его нынешнем виде тогда не было, но мне попалась подборка журналов Delphi Magazine. Несколько на мой взгляд наиболее интересных статей я прочел и перевел под запись. Среди них был и цикл статей, посвященных работе с наборами данных. Тогда для меня это послужило неким толчком. Фактически, я научился работать с БД.

Данная книга вполне может послужить чем-то подобным для начинающих разработчиков. Но и для тех, кто имеет опыт разработки DB-ориентированных приложений, она будет интересна. FireDAC – продукт достаточно мощный, и зачастую опыта использования других библиотек доступа к данным может быть не достаточно, что бы использовать весь спектр возможностей FireDAC. Тонкостей и нюансов хватает.

Ознакомиться с содержанием книги вы можете здесь: http://www.jensendatasystems.com/firedacbook/files/DelphiInDepth_FireDAC_CaryJensen_2017_TableOfContents.pdf.

Единственное, чего в книге не хватает, на мой взгляд – описание работы с DataSnap.

Книга относительно не дешевая. $44.99. Но на мой взгляд она стоит того, что бы ее купить.

Книга, как сейчас популярно, персонализирована. Т. е. после покупка она верстается в .pdf формате с вашими реквизитами.

Рекомендую.

 

Автор второй книги – Paweł Głowacki. Сотрудник Embarcadero, известный большим количеством технических статей, посвященных Delphi.

MasteringDelphi_200 Mastering Delphi – рабочее название. Вероятно, окончательный вариант названия будет другим. Что бы не возникало ассоциаций с книгами Marco Cantu. Выход книги ожидается в сентябре этого года.

Сейчас можно сделать предзаказ.

Акцент в книге, судя по аннотации, будет сделан на мультиплатформенную разработку.

Стоимость книги по предзаказу – $32,59.

Думаю, в качестве книги сомневаться не придётся. К слову, Павел как раз известен как автор целого ряда материалов, посвящённых DataSnap.

 

С тех пор как FireDAC стал частью RAD Studio, и в моём блоге появилось несколько постов, посвященных данному продукту, меня время от времени спрашивают как сделать с помощью FireDAC те или иные вещи. При чем, в большинстве случаев вопрошающие пытаются переложить свой опыт использования других компонентов доступа к данным (что вполне логично). К сожалению, описывать многочисленные нюансы работы с FireDAC просто не хватает времени. Да и опыт работы с FireDAC ограничен в основном созданием мобильных приложений.

Буквально вчера я наткнулся на весьма не плохой туториал от Дениса Симонова.

Создание приложений для СУБД Firebird с использованием различных компонент и драйверов: FireDac.

Рекомендую.

Сегодня компания Embarcadero официально объявила о выходе RAD Studio 10.2 Tokio, с поддержкой разработки для Linux.

Что нового в RAD Studio 10.2: https://www.embarcadero.com/products/rad-studio/whats-new-in-10-2-tokyo

Анонс продукта: https://delphiaball.co.uk/2017/03/22/rad-studio-10-2-available-today-linux-delphi/

Главная страница DocWiki: http://docwiki.embarcadero.com/RADStudio/Tokyo/en/What%27s_New

Список исправленных багов (более 500): http://edn.embarcadero.com/article/44747

Видео, иллюстрирующее поддержку Delphi Linux Server: https://youtu.be/2wiD3F-nGZ8

​The Feature Matrix: https://www.embarcadero.com/docs/rad-studio-feature-matrix.pdf

Официальный вебинар, посвященный запуску продукта: https://community.embarcadero.com/blogs/entry/launch-webinar-10-2-tokyo

Иногда, в процессе отладки приложения при работе с наборами данных бывает необходимо отобразить содержимое набора.  Это не всегда просто сделать, особенно, если DataSet формируется динамически в коде программы. Для того, что бы упростить задачу я написал специальную функцию, которая использует систему логгирования CodeSite.

procedure SendDataSet(aDataSet: TDataSet; aFields: TStrings = nil);
var
  I: Integer;+-
  sLogFldType, sLog: string;
  bm: TBookmark;
  bln: Boolean;
begin
  if not aDataSet.Active then
    Exit;

  sLog := '';
  sLogFldType := '';

  for I := 0 to aDataSet.Fields.Count - 1 do
  begin
    if not Assigned(aFields) then
      bln := True
    else
      bln := aFields.IndexOf(aDataSet.Fields[I].FieldName) > -1;

    if bln then
    begin
      sLog := sLog + Format('%s', [aDataSet.Fields[I].FieldName]) + ' | ';
      sLogFldType := sLogFldType + GetEnumName(TypeInfo(TFieldType),
        Ord(aDataSet.Fields[I].DataType)) + ' | ';
    end;
  end;

  CodeSite.SendNote(aDataSet.Name);
  CodeSite.Send('sLog', sLog);
  CodeSite.Send('sLogFldType', sLogFldType);

  bm := aDataSet.GetBookmark;
  aDataSet.DisableControls;

  aDataSet.First;

  while not aDataSet.Eof do
  begin
    sLog := '';
    for I := 0 to aDataSet.Fields.Count - 1 do
    begin
      if not Assigned(aFields) then
      begin
        sLog := sLog + ' | ' + aDataSet.Fields[I].AsString;
      end
      else
      begin
        if aFields.IndexOf(aDataSet.Fields[I].FieldName) > -1 then
          sLog := sLog + ' | ' + aDataSet.Fields[I].AsString;
      end;
    end;

    CodeSite.Send('sLog', sLog);
    aDataSet.Next;
  end;

  try
    if aDataSet.BookmarkValid(bm) then
      aDataSet.GotoBookMark(bm); //
  finally
    aDataSet.FreeBookMark(bm);
    aDataSet.EnableControls;
  end;

end;

Читать далее

Двухмесячное затишье в моем блоге было связано отчасти с занятостью, а отчасти с возникшими в очередной раз техническими проблемами. В третий раз на протяжении полугода пришлось менять хостера. Речь идёт не только о блоге, который вы читаете, но и о проекте DelphiFeeds.ru. Надеюсь, что на этот раз всё окончательно нормализовалось и проект будет функционировать в штатном режиме.

Пока же немного новостей. Идея агрегатора тематических блогов продолжает сохранять актуальность. На этот раз новостные ленты всех MVP собрал непосредственно вендор. Так сказать, из первых рук.

Еще одна большая новость от EmbarcaderoInterbase 2017. Здесь вы можете ознакомиться с пресс-релизом.

И, конечно, специальные акционные предложения от Embarcadero.

1. До 31 марта вы можете обновить Delphi\C++ Builder\RAD Studio с любой предыдущей версии по цене обновления.

2. До 31 марта при покупке RAD Studio, Delphi или C++Builder старших редакций вы получаете скидку, дополнительные месяцы подписки, а так же бесплатные лицензии на дополнительные продукты:

  • Architect: Скидка 15% + Бесплатно RAD Server site license ($5,000) + 15 месяцев подписки + Бесплатно Bonus Pack ($899).
  • Enterprise: Скидка 10% + Бесплатно FREE RAD Server 10-device license ($899) + 14 месяцев подписки + Бесплатно Bonus Pack ($899).
  • Pro: Бесплатно Bonus Pack ($899).

Ссылки на продукты:

Ну, а главное ожидание сезона – поддержка Linux в Delphi 10.2. Ниже приведу несколько полезных ссылок, которые позволят подготовиться к установке и настройке нового продукта:

 

 

 

В заключение пара слов о накопленном материале и анонс ближайших постов.

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

И еще написал небольшой модуль, позволяющий в логе CodeSite выводить содержимое набора данных. Очень полезно при отладке DB -приложений, особенно с замысловатыми алгоритмами. Тоже планирую опубликовать.

О выборе версии Delphi для разработки проектов написано уже достаточно. Почему я решил снова обратиться к этой изъезженной теме?

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

К сожалению, следует признать тот факт, что большинство вакансий для Delphi программистов так или иначе связаны с поддержкой старых проектов. И, опять же, большинство из этих проектов реализованы на Delphi 7. Только в прошлом году мне пришлось столкнуться с двумя такими проектами. И простите мне мою безапелляционность, но я считаю, правильным названием было бы что-то подобное: “Почему следует отказаться от использования Delphi 7 прямо сейчас?!”

Ниже я постараюсь аргументировать свою точку зрения по пунктам и с примерами.

1. Поддержка Unicode.

Здесь уже написано много, не буду повторяться. Замечу только, что поддержка Unicode это то, чего просили пользователи ещё во времена Borland и это первое, что сделала Embarcadero, приобретя продукт. За что ей большое спасибо. Читать далее

Продукты DevArt
Купить онлайн:



Читай русскоязычные Delphi блоги
Каталог блогов Blogdir.ru
Яндекс.Метрика