Последние акции представлены на нашей странице со специальными предложениями

Helping you navigate through Migration

Delphi и C++Builder служат для создания высококачественных приложений, которые ежедневно используются миллионами пользователями по всему миру. По мере развития Delphi / C++Builder (с новыми возможностями языка и набора компонент) мы всегда стремились к максимальной совместимости, чтобы просто открыть исходники и перекомпилировать в новой версии. Несмотря на достижение одной из лучших на рынке обратной совместимости, некоторые изменения потребовали критических изменений (например, переход на Unicode).

Мы создали здесь центр миграции и обновлений, чтобы помочь вам сориентироваться в путях перехода со старых версий!

Ваш исходный код и формы будут импортированы, скомпилированы и выполняться на последней версии Delphi/C++Builder, но возможно придется перекомпилировать внешние библиотеки, кое-что поменять для использования Unicode и перейти на другие компоненты доступа к данным, при необходимости.

“If you do not modernize your app, you may become extinct quicker than you think”

Fortune 100 Company

Unicode

Поддержка Unicode была добавлена в RAD Studio, Delphi и C++Builder начиная с версии 2009. В это период было подготовлено много пособий по переходу с до-Unicode версий, которые остаются актуальными и сейчас.

В течение десятилетия Delphi обеспечивала относительно безболезненный переход, однако, это не означает, что все получалось само собой. Unicode – это одна из тем, где может потребоваться особое внимание!

Хорошей новостью является то, что в многих случаях удается перевести «старые» приложения в последнюю версию Delphi с минимальными или вообще без модификаций. Если вы работаете большей частью с компонентами VCL (поддержка Unicode которыми, в большинстве случаев, тщательно продумана) или с компонентами внешних компаний, которые не поленились изучить детали поддержки Unicode, у вас есть преимущество.

Но не следует паниковать, даже если у вас «миллионы строк» исходных текстов ваших приложений – это вовсе НЕ означает, что придется модифицировать абсолютно все строки

Технический обзор Unicode

Необходимость делать какие-либо изменения для Unicode определяется тем, как вы используете строки и для каких целей. Если вы не занимаетесь глубокой обработкой текстов и придерживаетесь стандартных операций со строками, скорее всего, ваш код просто будет работать. Кроме того, если у вас в коде множество строчных литералов, это не означает, что потребуются его изменения. Самыми частыми случаями, на которые следует обращать внимание, являются файловый I/O и стыковка с внешними non-Delphi библиотеками и/или DLL.

Пособия по Unicode

Для начала, ознакомьтесь с этими прекрасными техническими статьями, видео роликами и инструментами перехода, которые помогут вам с Delphi и переводом приложений на Unicode (на английском языке):

delphi and unicode

Delphi and Unicode Эта брошюра поможет разработчикам, которые используют версии Delphi или RAD Studio, более ранние, чем Delphi 2009. Прочтите, если требуется полное понимание зачем и как начать использовать Unicode в приложениях, разработанных в версиях, не поддерживающих Unicode.

Скачать брошюру бесплатно


White Paper: Delphi Unicode Migration for Mere Mortals

Истории и советы с передовой

Независимо от того, находитесь ли вы на ранних стадиях планирования перевода существующего приложения на работающую на Unicode версию RAD Studio или уже в процессе такого перевода, вам поможет брошюра «Delphi Unicode Migration for Mere Mortals» («Миграция Delphi на Unicode для простых смертных»). Написанная на основе опыта множества ведущих разработчиков из сообщества RAD Studio, эта брошюра познакомит вас с многими ценными приемами и советами, которые значительно облегчат работу.

Скачать брошюру бесплатно


Вебинар: «Миграция устаревших приложений на Delphi с поддержкой Unicode» c Cary Jensen

Cary Jensen работал с разработчиками на Delphi во всем мире – включая известных авторов, ведущих независимых поставщиков и разработчиков самых современных приложений, изучил их подходы к конверсии на Unicode, главные проблемы, с которыми они столкнулись, и какие решения они применили. Изучите лучшие методики миграции на Unicode на этом наполненном информацией вебинаре


Migrating your legacy C++Builder applications to unicode


Рекомендуемый блог

Dr. Bob's страница Unicode и 8 советов по Unicode – Описание формата Unicode и различных строчных типов


DocWiki

Популярная статься про Unicode в онлайн-документации на сайте DocWiki, посвященная "Unicode в RAD Studio"


Unicode Statistics Tool

Примените инструмент Unicode Statistics Tool для вашего Delphi-приложения и узнайте, требуются ли какие изменения для поддержки Unicode.

Этот инструмент поможет вам в сборе полезной статистики для оценки времени и усилий, необходимых для миграции ваших Delphi-приложений на Unicode.

Инструмент просмотрит код и сообщит, где и какие изменения, по-видимому, придется внести. По крайней мере, это даст хорошую оценку количества строк, потребующих переделки.

Замечание: инструмент Unicode Statistics Tool не скажет точно, какие строки кода на самом деле потребуют изменения или замены. Но, по крайней мере, он даст вам число строк, на которые вы должны обратить внимание. Возможно, не потребуется ни одного изменения. Все зависит от того, как вы используете Strings и Chars в коде приложения.

Результат: Delphi - 100% Unicode. Миграция будет простой, Visual Component Library (VCL) и компилятор сами справятся с многими вещами.

Инструмент перечислит все использованные модули (units), включая модули Delphi, и их частоту использования, количество файлов, строк кода, экземпляров String, Read, Write, SizeOf, и т.п..


Рекомендуемый блог

Migrating your project from older versions of Delphi. The Pitfalls
Craig Chapman описывает большое число тем, связанных с миграцией, включая

  • Кроссплатформенную миграцию
  • Windows 64bit
  • Миграцию на Unicode

Переход на архитектуру 64bit

Начиная с Delphi XE2, стало возможно получать на Delphi 64bit приложения из того же кода, что и традиционные Windows 32bit. Потребности бизнеса в 64-bit приложениях представлены в технической статье The Impact of 64-bit Applications to your Company’s Bottom Line

В целом, переход на архитектуру 64-bit (в Windows и также в iOS) реализуется весьма просто! Просто потребуется добавить целевую платформу 64bit в менеджер проекта и выполнить его сборку. Это огромное преимущество перед другими языками, которые требуют применения объявления других типов для преодоления отличий между двумя платформами.

Ресурсы по поддержке 64bit

Создание 64bit приложений на Delphi

Общее знакомство с разработкой 64-bit приложений на Delphi в этом кратком учебнике.


[7m16sec]

Рекомендуемый блог

64-битное программирование на Delphi (Delphi 64bit Code) в описании Стивена Бола. Здесь раскрывается, что в процессе общего, что отличается, как определить опции условной компиляции и использовать ассемблерные вставки.
Delphi 64bit code


Миграция приложений баз данных и многозвенных систем


Переход с Borland Database Engine (BDE) или DBExpress

BDE (Borland Database Engine) является устаревшей и, начиная с версии XE8, BDE была исключена из поставки Delphi, но еще доступна для отдельной загрузки с сайта Code Central. Рекомендуется все приложения, которые использовали BDE, перевести на FireDAC. Если вы не знакомы с компонентами доступа к данным FireDAC, начните с просмотра Документация по FireDAC (разделы First Steps и Getting Started).

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

Ресурсы по доступу к базам данных

FireDAC Skill Sprints - Migrating BDE applications to FireDAC and InterBase - David I


Рекомендуемое средство RAD Studio – утилита reFind

С помощью reFind вы сможете преобразовать код, использующий BDE, на FireDAC, в том числе модификацию данных (updating uses clauses) и описания полей.

DocWiki | Блог


DocWiki – документация: Миграция с dbExpres на FireDAC

Эта статья является учебником, демонстрирующим, как следует переводить простое клиент-серверное приложение, использующее такие компоненты доступа к БД dbExpress, как TSQLConnection, TSQLQuery, TSQLTable, на FireDAC
DocWiki


Delphi Parser

Альтернативой утилите reFind является бесплатная пробная редакция программы The Automatic Migration Scripting Wizard For Converting Legacy Delphi BDE Code to FireDAC.
Delphi Parser - утилита миграции с BDE на FireDAC


FireDAC Skill Sprints – серия из 12 видео-роликов длительностью по 20 минут каждый, которые научат вас использованию расширенных возможностей FireDAC.

Полный список просмотра


Миграция внешних компонент / библиотек других компаний

Какие библиотеки (компоненты) сторонних компаний вы используете в старых версиях Delphi?

Сторонние плагины (библиотеки) необходимо перестроить в текущей версии Delphi. Это намного проще при наличии исходных текстов. Вам необходимо перекомпилировать сторонние компоненты/библиотеки, используя последнюю версию Delphi 10.1, чтобы компоненты и библиотеки могли быть использованы в проектах текущей версии.

Для работы с Delphi последней версии (10.1 version), для всех сторонних компонент/библиотек без исходных кодов, может потребоваться приобрести специальные обновления у их разработчиков.

Вот список сторонних компонент, доступных в RAD Studio, а также вы можете выполнить поиск по всем инструментам и компонентам в Embarcadero Technology Partner Directory.

Последние версии Delphi включают новый Getit Package Manager, который позволяет вам просматривать, скачивать, приобретать и устанавливать в текущую версию Delphi пакеты GetIt (GetIt-packages). Сейчас GetIt содержит набор из 31 бесплатного популярного пакета, таких библиотек, компонент, расширений IDE и SDK, как Open Source “TurboPack” Components, JEDI Visual Component Library, и т.п., сертифицированных для работы в последней версии Delphi!

Migration Delphi Small

10 Tips For Making Your Mobile App Succeed

  • Monetize Your App Using In App Payments And Ads

    Ads are a good way to monetize your apps. Use full screen interstitial ads at the start of your app and at natural stopping points. Integrate leaderboard ads (320x50) into either the header or footer where it makes sense for your interface. Over at AppBrain Stats they have a list of the most popular ad networks that include Admob, Millennial Media, InMobi, Chartboost, Tapjoy and many more. Add in-app payments for consumable, one time purchase, and subscription-based revenue. Offer both a paid version with no ads and a free version of your app. Provide a way to disable ads in the free version via an in-app purchase.

  • Secure Your App’s Data Connections With SSL

    Mobile users are more mobile than ever these days and they jump from secured wireless access point to 4G to unsecured wireless hotspot multiple times per day. If you want to keep your user’s data secure from the prying eyes of just about anyone using a network packet sniffer you will want to implement industry standard encryption like TLS/SSL (Transport Layer Security/Secure Sockets Layer). Using a good tried and true third party library is the way to go.

  • Encourage Users To Rate Your App

    A good rating in the various app stores is more important than ever. Usually only people who want to give your app a low rating end up on app store rating pages and rate your app down. You can encourage users who love your app to rate your app by pointing them in the right direction. The third time a user uses your app is good time to ask them to visit the rating page for your app on the app store of your choice.

  • Create And Deploy Icons For Your App

    Having a great looking icon is a must have to increase your chance of success in the app stores. There are more than 30 different icon sizes that you need to create and deploy for Android and iOS apps. This can be a real chore to create all of the icons needed. There are utilities out there that can help you do that like Mobile Gfx Setup, Paint.net and Adobe Flash CC is a more advanced commercial Windows program that comes with a free trial and you can create and export your icons pretty easily in it as well.

  • Handle App Activate And Deactivate Lifecycle Events

    Once you have the features in your app all finished you aren’t done. One reason why some apps succeed and others do not is because of the polish that goes into them. There are events on both Android and iOS which will tell your app when it becomes active or goes into the background. You should find and handle these events so that your app has a slick user experience. Test and handle all of the various actions in your app like going into sleep mode and coming back out or pressing the back button.

  • Don’t Fly Blind. Add Analytics To Your App

    Implementing analytics using various third party analytics libraries like Google Analytics, Flurry Analytics, GameAnalytics and Parse Analytics to name a few. Analytics providers have their own Android, iOS, and REST SDKs that you can integrate. Track important data points like how long a user uses your app, which screens do they use to most, and where they may get stuck or leave your app. Most important of all is to take action on the information that the analytics give you. Iterate and test. Iterate and test.

  • Setup Push Notifications

    Push are an important mechanism for keep your users engaged with your app. Try to find a balance between sending too many and not sending enough push notification to keep users engaged. Android push notifications are available through Google Cloud Messaging. iOS push notifications are available through the Apple Push Notification Service. Implementing push notifications can be tough but third party providers like Parse, PushWoosh, and Upsight (formerly Playhaven) make it easier for you.

  • Use Threads To Keep Your App Responsive

    Threads allow you to execute long running procedures in a separate process. Use threads anywhere your app would block user input like uploading and downloading files, processing information or loading data. If your app appears frozen users may exit and move on to the next app. If a user is sitting on a screen waiting for something to happen, think about how you can rearchitect your app so that the event they are waiting for happens in the background instead.

  • Check Network Connectivity Before Trying To Connect

    Mobile device connectivity is not a sure thing. If your app needs internet access you need to handle the scenario when connectivity is not available. Using queuing systems for uploading and downloading data. Implement file download resuming where possible. An offline mode where online only features are disabled while connectivity is unavailable may be a good idea.

  • Optimize Your App Name, Description and Distribution

    Choose a functional name, descriptive, or a unique name (or a combination) to help your app succeed. Stay away from trademarked terms. A good description that lays out what your app does, who your competitors are and what technologies you used to build it can help people find your app. Building your app is just the beginning. Distribution is also key to a successful app so make sure if your app runs on both Android and iOS that you deploy it to the biggest app stores like Google Play, Apple App Store, Amazon Appstore, and Samsung Apps. Each app store has their own submission process and guidelines but the extra boost in users you get is worth it. You may just find your niche on the Amazon Appstore or Samsung Apps.