There shouldn't be too much under the hood. I just wanted to use the lightest possible layer, and now I'm using to sqlite-net, so I use that :)
Both, I think, talk directly to the sqlite3 library :) On Wed, Sep 5, 2012 at 3:36 PM, Karl Heinz Brehme Arredondo <[email protected]> wrote: > Hey Nic, do you know if is there some difference between to use: > > 'connection.Query<Transaction>("select * > from Transactions where TransactionDate between.... etc")' > > Instead Mono.Data.Sqlite? > > Karl > > From: Nic Wise <[email protected]> > Date: quarta-feira, 5 de setembro de 2012 11:24 > To: Alex Soto <[email protected]> > Cc: "[email protected]" <[email protected]> > Subject: Re: [MonoTouch] Monotouch.Dialog and Reusable Cells > > Because, in sqlite-net (at least the version _I_ was using, which > might be old), if I did (unchecked code!!): > > var items = from item in connection.Table<Transaction> where > item.TransactionDate between X and Y select item; > > this would get all the items, then do the WHERE. So if I wanted 10 > lines from this year, but I had 1000 from last year, it would load > 1010 items, and return 10. > > Not good. I changed it to use connection.Query<Transaction>("select * > from Transactions where TransactionDate between.... etc") and I got > the 10 back I wanted, in <10ms not 1-2 seconds. > > Same goes for summary's (select sum(Price) from....). > > For small data sets, or where you usually want ALL of them, the linq > option is fine. But for getting a subset of a large set, or to get an > aggregate of a large set, not so much. > > Frank might have changed it since I did that tho, to make the WHERE > affect the sql, not do it after the objects are hydrated. > > > > On Wed, Sep 5, 2012 at 2:33 PM, Alex Soto <[email protected]> wrote: > > Hello Nic, something called my attention, why not to use LINQ?? > > Hope you can elaborate on it > > Alex > > > > El 05/09/2012, a las 04:32 a.m., Nic Wise <[email protected]> escribió: > > Yes and no. > > Out of the box: no. HOWEVER, if you add 1000 items into the root, it's > only making > > 5 + 3 + 3 (5 visible, 3 invisible above and below - basically: Visible > + (50% of visible above) + (50% of visible below)) > > actual cells, the rest is just managed objects, so fairly small. I've > loaded 3500 elements into a list without any problem (make sure you > load it OFF the main thread, and if you use Sqlite-net, dont use linq > - use a SQL statement!) > > The YES part: you can work out where the scroll is, and dynamically > load things when you get near the bottom. This doesn't work out of the > box - you would need to work out which cells are visible, and if it's > close enough to the end, load some more at the bottom. > > The other option is the "LoadMoreElement". This is in the > "OldElements" folder, so it might need some work, but this allows you > to put a cell in, the user taps it, and you can do whatever - load X > more is the usual case. > > https://github.com/migueldeicaza/MonoTouch.Dialog/blob/master/MonoTouch.Dialog/OldElements/LoadMoreElement.cs > > You could do the same tho - put a cell at the bottom, and if it's > loaded (GetCell is called), then do the load in a background thread > and insert the new cells above the "bottom" loader cell. > > Lots of ways :) > > N > > On Tue, Sep 4, 2012 at 8:32 PM, Guido Van Hoecke <[email protected]> wrote: > > Hi Nic, > > Thanks for your answer. > > I should have phrased my question more precisely. Is it possible to not > instantiate all Elements and add them to the RootElement before the view > does appear, but rather create them as needed within a kind of > GetElement method? > > Guido > > On 4 September 2012 13:08, Nic Wise <[email protected]> wrote: > > Absolutely :) > > The default ones already do this > > https://github.com/migueldeicaza/MonoTouch.Dialog/blob/master/MonoTouch.Dialog/Elements.cs#L271 > > (and it's in other places too) > > IF you have made your own element, you are responsible for doing it, > but you can, easily, do it. > > I suggest you split your GetCell into 2 parts: > > https://gist.github.com/3620212 > > If you set colors, dont forget to reset it for each one - otherwise > you end up with red bits where you want green etc :) > > > > > On Tue, Sep 4, 2012 at 11:53 AM, Guido Van Hoecke <[email protected]> wrote: > > Hi, > > My app happily uses the Monotouch.Dialog framework. > > Some of its dialogs list values from a database. Basically my approach > is to create a new DialogViewController and wait for the > ViewWillAppear event. > > The corresponding event handler creates a new RootElement and fully > populates it with an Element for each of the retrieved database rows. > > I realise that this would e.g. build 1k cells for 1k rows, so I > probably should dequeue reusable cells and only build the Elements as > requested by the GetCell method. > > Is this possible within the MT.D framework using RootElement, Section > and Element objects? > > Thanks in advance > > Guido > > -- > It is the nature of extreme self-lovers, as they will > set a house on fire, and it were but to roast their eggs. > -- Francis Bacon > > http://vanhoecke.org ... and go2 places! > _______________________________________________ > MonoTouch mailing list > [email protected] > http://lists.ximian.com/mailman/listinfo/monotouch > > > > > -- > Nic Wise > t. +44 7788 592 806 | @fastchicken | http://www.linkedin.com/in/nicwise > b. http://www.fastchicken.co.nz/ > > mobileAgent (for FreeAgent): get your accounts in your pocket. > http://goo.gl/IuBU > Trip Wallet: Keep track of your budget on the go: http://goo.gl/ePhKa > Earnest: Self-employed? Track your business expenses and income. > http://earnestapp.com > Nearest Bus: find when the next bus is coming to your stop. > http://goo.gl/Vcz1p > London Bike App: Find the nearest Boris Bike, and get riding! > http://goo.gl/Icp2 > > > > > -- > Nic Wise > t. +44 7788 592 806 | @fastchicken | http://www.linkedin.com/in/nicwise > b. http://www.fastchicken.co.nz/ > > mobileAgent (for FreeAgent): get your accounts in your pocket. > http://goo.gl/IuBU > Trip Wallet: Keep track of your budget on the go: http://goo.gl/ePhKa > Earnest: Self-employed? Track your business expenses and income. > http://earnestapp.com > Nearest Bus: find when the next bus is coming to your stop. > http://goo.gl/Vcz1p > London Bike App: Find the nearest Boris Bike, and get riding! > http://goo.gl/Icp2 > _______________________________________________ > MonoTouch mailing list > [email protected] > http://lists.ximian.com/mailman/listinfo/monotouch > > > > > -- > Nic Wise > t. +44 7788 592 806 | @fastchicken | http://www.linkedin.com/in/nicwise > b. http://www.fastchicken.co.nz/ > > mobileAgent (for FreeAgent): get your accounts in your pocket. > http://goo.gl/IuBU > Trip Wallet: Keep track of your budget on the go: http://goo.gl/ePhKa > Earnest: Self-employed? Track your business expenses and income. > http://earnestapp.com > Nearest Bus: find when the next bus is coming to your stop. > http://goo.gl/Vcz1p > London Bike App: Find the nearest Boris Bike, and get riding! > http://goo.gl/Icp2 > _______________________________________________ > MonoTouch mailing list > [email protected] > http://lists.ximian.com/mailman/listinfo/monotouch > -- Nic Wise t. +44 7788 592 806 | @fastchicken | http://www.linkedin.com/in/nicwise b. http://www.fastchicken.co.nz/ mobileAgent (for FreeAgent): get your accounts in your pocket. http://goo.gl/IuBU Trip Wallet: Keep track of your budget on the go: http://goo.gl/ePhKa Earnest: Self-employed? Track your business expenses and income. http://earnestapp.com Nearest Bus: find when the next bus is coming to your stop. http://goo.gl/Vcz1p London Bike App: Find the nearest Boris Bike, and get riding! http://goo.gl/Icp2 _______________________________________________ MonoTouch mailing list [email protected] http://lists.ximian.com/mailman/listinfo/monotouch
