I'd be happy to help out with the CSharpitization of the source as well as pitch in elsewhere. Of course I can't do this on work time at all, unlike Miguel there. :)
Is there an ADO.NET provider as part of this library? If not, I could ping the guy who does the ADO.NET Provider for Sqlite to see if he'd have interest in providing one for this. His provider works with the unmanaged SQLite.
Phil
C#ing the code makes sense. However, one concern is that there are
still 9 issues to be resolved. These really need to be looked at
first to confirm there is not some hidden flaw that will create major
problems later.
That being said, I'd like to start slowly.
This last weekend, I removed all calls to malloc and free. This
increased the speed in many cases. See http://code.google.com/p/csharp-sqlite/wiki/Benchmarks
for details
Yup ... shell.cs was one of my first rewrites into C#, and I still was
trying to determine what the C# way was. Never got back to it, once
it was working. In fact, the whole shell.cs can be rewritten, as long
as we maintain equivalent functionality.
> * Use the "using" construct for automatically disposing objects.Not sure what you mean here...
Good suggestion. We can rip out much of the unneeded detection code.
However, me need to distinguish between Vista, XP, Mono, Silverlight,
and that can be runtime detectable I'm sure
I'd be happy to help out with the CSharpitization of the source as well as pitch in elsewhere. Of course I can't do this on work time at all, unlike Miguel there. :)
I’ve wanted to use SQLite for Subtext for a long time. J
From: Miguel de Icaza
[mailto:miguel....@gmail.com]
Sent: Monday, August 10, 2009 10:41 AM
To: Phil Haack
Cc: Noah; C#-SQLite
Subject: Re: Direction for C# Sqlite.
Hello,
Regarding the test harness. Do you mean the TCL tests? It seems to me that trying to port all the tests to a unit testing framework would make it hard to receive patches to the new tests. If that’s the route you want to go, I can help there. I know Miguel’s not a fan of unit testing. :P Though I’m partial to XUnit.NET rather than MS Test or NUnit, but it’s your choice. J
I tried to run the tests but I really don’t understand the TCL environment. Can anyone provide me a simple walkthrough, ideally on the Wiki?
Phil
You can think of TCL as a powerful scripting language, which allow you
to define verbs and procedures, as well as call external programs
sqlite.org does all their unit testing via the tcl test harness, which
runs some canned scripts for various tests
Noah
Jay Beavers wrote:
> I'm trying to figure it out right now.
>
> On Mon, Aug 10, 2009 at 11:05 PM, Phil Haack <phi...@microsoft.com> wrote:
>
>> Regarding the test harness. Do you mean the TCL tests? It seems to me
>> that trying to port all the tests to a unit testing framework would make it
>> hard to receive patches to the new tests. If that’s the route you want to
>> go, I can help there. I know Miguel’s not a fan of unit testing. :P Though
>> I’m partial to XUnit.NET rather than MS Test or NUnit, but it’s your choice.
>> J
>>
>>
>>
>> I tried to run the tests but I really don’t understand the TCL environment.
>> Can anyone provide me a simple walkthrough, ideally on the Wiki?
>>
>>
>>
>> Phil
>>
>>
>>
>>
>>
>>
>>
>> *From:* csharp...@googlegroups.com [mailto:
>> csharp...@googlegroups.com] *On Behalf Of *Jay Beavers
>> *Sent:* Monday, August 10, 2009 9:37 PM
>> *To:* csharp...@googlegroups.com
>> *Subject:* RE: Direction for C# Sqlite.
>>
>>
>>
>> My opinion (take it for what it's worth):
>>
>>
>>
>> - Keep a "port" branch that is basically just the "C#-ized" C source.
>> This is great to have both as a "how to port C to C#" reference as well as
>> a useful tool for taking updated patches from the SQLite source tree.
>> - Create a "polish" branch that uses "C# best practices" including
>> things like working on StyleCop and FxCop cleanliness. This will diverge
>> significantly from the "port" branch quickly so keeping these two in sync
>> will be tough.
>> - Both "port" and "polish" branch should stay compatible with SQLite-C
>> by keeping the file format and the calling API the same.
>> - Move the System.Data.SQLite functionality (ADO.Net & Linq calling
>> APIs) on top of the "polished" branch.
>>
>> Before we consider the "polish" work, I think there are some fundamentals
>> that need to be ironed out first:
>>
>> - Get all SQLite tests working.
>> - Get the test harness into mstest (or nunit) format to make it easier
>> to verify correct functionality.
>> - Find and fix performance bugs to get the C# code within say 20% of
>> the performance of the C code.
>> - Get the performance harness cleaned up a bit so we have a better
>> "apples to apples" comparison of C# to C performance.
>>
>> We should also consider what it means to test for Silverlight, Moonlight,
>> and Mono compatibility breaks in addition to the desktop Windows CLR before
>> accepting checkins. I'm not certain what best practices we need to have in
>> place here.
>>
>>
>>
>> On Mon, Aug 10, 2009 at 12:11 PM, Phil Haack <phi...@microsoft.com> wrote:
>>
>> I’ve wanted to use SQLite for Subtext for a long time. J
>>
>>
>>
>> *From:* Miguel de Icaza [mailto:miguel....@gmail.com]
>> *Sent:* Monday, August 10, 2009 10:41 AM
>> *To:* Phil Haack
>> *Cc:* Noah; C#-SQLite
>>
>>
>> *Subject:* Re: Direction for C# Sqlite.
Phil
Ah! I see. I thought I could run the tests from the interactive environment. But you simply need to pass the file path to the exe. Why don’t we make that the default so that when you run the exe, it’ll pass in that path?
> * Move the System.Data.SQLite functionality (ADO.Net & Linq calling APIs)
> on top of the "polished" branch.
I am not sure about the practicality of maintaining two ports.
I do think that ADO.Net and Linq wrappers should be in separate DLLs, or easily excluded, since "small" is a feature.
Tim
> * Move the System.Data.SQLite functionality (ADO.Net & Linq calling APIs)
> on top of the "polished" branch.I am not sure about the practicality of maintaining two ports.
I do think that ADO.Net and Linq wrappers should be in separate DLLs, or easily excluded, since "small" is a feature
I agree. As for the ADO.NET API and LINQ API’s, I think that ought to be part of this VS Solution, but as different class lib projects. It’d be nice to have a top level solution file that includes everything and makes it easy to figure out the starting point.
BTW, if we’ve come to any decisions on these things, let’s add issues to the issue tracker and I’d be happy to take some one.
Phil
From:
csharp...@googlegroups.com [mailto:csharp...@googlegroups.com] On
Behalf Of Miguel de Icaza
Sent: Tuesday, August 11, 2009 6:39 AM
To: Tim Anderson (itwriting)
Cc: csharp...@googlegroups.com
Subject: Re: Direction for C# Sqlite.
> * Move the System.Data.SQLite functionality (ADO.Net & Linq calling APIs)