Category name:Products

NDepend 2.0 beta

I just received a notification that NDepend 2.0 beta is released by Patrick Smacchie. NDepend analyzes your dotnet 1.x assemblies and outputs a huge set of code metrics based on the IL. It can also create a nice dependancy chart of your assemblies where you can see the references to external (framework) assemblies.

This 2.0 version now has a nice gui ala WinDirStat with the name VisualNDepend . It visualizes the complexity of your assembly which looks pretty cool. It has a query language so you can easily create queries. For example to focus on certain aspects in your code that you want to improve for simplified maintenance or just refactoring.

Just take a look at the toolset! Is really deserves your attention 😉

StateMachine in c# and xml, v3 (updated)

Updated:
 – New archive to download (v3)
 – XML updated
 – Code rewrite with delegates and helper methods

I added unittest for a switch in version 1. Leslie had some troubles with building his trafficsign. I now added a trafficsign as a unittest and it outputs the following:

<?xml version="1.0"?>
<Machine Id="Switch" InitialState="On" xmlns="Exyll.StateMachine">
  <SubStates>
    <State Id="On" InitialState="Red">
      <SubStates>
        <State Id="Red">
          <Transitions>
            <Transition EventName="TimeTrigger" Target="Green" Guard="TimerIs4" Action="TimerReset" />
            <Transition EventName="TimeTrigger" Target="Red" Action="TimerIncrement" />
          </Transitions>
        </State>
        <State Id="Yellow">
          <Transitions>
            <Transition EventName="TimeTrigger" Target="Red" Guard="TimerIs2" Action="TimerReset" />
            <Transition EventName="TimeTrigger" Target="Yellow" Action="TimerIncrement" />
          </Transitions>
        </State>
        <State Id="Green">
          <Transitions>
            <Transition EventName="TimeTrigger" Target="Yellow" Guard="TimerIs4" Action="TimerReset" />
            <Transition EventName="TimeTrigger" Target="Green" Action="TimerIncrement" />
          </Transitions>
        </State>
      </SubStates>
      <Transitions>
        <Transition EventName="TurnOff" Target="Off" />
      </Transitions>
    </State>
    <State Id="Off">
      <Transitions>
        <Transition EventName="TurnOn" Target="On" />
      </Transitions>
    </State>
  </SubStates>
  <Events>
    <Event>TimeTrigger</Event>
    <Event>TurnOff</Event>
    <Event>TurnOn</Event>
  </Events>
</Machine>

Download link : StateMachine version 3

StateMachine in c# and xml

Yesterday I browsed through the new articles at codeproject.com. Leslie Sanford StateMachine articles had my attention. He has designed and implemented it in c#. A job done pretty well I think. I took a look at his code that reads an xml definition to deserialize its state design. My thoughts were that it wasn’t really readable and logical so I made a class design that serializes to a "self-describing" xml document.

An example:
<?xml version="1.0"?>
<Machine Id="Switch" InitialState="On" xmlns="Exyll.StateMachine">
  <SubStates>
    <State Id="On">
      <Transitions>
        <Transition EventName="TurnOff" Target="Off" />
      </Transitions>
    </State>
    <State Id="Off">
      <Transitions>
        <Transition EventName="TurnOn" Target="On" />
      </Transitions>
    </State>
  </SubStates>
  <Events>
    <Event>TurnOff</Event>
    <Event>TurnOn</Event>
  </Events>
</Machine>

If you are interested in this class design and the xmlattributes I had to add to achieve this xml format then download StateMachine code.

SourceSafe Spy v0.4

SourceSafe Spy version 0.4 is released and can be downloaded from the SourceSafe Spy article. The following list are the changes with version 0.3.

0.4 Public release

*Won’t loop at start anymore when the journal file can’t be opened because for example the drive was not mapped correctly or the network share was not available.
*Opacity is back! Now sets the correct controlstyles to reduce incorrect painting.
*Not referencing Genghis anymore. Only used Genghis for the popup. I’ve made changes to it so needed to recompile Genghis but decided to merge AniForm with SourceSafe Spy.
+AniForm now fades in and out.
+AniForm now ‘steps’ to the left when the popup stack gets higher then the screen.
+Application now ask if you really want to quit when you press the close button. Should not show up when the user session is ending or when the user selects Exit from the menu.
*Popup now uses the systemcolors for a control background.
*Uses new version of Exyll general library. Fixes sound issue.
+Labels are shortened. Uses the SmartLabel control in Exyll library. Code is based on code by Jan Schreuder from bloggingabout.net.
+Added support for multiple datetime formats. It seems that sourcesafe doesn’t log entries in one format. It depends on the regional settigns. Currently supports ‘d-MM-yy H:mm’ (NL) and ‘M-dd-yy h:mmt’ (US).

 

SourceSafe Spy v0.3

I was fedup that there aren’t any notification options within sourcesafe so decided to make my own. There are probably thousands of such tools available but anyway I think it’s quite a nice tool. Although you could ask yourself why I did it espescially with VS2005 in vincinity.

It has four nice features:

  • SMTP notification
  • Non intrusive popup
  • Uses the filewatcher instead of polling
  • Uses delayed event handling for reading the changes from the journal

When the application starts it will show up for some seconds and then hide in the icontray. When I have some time I will make a couple of screenshots.

I’ve made an article for it so I can update it in the future.

SourceSafe Spy

  • Recent Posts
  • Recent Comments
  • Archives
  • Categories
  • Meta