DotNetFirebird.org DotNetFirebird
Using Firebird SQL in .NET.
Tuesday, November 29, 2005

Firebird Roadmap for 2006

Dmitry Yemanov has published the Firebird roadmap. The time plan is as follows:

Time plan

2005:

  • Release 2.0 RC and fork the 2.0 HEAD to create the release branch
  • Port some changes from independent trees to HEAD
  • Fork the Vulcan HEAD to create the 3.0 development branch

2006, 1st quarter:

  • Release Firebird 2.0 Final and Firebird Vulcan Final

2006, 2nd quarter:

  • Release Firebird 3.0 Beta
  • Fork the 3.0 HEAD to create the 3.0+ development branch

2006, 3rd quarter:

  • Release Firebird 3.0 Final

2006, 4th quarter:

  • Release Firebird 3.0+ Beta
Features requested

Let's take a look at the features planned for 3.0 and later releases by their priority (low-priority features omitted):

High-priority features:

  • Asynchronous statement cancellation / timeouts
  • Monitoring via API and/or special tables
  • Embedded users / SQL users management
  • User permissions for metadata
  • Temporary tables / transient datasets
  • More built-in functions
  • Schemas/namespaces
  • Native long numeric data type
  • SMP support in Super Server
  • Compiled statements cache
  • External data sources / database links / cross-database SQL
  • Statement/transaction consistency
  • Faster outer joins
  • Reliable logical backup
  • Point-in-time recovery
Medium-priority features:
  • Detailed SQL tracing/profiling
  • Detailed logging/audit
  • DDL level and global triggers
  • Pluggable authentication modules
  • Security groups
  • Database encryption
  • Optimizer improvements
  • More effective sorting
  • Optimized network protocol
  • More access paths
  • Recursive queries
  • Regular expressions in search conditions
  • TEXT BLOB compatible with [VAR]CHAR
  • Domains everywhere
  • Longer metadata names
  • Bi-directional indices
  • Bulk load/import
  • Referential integrity without indices
  • Full-text search
  • Clustering
Firebird 3.0

So what should get into Firebird 3.0 (planned for Q3/200):

  • Monitoring
  • Asynchronous statement cancellation
  • Embedded users / SQL users management
  • More built-in functions
  • Temporary tables
  • SQL functions
  • Recursive queries
  • Faster outer joins
  • SMP support in SS
  • Compiled statements cache
  • External functions/procedures
Firebird 3.0+

The features that should come in the release following after Firebird 3.0:

  • Detailed logging/audit
  • SQL tracing/profilingUser permissions for metadata
  • Pluggable authentication modules
  • Security groups
  • Long exact numeric implementation
  • Domains everywhere
  • Regular expressions
  • TEXT BLOB compatible with [VAR]CHAR
  • Reliable logical backup
  • Optimizer improvements
  • Statement consistency/atomicy, read committed compliance
  • Optimized network protocol
  • Bi-directional indices
  • Referential integrity without indices
  • Bulk load/import
Want more?  

Take a look at the full Firebird Roadmap 2006

Via Firebird Weekly News: Firebird roadmap available online.


Tuesday, November 22, 2005

Articles on Embedded Firebird and ADO.NET


Tuesday, November 15, 2005

New Documentation Articles


Updated: Firebird ADO.NET Provider 1.7 API Documentation

I've just updated the Firebird ADO.NET Provider 1.7 API documentation. It is now valid for the latest stable release - 1.7a.

Monday, November 14, 2005

New FAQ: FirebirdClient 2.0 for .NET Framework 2.0

I've just added yet another FAQ: Firebird and .NET Framework 2.0 FAQ.

Quite short at the moment, feel free to ask if you have questions.


New FAQ: Working with Firebird ADO.NET Provider Sources

I've just added a new FAQ: Firebird ADO.NET Provider Source Code FAQ.

You will find there how to grab and build the source code of Firebird ADO.NET Provider / FirebirdClient.


How to Use Embedded Firebird in ASP.NET Applications

I receive many e-mails asking how to use embedded Firebird with ASP.NET applications. This looks very appealing, especially for the hosted websites - imagine just copying your database engine together with your application to the server.... But unfortunately, it is not so easy:

Problem #1 - How to find fbembed.dll

The fbembed.dll is not a managed assembly, it's a classical DLL called using PInvoke (DllImport attribute). By default, the Firebird ADO.NET Provider is looking for the fbembed.dll in the default paths, which includes the system directory (e.g. C:\Windows\System32) but not the ASP.NET application bin directory. This is a problem when you don't have the access to the system directory - this is something that your hosting provider rarely allows you to.

The solution is to hack the Firebird ADO.NET Provider sources (FirebirdSql.Data.Embedded/FbClient.cs) to look for the fbembed.dll in your web application's bin directory. However, this way you need to recompile the sources by yourself.

Problem #2 - Overlapped Worker Process Recycling on IIS6

ASP.NET uses a feature that help against poorly written ASP.NET application to block the entire server - it recycles the ASP.NET working process both regularly. By default, IIS6 uses overlapped recycling where there is a new process started before the old is stopped to ensure uninterrupted operation. The problem is that the fbembed.dll exclusively locks the database for the owner process so if you run another process simultaneously the database won't be accessible before the first process stops. You might want to accept this but it really is not an optimal solution.

The solution is to turn off the overlapped recycle (by setting the DisallowOverlappingRotation metabase property to true). However, this might cause outages of your application during recycle.

Conclusion

Don't do that ;-). Really, fbembed.dll was not built to handle such use. You can make it work but it is just a hack.


Sunday, November 13, 2005

Firebird 2.0 Beta 1: New Features

Firebird 2.0 Beta 1 is available - follow the link in the download section. Some of the new features:
  1. incremental hot backup
  2. derived tables (subqueries in FROM clause)
  3. storing databases on raw devices
  4. new EXECUTE BLOCK allows the client to call an "unnamed stored procedure" which is sent as a command
  5. IIF(condition, value1, value2) added as a shortcut to CASE WHEN condition THEN value1 ELSE value2 END
  6. CROSS JOIN is supported ("a CROSS JOIN b" equals "a INNER JOIN b ON 1 = 1")
  7. ROWS introduced to replace FIRST/SKIP
  8. SEQUENCE introduced as a shortcut to GENERATOR
  9. "NEXT VALUE FOR sequence" introduced as a shortcut to "GEN_ID(sequence, 1)"
  10. Default values for stored procedure arguments
  11. Index length limit (252 bytes) is removed
  12. Expression indexes introduced
  13. Optimizer improvements
  14. New string functions: LOWER() and TRIM()
  15. Security improvements (better password encryption, active protection agains brute-force attacks, users can change their own passwords...)
  16. and many others...
See more in the release notes (PDF inside a ZIP).

Saturday, November 05, 2005

FireBirdDotNuke > Home ( DNN 3.1.1 )

"The goals of this project are to create a provider to allow DotNetNuke to run on FireBird and to support it."

FireBirdDotNuke > Home ( DNN 3.1.1 )


Code Frenzy: Run an embedded SQL Script against Firebird

A nice article about embedding the Firebird SQL script as a resource in your WinForms application: Code Frenzy: Run an embedded SQL Script against Firebird.

Wednesday, November 02, 2005

Firebird ADO.NET Provider 1.7.1 RC3

Firebird ADO.NET Provider 1.7.1 RC3 is available:


The Firebird Global Usage Survey 2005 Results

Here is a PDF with the results: The Firebird Global Usage Survey 2005 Results.

Embedded Firebird in .NET FAQ

I've just posted a new FAQ on using Embedded Firebird in .NET. Feel free to send your own questions! The FAQ on standalone Firebird is coming soon. DotNetFirebird - Using Firebird SQL in .NET: Embedded Firebird in .NET FAQ

Previous

Archives