FbTrace for Firebird 3

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

FbTrace for Firebird 3

Jiří Činčura-2
Hi *,

Firebird 3 changed the format for trace configuration (yeah, I know) and
thus the FbTrace now needs to handle this. I'm currently banging my head
how to nicely present it to you - developers. I came up with these
solutions.

1. Provide 2 methods for starting. Like StartPre3 and Start. I like that
it's discoverable from IntelliSense. And it's just a different method to
call for developer.
2. Have Start method or ctor take enum with target version. Not sure
about the naming though. Putting "3" might become confusing when v4
comes out (hopefully without format change).
3. Have different FbDatabaseTraceConfiguration classes and developer
needs to instantiate correct one. I don't feel this is a clean design
(not that the format change was a good design...).
4. Have a FbTrace and FbTrace3 (for example). Again as in 3. Maybe bit
easier to discover. Don't like the idea of another class that will be
there "forever".
5. Before connecting automagically check server version. Although most
pleasant from outside, I don't like the idea of extra roundtrip to get
this information.

Ideas?

--
Mgr. Jiří Činčura
https://www.tabsoverspaces.com/

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Firebird-net-provider mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: FbTrace for Firebird 3

Gerdus van Zyl
Option 2 - ctor with target version sounds the best. You could name pre3 version enum "Version1" and the new format "Version2" so it's not linked to FB version.
A nice to have would be to have default enum value be "DetectVersion" which would do the roundtrip server check.

On 17 July 2017 at 14:18, Jiří Činčura <[hidden email]> wrote:
Hi *,

Firebird 3 changed the format for trace configuration (yeah, I know) and
thus the FbTrace now needs to handle this. I'm currently banging my head
how to nicely present it to you - developers. I came up with these
solutions.

1. Provide 2 methods for starting. Like StartPre3 and Start. I like that
it's discoverable from IntelliSense. And it's just a different method to
call for developer.
2. Have Start method or ctor take enum with target version. Not sure
about the naming though. Putting "3" might become confusing when v4
comes out (hopefully without format change).
3. Have different FbDatabaseTraceConfiguration classes and developer
needs to instantiate correct one. I don't feel this is a clean design
(not that the format change was a good design...).
4. Have a FbTrace and FbTrace3 (for example). Again as in 3. Maybe bit
easier to discover. Don't like the idea of another class that will be
there "forever".
5. Before connecting automagically check server version. Although most
pleasant from outside, I don't like the idea of extra roundtrip to get
this information.

Ideas?

--
Mgr. Jiří Činčura
https://www.tabsoverspaces.com/

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Firebird-net-provider mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/firebird-net-provider


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Firebird-net-provider mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: FbTrace for Firebird 3

Jiří Činčura-2
> Option 2 - ctor with target version sounds the best. You could name pre3
> version enum "Version1" and the new format "Version2" so it's not linked
> to
> FB version.

That sounds good. Maybe confusing for new developers, but what you can
do, right?

> A nice to have would be to have default enum value be "DetectVersion"
> which
> would do the roundtrip server check.

I'm bit worried about having it as default. Convenient, yes, but hidden
perf problem. Though not sure it matters on FbTrace much.

--
Mgr. Jiří Činčura
https://www.tabsoverspaces.com/

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Firebird-net-provider mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Loading...