Today an example on how to connect to MySQL via
MBS SQL Plugin in Xojo:
dim con as new SQLConnectionMBS
try
// Specify SSL key file
Dim keyFile As FolderItem
#If TargetMacOS Then
// pick from inside budnle
keyFile = App.ExecutableFile.Parent.Parent.Child("Resources").Child("client-test-key.pem")
#Else
// pick next to exe file
keyFile = GetFolderItem("client-test-key.pem")
#EndIf
con.Option("MYSQL_SSL_KEY") = keyFile.NativePath
// Specify SSL certificate file
Dim certFile As FolderItem
#If TargetMacOS Then
// pick from inside budnle
certFile = App.ExecutableFile.Parent.Parent.Child("Resources").Child("client-test.pem")
#Else
// pick next to exe file
certFile = GetFolderItem("client-test.pem")
#EndIf
con.Option("MYSQL_SSL_CERT") = certFile.NativePath
// set where to find the MySQL client library
#If TargetMacOS Then
// pick from inside budnle
con.SetFileOption con.kOptionLibraryMySQL, App.ExecutableFile.Parent.Child("libmysqlclient.18.dylib")
#elseif TargetWin32 then
// pick next to exe file
con.SetFileOption con.kOptionLibraryMySQL, App.ExecutableFile.Parent.Child("libmysql.dll")
#elseif TargetLinux then
// pick next to exe file
con.SetFileOption con.kOptionLibraryMySQL, App.ExecutableFile.Parent.Child("libmysql.so")
#EndIf
dim server as string = "myuser@mydb"
dim DBLogin as string = "xxx"
dim DBPassword as string = "xxx"
con.Connect(server, DBLogin, DBPassword, SQLConnectionMBS.kMySQLClient)
If Not con.Error Then
MsgBox "We are connected!"
Else
MsgBox con.ErrorMessage
End If
catch r as RuntimeException
MsgBox r.message
end try
If the options MYSQL_SSL_KEY, MYSQL_SSL_CERT, MYSQL_SSL_CA, MYSQL_SSL_CAPATH or MYSQL_SSL_CIPHER are set, the plugin calls mysql_ssl_set function to pass those to MySQL client library.
Leaving soon from Phoenix airport.
I enjoyed a great week in Phoenix with the FileMaker DevCon and seeing so many developers:
I look forward to come back in one of the next years. There is still plenty left to see.
The picture above is from Dobbins Lookout in the South Mountain Park, a viewing place you can drive to south of downtown up on the hill (700m high).
And thanks to the Xojo developers who came to my Xojo developer meetings in Tucson and Phoenix.

There is something I’d like to talk about. Fewer people are using Real Studio and as we approach the end of live for 32-bit on all operation systems, the days of Real Studio are counted. Everyone should move this year to Xojo in order to support 64-bit later this year.
For my Xojo and Real Studio plugins, I do consider dropping Real Studio versions. Old plugins stay of course available for a long time, but download rates on current plugins in the Real Studio format are far down (<3%). Would someone miss newer plugins not being available in Real Studio format?
Second I may do a big cleanup and remove old stuff like everything related to QuickTime, FSSpec, GWorld pictures and maybe a few more like the older overlay window class. We could even consider dropping Carbon for Mac. Wait, I think this is still used for console projects, so we may need to keep it around.
On the plugin itself, we may merge some to reduce the number of plugins we deliver and make it easier to manage them. Or otherwise split them more into individual ones, so you can easier sort out the parts you don’t need. Not sure yet.
Otherwise I could really cleanup more aggressive and remove some parts. For example the ImageMagick plugin is not well maintained by me as I favorite the GraphicsMagick one for my own projects. Same for the PHP plugin which is not the best thing in the world as the php code misses usually extensions and the apache environment. Next to drop could be LCMS Plugin for the older 1.x version of the library. Everyone should have moved to 2.x already.
In general unless a lot of people relay on something, the cleanup could make my life easier, the build processes and deployment faster and finally with less plugins to load actually give faster Xojo startup times.
What do you think?

As you may know Xojo has a
TCPSocket and an
UDPSocket class for taking TCP and UDP protocol with other applications and define your own protocol on top. In our plugin we have a
UDPSocketMBS class for more options and even an
UDPSocket class for iOS. If you need high level application protocols like HTTP, FTP, SMTP or IMAP, you can always use our
CURL Plugin.
Now recently someone asked for a raw socket to go more low level. So I implemented
RAWSocketMBS, which allows you to specify in detail the address family, socket type and protocol you like to use. And this includes using raw sockets where you can provide your own headers for IP packets. For a truly raw socket, your app needs root permissions on a computer as you can mess up a lot by sending wrong IP packets, so be careful!
So our new
RawSocketMBS class can be simply used to make your own UDP/TCP socket, one for
ICMP to ping or any of the other 30 protocols. You can decide if you let the OS create the headers for your packets or you create them yourself.
If you like to try, either wait for 17.4 prerelease plugins or email me for an early beta.

Nickenich, Germany (July 18th, 2017) -- Monkeybread Software releases version 17.3 of the MBS plug-in for Xojo.
The
MBS plug-in comprises a collection of several plug-in parts which extend the Xojo development environment with 2,400 classes featuring over 62,000 documented functions. Our plugins support all three platforms Mac OS X, Windows and Linux with all project types desktop, web and console including 64-bit and ARM targets.
Some of the highlights on the 17.3 update:
If you are interested in using SNMP (Simple Network Management Protocol) queries to check status of your network devices, you can now use our
NetSNMPMBS class.
To select fonts on Windows you can now use the
WindowsFontDialogMBS class. The dialog can be preset, provides an apply button with an event to live show the new font in your document and various other events to know its state. With various properties you can customize the appearance of the dialog.
While the next macOS version is in beta, we already implemented new functions to support newer image and video formats there. This plugin also fixes a few issues, so you can now use our plugins on the latest macOS beta.
For our
XL functions to read and write Excel documents, we can now load and save partial documents. If you have huge documents, using a temporary file can reduce the memory requirements. And if you only need data from one sheet inside a big document, loading only that one sheet can speed up processing a lot.
For
CipherMBS class we changed CipherInit, EncryptInit and DecryptInit methods to return a boolean and indicate whether they were successful. You may need to update your code.
Our
WindowsDeviceModeMBS class is updated for handling setup strings better in Xojo 2017r1. This is important as the format changed and you may want to avoid trouble.
We got PNG library with SSE2 for Mac enabled, context menu in
overlayMBS, better handling of emails, better PDFKit annotations, CURL form data inspection and much more.
Finally we updated SQLite to 3.19.3, PostgreSQL to version 9.6.3, OpenSSL to 1.1.0f and 1.0.2l, libPNG to version 1.6.30 and DynaPDF to 4.0.11.31.
See
release notes for a complete list of changes.

New in this prerelease of the 17.3 plugins:
- Added WindowsDeviceModeMBS.ApplyToSetupString method.
- Updated WindowsDeviceModeMBS class methods for SetupString to handle 2017r1 SetupString format.
- Added XLBookMBS methods to load partially and load/save with temp file.
- Added GMImageMBS.PNGLibVersion function.
- Changed Contacts, CoreLocation and MapKit plugin parts to better load on macOS 10.13 and not crash.
- Added check to CGPDFDocumentMBS to raise out of memory exception in low memory conditions to avoid crashes later.
Download:
monkeybreadsoftware.de/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

New in this prerelease of the 17.3 plugins:
- Enabled SSE2 extension for libPNG for macOS as all Macs with Intel CPU should have SSE2.
- Updated libPNG to version 1.6.30.
- Updated DynaPDF library to version 4.0.11.31.
Download:
monkeybreadsoftware.de/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

Xojo Inc. announced a sale in their store for add-ons to Xojo:
Sale in the Xojo Add-On Store - 20% off!
Beat that summer heat, stay inside with Xojo! Between today and July 16th, shop our add-on store and save 20%, sale includes XDC Videos! Simply use discount code SPLASH when you check out in the store!
Shop the Xojo Add-ons store to find third party products that will help you develop faster and do more! The store includes developer tools, user interface add-ons, database extensions, distribution tools and learning materials, like training videos and magazine subscriptions.
Get access to the 2015 or 2016 Xojo Developer Conference session videos (plus slides) for 20% off. And don't forget, you can still save $200 on your XDC 2018 registration when you sign up now!
Shop now!
If you like, you can get MBS licenses there or contact us directly for the same discount on new licenses.
Same coupon code should work for MBS Orders via Share-It.

New in this prerelease of the 17.3 plugins:
Download:
monkeybreadsoftware.de/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.
As you may know our MBS Plugins are used in over 55 countries (FileMaker) and 74 countries (Xojo).
But still there are a lot of countries left, so we’d like to offer a promotion:
Get a
second year of updates for free when purchasing a new license from us in July when the order comes from a country we not yet have customers from. For some bigger countries, new state/province is also fine.
After a purchase, we can definitive say whether you are from a not yet listed country, so please contact us before/after purchase to check.
You may wonder which countries we don’t have clients from?
FileMaker:
In Europe for example Poland, Ukraine, Serbia and Bulgaria.
In North America for example Alaska, New Mexico and Maine in USA, Ontario in Canada.
In South America for example Peru, Ecuador, Panama and Guyana.
In Asia for example Vietnam, Indonesia or Pakistan.
In Africa there is a lot of space between Egypt and South Africa.
Xojo:
In Europe for example Lithuania, Montenegro or the islands Sardinia and Corsica.
In North America for example Alaska and South Dakota.
In South America for example Peru or Nicaragua.
In Asia for example Vietnam, Bangladesch and Papua-Neuguinea.
In Africa anything between Namibia and Egypt.
So if you like to get a license and contact us and we give you a free update if you add an entry to our country list or at least live somewhere we have no customers yet.

The July/August (15.4) issue of
xDev Magazine is now available. Here's a quick preview of what's inside:
Shrink Your Apps by Mattias Sandstrom
Mattias with some techniques to make your built apps smaller.
Windows Fast Listbox Updating by Eugene Dakin
If you want your listboxes updated quickly, you can run into flickering on Windows. Eugene shows how to solve that with some handy routines.
Berlin, Here I Come by Marc Zeedar
Marc went overseas for the first time in years for the MBS Xojo Conference in Germany in May. Here's what happened, with gobs of photos.
Sharing Data for Health, Part 2 by Jc Cruz
Jose concludes the data sharing project he started last issue.
Optimizing Xojo Apps by Christian Schmitz
Xojo is great at handling many technical details for you, but some of that management costs performance. Christian shows how to avoid the slowdowns with these tips.
Plus: Xojo and WWDC, initializing controls, pg_dump, and more!