Archives / 2004 / December
  • MS Fugue

    Lurking in the TS news groups I noticed this link to a MS Research project called "The Fugue protocol checker". From what I can gather Fugue is a little like a static checker like FxCop in that it checks your code before runtime against a set of rules that you specify. Fugue however checks the order of your code, the example in the whitepaper is calling connect in socket code before calling send or recieve etc. This tool would be a great addition to the current crop of code tools in helping improve code and reducing defects and can be downloaded here.

  • PHP for .NET gets closer

    I hope you all had a great Christmas break (or just holiday break), as I mentioned previously I'll be back at work tommrow so today I need to get my brain warmed up :)  My ol buddy John Lim has an interesting link to a new PHP compiler for .NET called Phalanger.  With the IronPHP project also aiming to run PHP on the CLI it will be an interesting exercise to see how well this works, where the failures are and what the performance is like. The project seems to be a research project at the moment, it would be great to see the project go open-source so that the lessons they authors have learnt can be shared and we can further improve the CLI as a community. I would love to see this running on Mono, in theory its possible.

  • Xamlon, Flash and unit tests

    Before I catch some zzzz I figured I would post something on Xamlon's announcement that they have preview versions of XAML for Flash and CF. Xamlon staffer Robin Debreuil has the news. Robin has stated that the product will allow for Flash applications to be coded in XAML and any language you choose as long as it compiles to the CLR (a la C#, VB.NET etc etc). Been saying it for a long, long time and it will be interesting to see what this means for Flex and Laszlo. No longer will this mean that a developer will need to use scripting language such as AS when they can use the same language they have always used, day in, day out. Some notation that Xamlon may aim for Mono too, again what this means for everybody else in the space will be interesting to see. Would love to see a server product from Xamlon for XAML/Flash and XAML/Avalon delivery.

    Some discussion on unit testing with XAML
    , I lack the time to look into the depths of the product my self but with a trappable event model it would be a matter of hooking NUnit/MbUnit up (as seen in NUnitForms or NUnitASP). If I ever find the cycles I'll see what I can muster up.

  • G#

    Been meaning to post this for quite some time but never got around to it. Robert had a post on a new language specification by Erine Booth, the language is called G#. Running under the CLR the language provides a means of doing aspects directy from the language. Its an interesting idea and what would be great to see now is an implementation of the language to see where it can go. I have my own ideas on this might be achieved. I don't favour a compiler doing this work has its not something could be done easily with IL, a better approach may be to provide some IL extensions and in turn runtime macros's. Something that could be added to Rotor or Mono with a little work. The purpose of  the extended IL ops would be to allow portions of the other IL ops to be overwritten. The macros would be driven by this, altering the shape of the final opcodes before compile or JIT. Of course to take advantage of these runtime services the G# compiler would need to compile its syntax to the IL opcodes but the compilation would be a fairly stright foward one. These are just some high level ideas, would be interesting to see where it could go.

  • Merry Xmas and Patterns

    Or just a happy holiday :) Some of my fellow work devs are taking a well earned break over the holidays.  Beyond the normal bank holidays I will be cutting the slab working out a few ideas and concepts ready for everbodies return.

    Wayne Allen left a comment in my previous post on patterns I wanted to cover that here. Wayne made a few interesting points.

    • Patterns are moving beyond a hot topic to assumed knowedge
    • Patterns are a way of communicating a design
    • Pattterns are a way of thinking
    All valid points. I see Patterns as all these things but I would not say that all developers think in Pattern terms nor know all the patterns to say to all other devs, I code to these patterns. I would say that a learning curve still exists and by learning devs take a view on a design and on the code the develop. By learning devs can see where a design fits and how they might refactor code to that pattern. In BPUF to Agile, patterns just let you see a way of shaping some code beyond the means normally available. It would be great to see some tool support in patterns, prehaps just some simple templates to provide a basis to code to.

  • Subversion & C#

    Me and one of the folks I work with are as a side project looking at using Subversion. One of the things we are looking to do is create web service hooks into the subversion API using .NET. To create .NET bindings there are a few methods, use the C++ binding or this C# binding  that uses Interop. You could use SWIG to create a C# wrapper but as stated here its not that simple. The C++ binding approach also has draw backs but you may not want to use Interop.

  • UML vs DSL

    Got wind of this debate via Ted Neward in that folks from IBM and folks from Microsoft are in a debate over UML (IBM) and Domain Specific Languages or DSL (Microsoft). I agree with the comments made by both parties that this kind of debate is good for everyone in that by proving and disproving the ideas that Microsoft have over already the established UML (and what it effects i.e. RUP, MDA etc) means that both may take advantage. Microsoft will have some work to do in getting DSL up and running in the software world over UML, the arrivial of Whidby will of course mean that the tools will be around to work in the real world with DSL and Software Factories but the education must start now. You owe it to your selfs to understand what Microsoft is driving at, the only works on the concept right now is Wileys Software Factories book, go out, buy it, read it, read it again and pass to all your work mates to read. 2005 is going to see the start of one epic journey.

  • Patterns

    With the build cycle now mature enough to be build code and generate installers my attention is turning to code and to design. The final week to Christmas will be quite heavy as I POC some designs and ideas around patterns. Sam has a post on a design talk that is being given,  do you feel the subject is hot right now? are you using patterns? What tools are you using to implement patterns, help improve your work with patterns? What resources are you using?

  • NAnt tasks

    The SDC task I created for CCnet has been sent onto Microsoft and to the CCNet folks (who have suggested it be included in the CCNet Contrib project),  hopefully it will show up on one of these.

  • Sun and Dynamic Languages

    I went back through Edd's post on a recent Sun summit with folks from Perl,Parrot, Python/Jython and Groove. It was interesting to see Dan (Parrot) there, as Parrot will be a rvial VM to the JVM although the lessons that Dan and the parrot folks are learning and their take on where VM's such as the JVM or CLR are going wrong I am sure Sun willl be interested to hear. Its good that Sun are learning and taking this on board to improve the JVM. Microsoft are introducing steps to improve the CLR as a target VM for dynanmic languages but summits such as these do help each party learn from each other and help others see that their language of choice is still a good investment. I echo Edd's frustration that in the CLR world things seem to have dried up, I have been saying for a very long time that Microsoft and folks from the worlds of PHP, Perl, Python etc should get together. Edd feels that prehaps its time to stop waiting for Microsoft and just get on with seeing what can be done. While I agree that this is a vital research function I also feel that if the CLR is as multi language as Microsoft says then the adoption of dynamic languages is something they should be taken very seriously.

  • web.config SCM

    Before I propose a solution of my own to the powers that be I wanted to collect folks ideas on this. The system I work on has three enviroments, one for development, one for test and one for live. Managing three different versions of the same file, were some content will be the same and some won't be is a SCM nightmare and cries out for a central managment point. I wanted to hear folks thoughts, experiences and best pratices on this? If you have had this issue before and what you have done to resolve? Any and all comments welcome.

  • Laszlo Road Map

    Seemed to have snuck by me, the Laszlo roap map has been published. CLR integration is mentioned long term beyond v3.0 release. I suspect that the system will have been changed enough to make this spread to mutiple runtimes possible. I continue to say that CLR adoption is vital.

  • Interesting things going on

    I am currently working solid on deployment and installers using InstallSheild/WIX at the moment, more on that as promised later. A few things I have noticed.

  • The value of Agile methods

    Howard has the set of slides he presented at Microsoft Architect meeting, he also includes lots of annotations. Many of the concepts and ideas  here are must-do's not only in the agile world but in BPUF process's such as RUP etc. I do like the break down of the various stages and tools for those stages and the triangle that shows how its layered. Good stuff from Howard and well worth a read.

  • Avalon and MsBuild

    Heads up, my attention is turning to Installers/WIX in the build cycle so expect some details on that in the next few days.

    Rob has some details on MsBuild and Avalon, I am curious on how build systems will effect projects like Avalon and other RIA, its a major merging of my computing interests and if I ever find the time will look more at it.

  • CruiseControl and VSS issues

    Noticed that all calls into VSS from CC had failed in the small hours, heres how I resolved it. Take the SS.exe call from the CC log and run in the command window, if it prompts for a password then double check the password. If  no output is returned (as happend to me) then chances are your logs will be full of exception messages. To resolve double check your locale date/time settings, it seems SS.exe struggles with certain settings. I have emailed the CC group to see if the VSS task can be improved to help better report on what SS.exe is doing and to raise this errors to the event log or email etc.

  • Cool things I like about Team System

    I went through the recent set of Team System slides that show you some of the features of Team System. A lot of what I saw you can do today through various tools. Some things I did notice.

    • Testing features, these I knew about, unit testing, metrics, code coverage. I did'nt see anything new for these other than the reporting.
    • Portal. Very cool to see a central location for actions, testing and reporting.
    • MS project integration. I liked the way that tasks and the actioning of those tasks can be picked up
    • Reporting. Very cool reporting for project mangers, QA, business owners and other interested parties to get reporting on all parts of the project.
    What are people using know for portal and reporting, are folk looking foward to seeing the close integration of these features in TS?

  • Tales from the dark side

    It might be considered the dark side for thinking this but after experince with NAnt, SDC and various other build tools I am left wondering, space for one more. Many may say, yeah its called MSBuild. But my problem (as I have said before) with MSBuild is that you need 2.0 to run it, and running a beta product in a commerical production enviroment is impossible. While Jamies MutantBuild means it can compile 1.1 it still means running 2.0 all the same.

    So this has left me thinking, a build tool thats like SDC only more advanced, can cope with VS solutions better than NAnt and features better logging, debugging and includes a rich plugin model. Sounds cool? Lets see what happens in the next few months.