RELEASE 4.8 – New Products, Features…

Hi Everybody!

We have work very hard latest months to introduce next 4.8 release of Valentina Database. Below is the short list of new products and features that we have implement.

[NEW] Valentina Reports NEW Engine (!!!)

Amazing job was done in this direction. During latest 8 months was (re)written Valentina Report engine. We have totally drop dependency on wxWidget library in reports and have start to use new other much more powerful libs.

Improvements are made on two levels:
1) VReports.dll – engine of Valentina Reports itself, which is used by both VStudio and ADKs
2) VStudio Report Editor

[NEW] iValentina – iPhone and iPAD version (!!!)

We are happy introduce iValentina – GUI tool for iPhone and separate version for iPAD, which is analog of Valentina Studio ADMIN. iValentina allow you manage a Valentina Server in any way, as you are used with VStudio ADMIN. (We will submit iValentina into nearest days.)

[NEW] Sqlite plugin for Valentina Studio (!!!)

We introduce preview of new Sqlite plugin for Valentina Studio Pro. Now you can use Valentina Studio to manage a Sqlite database!  You can use powerful Valentina Studio features as Diagram Editor and SQL Builder.

[NEW] Valentina Studio Pro for Linux (!)

We have port Valentina Studio Pro to Linux. So linux guys now can be happy.

[NEW] Valentina for Cocoa – Interface Builder Plugin (!!)

Interface Builder (IB) plugin is an incredible addition to V4CC.framework, which allows to developer bind GUI of his Windows/Dialogs to a Valentina Database  without any line of code!

[NEW] Valentina for Cocoa – KVC, Fast Enumeration, GC, Controllers, Bindings, … (!!)

We have add into V4CC.framework one more folder “V4CC/Cocoa”, which contains additional classes of different Valentina Controllers, categories that extend existed V4CC classes (e.g. VCursor) to support fundamental Cocoa technologies as KVC, Fast Enumerations, Bindings, Controllers, ability for V4CC to be used in projects with enabled garbage collection option.

[NEW] Valentina Servers – MAC OS X Control Panel (!)

We introduce “Valentina Servers” control pannel for OS X, that allow you control in the visual way state of installed Valentina Server(s). You can see state of each VServer (running/stopped), you can change state. Also you can clean vlogs folder of a VServer by button click.

This control panel is able to recognize and work in the same time with Valentina Office and  Embedded, running in 32 and 64 bit modes.

[IMP] Valentina for REAL Studio – Support of Cocoa Target improved.

Latest REAL Studio builds introduce yet experimental feature – Cocoa builds. We have made some fixed in V4RB to make sure Valentina works in this mode.

[NEW][V4CC] Interface Builder Plugin – Zero Lines of Code!

In version 4.8 we add one more cool feature to Valentina for Cocoa (V4CC) ADK – Interface Builder plugin!

V4CC Interface Builder Plugin allows you to develop a Cocoa application with embedded V4CC.framework without writing any code to link GUI with a Valentina database. Instead you will use bindings and few Valentina Controllers.

You can read Manual of V4CC IB plugin and learn few tutorial lessons.

[NEW] SQLite plugin for Valentina Studio Pro (!!!)

In v4.8 we introduce PREVIEW of a new Valentina Studio Pro plugin – SQLite. We do this on few reasons:

1) Around Valentina DB exists many IDEs where SQLite is integrated on default. So we have quite often case when Lite developer want switch to Valentina DB.

2) We going to open Valentina Reports to users of other databases also. First of them with be users of SQLite. So it will be comfortable for them to be able use Valentina Studio to design REPORTS, and in the same time manage their SQLite dbs. The second our step will be – to add other dbs (Postgre, MS SQL, ODBC, …) and also integrate them into Valentina Studio, at least via our ODBC plugin.

Continue reading [NEW] SQLite plugin for Valentina Studio Pro (!!!)

[V4CC][NEW] DataSource for VCursor and VTable classes.

NSTableView class has setDataSource method that allows assign a NSTableDataSource instance to be a data source for that table view.

In v4.8 we have to add VCursorDataSource and VTableDataSource classes that are able to do this job — easy display a cursor or a table into a given NSTableView. As easy as a single line of code:

mCursorDataSource = [[VCursorDataSource alloc] 
                         initWithCursor:mCursor view:tvListBox];

Continue reading [V4CC][NEW] DataSource for VCursor and VTable classes.

[V4CC][NEW] KVC for VCursor and VTable.

In v4.8 we adding support of Key Value Coding (KVC) to VCursor and VTable classes.

This is implemented as VCursor (KVC) category with a couple of methods:

@interface VCursor (KVC)
                // If wrong key is specified then nil is returned.
- (id)		valueForKey:(NSString *)key;

                // If wrong key is specified then nothing is changed.
- (void)	setValue:(id)value forKey:(NSString*)key;

Continue reading [V4CC][NEW] KVC for VCursor and VTable.

[V4CC][New] Extended Support of Cocoa and Obj-C Features

In v4.8 of Valentina for Cocoa we greatly improving support of Cocoa and Obj-C 2.0 features. For this we have add  V4CC/sources/cocoa folder, which contains all additional code for this. In such way, we keep very separate standard Valentina ADK API sources and this additional features sources.

Continue reading [V4CC][New] Extended Support of Cocoa and Obj-C Features

OS X Loads DYLIB from App folder ignoring install_path … Oops?

Our Valentina Studio project has one Application target and dozen of plugins targets. Plugins are made as bundles.
All these targets build products into the same folder “Debug (Native)” or “Release (Universal)”.
Then Run Scripts do copy plugins into App package and using install_name utility correct install paths for them.

Continue reading OS X Loads DYLIB from App folder ignoring install_path … Oops?

XCODE Breakpoints Not Working

Yesterday I have decide to resolve problem with absolutely not working breakpoints in the XCODE 3.2.3 on OS X 10.6 (may be others also) working with our Valentina Studio project.

In the past we also did have such problems, but not so bad. Breakpoints did work sometimes, in worse case we was able to insert DebugStr(“\p”) into code, and that 100% did stop in the debugger as for app, so fot its plugins and for database engine DYLIBs.

And yesterday I have to see the first time that even DebugStr() do not stops. Wow.

I have spent many hours googling about this problem. And have found few key places.

Continue reading XCODE Breakpoints Not Working

NOW V4CC/iV4CC Works with GarbageCollection-enabled apps also

For this we just have set option GarbageCollection = SUPPORTED for V4CC (32/64)  and iV4CC (Dev/Sim)  targets. This means that now these frameworks will work in both kinds of apps: GC-enabled and GC-not-enabled.

Note, that internally V4CC still uses retain/release. Also keep in mind that we very recommending to developers manage lifetimes of database objects manually. Just image that you have allow to GarbageCollector manage a VCursor instance. When you think record locks will be released?

[TIP] Protection from SQL Injection Attack.

This tip is expired by article two-steps-forward-to-more-secure-applications. The First part of the article discusses  SQL Injection Attack and how to develop code protected from it.

After read of the article you will know that to easy way for protection – is usage of SQL binding. Wow? One more reason to ALWAYS use SQL binding!  Other well known reason are

  • reduces CPU time as for client so for server, because no string concatenations on the client side, and less job for parser on the server side.
  • enables usage of Query Pool, because SQL command is the same byte to byte.