11. September 2008 06:51
“Tommy T” (http://www.tommyt.se/) has created an export plug-in for Mini SQL Query, see http://www.tommyt.se/post/Export-Plugin-for-MiniSqlQuery.aspx. I pretty much just formatted it with Resharper, tweaked a bit and uploaded it to CodePlex ;-)
I started a “contrib” folder in the source tree and will if anyone else has similar plugins let me know and I will add them to the build (if you wish!)
One of the things I find really handy about Mini SQL Query is that if I need something I can quickly write or extend a plug-in. That’s how the “paste around” extension came about. I wanted to be able to copy two distinct bits of text and paste the two pieces around another piece of selected text...
16. June 2008 05:57
This is a "Preview release" of Mini SQL Query prior to version 1.0. It includes all updates since the "final beta" release. The main thing left to do is actually add this code to the CodePlex repository. I am looking at using SVN Bridge for that. For now get the source code from the ZIP distributions on CodePlex...
Modified app to use Castle Windsor for dependency injection
The core interfaces used by the application are now created via the Windsor container. If you are not familiar with this library become so! It is extremely useful. The configuration of components has also been externalized in the "Configuration.xml" file – this make enhancements extremely flexible.
I have not as yet abstracted the schema engine which I would like to do so that it is easily swapped out (the current implementation is pretty basic but very generic!)
General refactoring around core interfaces
I have done a fair bit of tweaking and renaming. Some interfaces have had base interfaces abstracted to increase reusability.
Added allot of hopefully useful commenting
That pretty much says it all – the one thing I would like to see is more “example” code but the source is there so I am not worried.
Implemented simple text searching abilities
This is one of the main things I felt the tool was missing. It's just a basic looping find but it suits me. I have not added "replace" functionality yet but you can achieve this by hitting F3 and “pasting” your replace text! I class that as agile/YAGNI ;-)
Added a "search tools" plug-in under the SDK as an example and find implementation
The search provider and “go to line” implementation were created off the plug-in template as an example and included into the core distribution.
Enhanced the connection strings editor to make use of the providers connection string builder
This was added soon after the final beta release and since then tweaked. It makes use of the connection string builder class provided by each database provider which worked out really well just with the property grid. If the provider does not have an implementation a very generic class is used.
More to do?
The only remaining things that I would really like to see are the display of SQL messages – these are different for each provider so it's just a time thing – not hard at all.
The editor itself does not support batching, e.g. the "GO" syntax. It just means a few changes around the execution of the query and collection of results.
A plain text view of the results would be nice. Currently it's standard data grid only – just the "out of the box" data grid rendering of a dataset.
Go get it - http://www.codeplex.com/MiniSqlQuery/Release/ProjectReleases.aspx?ReleaseId=14424
26. May 2008 21:03
Because it was one of the most requested missing features I put together an enhancement to the (very simple) connection string manager form.
It makes use of the db providers "connection string builder" (if implemented) and gives you a very functional property window to work with:
To edit a line put the cursor on it, to add a new one put the cursor on a blank line...
You can apply the pach by replacing the DLL - see the release on codeplex - http://www.codeplex.com/MiniSqlQuery/Release/ProjectReleases.aspx?ReleaseId=13772
The source is there too if you are playing around with it allready...
23. May 2008 09:24
Just getting organised but see:
The "final beta" release is here:
I have some more cleaning up to do but next week should be release v1.0 :-)
I spent some time cleaning the code up etc and making it more of an open source project (than a personal tools one). Note that the format of the connection file has changed...
Note that the source code requires .net 3.5 for building etc but the core components of tool itself targets .net v2. This is mainly so that within the tests etc you can take advantage of the latest language features (and libraries such as *MoQ*). Note also that there is nothing stoping you from creating plugins that target .net v3.5 - the user simply needs the runtime installed.
The SDK and Plug-Ins
See my blog for some posts about the tool - http://www.pksoftware.net/devblog/category/Mini-SQL-Query.aspx.
See http://www.pksoftware.net/devblog/page/Creating-a-Mini-SQL-Plugin.aspx for plugin creation details for now.
If you have suggestions etc please make them. I still need to upload the source code properly... see the ZIP on CodePlex for now (requires VS.NET 2008 express or greater, also works with SharpDevelop v3).
31. March 2008 02:31
Last week I posted some notes of an Acceptance Testing Framework I started developing. My motivation for this is part of a larger project that is an attempt to "integrate" the typically disparate pieces of a project, things such as requirements, tests and issue tracking.
I find many companies use different tools/systems (I am counting a simple document as a "system" here, e.g. a requirements doc) for each part of the process and there is allot of duplication and converting going on. This in my eyes is a big waste of time and effort. I am a huge fan of keeping things DRY (Don't Repeat Yourself), applying this to the full SDLC is difficult but I think possible and definitely beneficial. I see allot of importing, exporting, synchronisation and maintenance of data between these systems, even if just a document is used to produce requirements there is still allot of duplication and effort required by the developers for example to keep things in sync (for both the tests and the implementation).
Another area that bugs me is test data. A useful requirements document (I find) contains examples of what its explaining, so why not have an appendix of acceptance tests (or references to test data files)? These tests can be pushed through a testing engine of some sort and complete that difficult customer-developer loop. If a manager (or even a customer) is after a progress update, use the acceptance test results to give a real indicator instead of sitting in a meeting for 2 hours pouring over a Gantt chart making educated guesses.
Instead of a big word processing document why not access requirements via a system that allows you to see the history (diff) on a particular requirement, or link to its defects, or view pending change requests? Developers can book their development time against items that are linked to requirements - the implementation of 1 requirement can span many layers etc. Developers can make attach notes to requirements and tests.
As far as integration of existing systems is concerned, how about each area - requirement, test, timesheet - is accessed through a basic pluggable component. If the company has a bug tracking system already they can create an adapter that provides access to the data (I am thinking a simple CRUD interface), this would allow communication between existing systems.
And what about help documentation, screenshots of those screens!?
Just some thoughts ;-)