As anyone who knows me is well-aware, I am a confirmed tool-addict. If there is a utility, framework, add-in, add-on, or plug-in I want to have read about it, tried it, evaluated it, and decided for myself whether its worth keeping in my developer’s tool belt. As a professional software developer, I’m unashamedly and unrepentantly lazy:if there is a tool I can use that saves me time, effort, and energy then I want to be using it.
Visual Studio Professional is certainly the gold-standard of IDEs today as well it should be (at least for .NET development) but let’s face it: Visual Studio 2008 offers what is significantly the same developer experience as Visual Studio .NET (2002) provided. Sure, there are a bunch more features, the graphics now sport more curves and gentler lines , the debugger is certainly much-improved and (is this good?) there is now an integrated designer for Windows Workflow — but fundamentally there has been an evolutionary rather than revolutionary set of changes made to the primary developer toolset offered to .NET developers over time.
Of course, if you’re like me and consider the introduction of the Office 2007 ribbon UI to be an abominable layer of indirection further separating me from the tools I need to apply formatting to my MS Word document quickly (why, oh why does printing the current document take 5+ clicks now?…and how is that progress??), then perhaps the consistency of the overall Visual Studio development experience is actually a positive rather than a hindrance. For example, just try to imagine what the debugger ribbon would look like and how hard that could have been to use productively if the ribbon UI metaphor had found its way into Visual Studio 2008!
So the bottom line is, if you want revolutionary change in your development experience in .NET, you’re going to have to look outside the Redmond-shaped box. Fortunately, to give Microsoft credit where its due, Visual Studio is quite extensible (though hard in earlier versions, its gotten much easier in later versions) and they have done an effective job spawning and shepherding the creation of a pretty comprehensive ecosystem of third-party Visual Studio add-ins including many commercial and many open source.
With the (heartening) wide-spread interest in the Summer of NHibernate screencast series that I have been making available, there has been some interest expressed in understanding more about some of the tools that are being used in my IDE in the series. In response, this post is a catalog of those tools (both OSS and commercial, and in no particular order) upon which I presently depend to get my work done and some reasons why I chose them over other options that may provide similar capabilities.
Since I don’t want to get into fights with people about what’s "open source", what’s "commercial", what’s "non-commercial", etc. I have identified each tool by the only thing that truly matters in all this: "no fee" or "payment required"
Source Code Outliner (no fee)
First up is the Source Code Outliner Powertoy on CodePlex and provided by Microsoft. Like the built-in Visual Studio "Class View" window without most of the overhead (Class View Lite?) and only displaying what’s in your currently-active file in the editor, The Source Code Outliner offers the same kind of experience the "Document Outline" window provides for HTML, the WinForms editor, and other types of documents.
Why Microsoft didn’t just fold the Source Code Outliner’s capability into the "Document Outline" window to make that window work when a source code file was active is beyond me. Instead, the "Document Outline" window just goes blank when you’re in a source code file and you have to resort to this little add-in to get something to look at that’s less-visually busy than Class View.
Light-weight, quick, and painless, makes me never have to look @ Class View (for just navigation) again.
DXCore Visual Studio API Abstraction Framework (no fee)
When the great team at Developer Express created CodeRush and RefactorPro! (see later listings for each) they realized (correctly) that the VS API was a god-awful mess to navigate and develop against. To make their own work on their own products more of a RAD experience for their own staff than the hack-and-slash typically needed to wrestle with the VS API, they developed an abstraction library atop the VS API and named it DXCore.
To foster a larger community of add-ins for Visual Studio, they released this library of utilities to the community at-large and invited people to build DXCore-based add-ins for Visual Studio (of which there are many available on the Internet at-large and several are in this same tool list here).
Even though Microsoft has made great strides in making the process of developing against the VS API much simpler than it used to be, there is still tremendous value in the DXCore library as it makes it trivially simple to build a VS add-in…in fact, when you install it into VS, it actually adds a New Project template for a DXCore project that makes even getting started building your own a dirt-simple process (see figure @ left).
CR_ClassCleaner DXCore Plug-In (no fee, DXCore required)
If you’re like me and you like to both have your class source code well-organized and at the same time are annoyed at having to remember to scroll back up to the top of your class just to define a new field in the ‘right’ place, then the DXCore CR_ClassCleaner plug-in is for you.
ClassCleaner allows you to add code to your class (methods, fields, properties, enums, constants, whatever) and have ClassCleaner properly reorganize your class for you with a single keystroke (the keybinding of which you control when you configure it). This gives you the freedom to just add a new method, etc. anywhere in your class and have ClassCleaner properly relocate it within the class’ source file when you invoke it — no more jumping around in your source file before you add a method or a field to ensure adherence to some (arbitrary!) code-organization standard (preference ).
ClassCleaner provides a completely configurable order of the elements that you want it to relocate in your class source file, offers options to either ‘organize-with-regions’ if you’re like me and prefer #region tags in your files or ‘organize-without-regions’ if you think that code-folding is evil. So that your whole team can use the same ClassCleaner settings, ClassCleaner supports importing and exporting its settings so that all of your team’s classes can be organized the same way (and so that running ClassCleaner on existing code doesn’t cause all kinds of trouble when you DIFF your code against your buddy’s before merging/committing it ).
CodeRush and Refactor! Pro (payment required)
Mentioned earlier and featured pretty prominently in the screencasts are a pair of tools without which I really feel I would be doing software development with one hand tied behind my back: CodeRush and Refactor! Pro by Developer Express.
CodeRush is a hyper-powerful and intensely flexible code templating engine that is perhaps best described as ‘code snippets on steroids’. Offering templates and keybindings to do eveything from stubbing out a new unit test method to wrapping an entire code block in a try-catch-finally construct with the press of just a single key, CodeRush is a completely new way to author code that is a godsend to anyone who is as inaccurate a typist as myself . And if you are somebody who routinely switches back and forth between projects in C# and projects in VB.NET, CodeRush is almost a necessity since the same keystrokes work in BOTH languages allowing you to become familiar with just the keystrokes and let CodeRush abstract away the language differences (people like me who do this often are fond of saying "I don’t code in VB.NET or C# — I code in CodeRush!".
CodeRush also offers a huge range of much less-hyped features including built-in (and completely customizable) code metrics including CC, SLOC, and others as well as a tremendously more-powerful replacement for code navigation from search results (including a ‘semantic search’ that finds matches not based on text (e.g., variable names) but instead based on actual variable instances that has to be seen to be believed).
Even though the hot refactoring tool du-jour mentioned in all the posts these days seems to be JetBrains Resharper, I personally feel that Refactor Pro! is at least as good in most areas and a lot better in many others. Where Resharper insists on showing me a hyper-annoying 1990’s style dialog-box every time it wants me to interact with it, Refactor Pro! has its UI completely integrated into the actual code editor window itself, offering me a visual preview of the effects of the refactoring that I’m about to apply to my code. This provides a completely different style of interacting with the tool than the step-1, step-2, step-3 wizard approach of something like Resharper…and Resharper cannot even begin to touch the CodeRush functionality at all. Even though Resharper has a relatively weak templating engine, its nowhere near as powerful or flexible as what CodeRush provides.
Admittedly some of this is personal preference, but the combination of CodeRush and Refactor Pro! is pretty much unbeatable for the US$250 they are asking for the pair when Resharper wants that for what is basically only a refactoring tool.
Developer Express offers trial downloads (CodeRush, Refactor! Pro) that usually last about 30-45 days which is plenty long enough for you to get hooked . At the time of this writing, it looks like the present eval versioons expire September 1, 2008 (which is about the official end of summer).
GhostDoc Automated XML Comment-Authoring (no fee)
If you always wanted to write XML code comments (for use in post-compile code-documenting authoring) but could never bring yourself to take the time to actually write them (or maintain them!), then GhostDoc is for you.
With a right-click and select of ‘Document this’, GhostDoc will reverse-engineer an entire collection of syntactically-correct XML code comments for you (which you can then refine if you are dissatisfied with the results of the tool).
You will be pleasantly surprised by how often GhostDoc is perfectly able to deduce the right comments to add from nothing but the method name and its signature — for example, its more than capable of determining that a method called GetCustomerById(…) should have the comment "Gets the Customer By Id" added as a comment.
CR_Documentor DXCore Plug-In (no fee, DXCore required)
After using GhostDoc to create your XML code comments and then refining them a bit by hand, you might want to know what they are going to look like when eventually compiled to HELP content. Before CR_Documentor, your only choice would be to actually build your app, fire up SandCastle, compile your help content, open it up, navigate to the topic, and take a look.
But with the CR_Documentor plug-in for DXCore, you can preview your XML code comments immediately right from within the VS IDE without any of those steps required. Recently updated for VS 2008 and moved to Google Code, this plug-in is a must-have for anyone serious about maintaining the XML code comments in their codebase.
DocProject SandCastle Help File Processor (no fee)
If you have ever tried to wrap your head around the 150 or so parameters and 80-90 steps required to use SandCastle to convert your extracted XML code comments into a usable HELP repository, then you should stop all that craziness right now and go download DocProject for SandCastle immediately.
Although a brief glance at the DocProject site might lead you to believe that its own documentation is worse than that of SandCasltle itself , don’t despair — the site and related documentation is more complex than it needs to be because there are just so damned many choices this thing offers!
if all you want to do is compile your XML code comments into the default DocProject website output, a simple compiled HTML help file (.chm) or another of the more common output formats, just download it, install it, and create a DocProject project in your VS solution and hit F6 (that’s BUILD in case you changed your default VS key mappings ) — this thing (despite its apparent complexity) just works — and well. Trust me.
TestDriven.NET Unit Test Runner (payment required)
After all this time still one of the best VS unit test runners on the planet, TestDriven.NET can probably be credited with being one of the primary reasons that Unit Testing has managed the penetration into the .NET developer world that it has.
Its hard to remember back this far with all the VS-integrated unit test runners out there today — even Microsoft’s own integrated runner in VS2008 — but before there was TestDriven.NET, running a unit test meant launching a separate unit test runner outside Visual Studio, loading your compiled assemblies into it, and clicking ‘run tests’. Running tests again meant doing all that again…and god help you try to attach the VS debugger to the test-run process to troubleshoot a failing test!
TestDriven.NET’s ability to reduce (if not eliminate!) most of the friction that used to be involved in running unit tests with any frequency at all has been often mimicked, copied, duplicated, and imitated but the good old stand-by still remains as a glorious example of a neat little tool that does one thing and still does it tremendously well.
MbUnit Unit Test Framework (no fee)
Originally started by a developer who now works for Microsoft on the PEX project, MbUnit (originally ‘Much Better Unit" — no, I’m not kidding about that) is essentially everything you have come to know and love about NUnit with a bunch more stuff to make the harder stuff easier.
While MbUnit 3.0 is in alpha right now, the 2.4.x latest RTM release is dead-stable and highly reliable for use in production projects (I have a firm non-beta policy about anything that I use in my real-world work and this obviously precludes using any alpha software either ). MbUnit 3.0 looks like it will be an awesome toolset and I look forward to its release, but I’m going to stay right where I am with 2.4 until 3.0 is ready for me.
Rhino Mocks Mock Object Framework (no fee)
A product of what I consider to be one of the most prolific .NET developers on earth (when does Oren actually sleep?), Rhino Mocks is one of the most useful mocking frameworks I have come across and I consider it essential to being able to effectively unit test anything but the most trivial of software development projects.
If you’re serious about unit testing, the you need a mocking framework and if your serious about your mocking framework then you need Rhino Mocks.
I hope this post helps provide some insight into both what my tools choices are and why I selected them.
Execelent! Thans Mr. Bohlen!
Perfect post, I’ve just discovered your NHibernate screencast, was 20 min’s into it and noticed the tools that your using… wanted to know more… found this post..:)Thanks… looking forward to going through all your NHibernate screencast.
You didn’t mention nDbUnit or the layer around it with the Microdesk.Utility.UnitTest.dll. I was wondering what the license is around the Microdesk Utility as we’ve been looking into unit testing our data layer and it looks like we could do it fairly easily using that utility.
In your great “NHibernate Screencast” you use “Power Commands” available for free here : http://code.msdn.microsoft.com/PowerCommands
I think you’re right (that I skipped over NDbUnit and the Microdesk Unit Test Utility library that I wrote). Unintentional, to be sure.
NDbUnit is a (roughly-equivalent) port of the DbUnit OSS library for Java that used to be hosted at http://www.ndbunit.org . After over two years of zero activity on the project, Stelligent recently assumed responsibility for it and just now thru up a site for it on google code (http://code.google.com/p/ndbunit/).
There are some real problems with the version of the app that’s available there (pointed out in detail in my post here: http://unhandledexceptions.spaces.live.com/blog/cns!FC56A7CB585DF52F!236.entry)
but I have fixed these in my own version of the NDbUnit library and intend to fold these changes back into the project now that its hosted somewhere more ‘live’ and I have been made a contributor to the project. The binary version that is provided in the code download reflects these bug-fixes already , of course.
Re: the Microdesk.Utility.UnitTest.dll I never really thought about it (licensing) before you asked; I wrote it on my own spare time, but clearly its function (and its name) would imply that my intent was for it to be used in projects my team does for my company (Microdesk) so I don’t really have any opinion on licensing it for others to use. Maybe I will rebrand it and put it out there under the BSD or LGPL so that anyone can do anything they want to with it but I and Microdesk cannot be held liable for it; I’ll make a decision soon and post the choice I make.
Nice point; overlooked that one. Thanks for the reminder –! I have so many tools running around in there that it can be (often) hard to know where VS ends and the tools begin (which, I suppose) is what makes a good add-in in the first place 🙂
I’m trying to figure out how to get the CR_Class cleaner installed. I downloaded and got it to compile to my developer express plugins directory. I don’t see any differences though when I reboot VS2008. I’ve never done anythign with DX Core before, is there something I’m missing? Can you point me to some resources?
After installing DXCore you should have a new VS menu called DexExpress. Under that menu, open the options window (note once you open it that it can be completely resized in case you need more real estate to work inside it — its a pretty busy dialog window).
If ClassCleaner is properly installed/initialized, you will find it under one of the fly-outs in the treeview on the left (sorry, I’m not at a PC with VS installed right now, so I cannot tell you exactly where). Clicking on the ClassCleaner node in the tree will take you to the config ‘page’ for ClassCleaner — this is where you config what class elements (public methods, private enums, whatever) go in what order when its invoked. Note that I personally recommend the quite reasonable defaults that are provided, but tweak these as needed to make yourself happy 🙂
To actually invoke it, you first need to bind its exposed command to some keystroke. Under the IDE node in the tree, select the SHORTCUTS node to expose the (overly-complex, yet really powerful) shortcut alias editor. On the RH side, select one of the ClassCleaner commands (hint: they aren’t obvious that they are are classcleaner commands — select OrganizeWithRegions, OrganizeWithoutRegions, etc. as desired).
Enter whatever combination of keystrokes you want into the textbox @ the top of the RH side of the UI (I use CTRL-SHIFT-ALT-O to avoid conflict with anythign else, but choose what makes sense for you).
The complex part of the process is actually the treeview in the lower-right of the overall UI; this sets the ‘context’ for where the keystroke you are assigning will actually invoke the command you’re binding. This is one of the ‘geniuses’ of DXCore (and by extension, CodeRush + Refactor) — the same keystroke can mean completely different things in different contexts (ex: ‘t’ means ‘insert the TEST method template into the code’ if you’re inside a class when you type ‘t’ but it means ‘insert the TESTTIXUTRE template into the code if you’re in a namespace but NOT in a class when you type ‘t’).
In any event, you need to ensure that within that treeview in the lower right that the only ‘conext’ element that is selected (checked) is ‘class’ (which means “make this keybinding active when I’m in a class” which is what you want here).
I’m typing all this completely from memory so a few specifics may be slighly off but that’s the general gist of the steps. The trick is that with all this keybinding if you set something incorrectly (like the context, for example) ABSOLUTELY NOTHING WILL HAPPEN when you invoke the keystrokes since as far as DXCore is concerned nothing is supposed to happen 🙂 This makes troubleshooting ‘non-responding’ DXCore plugins a bit tough as you never really know if they are really there. To mitigate this, there is a ‘debug’ or ‘message’ window (DexExpress–>Windows–>Message, I think is correct, but its somewhere on that DevExpress menu) that allows you to see in real-time ALL of the activity that DXCore is undertaking — often times perusing this message-pump log can lead you to effective troubleshooting of plugins that are misbehaving too.
Hope this (pretty long) post helps; let me know how you make out.
Oh yeah, that definitely helps. I’ve been writing a domain layer for my work in the last few months and have dozens of classes which are a complete mess which I left with the intention of ‘getting back to it’. This makes it so much less painful.
Thanks again, and keep up the good work!
I have an issue with the class cleaner plugin and maybe you can point me in the right direction….I am using vs2008 and I have downloaded the code and updated the references to 3.0.8 and built the plugin, but I am unable to set the shortcuts because the command names do not show in the dropdown for commands….The wierd thing is that I thought well maybe the plugin is not loaded, but if I go to the Editor section for the class cleaner options I see the options for class cleaner, so I think it is loading it. Would you be willing to send me your dll that works for the plugin?
Done. Check your e-mail and advise if this works properly for you — its the ver from my actual system so I *know* it works for me.
Have you seen “Reflector” move to “Red Gate” …
Yeah, I certainly saw that; I’m on the mailing list for both Lutz and RedGate so I got it twice 🙂
I guess if the alternative was for Lutz to abandon the project entirely and let it whither and die, having RedGate absorb it and keep a ‘free community version’ of the tool is better than nothing.
While I’m sad to see this happen to the tool, the community could do a lot worse than RedGate — at least between ANTS Profiler and their SQL tools, RedGate has some pretty good software chops for themselves.
I have the same problem as Damon. Can you help me?
I can post the download for you as well, but can you please just check to ensure the commands aren’t available for you in the CodeRush options dialog? If you followed the instructions and recompiled it against the CR 3.0.8 dxcore libs, and the ClassCleaner tree node is in the tree on the left, then its loaded.
Note that the command(s) to which you want to bind a key are *not* called ‘ClassCleaner’ but are instead listed in the available commands as ‘OrganizeWithRegions’ and ‘OrganizeWithoutRegions’. Can you confirm for certain that you don’t have them–?
Ok, I get that worked except OrganizeMembers but I don’t care. I have a question about your code snippets used in the NHibernate sessions. Are they coming with some of the tools described above? For example the snippet for creating properties. I have created my own but when I write the member name I have to go and manually change the first letter of the property to be capital.
I am junior developer trying to design a big big project with DB (AGILE). Actually Web2.0 website and for now I am getting well with stored procedures and ADO.NET. What troubles me is that when I change the DB I have to change the DAL and then write code in BLL to get results provided by DAL etc. I watched your sessions about NHibernate(NH) and I am confused about the benefits that comes with NH. It looks like that NH has transactions as ADO.NET and stored proc and so on… What will happen if I use stored procs for C(R)UD with NH and add a column to the Customers table. Do you think that I will make less changes rather than those if I use ADO.NET EntityFramework (.NET Framework 3.5 SP1) for example. In general I need a comparison for NH with DO.NET EntityFramework (.NET Framework 3.5 SP1)
PS: My girlfriend said you have nice voice but you need cough medicine 😛 🙂 🙂
Tell your girlfriend she’s right; that incessant post-nasal-drip that makes me clear my throat is as annoying to me as it is to listeners, I’m sure 🙂
Re: the coding in the screencasts coming from the DevExpress tools, yes that’s what’s going on there. I am making heavy use of both CodeRush and RefactorPro. In re: camelCasing vs. PascalCasing of variables, methods, method args, properties, etc., this behavior is a preference set within the CodeRush options dialog. Look for it under (I think) ‘coding style prefs’ or something like that — I’m not in front of VS right now so am going purley from memory but its in there — trust me. Once you set those prefs, all CodeRush templates will ‘respect’ them for you. In addition to casing, you can set class fieldname prefs like ‘prefix with _’, ‘prefix with m_’, etc.
For the merits of NHibernate vs. Entity Framework, there are a number of things that NHib gives you that EF is lacking. The really BIG ones (IMHO) are…
1) NHib supports a completely persistent-ignorant object model whereas EF forces your Domain Model to be very much aware of its persistence concerns. You can google ‘Persistence Ignorance’ for why this might be of value to you.
2) NHib supports transparent lazy-loading (where calling code need not be aware of the fact that a lazy-load of data is occuring when asking for things like the contents of a parent’s collection) and EF forces calling code to explicitly ask for the hydration of lazy-loaded data into collections, etc.
3) NHib supports modeling inheritance hierarchies in the database in multiple ways (table-per-inheritance-hierarchy, joined-table-per-subclass, etc.) and EF supports only one way to model inheritance hierarchies and even that’s a poor hack (and fails to support any kind of polymorphic querying where I can request items of a superclass types and get results including all subclass types that satisfy the criteria as well).
4) NHib *today* supports a huge variety of databases (MSSQL2000, MSSQL2005, MSSQL2008, MySQL, Oracle, DB2, Postgres, MSAccess) and EF *today* supports exactly two (MSSQL2005 and MSSQL2008) and both of those are MS-only databases
5) NHib has *many* more extension points in it (eventing, interceptors, custom types, etc., etc., etc.) and many more ways to bend it to your situation which means that the likelihood of your coming up against a design limitation of EF is much higher than your coming up against a hard limitation of NHibernate
6) NHib supports both 1st-level and 2nd-level caching whereas EF supports only 1st-level. NHib support 2nd-level caching using multiple optional cache providers, increasing your flexibility there
To be fair, EF has some things going for it too.
1) Better VS integration (though this is debatable if you look into something like Castle ActiveWriter for authoring your NHib classes and mappings within the VS IDE)
2) Its a supported MS technology, so you can call PSS and get support for it (though this value too is debatable in practice as my own experience with the NHib community is that they respond to my needs on issues with NHib much faster and more agressively than MS PSS can do for little old me in most situations since the ones answering Qs in the NHib support forums are the AUTHORS of NHib and the ones answering the PSS phones are largely note-takers who will need to either look up your issue in the MSDN or TechNET KB or pass your issue on to someone else in most cases).
3) EF (and more importantly the EDM concept) is going to form the basis for several other MS technologies’ data-access needs (like ADO.NET Dynamic Data that uses either LinqToSQL or LinqToEntities to mitigate between your relational data and the dynamically-generated web controls that make up ADO.NET Dynamic Data). This value is actually also somewhat nebulous since MS has already posted to CodePlex the ‘ADO.NET Dynamic Data Futures’ that actually contains an ObjectDataSource provider for ADO.NET Dynamic Data and this would take any old object collection (like, say that returned by NHib 🙂 ) and use it as a source for ADO.NET Dynamic Data sites.
The last thing you probably want to consider is this…
In the past 5-6 years Microsoft has released no fewer than four completely different data-access-technologies for .NET, each one declared the ‘way to go’ and getting a lot of adoption. Then, of course, each one was replaced by another that largely invalidated the previous one (.NET datasets, .NET typed datasets, LinqToSQL, and now EF).
Its fun to *believe* that EF is the future for now and forever, but those that fail to learn from history are condemned to repeat it and history says that EF is going to have a shelf-life of about 24 months before its supplanted by whatever is next from Microsoft.
My recommendation is that you choose what meets your current needs rather than what looks like the ‘future of XYZ’ as espoused by Microsoft because they make their money by convincing people like you and me that every 18-24 months we need to rewrite everything we’ve already done in whatever ‘the future XYZ technology’ is supposed to be.
Sorry this is a bit long, but hope it hels some.
WOW, that was good. The only thing you missed here is about the future of NHibernate. Are you planning a separate session/blogpost about this and include some other frameworks there?
[…] you read this post about the entire collection of VS add-ins upon which I routinely depend, then you also know that I […]
I do not see the MyGeneration tool listed here!? Also can you provide the template you use for generating classes and mapping files used in session 8 of NHibernate sessions (I think that was the correct session)?
You’re right that MyGeneration isn’t listed here but that’s b/c this list isn’t about *every* tool that I use but rather about the ones that are Visual-Studio-Integrated (and MyGeneration lacks this aspect).
As for the templates used in the screencast sessions, they are actually available in the code-downloads that accompany the session download links on the http://www.summerofnhibernate.com site. I believe the template is in the root of the DataTransfer project folder in the code ZIP file.
That said, there are some serious caveats that need to go along with the version of the template that’s in the download: in addition to the obvious “use at your own risk” stuff, it was written against NHib 1.2 and definitely BREAKS when used with NHib 2.x due to changes in the way lazy-loading/proxies are handled between versions.
I have been corresponding with a number of viewer who have actually made a number of modifications to the template and sent them back to me for merging into a single version of the template that I plan to re-post for download to anyone that’s interested but I haven’t quite completed that task just yet (tho I am close). Probably by next w/e I can have an updated version posted for download from my site here that everyone can get in order to benefit from the mods and bug-fixes that people have contributed back to me.
[…] past posts here and here, I have written both about the variety of tools (based on the DXCore foundation) that are […]
Great collection of tools! I am already using most of these tools myself, however I didn’t know about ClassCleaner. I’ll have to try that 😉
Also there is a lite version of CodeRush and RefactorPro! now that comes for free. It includes the most important refactorings and some editor enhancements.
Glad you like the list; I have a pending task to update this with slightly more current info (including, as you mention, the CodeRush Xpress free release for VS2008/C#).
If you are interested in ClassCleaner, make note also of this post: http://unhandled-exceptions.com/blog/index.php/2008/11/28/cr_classcleaner-and-cr_documentor-builds-updated-for-dxcore-322/
…where I mention that I have compiled a binary of the tool that works with the DXCore 3.2.2 release (upon which the CodeRush Xpress depends).
[…] copious amounts of CodeRush, RefactorPro, MbUnit 3.0, RhinoMocks, TestDriven.NET, and the rest of my favorite suite of dev tools that I will need in my arsenal to try to push this whole thing from zero to completion in just a […]
[…] http://unhandled-exceptions.com/blog/index.php/2008/07/16/confessions-of-a-developer-tool-hound/ […]
[…] you are a user of the ClassCleaner DXCore plug-in that I recommend people take advantage of then you will recall from past upgrade cycles that a recompile of that binary is usually needed to […]
In your response #21, you mentioned that an upadated version of the Microdesk NHibernate Template will be available soon.
If you already applied all the changes you had in mind, do you have the new version somewhere for downloading?
[…] News on ClassCleaner updated for CodeRush/Refactor! Pro/DxCore/CodeRushXpress 2009.1.5Andreas on Confessions of a Developer Tool HoundUnhandled Exceptions » Blog Archive » Agile Firestarter 2009 Event Screencasts Coming […]
There are some few things that people do not realize when they want to have their bodies tucked in and lifted up to make them look better. First, of course, they have to get someone competent who can undertake this kind of work without damaging them further
Herve leger dress. With this in mind anyone contemplating this procedure should look up ‘Tummy Tuck’ or ‘breast augmentation’ on the internet to see which surgeons undertake this kind of work.It is not always wise either to just trust that the surgeon is capable of doing what he is advertising. Doing some in depth research is always a good idea since some surgeons have a rather bad reputation. Indeed, some are so bad that they have been struck off for no doing the work as they should.But horror stories aside, most people just want to look better and this is why they opt to go under the knife
Herve Leger Sleeveless Dresses. Most people are happy to look less tired or just to be firmed up a bit. Others will certainly have some unrealistic expectations and will be disappointed if they are not put right before they have the operation done.There is some kind of remedial work which comes under the plastic surgery banner too. This can include ears that stick out from the head, noses that have lumps and bumps on them or even blockages up the nose which stops the person from breathing properly
Cap Sleeve evening dresses. This work, although classed as plastic surgery, really improves the lives of those who have the surgery done and can even make them much more confident with their daily lives.One of the latest fads or fashions to hit the plastic surgery market is the Brazilian butt lift. What this consists of is fat being sucked out from other areas, perhaps the stomach or thighs, and then pumped back into the buttock areas to give a lift to this area. Most African Americans have this normal body shape and it is the Caucasians who now want this form of operation. Ladies obviously look much better when they have a good shape in this area and it is this section of humanity who always strives to look good for the opposite sex. If they have the fat sucked out of the waist area then they can certainly start to get a wonderful hour glass shape that is very attractive for sure.Another rather drastic operation is where the whole body is cut right around the middle section
Herve Leger Tank. The surgeon then pulls up the whole lower half of the body and takes out the excess skin. Much like pulling up a pair of tights, this operation not only gives a flatter stomach and a raised butt area, it also lifts the thighs too.Whatever the procedure, it is very important to make sure that the whole operation is explained in great detail to the person before any cuts are made. Details like after effects etc should be well discussed so that the person does not freak out when they see the amount of bruising etc
herve leger shop.Stewart Wrighter has worked closely with a breast augmentation Baltimore office preparing to write an article on the subject of plastic surgery. His wife is scheduled to have a Baltimore tummy tuck procedure after having four children.
Terrific job with those screencast!
I have question, what is the name of the tool you are using for recording those sessions? (and the one which marks mouse clicks on screen)