VSTO & .NET & Excel

July 20, 2013

Ribbon Control – Xojo – Jérémie Leroy

Filed under: SQL Server, SQLite, Tools, UI Design, Valentina DB, Xojo — Dennis M Wallentin @ 2:57 pm

This is the first post of a series that will present controls and tools by Jérémie Leroy.

Why I pick these controls is quite simple to explain:

  • All controls and tools are of high quality
  • They are easy to work with, even for a newbie like me
  • They all support the RAD concept
  • The prices are reasonable given what we get for the money

First out is the tool for creating Ribbon UI in an easy way. It’s a visual designer tool that generates the required code to show and use the Ribbon UIs.

Interesting, when creating the Ribbon UI and the code for it we actually run in Debug mode.

The elements of the control are as the following picture shows:


It’s easy to keep these three elements in mind. Next, let us have a look on the control itself. The following screen shot views the Ribbon UI tool:

To start to add Tabs, Sections and Buttons we simple click on the Reorder Ribbon button. When adding new elements we can at the same time manipulate the added item. The following shows tries to show it:


When all the elements have been added to the Ribbon it can look as the following screen shot:


The last step to do is to generate the code to create the Ribbon UI. Click the button To XML/Xojo and it will very fast generate the required code to build the customized Ribbon UI.


The next and final step is simple to cut & paste the generated Xojo code to the Open event of  the RibbonCanvas objectet.

 Dim T As RibbonTab
 Dim S As RibbonSection
 Dim B As RibbonButton

 //Tab 1
 T = New RibbonTab("Home")
 me.Tabs.Append T

 S = New RibbonSection("Help")
 T.Sections.Append S

 B = New RibbonButton("btnDBHelp", "Database", Ico("database-help"), Nil)
 B.IconName = "database-help"
 S.Buttons.Append B
 B = New RibbonButton("btnQHelp", "Query", Ico("query-help"), Nil)
 B.IconName = "query-help"
 S.Buttons.Append B
 B = New RibbonButton("btnRHelp", "Report", Ico("report-help"), Nil)
 B.IconName = "report-help"
 S.Buttons.Append B

 S = New RibbonSection("Record")
 T.Sections.Append S

 B = New RibbonButton("btnAdd", "Add", Ico("button_green_add"), Nil)
 B.IconName = "button_green_add"
 S.Buttons.Append B
 B = New RibbonButton("btnUpdate", "Update", Ico("button_green_down"), Nil)
 B.IconName = "button_green_down"
 S.Buttons.Append B
 B = New RibbonButton("btnDelete", "Delete", Ico("button_red_delete"), Nil)
 B.IconName = "button_red_delete"
 S.Buttons.Append B

 S = New RibbonSection("Maintenance", "Maintenance")
 T.Sections.Append S

 B = New RibbonButton("btnDBCompress", "Compress Database", Ico("compress_database"), Nil)
 B.IconName = "compress_database"
 S.Buttons.Append B
 B = New RibbonButton("btnTableCompress", "Compress Table", Ico("compress_table"), Nil)
 B.IconName = "compress_table"
 S.Buttons.Append B
 B = New RibbonButton("btnDBBackup", "Backup Database", Ico("database_backup"), Nil)
 B.IconName = "database_backup"
 S.Buttons.Append B

 S = New RibbonSection("Query")
 T.Sections.Append S

 B = New RibbonButton("btnQuery", "Query", Ico("query"), Nil)
 B.IconName = "query"
 S.Buttons.Append B
 B = New RibbonButton("btnLookup", "Lookup", Ico("query_lookup"), Nil)
 B.IconName = "query_lookup"
 S.Buttons.Append B
 B = New RibbonButton("btnQueryDB", "Query Database", Ico("query-database"), Nil)
 B.IconName = "query-database"
 S.Buttons.Append B
 B = New RibbonButton("btnExecute", "Execute", Ico("query-execute"), Nil)
 B.IconName = "query-execute"
 S.Buttons.Append B

 S = New RibbonSection("Report")
 T.Sections.Append S

 B = New RibbonButton("btnReport", "Report", Ico("report"), Nil)
 B.IconName = "report"
 S.Buttons.Append B
 B = New RibbonButton("btnOpenReport", "Open Report", Ico("report_open-add"), Nil)
 B.IconName = "report_open-add"
 S.Buttons.Append B
 B = New RibbonButton("btnMailReport", "Mail Report", Ico("report_open-mail"), Nil)
 B.IconName = "report_open-mail"
 S.Buttons.Append B

me.Height = me.BestHeight

As part of the solution there is also a support function to work with the added icons:

Ico(Name As String, Debug As Boolean = False) As Picture

If IconList.HasKey(Name) then
 Return IconList.Value(Name)
 elseif Debug then
 #if DebugBuild
 End If

 Return New Picture(1, 1, 32)
 Return Nil

As we can see, it’s a quite straight forward code. It simple to follow and to maintenance it.

Here are the interesting links to Jérémie’s site and productpage:


Kind regards,


Edit Note: Of course, I should also mention that the professional icons in use are made by Axialis.

June 8, 2013

Xojo: An Old New Kid on The Block

Until 4th June this year the company had the name Real Software Inc and their product, a cross-platform developing kit, had the name Real Studio. However, the company name is now Xojo Inc and the product’s name is Xojo.

Bob Keeney, founder of BKeeney Software, has written a great review about Xojo 2013r1. I refer to that articles then write one myself.

Here I will bring up two important subjects, Xojo in Windows and Missing Controls – Expensive to buy.

Xojo in Windows

When I started to hang around and lurk around I got the impression that the major group of developer are on the Apple platform. Since then it has been confirmed in many ways and with the transformation of Real Studio UI to Xojo UI it’s quite clear that Xojo Inc favor the Apple platform. Have a look on the below screen shot, is it Windows or?

Xojo in Windows

Missing Controls – Expensive to buy

If I buy a development tool like Xojo I expect to have included a bunch of basic controls. Xojo Inc do not follow the main stream of development tools. They have excluded two important controls, a Data Grid and a Chart control.

In fact, they have placed themselves as hostage to 3rd party controls by some vendors. For developers it gets more expensive and by using the 3rd party controls the developers are also in the hand of the 3rd party vendors.

OK, we start first with buying a license of Xojo Desktop for US$ 300 (excluding VAT).

Suppose we need a descent Data Grid control we then must buy a collection of plug-ins. The collection has a price of US$ 199 (excluding VAT) with a subscription of one year.

Next, we realize we need a chart control. It exist a free chart control but it has not been updated for the last years. Beside that, it lack a lot of feature. Our real option is to buy a commercial Chart control. It cost US$ 26o (excluding VAT).

Let us summarize it:

  • We pay US$ 300 for one Xojo Desktop License
  • We pay US$ 560 for two basic controls!
  • All in all, we pay US$ 860 (excluding VAT)

We actually pay more for two basic controls then what one license of Xojo Desktop cost! That sucks.

Badwill can be created in many ways. Badwill created this way can easily be avoided; provide a Data Grid control and a Chart control as part of Xojo packages.

Is it only me who find it unacceptable?

Xojo is an interesting development too and I find the job done by Xojo Inc to be good. However, given the present feedback Xojo need one or two releases before all the teething are gone.

Finally, the subject for this article is related to the fact that Xojo is based on Real Studio so in one way it’s new in another way it’s old.

Kind regards,

May 30, 2013

SQLabs SQLite Tools

Filed under: .NET & Excel, Apps for Office, COM Add-ins, Database, Excel, LiveCode, Real Basic Developing, SQLite — Dennis M Wallentin @ 5:42 pm

We all get some favorite tools, tools that we use on a regular basis. They usually do the work fast and effective. I still use SQLite databases and have done it more then eight years or so. The SQLite database is great for a various tasks, especially as an embedded database. It’s easy to work with in all the environments I move between, VB6 / VB.NET / LiveCode / Real Studio (Xojo) / PowerBasic & EZ GUI / NSB AppStudio.

The key to successfully use SQLite in different solutions is the tools I administrate SQLite databases with. For some years ago I stumbled over a site that caught my interest, http://www.sqlabs.net/.

When looking into it I read about some tools that could help me manage SQLite databases. The first tool was the SQLite Manager which turned out to be a powerful database management tool. The following picture is a screen shot of it:


Next, I needed to port two databases, i e so called Access database and then I tried the SQLite Converter. Success! Since then I always use SQLabs’s Converter. Yes, the below screen shot shows the SQLite Converter in action:


For a year ago or so SQLabs published an excellent offer for their relational database management system (DBMS) named to cubeSQL:

  • A Developer key :  Unlimited connections key but requires you to restart the server every 4 hours or
  • A Freeware key: Max 3 concurrent connections key without any time limitation.

Some months later, after the publish, I needed a server for my SQLite databases. I then remembered this kind offer. Now I nearly cannot live without it.

The following screen shot shows the cubeSQL in action:


In my personal opinion these tools are highly recommended and the price of each SQLite tool should not scare anyone away.

They, SQLabs, also offer some more tools that may be is of interest.

For more information, please visit their site: http://www.sqlabs.net/


Kind regards,

May 14, 2013

Commercial Plugins for LiveCode Community Edition

Filed under: LiveCode — Dennis M Wallentin @ 1:02 am

Recently RunRev decided to also release their cross-platform development tool, LiveCode,  as open source. For semi-developer and hobbyist this option  allow them to develop customized solutions for all present platforms, including Android and iOS. The catch is that all customized solutions must be released under the open source rules, i.e it’s not possible to protect the solutions including any  intellectual property.

Like other platforms it exist a group of vendors for LiveCode who offer commercial third- party plugins, targeting the IDE and also add controls/classes to solutions’ UI. When LiveCode Community Edition was finally launched we had two platforms, one commercial and one under as open source.

When the community edition was released RunRev raised the price to US$ 500 for the commercial version. For semi-developer and hobbyist it mean that in the future they will probably use the community edition. Given this scenario a new question landed on the desk; would it be possible to use the third-party products with the open source version of LiveCode?

Some vendors have already re-worked the terms of use for their tools that explicit targeting the LiveCodes IDE.

Commercial Plugins
Vendor Plugin Available Note
Ah Software PowerTools Yes Dual License
Ah Software PowerBug Yes Dual License
Andre Garcia AAG|Tools Yes Commercial, unprotected.
Bill Vlahos lcTaskList In progress Dual License?
BlueMango System Learning SQL Yoga In progress Dual License?
lcSQL Software lcStackBrowser In progress Dual Licence?
Non-Commercial Plugins
Vendor Plugin Available Note
Andre Garcia DBLib Yes Open Source
debrill IT-service Animationengine Yes Open Source
TapirSoft rIDE Yes Open Source
TapirSoft rGrid Yes Open Source
Quartam Software Quartam PDF Library Yes Open Source
Quartam Software Quartam Color Library Yes Open Source
Quartam Software Quartam Analytical Data Processing Library  Yes Open Source
lcSQL Software lcStackDiff In progress Open Source?
Vendor Plugin Availability
Flexible Learning All Plugins No
Navisoft All Plugins No
RunRevPlanet All Plugins No
Tactile TM Controls No

The second table above shows new plugins that have been made open source and created as open source.

The final table above shows the vendors have no intention to provide dual license or open source.

I hope that the list of commercial plugins will increase however there are some companies that have said no, i.e. they will not make their tools available on the Community Edition. Not everyone see a workable business model for their plugins. I both understand it and respect it. If the intellectual property is unique than there is no way to make it available as open source or as a dual license (both a commercial license and an open source licence).

Kind regards.

April 7, 2013

Time to move on – Exit MVP Program

Filed under: .NET & Excel, .NET Books, Apps for Office, COM Add-ins, Excel, SQL Server, VSTO & Excel, VSTO Books, XLLs — Dennis M Wallentin @ 4:27 pm

Around 2005 – 2006 I peaked with MS Excel, since then I have slightly moved away from it year to year. In 2010 I was honored to become part of Microsoft’s MVP-program.

Of course, it was interesting to get another position and more closed to Microsoft in general, the production team in particularly. However, I never got excited about it as I was moving away from MS Excel. In addition, I didn’t put much efforts to support the online community in various forms.

Given the circumstances I finally took the decision to not be up for the next renewal process. Looking back I can conclude that it has been an amazing time, from the 80’s and until now. I have also achieved more than what I thought was possible. In other words, I have nothing more to proof. So I can walk away and looking ahead for new adventures in the world of softwares.

But before I close the MS Excel book I have one thing I would like to point out and to discuss. Let me first conclude that Microsoft have never really been loyal to the group of developers for MS Excel. It’s regretful as the group have a strong commitment and interest of developing MS Excel further.

In the beginning we got the macro language, XLM, which we started to use more and more. Then VBA and VB6 came and Microsoft asked us to drop XLM in favor of these two Basic languages. 10 years later VB6 was depreciated and since then VBA also risk to be depreciated. Microsoft asked us to replace them with .NET and VSTO. 10 years later .NET and VSTO face the same situation as VB6, i.e to be depreciated. Microsoft now ask us to start develop with Apps for Office. Given the short history, i.e about 20 years, it’s remarkable the number of changes Microsoft have done.

In my opinion, Microsoft’s trust capital is now below zero due to lack of loyalty Microsoft show the group of MS Excel developers. The question is not about Apps for Office rather what will come next?

But it’s no longer of interest for me. I’m moving along and I set focus on other tools and platforms. The blog will change its name and extend its contest with other tools including other platforms. Actually, I will go back to VB6, pick up new tools like PowerBasic and PureBasic which will allow me to write everything in code, including the UI.  Other tools I have picked up is Real Studio and LiveCode together with my two favorites databases; Valentina and Ninja Pro.

I have uninstalled Office 2013 and replaced it with the 2000 version. I may re install it later on in case I find Apps for Office interesting unless it has been already replaced with something new!

It has been a fantastic time in my life to be part of the online Excel community and be part of an exciting time for MS Excel. My English has been improved with >90 %.  I have some good friends around the globe . So without mention any names I would finally say:

Thank You all!

Kind regards,

March 31, 2013


Filed under: .NET & Excel, COM Add-ins, Excel — Dennis M Wallentin @ 2:12 pm

How many know about the database MarieDB? The database is growing faster and faster. It takes market shares from MySQL.  Why just from MySQL?

MarieDB is a drop-in replacement for MySQL. It means that we can access and work with as it was a MySQL database. The differences between them are improvements made in MarieDB.

Among the people that stand behind MarieD is Michael “Monty” Widenius the creator of MySQL. The issues with MySQL license model have pushed more and more corporates and individuals to switch to MarieDB. The future of MySQL can now be questioned, especially when Oracle is involved.

The start page of MarieDB: https://mariadb.org/

The start page for AskMonty Knowledge Base: SkySQL: https://kb.askmonty.org/en/



Kind regards,

March 28, 2013

Combinatorics Using Excel Formulas

Filed under: .NET & Excel, COM Add-ins, Excel, XLLs — Dennis M Wallentin @ 8:45 pm

I have the honor to know Roberto Mensa via Linked In. He is strongly committed to explore, develop, improve and to discuss formulas in Excel. The site is fully dedicated to Excel formulas. If You’re serious about MS Excel then this site is a must.  Of course, he is not alone, another great contributor is Krisztina Szabó aka Kris.

The virtual spot has the name E90E50 fx. I have no ideas for what it stand for…

Anyway, You may start at the following point: E90E50 fx.

The link points to the main page. However, the latest contribution is Combinatorics using Excel formulas.

Make sure You have some hours free to take part of the contribution. Don’t forget to bring coffee to the computer.

Enjoy and have a nice Easter Weekend!

Kind regards,

March 24, 2013

Clean Up!

As part of my maintenance, in order to keep the computer fresh, is to regular run the built-in tool Free up disk space.

The tool is accessible via the following commands:

  • Start Button > Control Panel > System and Security > Administrative Tools > Free up disk space

After running it the following dialog is showed:


Yes, I admit it was some time ago since I last executed the clean up process. However, I cannot understand how Temporary Files can grow to a size of 30 GB?

In addition, does anyone know if it exist a small utility that can automatically clean up Temporary Files?

The general recommendation is to not forget to run the Free up disk space on a regular basis!

Kind regards,

March 18, 2013

Great News From Paradigma Software & Syncfusion Inc

Paradigma Software released version 5.0 of its Valentina Database and tools. The hard databases competition is an advantage for us developers; we get better tools and more for our money.

Paradigma Software continue to offer some great tools for free;

  • An updated and more powerful Valentina Studio which now also supports MySQL DB, PostgreSQL DB. And since prevously version Valentina Dbs and SQLite Dbs
  • An updated and more powerful Valentina Server / 5

Of course, Paradigma Software also offers Premium products such as  Valentina Server , Valentina Studio Pro and a great number of ADKs and Report ADKs  for nearly all existing developing platforms.

For more information please visit:

Valentina DB5

Syncfusion, Inc, have also released new versions of their first class components for the .NET platform, WinRT and Windows Phone (Beta). Check it out at:


Kind regards,

PS: I have no commercial interest in any business. I’m just a pleased customer who believes that high quality tools and components should be expoxed to other developers.

March 4, 2013

Office Developer Tools for Visual Studio 2012

Filed under: .NET & Excel, Database, Excel, SharePoint, Valentina DB, Valentina Office Server, VSTO & Excel, XLLs — Dennis M Wallentin @ 11:29 pm

Great news! Microsoft have announced today that the RTM version of Office Developer Tools for Visual Studio 2012 has been launched.

For more information please read the following entry at Somasegar’s blog:

Now Available: Office Developer Tools for Visual Studio 2012


Kind regards,


« Newer PostsOlder Posts »

Create a free website or blog at WordPress.com.