NHibernate Query Analyzer
NHibernate Query Analyzer And DuplicateMappingException
One of the most common issues that people have run into with using NHQA is the DuplicateMappingException. The root problem is that you are adding both the DLL (which contained embedded resources mapping files) and the mapping files themselves. Well, after getting tried of answering that question so often, I decided to fix the issue, and let NHQA knows about the issue, and try to resolve it. The fix is in the repository now, but I would like to have some more input before I would release it.
NHibernate Query Generator - Collection querying
In the repository (Exists / NotExists): 1: [Test] 2: public void CanQueryOverCollections() 3: { 4: ...
NHibernate Query Analyzer for NHibernate 1.2 GA
I am a bit late with this one, but here is a new version for NHibernate 1.2 GA. This also supports Castle Active Record, hopefully in a version neutral way. You can get it here, or admire the UI here: As an aside, I am thinking about adding Criteria Query functionality, since this is something that I use a lot. I am not sure yet what form this would take, at any rate it would involve runtime code generation, so that is complex (and sort of fun/pain). I am opened to ideas. Have fun...
NQA 1.2.3: Opps, My Bad
I package it without including the app.config, which means that the application fails when you start it up. Please try downloading it again.
NHibernate Query Analyzer 1.2.3 for NHibernate 1.2 Beta 3
There is a new version out, with a couple of bug fixes (handling properties that throws exceptions, handling null results from queries). This version is also compiled against NHibernate 1.2 Beta 3, so hurry up and upgrade. You can find it here.
NHibernate Query Generator 1.8
Hi, there is a new version out, this one fixes the issues with the registry entries and can support 1.2 beta2 schema as well. You can get it here (no source yet, can't connect to the Subversion server for some reason).
Fix for "Cannot find custom tool 'NHibernateQueryGenerator' on this system."
If you have downloaded NQHG 1.7 and are trying to use it from Visual studio, you probably got the following error: Cannot find custom tool 'NHibernateQueryGenerator' on this system. The issue is that I didn't update the setup script correctly, and the version that it registers as a COM addin is set to 1.6, while the assembly version is 1.7. This cause the COM load to fail. This script will reset the NHQG version to the correct one, until I manages to find some time for fixing this properly....
NHibernate Generics for NHibernate 1.0.3
If you want to use NHibernate Generics with NHibernate 1.0.3, you can find a freshly compiled version here. Have fun...
NHibernate Query Analayzer 1.2 Beta: Now With Active Record Support
There is a new build of NQA out, this time it works against (and only against, sorry) NHibernate 1.2 Beta 2. This time I also added support for Active Record. All you need to do is add the Active Record assembly to your project, add the app.config, and you are set. The only requirement is that the Active Record configuration section will be named "activerecord". Now you should be able to execute queries against your objects directly. This release is marked as beta, since I have not yet been able...
NHibernate 1.2 Beta 2 - Performance
I was asked to help an application that was suffering un-optimal performance with NHibernate today. The first thing that I did was upgrade the application to NHibernate 1.2 (which took some time, damn non-virtual methods). After I was done, I run the application, and was basically done. Just by upgrading to 1.2, we saw a major performance improvement. Now, to be fair, this is not just because NHibernate 1.2 is so much better (although it is :-) ). It is that it has different defaults (specifically about lazy loading) that make a huge difference...
NHibernate Query Analyzer 1.1.9 - For NHibernate 1.0.3
Well, here is the first of the goodies. I have updated NQA to work against NHibernate 1.0.3, so anyone who upgraded can still use it. Please note that this is avialable for .Net 2.0 only. The binaries are here, but the sources are not in the usual place, instead they are in the NHibernate 1.0.x branch here. Have fun.
NHibernate Query Generator 1.7
Well, it is certainly an interesting release. This release contains very little code of mine, mainly minor adaptations of two wonderful patches that were sent to me. The first by Bas Jansen - which added inheritance detection from the mapping files. The second by Adam Tybor - which added support for projections and group by. Me, I just fixed a stupid bug by yours truly that would refuse to recognize exe...
NHibernate Generics: Deprecated On 1.2
I have updated NHibernate Generics to support NHibernate 1.2 . This update is very minimal and was done to ensure that you can move code to the NHibernate 1.2 without breaking stuff. Please consider NHibernate Generics library use as deprecated with NHibernate 1.2 and above. NHibernate Generics (NG from now on) always had two purposes. The first was to give generics capabilities to NHibernate, so I wouldn't have to do casts all over the place. The second was to automatically handle assoications between objects using anonymous delegates and a sprinkle...
Extending NHibernate Query Generator Code
So it has been out for 24 hours, and I got a couple of bug reports (fixed) and some interesting feedback. Ken is asking how you can extend the generated code and use SQL Functions from it. I had to fix a couple of issues which had to do with the amount of code I generated, right now I reduced the amount of code generated by 40% (with no affect of functionality, of course). After those changes (which also include making everything partial, we can start extending the Where class, this turned out to...
The New Repository: Rhino Tools
Following the advice from the comments, I have managed to consolidate my various OSS SVN repositories into a single one, hosted at source forge. I was quite suprised that it was so much, to tell you the truth. The repository URL is: https://svn.sourceforge.net/svnroot/rhino-tools/trunk/ To checkout, execute:svn co https://svn.sourceforge.net/svnroot/rhino-tools/trunk/ rhino-tools There is no password necceary for reads. I'll be update the various links on the site to point to the correct location soon.
NHibernate Query Generator 1.2
NQG will now automatically create the NamedExpression and ManyToOneNamedExpression files, in a language of your choice, so you basically point it at a directory, let it run, and then just include all the files in that directory. You can get it here. Update: I fixed the warning in the generated files, and gave it a name without spaces, so it wouldn't break on download.
Using NHibernate.Generics with NHibernate 1.2
If you are using NHibernate.Generics with NHibernate 1.2, you may run into casting issues, this is because NHibernate.Generics and NHibernate 1.2 both tries to make the collections generic. You can either stop using NHibernate.Generics (their main purpose, allowing generic collections in NHibernate) is no longer needed. But their secondary purpose, automatic syncronization between related properties is very nice in many scenarios. Until I'll get around to porting them to 1.2, you need to specify generic="false" in the mapping of all collections that uses NHibernate.Generics for them to work.
NHibernate Query Generator Updates
I just added support for <componet> and <dynamic-component> (in the SVN only, for now). I'm considerring adding support for projections and the new expressions in NHibernate 1.2, any suggestions? I though about something like:Projections.Blog.Posts.Count And:Projections.Blog.Date.Max Suggestions?
NHibernate Generics 1.0.12
I got a couple of complaints about regression in NHibernate Generics 1.0.11, about using an abstract class. I hope that this would fix the issue. Code and binaries are here
NHibernate Generics 1.0.11
Small bug fix release to handle types with non-public default constructor. You can get it here
NHibernate Generics 1.0.10
NHibernate Generics 1.0.10 is a small bugfix release that is intended to allow inheriting from EntityList<T>, EntitySet<T>, etc. Check here for the scenario that was fixed. As usual, binaries and code are here
New Version of NHibernate Query Generator
After using it for a couple of days, I made the following improvements: Added Eq() and IdIs() to many-to-one references, so now I can issue this statement: ICollection<Order> orders = Repository<Order>.FindAll( Where.Order.Customer.IdIs(15) ); It seems like we are using this quite a bit in our applications, mainly from query strings. Added support for VB.Net ...
NHibernate Query Generator Source Avialable
You can get it here, patches are welcome :-)
Introducing the NHibernate Query Generator
Okay, it looks like I can track down fairly easily what books I read, when I read Working Effectively with Legacy Code, I wrote Rhino Mocks. Now I am reading Applying Domain-Driven Design and Patterns, and I wrote the NHibernate Query Generator. So, what is this all about? NHibernate has two major API for querying objects. The first one is called the query API, and uses HQL, a language similar to SQL but with OOP aspirations. The second is called the criteria API, and it is far simpler API, but...
NHibernate.Generics 1.0.7
I'm pretty ashamed to admit it, but I managed to foul up IEnumerator<T> for EntityDictionary<T,K>. I was very surprised to realize this, I assure you, I thought that at this point I could be trusted to handle a simple collection delegation, but apperantely this is not the case. There is a new version which fix this issue, add some better error messages, etc. As usual, you can get it here.
NHibernate Generics 1.0.6 Release
This release fixes a very annoying bug with NHibernate Generics and lazy load exception when the entity ref is set. A huge thanks for Daniel for giving me a much better solution than the workaround that I found.You can find source and binaries here
NHibernשte Generics Release 1.0.4, Bug Fix
Looks like I made an error in EntityList, and ended up calling the wrong delegate on RemoteAt().
This is fixed now, and you can get the updated binary and sources here.
Thanks for Matej for finding out the bug and directing me to the exact line in the code where it happened.
NHibernate Query Analyzer 1.1.3 Release
Don't ask about the version number, it just is. I haven't done an all-nighter in quite a while, and while it was fun to do, I'm not thinking very clearly right now. Here is the details about this release: I finally got around to take a good hard look into NHibernate Query Analyzer (AKA: NQA). I haven't update it in a while, and that is a shame. There was an issue with query translations when using parameters that kept me from going forward for a long time. Today I bit the bullet and...
Reflection / Fusion / Open Source Mess
I'm trying to load this type using Type.GetType(string):Nullables.NHibernate.NullableDateTimeType, Nullables.NHibernate, Version=1.0.2.0, Culture=neutral, PublicKeyToken=154fdcb44c4484fc The Nullables.NHiberante is loaded in the assembly, but I keep getting Strong Name Is Required exceptions. After spending way too much time on this, I figured out that I had added a reference to the NHibernate project, and that the Nullables.NHibernate library was looking for the NHibernate library (this is important, since the NHibernate project is not signed and the library is). I solve this, and I get a strange error about a Nullables.NullableInt32 could not be...
Curious bug of the day
If you throw an exception on the finalizer thread, expect bad things to happen. I just run into this issue where both TestDriven.Net and ReSharper Test Runner doesn't handle this issue. I would get a nasty error message from Windows telling me that this is a rouge application and none of my tests will continue to run. The issue was that several of the tests were creating chain of objects, and the lower most object was a Component, which mean that it is disposable and finalizable. In the dispose method it called a dipose...
NHibernate Generics Update
I just signed the assembly and marked it as CLS Complaint. You can get it here
NHibernate Generics Documentation Update
I made a documentation error in documentation how you should specify custom access strategies for NHibernate Generics. I forgot that nested types are accessed with a '+', and not '.' I updated this post and the documentation. The nice thing is that I got an IM question about this very topic ~20 minutes after I made the update, and the second line was "Oh, I see it in your site now."
get-state "Open Source Projects"
Scott Hanselman posted about open source projects. He poses the question: "If you work on a Open Source Project, why do you do it? When will you stop?" I literally has to stop and think about the number of open source projects I'm involved with. Right now it is: Rhino Mocks - Under active development with a community that send patches when they run into problems. Really cool project. Started because I had too many problems with NMock and refactoring. ...
NHibernate Generics Update
I updated NHibernate Generics and added an EntityDictionary<Tkey,TValue> that you can use, along with all the known benefits of the library. Have fun, you can find the download here.
NHibernate & Generics article
Here is a nice article about NHiberate, ASP.Net and Generics, which uses my NHibernate.Generics library. It got a couple of pointer about NHibernate that I didn't know about, such as the transaction levels and the performance implications of specifying the default schema.
Documentation Update
I updated my Projects page with some annoucements, and when I wrote the Rhino Mocks updates I noticed just how many changes I made to it.
It's both cool and scary. The nice thing about it is that I don't have a lot of documentation to write, since I didn't change much outfacing functionality.
I already updated the documentation for NHibernate Generics, so that is done.
The documentation on this site for Brail is deprecated! You should use the Castle website documentation. I'm going to update this one as soon as I can find the time to do so. This is the one project where...
Documentation & Open Source
One of the worst thing about doing open source software is maintaining the documentation. I recently had changed Rhino Mocks, NHibernate Generics and Brail. This mean that I have to update the documentation of all three of them, and I'm less than excited about doing that :-(
Nhibernate Generics Update
I've updated NHibernate Generics (based on Dragos' suggestion) to add support for different accessors. You can now use the following types to select which naming strategy it will use to get your fields. NHibernate.Generics.GenericAccessor+CamelCase, NHibernate.Generics NHibernate.Generics.GenericAccessor+CamelCaseUnderscore, NHibernate.Generics NHibernate.Generics.GenericAccessor+PascalCaseUnderscore, NHibernate.Generics NHibernate.Generics.GenericAccessor+PascalCaseMUnderscore, NHibernate.Generics ...
New version of NHibernate Generics
So, there is a new version of NHibernate Generics out with:
EntityList
Compiled against NHibernate 1.0.2
Better errors
Thanks for Dru & Dragos for all the help.
You can get source and binaries here.
Update: Fixed Dragos name, sorry for butchering it. Update 2: Sorry for butchering it again
NHibernate Generics & EntityList - Update
Okay, the code is in the Subversion repository, but I'm not ready to release it yet. I've a shameful confession to make first: I never used an IList with NHibernate (or ActiveRecord) before, so I'm not really sure whatever my code makes good sense or not. And, in addition to that, I haven't had the time to test it propertly. I would appriciate it if someone who had used it before could take it for a spin and tell me what they think the bad points are.
NHibernate Generics & IList
Here is an interesting question, I got several reqeusts to add an EntityList<T> to NHibernate Generics. One of the more interesting attributes on NHibernate Generics is that I can execute an action when an item is added or removed to the set. The problem that I've now is adapting it to the indexer of IList<T>, how I should behave with regard to it? There are three possibilities: Override a value with the same value - do nothing ...
NHibernate.Generics Update
Okay, it's about time that I update this thing. Now it's properly versions in the NQA repository, and you can reach it via: svn://svn.berlios.de/nqa/NHibernate.Generics/ or via: http://svn.berlios.de/wsvn/nqa/NHibernate.Generics/.
There are some new stuff there as well:
Tests for ManyToMany, which a lot of people requested.
Pay attention to many-to-many, lazy loading, and the edge case I talk about here.
I added an overload for this, and you must use this overload when you are creating the collection that will be the authoritative source (inverse=false, in the mapping). Check the User class in the tests for the detials.
Proper handling of Clear() on EntitySet
Introducing the...
New Release Of NHibernate.Generics
It has been a week since I released any software, and I begin to itch :-) Okay, this one is a bug fix release for NHibernate.Generics, it's meant to fix an error that I run into where NHibernate.Generics was modifying a collection when NHibernate was iterating over it. The download is here.
Using NHibernate Query Analyzer
The reason that I created NQA is that I wanted to understand how NHibernate did its magic. I was rathered surprised when people started using it to work with NHibernate on a regular basis. I added some schema editing features that people asked for them. I then turned to greener pastures, ActiveRecord, namely. I recently got into situations where it can't go. (Really weird schemas, etc). After I stopped feeling betrayed (What do you mean, you only read 99% of my mind?) I sat down to code it. That was where NQA was really...
NHibernate Query Analyzer and Nullables
I just spent several hours investigate possible ways to get NQA to play nicely with Nullables. I can't do it. The issue is explained here, but the gist of it is that the framework doesn't work as advertise, and I don't have a place to put code that would fix the problem. I'm loading an assembly using Assemly.LoadFile() and I need to get a type from this assembly when NHibernate calls Type.GetType(). The TypeResolve event does not fire, so I'm out left to dry. I'm sorry for any user of NQA...
NQA Mentioned on Tired Idea
NHibernate Query Analyzer was mentioned on Tired Idea. It's nice to see that people are noticing this. :-)
Spelling mistakes
This is embarrassing, I just realized that I'd a spelling mistake in NHibernate Query Analyzer on my site for at least four months. I fixed it, but this also means fixing the URL :-( I updated most of the links on my sites, but be sure to fix any links to it if you have any. The links are: http://www.ayende.com/projects/nhibernate-query-analyzer.aspx - Project page. http://www.ayende.com/projects/nhibernate-query-analyzer/flash-demo.aspx - The demo.http://www.ayende.com/projects/nhibernate-query-analyzer/downloads.aspx - Download page
NHibernate Query Analyzer update
I updated NQA today with some bug fixes. Spesifically, it's solved Bug #48 (System.ArgumentException:
'null' is not a valid value for 'stream'.) and preserving stability in
the face of some really funky queries. The downloads are here.
More NQA Improvements
I just closed a very old bug in NQA, old is three months and
it was a very annoying but minor bug regarding focus in the object
graph window, thanks to the netorn project that got me on the right
track again! In addition, I also fixed the choppy drawing when
you use the mouse wheel to scroll the control, now it's simply perfect
:-) It's amazing how very little can sometimes cause you to "see the
light". As usual, get the latest drops at the download page. If we are talking about downloads, NHiberante Query Analyzer 0.9 was downloaded 1234...
Backported fixes to NQA 0.8.4
There were quire a few fixes that I made for 0.9, I now back ported
them to NQA 0.8.4, which should allow users to use the current common
version instead of the just released one. The download page has been updated, just download NHibernate Query Analyzer 0.8.4 again.
NHibernate Query Analzer - Yet Another Release
I'm starting to really get what the XP group is talking about when they talk about always having shipping software, it's so much more fun to develop when you've something working to play with.
Anyway, I solved the problem with Remoting, seems that I didn't take
into account that the object will live for 5 minutes and then die. I
switched to singelton mode, and now everything is fine. This one is
actually a pretty sever bug, since it means that you have to keep using
NQA, otherwise it "age" and "die". I also compiled NQA to .Net
2.0 Beta 2, which...
NHibernate Query Analyzer 0.9
Support for NHiberante 0.9, lots of bug fixes which should make it easier to work with. Download here. Unresolved issues include:
Bad handling of really large queries (greater than 1000 objects in the
result set) - appernatly there is also some remoting timeout issues
thrown in just to make my life happy. Currently not working for .Net 2.0 assemblies - I'll get to it after I'm done with the remoting problem.
Upgrading to NHibernate 0.9
The upgrade process for NQA is relatively simple, but it took quite some time to figure out the right way to do this. First, the mapping & configuration editors are not
hard coded, this mean that I need some way to configure the editors
with the information (what goes where, what is required, etc). Luckily,
NHibernate is using Xsd schema files to store the format for the
mapping & configuration files. .Net provides a useful tool for us
to translate Xsd schema files into code (or datasets) that can be
XmlSerialized. The output of this tool (called, imaginatively
enough xsd.exe) is...
NHibernate Query Analyzer: Lazy Collections Works!
That is a real biggie! Not only I was able to solve the problem, I was able to do that quite cleanly and elegantly. The code that uses it doesn't even know that there is all sort of inter AppDomains communications, and I'm also closing the database connection fast, so if you forget NQA open, you're not wasting any precious connections :-) Now I just need to fix some stuff regarding circular references, and I think that I'm all set to move to Nhiberante 0.9 and release a new version.
NQA Bug Fix Mini-Release
Just to fix all the minor annoying problems. Fixed file locking problem. Fixed document title not changing when saving file. Fixed exception on Remove File if no file is selected. Added direct link to the bug tracking system from the help menu. ...
Bad coding day
I released NQA yesterday after putting quite some effort behind it. As soon as I released it, I seemed to have reached a karma high point and needed some nose rubbing to get me down to earth again. So todya I had: Subversion' failing on me and thinking it commited successfully while the server roll back the transfer. To be honest, I think that this is actually an issue with Berlios.de recovering from the (yet unexplained) and removing my latest commit. (I'm talking about five...
Berlios.de's SVN Repositories are working
I had a trouble for the last day or so in accessing the repository, but it seemed to have been fixed, so NQA's latest code is now on the repository, and I can safely start fixing bugs.
NHibernate Query Analyzer: Playing with numbers
It out for 18 hours, 33 downloads and 4 bug reports (sigh)
Released: NHibernate Query Analyzer 0.8.4
NHibernate Query Analyzer new Logo: At long last (5 months!), I've NHibernate Query Analyzer just the way I want it. This release feature the following goodies: Code that I would own up to :-), seriously, the old codebase was a horror, this one has promise. Plenty of tests (which doesn't cover the GUI, though. This is a pretty important thing for a front...
NHibernate Query Analyzer is 99% done!
I now have to update the bulid scripts (which sucks when it's GUI) and see if everything works when I'm doing a clean build. But it's basically done! At long last.
NHibernate Query Analyzer: Getting closeer & closer
I've just implemented about 95% of the functionality that I need to release NHiberante Query Analyzer, I'm proud to say that the editors for both hbm.xml & cfg.xml are working. In fact, I got it to the point where I can add any document with XSD Schema in five minutes (including UI integration) :-) The only things on remaining on the table right now are: Allow editing of text fields - something I carried from the old version and...
Debugging the problem that never was
I just spend ~3 hours trying to find out why my error reporting system doesn't work. The situation was simple, I wanted to have a tree view that display the structure of an XML document, and show an error icon if there are any schema errors. The idea was that the error would propogate up, so an error in any child would show in the parent, and the grandparent, etc. But I couldn't get that to work. I debugged it endlessly, I made a lot of changes (some of them were even neccesary...
NHibernate Query Analyzer progress
After quite some time ( about two weeks ), I got started again with NQA, this time I'm concentrating on just getting the GUI for the hbm.xml editor done so I can ship the bloody thing already. It has been 6 months from the last release and that is certainly long enough.
Bug tracking for my projects
I've often spoke of how much I want an easy-to-use bug tracking software, but I never did much about it since no free package was able to satisfy everything that I needed. Specifically, free, open source and working with MySQL. A big plus would've been if it would've been written in C# or Boo. Now, bug tracking is certainly not a hard problem, is mostly direct work against database, some reports and a lot of thinking about work flow. Beyond that, it's mostly grunt work of adding features that are neccecary, but quite...
Don't expect to hear much of me in the next few days
The full bunch of Mercedes Lackey books just arrived, and I'm holding myself by the teeth to not start a reading frenzy that will send the SWAT in. On other news, I found some bugs in Rhino Mocks (edge cases, mostly) and added failing test for them, I'll fix them when I finish with Lackey. I also started (finally) to work on NQA's document editing parts. I already has the back end implemented, and I was able to get very fast progress out of it.
First patch for NQA
I just noticed that I got a comment on the main site with code to fix some bugs in NQA, this is a first, and so cool! "Supporting America's Militant Agnostics...we don't know, and you don't either." -- Bumper Sticker "Books have to be read. It is the only way of discovering what they contain. A few savage tribes eat them, but reading is the only method of assimilation revealed to the West." -- e. m. forster "I am...
When code surprises you in a good way
[Note: This is another post where I just added over several hours as I added the finishing touches for Rhino Mocks.] I found out something nice about Rhino Mocks, it allows you to specify ordered sequences of unordered method calls. Meaning that I can specify that calls A, B & C would occur in any order, and only after those three calls, the calls for D, E & F would occur (in that order, or in any order). I'm not very clear, but I'm working on an article that should explain it all,...
Testing by Coverage
I'm going over NQA's test coverage right now. I added tests to some areas that desperately needed tests, and several code paths that weren't tested. The best parts were that I found pieces of dead code that I could just remove. As usual, ReSharper is invaluable in finding those parts. I'm partly dog-fooding Rhino Mocks, and I got some interesting ideas for improvement, and partly to actually get a better code coverage on NQA :-) [I just thought that I've found a bug in NQA, but it was in my tests.] ...
NQA on NUnit
I've moved to NUnit from MbUnit, this has been going on in my head for quite some time, there is a wealth of tool support for NUnit, and very little for MbUnit. Mainly, I was moved by easy CC.Net integration (yes, I know that MbUnit has that as well, but not built in and not as easily), Nester, and other tools which all require NUnit. Beyond that, MbUnit ceased to give added value over NUnit some time ago, so in the end, I had to ask myself more Why? than Why Not?
Interaction Tests
The Shade Tree Developer has a post about TDD Design Starter Kit - State vs. Interaction Testing. I found it interesting because I recently had to use a lot of interaction testing. I want to test the UI back end, and since I can't get GUI testing to work I'm using the MVP*to seperate presentation and logic. This results in code that looks like this (Please ignore the absimal error message, it's temporary**): public bool SaveQueryAs() ...
Upgraded to NHibernate 0.8.3
NHibernate Query Analyzer is now runing on the latest NHibernate builds, 0.8.3, I'd a single problem in porting it, a single method name (of an internal type) was changed, I'd to make one modification and that was it.
Should an O/R mapper be a code generator?
Here is a post by Tobin Harris that tries to answer whatever an O/R Mapper should be a code generator (interesting discussion in the comments of both the second posts). [Update: I just noticed that the second (original) post is from 2003! ] What caught my eyes is this quote: I love NHibernate for it's flexibility. However, because NHIbernate has so many options, getting off the ground can take time. NHibernate is certainly well suited to legacy projects where I'm not in a position to change...
Relative Paths and testing
While testing NQA, I need to connect to a database to make sure that everything works. I do most of my work unconnected, and I use several machines, so I wanted to use a file base test database (access, sqlite, firebird-embedded, etc). That, in itself, was not a problem. But NQA doesn't do anything special for file based databases, which is at it should be, since if the user would want to use a file based database, s/he can just put the full path. But that is not an option for me, for...
Great Open Source Support: NHibernate
I'd a problem with NHibernate, which I couldn't seem to solve on my own. Even my trustiest weapon, debugging NHibernate, didn't promise to give a quick answer. So I thought, NHibernate has great forums (and they revamped them quite a bit, now they are even beautiful), why won't I ask there. You can see what happened :-) After struggling with my code for over an hour, I posted the message to the forum. And within fifteen minutes I discovered a bug in the code I posted ( a simplified version of the real...
Gotta Test
This has been a strange day, I didn't get much work done, and I was continiously interuptted throughout the day. Nevertheless, I managed to read all the new posts and do some work on NQA. I think that TechEd is driving the bloshpere crazy, I never seen so many posts in so short a time. Anyway, I did some refactoring of NQA today. The change should have been simple, RenameClass and ExtractInterface. I'd a class named AppDataManager, which was the BossClass in the old incarnation of NQA, and still had quite a lot...
Developer To Designer: The work begins
So I started to read Developer to Designer , the sequel to Coder to Developer . I'm about half done, and mostly I got the sensation that he's telling me things that I already knows. The first 7 or so chapters of the book cover the common controls and the ways to put text and data on the screen. The information cover there is mostly of interest to people implementing controls themselves, I think and to those who want to learn tricks of using them (for instance, I didn't know...
Rss Feed For NHibernate Query Analyzer
It's all the rage* now in Bug Tracking software to add RSS feeds to see the current bugs, improvement etc. A nice addition is usually the ability to create RSS Queries (all the bugs which are assing to me, all the bugs open over 30 days, etc). Well, I can get quite that good, but here is an RSS feed for NHibernate Query Analyzer development, this will keep you updated (if you're even interested :-) ) with what I'm doing with NQA. The secret is very simple, TiddlyWiki supports Rss Feeds,...
Subversion & Bug Tracking integration
[Via Joel On Software] I found this page about FogBugz & Subversion integration, to the point where both the GUI & WebUI clients gives you the bug tracking URL and the the bug tracking URL gives you the change set. I wanted to do something similar for NHibernate Query Analyzer, but the problem was that I'm not using an external bug tracking, but a modified TiddlyWiki that goes along with the code into the repository. Currently I can't find how to make the bug tracking url relative to the repository's path,...
More TagglyWiki fun
I moved to TagglyWiki as the main documentation format for NHibernate Query Analyzer about a week ago, but only now I begun to take advantage of the tags ability. For instance, I've a bugs tag that I use to mark all of my open bugs, and now I don't need to save them in the same tiddler (which would very soon become huge). When I fix them I only need to tag it as fixed bug and than is it. I'm liking it more then more I'm using it. Truly...
More Multi Threading
Well, I improved on my multi threading code, but I was still not satisfied about the way it work, it created threads unnececarily, so I decided to improve it. Again, I'm using Udi Dahan's ThreadSafeQueue for multi threading. The idea is based on what Udi Dahan had to say on the comments for my post, and is actually very simple, the queue host intellegent commands, and the working thread simply has to pull them out of the queue and execute them, one at a time. Here is the...