Andrew Stopford's Weblog

@poobah

News

Articles

Family

Old Blogs

Posted: by

Comments

Dan said:

I'm probably not going to respond directly to the dynamic language stuff in that thread--I don't know enough about .NET to really argue the details on my side, and Miguel pretty obviously doesn't know enough about the performance characteristics and implications of dynamic languages to argue on his.

All I can say is that of the very few attempts I know of, they're either really slow (python) or require machine-code hacks to .NET (S# which, BTW, nobody public's actually played with, though I have seen Dave give demos).
# May 14, 2003 1:29 AM

Frans Bouma said:

Obviously he hasn't looked deep enough in HotSpot :)
# May 16, 2003 12:11 AM

TrackBack said:

Scott Hanselman's Weblog : Scott Hanselman's Weblog
# May 16, 2003 7:34 AM

Andrew Stopford said:

and he does....

http://www.bradsoft.com/topstyle/blog/index.asp

:D
# May 19, 2003 4:15 AM

Andrew Stopford said:

After going through Chris Brummes post on value types my post is incorrect. System.Enum inherits from System.ValueType but is in fact not a value type but a base class from which all Enum types are derived. I am still unclear as to how Enum types are typed as value or referance types but Chris's post does include the following.

>Now is probably a good time to address one of the glaring differences between the ECMA spec and our implementation. According to the ECMA spec, it should be possible to specify either a boxed or an unboxed value type. This is indicated by using either ELEMENT_TYPE_VALUETYPE <token> or ELEMENT_TYPE_CLASS <token>. By making this distinction, you could have method arguments or array elements or fields that are of type “boxed myStruct”. The CLR actually implemented a little of this, and then cut the feature because of schedule risk. Presumably we’ll implement it properly some day, to achieve ECMA conformance. Until then, we will refuse to load applications that attempt to specify well-typed boxed value types.

So as I read it while the ECMA spec says that a Enum can be referance or value type the CLI only allows Enum types to be value types. Thus it seems the Enum structure its self cannot be boxed but all of its containing values (GetValue to return an array for example) can be boxed. I am off the mark with this train of thought anyone?
# May 19, 2003 4:28 AM

Wally said:

I went to high school with Nick Bradbury.
# May 19, 2003 6:55 AM

Royo said:

Use the C# books then. Any decent VB.NET programmer should know how to at least *read* C#, since its here to stay, and, currently, is the most used language for examples on the web and in books.
Besides, its all about the framework classes anyway, so reading the coding and writing it in VB.NET should pose no real problem.
I think most C# books could have a parallel book about .NET. I don't see how publishers havn't see the money in this yet.. Write the book in either language - then translate it to the other. Its the simplest thing in the world and the ROI on this in huge.
Programmers such as yourself would love to get those books mentioned above in a VB.NET edition. Basically I think publishers are negelcting a key audience here. Too bad.
# May 28, 2003 11:08 PM

Sam Gentile said:

> As VB.NET handles things in a different way to C# (as we know) it means that while these books are useful it also means more work translating the code.

How so? I can't understand your post at all. C# and VB.NET are only vaneers over the CLR and BCL, with syntax. I have been trying to make this point for 2 years. *Nothing* in .NET is the language - the CLR does it or its a call into one of the library functions of the BCL. This is a fundamentally different world than Win32/COM/VB6 where it was completly different, I don't know of *anything* in the ASP.NET namespaces that doesn't work exactly the same with C# or VB.NET. 99% of the two languages overlap and the 1% of differences betwen VB.NET and C# does not include anything in ASP.NET. If the call to System.Foo.Bar is the same, just take out the semi-colon and add 60% more verbosity for VB.NET. I don't get at all why you can't use the C# book.
# May 29, 2003 5:46 AM

Andrew Stopford said:

Thanks for the comments Royo and Sam :)

Royo - my point exactly, I agree VB.NET programmers should be able to read C#. You hit the nail on the head though, C# books should also have VB.NET editions. Heck if the languages are not so different then surely it would be easy to do and it means another audience that the book can sell to.

Sam - I am with you on that one. No matter what the language, usage of the BCL stays the same. So using either C# or VB.NET does not change how you use the ASP.NET namespaces. Agreed. My point is that when you have your boss, his boss and his boss breathing down your kneck you want a book with the answers (and indeed code) in front of you and not have to translate it. Easy to do, sure enough, but it means I am spending time translating, and thats time I don't have.
# May 29, 2003 10:42 PM

Dare Obasanjo said:

There is a "Mark All As Read" feature. It's the "Catch Up On All" menu option.
# June 8, 2003 7:03 AM

Andrew Stopford said:

Ah cheers Dare :D
# June 8, 2003 7:27 AM

Dare Obasanjo said:

No problem. By the way, my last name is spelled "Obasanjo" with two As.
# June 8, 2003 7:49 AM

Andrew Stopford said:

Opps sorry about that Dan I'll correct it ASAP.
# June 8, 2003 8:03 AM

rick said:

Rent the game first. Despite the poor AI/graphics/plot, it was fun for a minute being able able to fight in 'bullet time.' It doesn't add too much to the whole matrix experience IMO.
# June 24, 2003 7:52 AM

Robert Hurlbut said:

I concur that Sam would be great:

http://samgentile.com/blog/Story/2046.aspx
# June 24, 2003 10:07 AM

Alex Hoffman said:

A much better idea than "currently listening to"!
# June 25, 2003 1:42 AM

Frans Bouma said:

"Rotor, Mono, Dot GNU"
What about them? Rotor is Shared source and utterly slow (not designed for that), mono is not near a finish and dot gnu... don't get me started.

.NET is miles and miles away from what java already offers. Not in all bad, but I get a little tired of all the hail and praise about .net when there is so much lacking and the api's design offers design flaws every day. The day .NET gets a system like EJB and application servers which can span multiple boxes, that day .NET is truely up to par.
# June 26, 2003 11:13 PM

Andrew Stopford said:

Nothing like friday fight club :D

Why would you say Rotor is slow, where is your proof? Mono is finished enough to be used in three cross platform commerical applications already and dot gnu is work in progress (but getting there). The point here is not .NET vs Java (because that fight will go on and on...and on...zzzz) but rather that .NET is not tied to Microsoft and other folks ARE making it cross platform, sure that work is work in progress but the point is that its happening. You don't like it, fine, but there is no doubt its happening.
# June 27, 2003 12:55 AM

Frans Bouma said:

I like .net, I develop in it 10 hours a day, it's just that it's a technology, it's not a thing that makes everybodies life incredibly more valuable. .NET is tied enough to MS, believe me. Check the .data namespaces and the winforms namespace. Winforms implementation on f.e. linux is very hard if not undoable due to the WM_* and other messages ties under the hood.

Benchmarks run on rotor are considerably slower than the .NET sdk runtime. However I don't see why that's a bummer, after all it's a release for educational purposes.
# June 27, 2003 1:03 AM

Sam Gentile said:

Happy early birthday!
# June 27, 2003 1:49 AM

Wes Haggard said:

Then the next day is my birthday(6/29) I will be 25.
# June 27, 2003 2:37 AM

Alex Hoffman said:

Happy Birthday!
# June 27, 2003 2:54 AM

Andrew Stopford said:

Thanks Alex and Sam :D

Happy birthday to you Wes for Sunday :)
# June 27, 2003 3:15 AM

Andrew Stopford said:

I don't disgaree its just a technology but the point was that .NET is JUST a Microsoft technology, my point is....its not.

Rotor is slower than the commerical product because Rotor has no JIT but the source is available so adding a JIT would (although not easy) be possible. As you say Rotor is not for commerical use but they point is it's running on lots of platforms not just windows.

The namespaces you mention are work in progress in Mono. The data namespaces are almost done and WinForms being created in a combination of Wine and GTK#. Its been a lot easier to do in Mono because they were able to approach it from a fresh angle, Rotor would be harder but not impossible (the fact the source is there means someone can).
# June 27, 2003 3:24 AM

Anon said:

Don't feed him. He does this everywhere and on the DM lists too.
# June 27, 2003 6:29 AM

Phil said:

I have been thinking about this exact thing for a little while now. I am not a big ColdFusion developer (I barely got past the tutorials for it), but it was VERY easy to get up and running and easier to make a simple database-driven web page. I'm not sure if creating a CF engine for .NET, but a language similar to .NET which would be simpler than the .NET languages, yet easier to do DB related tasks could be interesting.
# June 30, 2003 12:56 PM

Jesse said:

There is already a .Net edition of Coldfusion under development by a 3rd party under the name of BlueDragon. It allows you to compile a cfm application to a native .net assembly (pretty cool eh!) They also have a version that compiles to true Java code which does not require the original sources on the server...
# June 30, 2003 11:08 PM

Robert Hurlbut said:

If I remember correctly, it is pretty well known that Amazon runs on a Unix/Apache site, as opposed to Barnes & Nobles and Borders, which are Microsoft based sites.
# July 7, 2003 8:42 AM

Andrew Stopford said:

See I am one of the few people that did'nt know that so what a guess :D
# July 7, 2003 9:05 AM

Scott Mitchell said:

I recall hearing on /. that they use a custom library built using Perl...
# July 7, 2003 9:47 AM

Robert Hurlbut said:

I do know they use Oracle for their database (and not SQL Server -- duh, if they are running on Unix!).
# July 7, 2003 10:04 AM

Lawrence Oluyede said:

We're developing something like that (a skin feature) in our internal custom control library. It's something like predefined skins...
# July 7, 2003 10:23 AM

rick said:

Most of the settings in simple forms (textbox, dropdownlist, etc) can be set with CSS. I never use the webcontrol properties except for CssClass.

There are a few properties (mainly with the more complex controls like the calendar or datagrid) that override CSS settings.

Technically you shouldn't style your form elements in the HTML or ASP.Net syntax. That should all be done in CSS if possible.
# July 7, 2003 11:16 AM

Kenneth LeFebvre said:

Yeah, I think that day will come when content searching and organizing is better.

I've often told my peers that I think blogs are the tip of the next iceberg... their eyes glaze over and they look for an excuse to go do something else!
# July 15, 2003 8:18 AM

HumanCompiler said:

Unlike talking to someone or chatting with someone, blogs are permanent and a place in history...there's a lot to be said about that.
# July 15, 2003 9:06 AM

Dumky said:

There is so many forms of communication and communities: mailing lists, newsgroups, irc, forums, blogs, wikis,...
All have different models and advantages. I will be glad when more appear, but on the other hand I hope for some consolidation (not every variant merits a name or fame) or at least integration. Integration would mean you can have a conversation over different mediums and still have a "smart" tool display it to you as a conversation.

The one problem I see with blogs is that you don't always want to read somebody's full blog: only some topics may interest you. How to balance having so many sources of information and avoiding information overload or spam?

Cheers,
Dumky
# July 18, 2003 11:35 AM

Dan said:

I should point out that I put up the bet originally (which started at $10 and a round of beer. The ante was upped later) and Guido took me up on it. Not a big deal certainly, and since he was the challenged party and it was the Python Lightning Talks that it was announced at, it seemed gracious to let Guido take the lead.
# July 21, 2003 6:39 PM

Roy Osherove said:

I usually put on some matrix music in the background to keep me focused.....
I know the feeling. isn't it awsome?
# July 23, 2003 12:14 PM

Andrew Stopford said:

IL, more IL, Coffee...more IL...

Music is a great idea, sadly I am still at work and music is not allowed. I'll get some humming going.
# July 23, 2003 12:27 PM

Scott Watermasysk said:

Did you see the date: ( Dec. 20, 1999) :)
# July 23, 2003 6:19 PM

Paolo Molaro said:

It's not the point of Mono to hold off other people writing free software. Parrot will continue as long as its developers and users are having fun writing it, regardless of Mono running dynamic languages or not.
Languages like python and perl won't run faster on the CLR than with their respective C implementations, for the same reason that C code won't beat hand-optimized assembly code. So the question is: how much slower? Of course if it's too slow it's unusable. Jython is said to run from .70% to 10 times slower than CPython. A python running on the CLR is expected to run at least the same and probably quite a bit faster. The activestate implementation might have been a false start or there was not enough time for them to optimize it.
The perl slowdown factor would probably be a little higher, since the perl internals are really complex and require tons of special case handling code.
Changes to the CLR or otimizations in the dynamic languages runtimes could improve the numbers with time. At the end of the day a mean slowdown over the C implementation less then 2-3x is perfectly acceptable, for the same reason we accept that C code is slower than asm: easier coding, better interoperability. If more speed is needed, critical routines can be written in C# or IL: since C# code is 10 times faster than the perl/python one the overall run time won't change much.
So, performance is not the only issue, though it's important, if you need speed the existing C implementations are the best bet (and certainly parrot will be the fastest way to run perl 6 code).
The key issue is interoperability between different languages. Now, given this assumption, what is the best way to allow interoperability between dynamic languages and static typed ones? Parrot will probably be able to run both python and perl code, but what about C, C# and the like? If (and this is a really big if) Parrot will be able to C# code, it will be at least 10 or 30 times slower than the CLR (because of the complexity required by IL code). This is assuming Parrot maintains the current architecture (which I think it will). Will that be more acceptable than a 2-3 slowdown you'd get on the CLR for languages like python and perl that are already slow? Consider than in the CLR, if subsets of the existing python/perl code are too slow, you can use another high level langauge that is very fast like C#. On Parrot you can only go with a loadable extension implemented in C, losing portability and ease of deployment.
In the end I think Parrot will have perl and python implementations running together, maybe with the python code beating the CPython engine (we'll see who takes the cake on his face:-). The CLR will have somewhat slower python and perl implementations, but they will interoperate with C#, IL, VB.NET, mercury etc.
# July 24, 2003 10:39 AM

Andrew Stopford said:

Thanks for the commnets Paolo, don't get me wrong its not that I was saying that Mono will hold off other people writing free software but that as a VM Parrot seems to offer more than the CLR (now I am not saying that for certain but the dynamnic languages issue is a big one and one the CLR has yet to address). I would love to hear Dans comments on the points you raised, Dan if your listening.....
# July 24, 2003 11:08 AM

P T Withington said:

Laszlo uses XML format plus a DTD that defines the syntax of our object-oriented language, so any XML-aware tools can be used to manipulate our sources. Our scripting language _is_ ECMAscript, not just ECMAScript-based. We are working on supporting SVG as one of our media formats. The parts of our language that are not standard are the parts where we are innovating. We surely hope thes become a standard some day!

P T Withington
Software Architect
Laszlo Systems
# July 29, 2003 8:27 AM

TrackBack said:

# August 1, 2003 4:01 AM

Jesse Ezell said:

one of the laszlo guys stopped by my blog when I brought this up. He noted that you can actually use laszlo with .NET, it is just there server which is Java. I couldn't quite determine what he was trying to say, because what use is the app without the server? But, maybe the server isn't required for your apps or something?
# August 1, 2003 4:04 PM

Tim Sneath said:

Thanks!
# August 6, 2003 12:42 PM

Jesse Ezell said:

But that would take more talent than Macromedia currently has working for them ;-)
# August 8, 2003 2:42 PM

rick said:

Doesn't ASP.Net go ASP.Net -> C#/VB.Net -> MSIL?
# August 8, 2003 4:13 PM

Chris Martin said:

Yes. But, ASP.Net *IS* C#/VB.Net.
# August 8, 2003 7:45 PM

Andrew Stopford said:

Jesse, interesting point, interested in the challenge, I know I am ;-)

Rick, good point, but you could say its true and false. If you take ASP.NET as a framework (for example libaries to work with cookies etc) or the ASP.NET runtime then its written in C# and compiled to IL, however its delivered as compiled (that is you never see the source). As ASP.NET is desgined to be language independent you can then make further use of the libaries using any managed language that you choose (C# and VB.NET are just two of many).

Is this the same as CF? The reason why some parts are compiled and other parts you write the source for is that you don't need to see the source of the compiled parts but others you need to write the source for. If your going to write CF source in (if we were working with .NET) C# then you write it in C# but to compile first to C# amd then to IL makes no sense what so ever (an example of this is the Mono JScript.NET compiler JANET, it currently follows this model but is being to changed to compile stright to IL, the reason :- its a lot faster). Your making the compiler do more work as it as to first walk the tree to generate source (in the orginal case Java) and then walk the tree again to convert it to another source (JVM).
# August 11, 2003 3:50 AM

Phil Costa, ColdFusion Product Manager said:

Actually, ColdFusion MX 6.1 <u>does</u> compile directly from CFML to bytecode. That's the reason it is now much faster. The fact that we used to compile to Java then to bytecode is explained in the article only to provide a contrast with what we're doing now.
# August 11, 2003 9:00 AM

Andrew Stopford said:

Phil, many thanks for the info, I did think as much. As a side note as this model is now being used the translation to the CLR from the JVM is easier (I am not saying its easy by a long way just *easier* :)
# August 11, 2003 9:10 AM

Jesse Ezell said:

I was under the impression that it was just some PIAs, not fully native .NET... pretty cool stuff though. I've been debating putting together a C# version of SWFSource for a while (for which we have, internally at least, integrated XML support and an actionscript compiler). Too many projects, not enough hours...
# August 11, 2003 1:38 PM

Marc LaFleur said:

Have you tried any of the GUI mono tools? I'm wondering if they work very well.
# August 15, 2003 9:17 AM

Stephane Rodriguez said:


Nobody has implemented XForms, or at least not aware of. The spec itself is sloooooooooowwww to be updated, which shows the interest of commmunities behind it.

MS is pushing their own standards in this regard, as usual (infopath).
# August 19, 2003 4:15 PM

Kris said:

I was wondering about C# Builder.
Care to post some screenshots?
# August 20, 2003 1:49 AM

jt said:

I think you can find screenshots and info below. You can also download a free version from borland.
http://www.borland.com/csharpbuilder/
http://www.csharpbuilder.info/
# August 20, 2003 3:37 AM

anon said:

I take it you mean RedHat 9?
# August 20, 2003 9:51 AM

Andrew said:

I did anon, thanks :)
# August 20, 2003 9:58 AM

Robert Hurlbut said:

This might help (or at least start some discussions/testing):

http://www.gotdotnet.com/team/xmlentsvcs/espaper.aspx

"All serviced components have an associated COM+ context, which is stored
as a reference in the SCP (or RSCP in the remote case). The reference is
released only when the GC takes place or if the client calls Dispose(). It
is better not to rely on the GC to clean up the context: The COM+ context
holds onto one OS handle and some memory possibly delaying the release of
these handles until a GC occurs. Also, although ServicedComponent does not
have a finalizer, the SCP does implement a finalizer, meaning that the COM+
context reference will never get garbage collected on a first collection.
In fact, when the finalizer on the SCP eventually gets called, the context
is still not destroyed by the finalizer thread, instead, the work of
destroying contexts is removed from the finalizer thread and placed on an
internal queue. This was done because it was found that the finalizer
thread can get consumed by work in certain stress environments where
serviced components are being rapidly created, used and go out of scope.
Instead, an internal thread services the queue, destroying old contexts."
# August 20, 2003 11:14 AM

Andrew Stopford said:

Thanks Robert :)

This is quite interesting, Dispose is recommended as its the only way that the system knows that an object is finished with in a COM+ pool. I still think this has an impact on heap and GC cycles (heap getting full = GC cycle). Calling dispose does remove COM+ context but the next effect is that its not really removed but placed into a finalizer thread. My next task is to see if this thread can be monitored as it will be interesting to see what work this thread and the GC is doing under stress tests.
# August 20, 2003 11:30 AM

Robert Hurlbut said:

Tomas Restrepo had a tool on GDN that actually did this kind of analysis. I tried to find it earlier (from an older link), but it must have moved. If you find it, let me know.
# August 20, 2003 12:02 PM

Robert Hurlbut said:

Andrew --

My mistake. Tomas refered to this tool: AllocationProfiler.zip:
http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=36a3e666-6877-4c26-b62d-bfd7cb3154ac

AllocationProfiler Source at:
http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=3254325d-a4aa-4bb3-aa86-c72d5104ec74

Allocation Profiler is a tool for visualizing and analyzing allocations on the GC heap. It presents the data from this log file in a variety of interesting and useful views. It can be used to verify program execution (e.g. ensure you've allocated only the objects you thought) and to detect possible memory leaks. Simply launch AP, point it at your EXE and click a button.

# August 20, 2003 1:26 PM

TrackBack said:

# August 27, 2003 10:37 PM

Robert Hurlbut said:

My initial thoughts are to work through the PAL code because that is essentially what allows the Rotor to port to other OSs. Sounds like a good project -- definitely count me in.
# September 2, 2003 5:38 PM

Sam Gentile said:

Good stuff! I look forward to reading about your journeys.
# September 2, 2003 6:35 PM

TrackBack said:

# September 2, 2003 8:15 PM

Andrew Stopford said:

Good idea, I wanted to approach it from the other side though and track changes to the kernel between 7.1 and 8.0/9.0 before approaching the PAL. I suspect its the kernel thats causing the PAL build to fail so by knowing whats changed we can apply that to the PAL. I have yet to fully understand the kernel (hench the book) but its going to be fun :)
# September 3, 2003 1:27 PM

Robert Hurlbut said:

Very true. I was making a more general statement in regards to what needs to change. But, I agree, the initial work will probably in the kernal changes. I ordered the kernel book as well.
# September 3, 2003 4:31 PM

TrackBack said:

# September 7, 2003 10:45 AM

Chad Allbritton said:

Interesting. Some time ago, I prototyped a very similar app using C++.NET to produce a managed CFX extension framework for CF 5.0.
# September 10, 2003 7:46 PM

TrackBack said:

# September 13, 2003 5:09 PM

Robert Hurlbut said:

Andrew,
Out of curiousity, I compared the files/folders from the latest Linux/Rotor port (08/21/2002) to the original Rotor release. I found 7309 files that matched exactly, and 1301 files that didn't match. I am looking at the unmatching files to get an idea regarding the changes needed to port from FreeBSD code to Linux code.
Robert
# September 15, 2003 8:43 PM

TrackBack said:

# September 20, 2003 2:42 PM

Robert Hurlbut said:

Seems difficult to find new information on Rotor. I have been watching the reults of the SSCLI 2003 conferance with great interest, though.
# September 20, 2003 3:41 PM

Andrew Stopford said:

Where can I find the results of this conferance, do they have them on DVD?
# September 21, 2003 12:46 PM

TrackBack said:

# September 21, 2003 1:14 PM

Robert Hurlbut said:

Hopefully, they will do the same thing that was done after the Rotor Conferance in Europe last year: http://research.microsoft.com/programs/europe/rotor/workshop.aspx#Download%20Presentation
# September 21, 2003 1:45 PM

Robert Hurlbut said:

Isn't Gyro from Microsoft Research based on an older version of Rotor? If memory serves me, it breaks if you try to build it with the latest version of Rotor.
# September 24, 2003 10:51 AM

Andrew Stopford said:

The most current Gyro release is for Rotor v1.0 so everything should be fine to run Gyro in Rotor.
# September 24, 2003 10:56 AM

Robert Hurlbut said:

Great! I will take a look. Thanks.
# September 24, 2003 11:05 AM

TrackBack said:

# October 1, 2003 1:07 PM

Ben Maurer said:

I would love to see .Text working on Mono. I already got BlogX working, .Text couldn't be that much harder. I haven't taken a look at the .Text source code, so I am not actually sure: if it uses System.Data stuff, it might be a bit harder, but if it can work with pure xml storate (like BlogX does), then it would probably be fine. (if you are interested in working on porting, please contact me, I would be interested)

We probably won't get the LameBlog'ers (Miguel and Jackson) off their software, but the rest of us might move.


Thanks for the complement on my hacking skills ;-).

-- Ben
# October 2, 2003 12:31 AM

Ben Maurer said:

Just took at look at the source code this morning -- it looks like it uses alot of SQL, but that the sql is designed to be pretty replacable. Am sure an XmlSerialization data source provider could be created. (this is from me taking a 5 min bird's eye view, using Notepad here at school [can't install a real editor on these damn computers], so I may be wrong, please tell me if I am)

Depending on how busy I am that may be doable (I would be really excited if we were able to do it).
# October 2, 2003 8:18 AM

Andrew Stopford said:

Its a pleasure Ben, I am deeply impressed by what you are doing with the XML stuff in Mono, hats of to you :)

A .Text port will really rock, let me know if you do this :) I am sure he will really expand where .Text is hosted (and I am sure Scott would love to see it ported).
# October 2, 2003 6:16 PM

Matt Liotta said:

While Macromedia has annouced no plans to offer ColdFusion on .NET, New Atlanta offers a competing product to ColdFusion named BlueDragon that is currently available for J2EE and they have annouced plans to support .NET as well. See http://www.newatlanta.com/promo/bluedragon/bluedragon3_01/BDemail.html for more information on that.

In regard to integrating .NET with CFMX; web services is clearly not a bright idea from a performance stand point. My company, Montara Software offers an alternative; Black Knight. It allows you to create ColdFusion Extension (CFX) tags using .NET. See http://www.montarasoftware.com/go/9d58a59e-df02-1157-affb-e87c411e1c8f for more information on that.
# October 8, 2003 10:36 PM

Andrew Stopford said:

Thanks Matt, I am aware of the New Atlanta offering and Macromedia may well see there market share in that sector taken from under them. I do feel that a certain "wait and see" factor is being taken here, should the market for this take off then I am sure Macromedia will go for it but I get the feeling others are being left to take the risks.
# October 9, 2003 3:53 AM

Paul said:

WIth all due respect, what does this have to do with "Info and thoughts on .NETA, Rotor, Mono, Dot GNU, Parrot, PHP and Flash MX"? For that matter what is this doing on weblogs.asp.net, and is there any way I can have this clearly OT post eliminated from the main weblogs.asp.net RSS feed?

Again, this is meant as respectfully as I possibly can. I'm nearing a point of just deleting the main RSS feed from weblogs.asp.net because it is being overwhelmed with OT posts concerning the PDC, movie reviews, thanks for PDC shirts, stupid things like what kind of OS or blogger you are, etc. I enjoyed having this feed 4-5 months ago when the overwhelming amount of posts helped me learn aspects of .NET. But this no longer is the case.
# October 19, 2003 3:24 PM

Andrew said:

Good point, now marked as OT. If your fed up of the content within the RSS feed then you are flaming the wrong person. I suggest you drop Scott an email or better still drop by the .Text workspace and either get the developers to add a feature to filter out OT posts or sort it out you self.
# October 19, 2003 6:50 PM

Robert Hurlbut said:

I actually wondered the same!
# October 19, 2003 10:23 PM

Paolo Molaro said:

I think you misunderstood how the mono JIT is designed: ahead of time compilation is just an additional capability that can be used instead or alongside the normal JIT compilation process.
# October 20, 2003 4:43 AM

Andrew said:

Thanks for the comment Paolo, I will rephrase the post accordingly.
# October 20, 2003 7:26 AM

Sam Gentile said:

Paul, I can sympathize with you on the problems with weblogs.asp.net and have posted on this many times but you have picked on the wrong person here instead of many others. Andrew is one of the most technical CLR bloggers and one of the most significant contributers to the CLR community. He has posted months of great technical content and now he posts one movie review and you jum on him. This is unacceptable. If you have problems with the main feed, then its that problem, not Andrew. There are dozens of people there you could have picked instead who write inane things. Andrew has consitently had higher signal to noise than most people. Andrew as owner of his blog has a right to post on whatever the heck he wants.

I fully stand behind Andrew.
# October 20, 2003 1:14 PM

Robert Hurlbut said:

Paul, I agree with Sam on this. There are many, many others that post items that have little value to the .Net community. Andrew is certainly not one of them.
# October 20, 2003 1:16 PM

Robert Hurlbut said:

Thanks for the link.
# October 21, 2003 11:52 AM

Robert Hurlbut said:

Hopefully someone will blog this. Sam and I were just talking and wondering if there would be another drop of Rotor. I don't believe there has been one since the 1.0 code release (except for the work on Gyro).
# October 22, 2003 2:52 PM

Andrew Stopford said:

I suspect so, at a guess they will include all the announced changes to the CLR (Gyro being just one change). I understand that Sam is attending so hopefully he will Blog it :)
# October 23, 2003 3:54 AM

Scott Watermasysk said:

Jason Tucker pointed this out earlier today. I will try to post a fix today. Sorry.
# October 26, 2003 11:17 AM

Scott Watermasysk said:

Aggviews are not turned on yet for your server. Might be today.
# October 26, 2003 11:17 AM

Andrew Stopford said:

No need to apologise Scott, I am sure you will get to it when you can.
# October 26, 2003 1:26 PM

Kingsley Idehen said:

I presume OpenLink Virtuoso (http://www.openlinksw.com/weblogs/virtuoso) which delivered CLR Integration last year has certainly validated the concept, especially the fact that this can be achieved via the .NET CLR and Mono variants of the ECMA-CLI (plus .NET FCLs like ASP.NET) :-) Our one year old Demos and Tutorials re. CLR Integration (what we call Runtime Hosting) are also available as RSS feeds etc.
# October 26, 2003 6:20 PM

Andrew Stopford said:

Hi Kingsley, thanks for the comment. I would say OpenLink did just that. Lets hope we see many more apps support follow suite.
# October 26, 2003 6:41 PM

Robert Hurlbut said:

Hey, Andrew, you are listed on my recommended blogs as well as in my aggregators. I am sure you will be pleasantly surprised.
# October 26, 2003 8:59 PM

Sterling Hughes said:

Rotor is "shared source." ;)

There are open source implementations of the spec, but
what we (Thies gets blame too) mean is that the IL/Java specs are rather closed. If we wanted a change in the specification, what process would we have to go through?

Does it mean I would have to wait for a large commitee to agree on something, and then wait even longer for the respective implementations to catch up? Would they even meet for lunch with me?
With Parrot, the folks are dedicated and extremely helpful, and there is very little death by committee... Its open source, we make our case to the community, and it seems the Parrot people are very dedicated in providing a solution.

Also, Mono and .NET don't run on nearly as many platforms as Perl and PHP. There capabilities to host IL and the full CLR are much less than Perl or PHP.
# October 26, 2003 11:13 PM

Paolo Molaro said:

Sterling: as both Miguel and me have pointed out a few times on the mono list when the discussion came up, ECMA will standardize existing implementations: if you need changes to the CLR to better support PHP or other dynamic languages, you can propose them on the mono lists. We can also implement them in mono or help you implement them (of course once people agree the changes are good and useful). Mono is free software and it's an excellent platform to test implementations of changes to better fit the CLR for dynamic lanaguages.
As for hosting, mono has a fairly complete embedding API that is already used also by commercial programs.
What is currently missing in the CLR is the input of the dynamic language developers about what changes would be needed. If you're still in Italy and want to hop on a train to Padova one of the next weekends, I'd love to discuss issues with you and meet for lunch (I'm not on the standard committee, but Miguel is and we can make him push the proposals:-).
# October 28, 2003 11:15 AM

Andrew Stopford said:

Thanks for comments Sterling and Paolo, Paolo how about that blog ;-)

If you do discuss then please share your thoughts and conclusions with world. Its important that in order to make the CLR better that we take on this kind of feedback. Indeed I feel it would be good that this kind of feedback is fed in other CLR implementations, I am sure Rhys and P.Net folks would be interested and I can help out on getting it into Rotor.
# October 28, 2003 1:10 PM

Dumky said:

The Mono people were discussing the ORP on some forums. They are investigating whether to use this and how.
# October 28, 2003 5:32 PM

Christophe Lauer said:

Well, to say the truth, I must say that I've had access to a beta version, which allowed me to test some legacy Delphi3 and Delphi4 projects recompilation. Worth trying.
# November 10, 2003 8:19 AM

David Mendels said:

Hi Andrew,

The beta is limited but will be expanded over time. I don't know who/how many will be added with this week's drop, but the group will get larger and larger with subsequent beta drops.

Since your preferred platform is .NET, you may have been prioritized later in the cycle, but if yu can and want to invest time in testing on Java (one can of course interact with .NET through Web Services) let me know and I will let the team know.

-David
Macromedia
# November 18, 2003 11:02 AM

Andrew Stopford said:

Hi David,

Thanks for your comment, the web services support would be interesting to see so yes I would invest time in testing on Java if thats possible :)

Andrew
# November 18, 2003 12:42 PM

Robert Hurlbut said:

Does Call of Duty help the Linux/Rotor port? :) Nice relaxation tool, I am sure.
# November 19, 2003 3:54 PM

Andrew Stopford said:

LOL Robert :) Gotta get some frag time in ;-)
# November 20, 2003 7:39 AM

SBC said:

In my school years in England, I took up cricket instead. Too many teeth were lost playing rugger... :-)
# November 22, 2003 5:57 PM

Robert McLaws said:

Why would you want to run Mono on Windows when you have the .NET Framework? The point of Mono is that it is a Linux version of the Framework.
# November 22, 2003 7:56 PM

Andrew Stopford said:

Sorry Robert I could not disgaree more. The point of Mono is to create an implementation of a CLI according to the ECMA specs, yes the Mono folks have added a whole lot more to that but then so too has Rotor and P.Net. Mono is intended to be cross platform and useable across those platorms, be they Windows or Linux. Yes you can use the commerical MS .NET Framework on Windows but then so too you can also use Mono, can you all of the same things in either CLI? No not yet but Mono is still in work in progress, a time will come when you can use either framework and use Windows or Linux.
# November 23, 2003 11:03 AM

TrackBack said:

# November 26, 2003 2:09 PM

JosephCooney said:

Joel Pobar is a friend of my brother. He is a PM on the CLR team focusing on ROTOR. He sometimes blogs about ROTOR stuff, and suggested that there would be a ROTOR forked from Whidbey at some stage. http://blogs.gotdotnet.com/joelpob/
# November 26, 2003 9:50 PM

Andrew Stopford said:

Thanks for the link Joseph. The CLR team that looks after the commerical CLR (and so that means Whidbey as well) are now also looking after Rotor. Subsetting the code makes a lot of sense but I feel that more than that will be in Rotor 2.0, the Phoenix research for example. If anyone is interested in where Rotor is heading the slides and vids mentioned in the post are worth checking out.
# November 27, 2003 4:00 AM

Andrew said:

I want to run mono on windows.
I would really like to get asp.net running on windows with mono, it would let me see if mono can support my apps.

I've tried to get the stuff rolling, but the instructions I find tend to be for linux/oss people only...

Do you have an really simple guide?

# November 28, 2003 11:11 AM

Chris said:

I think the slides just might be theese ones:
http://www.cs.cityu.edu.hk/~hwchun/nsolver/download/CPIntro.pdf
# November 28, 2003 6:07 PM

rxm said:

Build Your Own .Net Language and Compiler
includes a complete QuickBasic compatible compiler with source code. Not only does this illustrate the techniques taught in the book, it provides a great new .NET language ideal for teaching kids, simple scripting, or just for fun.
# December 3, 2003 2:45 PM

Robert Hurlbut said:

Great list! Another to add: Simon Robinson's Advanced .Net Programming
# December 3, 2003 3:46 PM

Sam Gentile said:

Dude this is *the* bible. Everyone should own a copy and read it multiple times.
# December 3, 2003 4:50 PM

Fabrice said:

# December 10, 2003 5:14 PM

Fabrice said:

Maybe not supporting .NET though.
# December 10, 2003 5:15 PM

Robert Hurlbut said:

This is great!
# December 12, 2003 7:28 AM

Robert Hurlbut said:

Thank you for your encouragement!
# December 14, 2003 8:39 AM

Anonymous said:

Ummm... I'm actually working on (inside) rotor, it does have a JIt, i know, i spend 8 hours a day rummaging through this code to make the generics protion work on the PowerPC... rotors JIT is just slower and it's output code is not remotely optimised...
# December 16, 2003 4:35 PM

Kent Sharkey said:

As a research project...

From Ken's post:
"our team VS Data is responsible for helping get the good things from that research project into VB, C#, and the .NET Framework classes."

TTFN - Kent
# December 17, 2003 12:47 AM

Andrew Stopford said:

I know, this is already in my post. My point is can OTHER research projects achieve the same goals and as a dead project it would do harm to outline the goals of the project.
# December 17, 2003 2:21 AM

TrackBack said:

# December 29, 2003 10:24 AM

TrackBack said:

# December 29, 2003 10:44 AM

Robert Hurlbut said:

Congratulations on the marriage plans! Rotor, Linux port, C++, and Assembly may be the easier goals, though. ;)
# December 29, 2003 7:03 PM

TrackBack said:

# December 30, 2003 5:48 AM

naveen said:

pls send me this tool asap
# January 2, 2004 7:12 AM

Joel Pobar said:

There's another really great book on CLR/CLI internals, the Shared Source CLI Essentials book. <a href="http://www.amazon.com/exec/obidos/tg/detail/-/059600351X/qid=1074043314//ref=sr_8_xs_ap_i0_xgl14/002-7490122-2192800?v=glance&s=books&n=507846">Find it here</a>. Lots of fun!
# January 13, 2004 8:24 PM

Andrew Stopford said:

Thanks Joel, got that one on my other list :) I agree a great book !

I did'nt include that one for Cesar as he is working on Mono so a book on Rotor while useful in background won't really help him learn the CLR (its more an internals book).
# January 14, 2004 7:58 AM

TrackBack said:

# January 15, 2004 11:29 AM

Paschal said:

Hmmm Andrew it's not Zen but Xen ?!?!?
# January 17, 2004 10:04 AM

Andrew Stopford said:

LOL thanks I will correct that :)
# January 17, 2004 10:25 AM

Paschal said:

No problemo you're welcome !
# January 17, 2004 10:36 AM

peter said:

I found one called Visual Paradigm SDE. Its community edition is free of charge for vs.net. I played with it for a couple days, found it pretty nice. you can download one at:

http://www.visual-paradigm.com

hava fun!

PETER
# January 19, 2004 2:05 AM

TrackBack said:

# January 19, 2004 11:15 AM

Dolly said:

Well..I must say You couldn't be more wrong :)

"Please, whatever you do, stay away from .NET"
Like I saw in a video I would also say if you are my competitor stay that way!

And for those who believe .NET is tied to Microsoft, they do so coz they want to.

"NET is miles and miles away from what java already offers"

and Java is miles away from what .NET already offers. So??

If you are so concerned about speed/performance, go downlaod the .NET framework SDK and work with it.

As for Rotor and Mono, I think they have done a fantastic job and will continue to do so. Hopefully Portable.NET will get there soon.

Friends, it would help if you stopped this mud slinging.
# January 20, 2004 5:35 AM

César López Natarén said:

Hey Andrew!

Thanks for the suggestions, I think I'll go for Don Box's one and the annotated standard.

Greetings.

César
# January 21, 2004 2:32 PM

aaa said:

a
# January 28, 2004 10:19 PM

Asbjørn Ulsberg said:

Me too. :-)
# January 29, 2004 8:57 AM

Michal Cierniak said:

Andrew, I've just posted more Rotor annotations. I agree that making something like that in a more complete resource would be cool. Let's see how my blogging goes. I wonder if there are more people who find this useful.
# January 29, 2004 9:38 PM

Andrew Sopford said:

Thanks for the heads up and indeed for working on these Michal :)
# January 30, 2004 12:31 PM

LOTONtech said:

The problem with many tools like Rational Rose, and even Visio for Enterprise Architects, is that they do not provide a base model containing the .NET framework classes.

The RE.NET utility helps you create such a .NET framework model in Rational Rose, Visio EA, and some other tools.

http://www.lotontech.com/visualmodeling/RENET.html
# January 31, 2004 9:12 AM

TrackBack said:

# February 1, 2004 2:29 PM

bbb said:

.net
# February 5, 2004 9:28 PM

Andrew Stopford said:

It was'nt that one Frans but thanks for the link all the same, interesting to see natural language in search engines
# February 8, 2004 11:07 AM

Kartal Guner said:

I;m not sure about which post you were referring to, but I found these very informative. I hope they help.
http://www-db.stanford.edu/~backrub/google.html
http://www.computer.org/micro/mi2003/m2022.pdf
# February 8, 2004 1:13 PM

Kartal Guner said:

Just actually looked at the link you were referring to, so you got the first one :)
# February 8, 2004 1:19 PM

Cameron Reilly said:

# February 8, 2004 4:20 PM

Dumky said:

Google has a pretty interesting architecture, to achieve its target performance (under .5 second per request). I posted some more info and pointers, a couple of months back, at: http://blog.monstuff.com/archives/000044.html
# February 9, 2004 8:35 PM

TrackBack said:

Take Outs: The Digital Doggy Bag of Blog Bits for 18th and 19th February 2004
# February 19, 2004 8:12 PM

Guy said:

If you look at the benchmark for JPython, they're not a million miles apart except for function calls, and JPython performs ok.

When ActiveState did their abortive CLR implementation of Python the question was always why their implementation performed so badly when JPython was doing ok.

The lingering idea that "CLR sucks for scripting" comes from ActiveState. It exists nowhere else when considering dynamically typed languages on CLR.
# February 21, 2004 1:59 PM

TrackBack said:

# February 23, 2004 7:05 PM

Jim said:

> when code has the updated JIT added to it

What is this updated JIT you are referring to and where is it located?

Thanks!
# February 27, 2004 2:24 PM

Andrew Stopford said:

The updated JIT is the JIT that Chris and his team have modified to create the ref counting implementation. The download to this JIT is in the post.
# February 28, 2004 6:52 AM

Dan said:

I suppose it depends on what you think the different levels of support are for CLOS, Ruby, Java, or C#. (Though from my perspective that list is from most to least difficult and feature-rich) Ultimately, though, we'll go all the way to Ruby-level support, having made sure to touch on C++, Perl 5, and Python. I think this'll get us Java and C# as they both are reasonably simple as object systems go. Not that any object system's been complex yet. (Annoying, yes, but not complex)

The edge conditions'll be the killer, I expect, along with some of the side-effects of mixing schemes. (Ruby, C++, and Python all have *completely* different ideas on how to properly do destruction, for example, so building a class that mixes base classes from the three schemes may be... interesting)
# March 1, 2004 4:32 PM

Andrew said:

Dan thanks for the comments. Interesting that the intended scheme of support will be go all the way up to a Ruby style object support. By different levels I mean that CLOS and Ruby include the levels of object support in say C# or Java but also allow for more object features.
# March 3, 2004 12:34 PM

TrackBack said:

# March 4, 2004 4:21 PM

TrackBack said:

# March 5, 2004 10:23 AM

TrackBack said:

# March 5, 2004 10:23 AM

TrackBack said:

Macromedia and .NET: I was wondering whether CNET's heavy play on the Linux part of Kevin's presentation yesterday would raise more discussion like this... I don't know if there's a direct connection, but I'm on the lookout for it. 8)...
# March 5, 2004 11:14 AM

John Dowdell said:

Hi Andrew, I highlighted your piece here over at my place, because I suspect others may have the same concerns right now too. I don't have solid info on either request, just some context of why they're not here already, if that's of help.

(I also checked out that Laszlo thread you linked... may not be good to put a whole lot of credence in what they say another group will or will not do, huh...? ;-)

jd/mm
# March 5, 2004 4:26 PM

David Mendels said:

Hi,

Flex on .NET is planned for not long after the Java edition. If you are interested in testing, let me know.

-David
Macromedia
# March 5, 2004 4:33 PM

TrackBack said:

# March 7, 2004 7:38 AM

Allen Bauer said:

Andrew,

Sorry for the mixup. I tried to clarify the relationship between class helpers and IDisposable here:

http://homepages.borland.com/abauer/archives/2004_03_07_archive.php.
# March 8, 2004 11:24 AM

Robert Hurlbut said:

Hey Andrew, there is a problem with the link to Sam's post.

http://samgentile.com/blog/archive/2004/03/08/11372.aspx
# March 8, 2004 9:25 PM

Andrew said:

Hi David,

Yeap I would be interested.
# March 9, 2004 4:02 AM

Andrew said:

Thanks Robert, corrected that :)
# March 9, 2004 4:04 AM

David Mendels said:

Andrew,

please email me offline so I can get to the PM for Flex .NET.

-David
# March 10, 2004 1:01 AM

Andrew said:

David - I have mailed you. If you don't receive that mail can you contact me using the conact form. Thanks - Andrew
# March 10, 2004 5:17 PM

TrackBack said:

# March 10, 2004 7:11 PM

TrackBack said:

# March 10, 2004 7:14 PM

Doug Reilly said:

Jason Nadal (http://weblogs.asp.net/JNadal) knows as much about Monad as anyone I know. I am sure there are some posts there about it, as well as links to articles he has done.
# March 15, 2004 2:14 PM

Jason Nadal said:

You should really check out some of the sample scripts that show just how "programmatic" it can be...

I believe this is referring to the lack of a true piping interface in the current command shell packaged with windows, and the ability to develop cmdlets using the full scope of the .net framework. It also provides non-developers a scripting language to fully pipe existing cmdlets together (the "programmatic" part).
# March 17, 2004 10:20 AM

Jegan said:

Thatz a great idea to marry two excellent things the software dev has ever seen.Will defenitely give birth to better s/w for future.

Check http://www.visual-paradigm.com/vpuml.php
# March 18, 2004 11:56 PM

TrackBack said:

You have been Taken Out -- see comments in the linked document. Thanks for the post!
# March 20, 2004 6:16 AM

ali said:

very good topic
# March 22, 2004 9:35 PM

Jonathan de Halleux said:

Hi, the projet is now hosted on tigris.org (gunit.tigris.org).
# March 24, 2004 6:52 AM

Jeff Julian said:

what is your gamertag, mine is "jjulian2"
# March 24, 2004 8:13 AM

Andrew said:

Its 'LilHobo' anyone wants a game just hollar... :)
# March 24, 2004 8:28 AM

Jonathan de Halleux said:

Hi, the project has been renamed to MbUnit and moved to http://mbunit.tigris.org Cheers
# March 24, 2004 12:41 PM

Alice said:

Other dynamic-language.net also suffers when compared to dynamic-language.class...
check it out...
http://www.manageability.org/blog/archive/20030408%23the_leaky_jscript_compiler/view
# March 25, 2004 2:33 AM

César López Natarén said:

:-)

Thanks for the comments dude!!!

César
# March 25, 2004 8:08 PM

murat said:

thanks
# March 26, 2004 1:43 PM

beaudetious said:

Andrew,

I've got a question regarding how you plan to set up your Nunit scripts in this build system you are working on. I've been tasked with a similar situation using Subversion, Nant, Nunit and CruiseControl. Before all of this, we developers would put our unit tests in an inner class inside of the class we're testing in order to get to the private functions. We'd wrap this inner class in preprocessor directives so that we can keep them out of release builds. However, (and keep in mind that I haven't yet worked with Nant yet), I think I'll have to change this since I don't want to have to make a build via Nant just to test the unit tests, then make one for releases or debugs or whatever configuration I'm intersted in. I'd like to run the unit tests whenever I make a build no matter what configuration. How do you structure you unit tests? If its different than mine, how do you do blackbox testing on your private functions? Or should you? Call me confused!
# March 29, 2004 1:51 PM

Yves Lorphelin said:

beaudetious,
In all the projects I've been working on, we've never putted our unit test code into the code (with the notable exception of internal classes) but well in apart projects, or tried to test private methods.
What you really want to have unit test on is everything that has a public/protected access.

If you want to be sure wether all your private/internal member are hits when testing, you'll have to use a code coverage tool.
I know of two of them:
Ncover on http://workspaces.gotdotnet.com/ncover. I've been blogging about this lately and Ncover (yes the same name ) on http://ncover.sourceforge.net
The first one uses the profinling interface of the .Net runtime, the second one adds instrumentation code into your source files.
# April 1, 2004 2:51 PM

TrackBack said:

SUN - Microsoft peace: possible implications
# April 4, 2004 11:54 AM

TrackBack said:

# April 5, 2004 7:31 AM

TrackBack said:

Stopford on .NET Flex: Andrew Stopford has a couple of articles on using .NET web services as inputs to a Macromedia Flex application. (The 1.0 still runs atop a J2EE system, and although a native .NET version is announced as...
# April 5, 2004 1:02 PM

TrackBack said:

# April 9, 2004 8:19 AM

TrackBack said:

# April 12, 2004 3:56 AM

TrackBack said:

# April 12, 2004 5:59 AM

TrackBack said:

# April 12, 2004 5:59 AM

TrackBack said:

# April 12, 2004 5:59 AM

TrackBack said:

# April 12, 2004 10:08 AM

TrackBack said:

# April 12, 2004 10:08 AM

TrackBack said:

# April 12, 2004 10:08 AM

TrackBack said:

# April 16, 2004 7:34 AM

Dan said:

Any language would work out to build the compiler, though some are easier to do it in than others. (A good selection of medium-to-high level data structures certainly makes it easier, though) I used perl for the article because, well, that's what the version I'm working on for work's written in. :) Having a fully capable language parser, good freeze/thaw capabilities on hand, and excellent text handling capabilities made the initial decision really easy.

Emitting MSIL code shouldn't be a problem, assuming I'm remembering it right. (That's .NET assembly, yes? Object modules are more of a pain) Actual assembly for real hardware's a bit more trouble, mainly because then you have to do real register lifetime tracking for non-pathetic performance, something you don't have to do for Parrot (as IMCC does that for you) or .NET (since it's stack based)
# April 16, 2004 1:02 PM

Andrew Stopford said:

MSIL is the intermediate language that the CLR runs (the CLRs eq of PIR code). To complete an assembly you also have metadata and a manifest.

I am wondering about writing a compiler in say C# (and thus running on the CLR) but targeting the CLR or Parrot. Of course as you say there are various factors in that decision, C# certainly the capabilites.
# April 17, 2004 4:28 PM

Randy H. said:

Thanks for the mention Andrew.

One of the things that I like about MS already is that they're heavily investing in resources outside of Redmond that can be more responsive to customers. Sure, there is a sales benefit to doing so, but I'm excited to be a part of it and hope to make a big impact. Please let me know if I can help you in any way.
# April 18, 2004 7:41 PM

Dan said:

Non-optimizing compilers are reasonably simple to retarget, and having multiple pluggable back ends isn't that big a deal. (You can actually wedge the optimizer into the back end if you want, and thus have traget-specific optimizations)

Writing it in C# shouldn't be a problem, as long as you've got good tools around (having a good parser/lexer generator's at least half the battle, and I'd choose a crappy language with an excellent parser generator over a swell language with no parser generator at all) but I'd expect that isn't a problem--worst case you play games with the Bison source. :) Certainly worth a go to see what happens.
# April 19, 2004 1:09 PM

Andrew Stopford said:

Thanks Randy, the role and microsofts postion sound very exciting. I am UK based so not sure you could help, many thanks for the offer all the same :)
# April 19, 2004 7:02 PM

TrackBack said:

Monad -MSH Shell - Microsoft's new command line system
# April 20, 2004 2:26 PM

Phil Winstanley said:

Can't make it this year, too busy at work and just spent a Week in Seattle at the MVP summit, though will really miss not being able to make it! :(

Let us know what freebies I'm missing ;)
# April 20, 2004 5:07 PM

Andrew Stopford said:

Will do Phil, nice to see a fellow .NET blogger in my kneck of the woods :)
# April 20, 2004 5:09 PM

TrackBack said:

# April 21, 2004 3:34 AM

Ian Dixon said:

I am going, it looks like its going to be diffrent this year with all the diffrent sessions
I bet it takes half the morning to work out which room we should in :)

The bonus is its 15mins drive away for me!
# April 21, 2004 6:15 AM

Andrew Stopford said:

No doubt :) its a 5 min drive for me :)
# April 21, 2004 6:22 AM

BeesKnees said:

http://medialab.di.unipi.it/Project/visualstorms/ sounds interesting too - compiling C#, etc. down to stuff that runs on the RCX... (Disclaimer: haven't actually used it.)
# April 23, 2004 2:00 AM

TrackBack said:

# April 28, 2004 1:02 PM

Tim Sneath said:

Thanks Andrew - I'm very flattered! My wife's due to give birth with our second child any day now, so I'm just starting my paternity leave and am therefore unable to be involved :-(

I'd love to hear a more detailed write-up of your thoughts on the roadshow though for those who weren't able to make it... like me!
# April 28, 2004 2:29 PM

Andrew Stopford said:

I talked with the chap (sorry I have forget his name) who did the Whidby demo and he mentioned about your baby, congratulations !!

I have posted my thoughts on day 1, need to do the same for day 2 and overall. Really hoping to get to Tech Ed Europe.
# April 28, 2004 5:52 PM

t3rmin4t0r said:

It's not DotGNU and Qt ... If look carefully, you'll see the source file is named DefaultThemePainter ...

DotGNU's building a lightweight toolkit all right , but the default windows buttons suck ... :) .. So just use Qt's theme engine to draw on the X11 Pixmap and blit it over to WinForms control paint.

So all the ControlPaint.* methods are done using qt themes.

(does mono have a Qt winforms ?.. I thought that was pure Wine and GDI+ implementation).
# May 1, 2004 2:06 AM

Andrew Stopford said:

Thanks for the feedback, edited the post accordingly. Mono I am not sure on, had thought a QT was in the works but as you state its Wine, P/Invoke.
# May 3, 2004 9:13 AM

Stefano Demiliani said:

I agree with Scott opinion... managed code was absolutely better, not only for business applications. I believe a lot on Mono project.
# May 4, 2004 8:56 AM

Andrew Stopford said:

So do I, Managed code is great..and Parrot does just that. For the moment its target languages are Perl and Python but its a runtime just like the CLR so there is no reason why languages like PHP and Ruby etc etc won't in time be managed code.
# May 4, 2004 9:03 AM

Michael Giagnocavo said:

Why go for their own VM (Parrot)? Why not instead leverage the CLR or Java (assuming it's possible to create a decent Perl/Python/whatever compiler for Java bytecode)?
# May 4, 2004 11:23 AM

Jesse Ezell said:

Scott's comments really have to do with developer productivity and little (if anything) to do with managed code. Simply porting perl or php to managed code does nothing for developer productivity. Increased developer productivity with existing managed languages is a result of:

1) the language features
2) the base class library features
3) availability of third party class libraries

Yes, there are a few things that a runtime can add to help productivity (like code access security). However, to a large extent the features of a runtime like the CLR aid language developers more than anyone else, because the runtime provides built in support for things like classes and garbage collection.

Perhaps language upgrades in Perl 6 or the next version of PHP will take it a bit in the right direction, but that still only solves 1/3 of the problem.
# May 4, 2004 2:07 PM

Matthias Cavigelli said:

php with pear and Perl with cpan both have installers for base class library features, which solves the second third.

When it comes to productivity they both don't need to be compiled, which _is_ more productive then the Java or .NET way! Don't know how that's going to be with Parrot though.

Plus they are both open source and run on many platforms today.

When it comes to Mono, I simply don't see the sense of copying the functionality already existing.
# May 4, 2004 2:31 PM

Jesse Ezell said:

C++ had a base class library too. Just having a BCL isn't enough. You need the kind of features that you find in something like the .NET framework's standard libraries. Perl or PHP on top of .NET or Java would solve 2 and 3, but cpan and pear don't even come close.
# May 4, 2004 4:04 PM

Andrew Stopford said:

Glad we have a little debate going on here :) Jesse has a point that the BCL help increase productivity, stating that CPAN or PEAR don't help even the balance I will leave to someone with more know how on the subject. Porting PHP or perl to the CLR would bring about the other steps that Jesse mentions so is it not a mute point?

To adress the points raised by others, Perl and PHP on the CLR won't run well however. The dynamnic nature of the languages means that performance is poor (see the activestate.com experiments for more on that), changes to the CLR in .NET 2.0 and increased awareness of how to write a compiler for the CLR to allow for dynamnic languages (i.e. IronPython) will all help CLR adoption for such languages.

However Parrot is being designed up as a runtime for dynamic languages, and will I am sure run PHP, Perl, Python just as fast as the unmanaged versions. In time the range of dynamic languages from Perl to Ruby will have a managed code base.

Will they create a common code base such as the BCL, who knows, the Perl,Python and PHP communities are best placed to answer those questions. The point is that they are making the start down the managed code route and my point to scott is that its a little early to cast Perl, PHP or the like aside against managed code.
# May 5, 2004 4:10 AM

TrackBack said:

# May 11, 2004 3:21 AM

Robert Hurlbut said:

I blogged about some of the latest patches for Rotor 1.0, including Mac OS X 10.3. Not sure if this will help, but nice to have the patches in one place on sscli.net.
# May 15, 2004 9:44 AM

TrackBack said:

# May 15, 2004 11:16 AM

Sean Corfield said:

I guess I don't know enough about the different aims of Mono and Rotor to see why comparing them is "never a good idea" - could you elborate? Mostly I just want a way of running C# and ASP.NET on my Mac...
# May 15, 2004 4:58 PM

Andrew Stopford said:

Sure, both Rotor and Mono (and P.Net) are implementations of the CLI and C# standards. Both implementations add additional code.

In Rotor terms, its a research tool. A look at how Microsoft implement the standards and how the commerical code works (from which Rotor is branched). In addition to the standards Rotor also includes the JScript compiler code and code for several tools. It differs from the commerical code in that the ASP.NET and Win Forms code is not included (its worth noting that some research has been done to add Win forms using GTK to Rotor). Performance enhancements (for example the GC and JIT are simpler models than the commerical code) are also not included.

The Mono aims are different in that like Rotor it aims to implement standards (and indeed is a research tool also) but is intended to a commerical grade tool. For example, Mono implements the rest of the .NET Frameowork i.e. ASP.NET and Winforms etc (which Mono calls the Microsoft Stack).and includes commercial grade JIT and GC code.

As ASP.NET is not included in Rotor then Mono is indeed your best bet. Running C# on the Mac however can be achieved with both Mono and Rotor.
# May 15, 2004 7:17 PM

TrackBack said:

# May 17, 2004 3:37 AM

TrackBack said:

# May 18, 2004 8:20 AM

TrackBack said:

# May 18, 2004 8:22 AM

TrackBack said:

# June 10, 2004 1:41 PM

TrackBack said:

# June 10, 2004 1:41 PM

Roshan James said:

# June 15, 2004 5:31 AM

Scott Galloway said:

Though I'd just mention that you can get the CHM (so, for offline use) here: http://msdn.microsoft.com/msdnmag/issues/03/10/MSDNMag0310.chm
Anyone know why this seems to be a secret, I never see this mentioned anywhere!
# June 17, 2004 6:31 AM

andrew stopford said:

404's for me ?
# June 17, 2004 6:53 AM

Scott Galloway said:

# June 17, 2004 6:59 AM

Sam Gentile said:

Happy Birthday my friend!

Geez, you're complaining about 28? This old fart turns 42 Friday!
# June 28, 2004 9:05 AM

Robert Hurlbut said:

Happy Birthday! My big 36 is around the corner ...
# June 28, 2004 11:15 AM

Robert Scoble said:

Who would you like us to interview?
# June 30, 2004 5:34 PM

Alex Papadimoulis said:

Wouldn't it suck if Microsoft built a new version of the framework, rendering Mono obsolete ...
# June 30, 2004 6:20 PM

Jerry Pisk said:

If Microsoft built a new version of the framework (I'm assuming Alex meant a new, incompatible version) then not only Mono would be obsolete, but also Microsoft's own .Net framework and all the apps written for it. Not going to happen. And even if it did - CLR and other parts of .Net are ECMA standards, so Mono would go on with its own life... That's what you get when you open up :)
# June 30, 2004 7:19 PM

Andrew said:

Glad you asked Robert...Joe Pobar, Peter Drayton,Michael Stanton...
# July 1, 2004 6:19 PM

lynn said:

Flex is too darn expensive.
# July 2, 2004 1:21 AM

bodrul haque said:

Great article.
# July 6, 2004 9:55 AM

Edward G. Nilges said:

Build Your Own .Net Language and Compiler is now out as of May 2004.

It demonstrates that language is as Microsoft ways, under the CLR, a "lifestyle choice".

I like C# but elected to use Visual Basic because the key isn't the language it is using the right approach.

This is neither hacking some crude solution nor is it mindlessly using yacc and lex. It's instead being able to implement an overall simple but at times tricky set of approaches from computer science.

I do recommend that the compiler writer use BNF. But I then point out that IF you have understood enough, it becomes another lifestyle choice to use an automatic parser generator. This is true unless you need elaborate diagnostics, where automatic generation of handle sets becomes a convenience.

However, using an automatic tool without the understanding that comes from doing the job by hand is rather like using a chain saw or a gun without proper training.

In my opinion.
# July 8, 2004 11:59 PM

John Lim said:

Andrew,

Thanks for the compliment, but i'm not sure whether i'm the right person. I don't even use Perl nowadays.
# July 14, 2004 2:01 AM

Andrew said:

Hey John - no where does Dan mention you need to be using Perl. Simply your a thought leader and got what it takes to get Perl 6 running on Parrot. Thats you all over ;-)
# July 14, 2004 3:45 PM

Melchior said:

Please,
Wow I return more than one datatable from de dataset
# July 14, 2004 4:41 PM

Chima Igiri said:

none
# July 16, 2004 3:46 PM

TrackBack said:

# July 21, 2004 1:19 PM

E4X Roolz said:

Absolutely interesting.

Now the question would be how long before it gets implemented in the major browsers?

Mozilla and Safari will be up to speed but how about IE ?
We all know that the next version of IE will come out in the longhorn days.

hmm
# July 21, 2004 11:26 PM

pauline meyer said:

tomorrow is my birthday. please send me a card a small donation would help thank you 4868 n. overlook av. cincinnati ohio 45238
# July 25, 2004 11:45 PM

Dan said:

The bet didn't start parrot--we'd started up years before that. (Which is, itself, a scary thought) The bet more spurred us to action of a sort, which is a useful thing in itself.
# July 26, 2004 6:31 PM

TrackBack said:

# July 30, 2004 4:20 PM

TrackBack said:

# July 30, 2004 4:29 PM

TrackBack said:

# August 2, 2004 2:56 AM

TrackBack said:

# August 2, 2004 2:58 AM

Mike Isbell said:

Hi guys.

I'm a .net developer who's just done his first Glade/MonoDevelop gui. Tres cool.

I'm 45. I know Ben is 16 or so, so this is a chance to get to know yer granpappys. Been programming since 1978 (fortran, stack of cards, mainframe room, all that jazz).

I'd love to work on a port of .Text. Where do I download it?
# August 5, 2004 10:59 AM

Danilo said:

Just to clarify, you really should be saying CF (ColdFusion) above, not CFMX (ColdFusion MX server). Similar to how the Zend engine isn't PHP, but PHP runs through the Zend engine.
# August 7, 2004 12:07 AM

Andrew said:

Thanks for that, however, Ben is comparing CFMX not CF as as a language. If he was then the point on CF on .NET would take into account Blue Dragon, as it happens Ben is talking about JVM only...a la CFMX. So I should be saying CFMX not CF.
# August 9, 2004 3:48 AM

Robert Hurlbut said:

Yes, it is Indigo -) (I have one like it from PDC 2003).
# August 10, 2004 9:36 AM

Joe Stagner said:

Discussing your book got me thinking today ....

So I spent some talking with Andi Gutmans at Zend later in the day .

..... I'm more convinced than ever that Windows can be a GREAT platform for PHP.

I've got a great interop project in mind. I'll let you know when I have a POC done. I've be veryinterestedin your perspective.

Cheers,
Joe
# August 18, 2004 7:55 PM

Jay said:

I was dissapointed in the Village. For me the plot was obvious after 15 minutes.
# August 23, 2004 5:02 PM

Jason Bock said:

Which is exactly the problem with Night's movies. You KNOW there's a twist somewhere, so you loose the joy of watching the film to revel in the story. Instead, you're analyzing everything to find clues as to what's going on. If this was Night's first picture, I'm sure my reaction would've been different, but since I was expecting a twist I started reading into the characters and the setting (hmmm, the houses look rather modern and sturdy, and...hmmm, the plates look really nice, and...hmmm, the elders all seem like they're hiding something...hmmmm....)

Night needs to stop making the "twist" movie for his next five movies - show that he's diverse enough to do something else. Otherwise, he's gonna fade big-time.
# August 24, 2004 12:21 AM

Andrew Stopford said:

I have to agree with you Jason. The twist expection is what spoiled Unbreakable (I am hoping the trilogy gets made at some point) and Night manged to really submerge it for Signs.

Much of what Night does can be done with the out need for a twist, once he says look no twist but this will scare the bejesus out of you, the audience will stop looking and just be scared witless. Personally I would love to see one of Steven Kings books be adapted (I _rate_ his writing skills and would have confidence he could write the screen play with Steven) and directed by Night. No twist but scary and suspenseful...
# August 24, 2004 4:13 AM

Robert Hurlbut said:

A big, big congratulations! Enjoy your time away!
# August 26, 2004 4:12 PM

Frans Bouma said:

Congratulations! :)
# August 26, 2004 4:43 PM

Stefano Demiliani said:

Congratulations... :)
# August 26, 2004 4:50 PM

Wally said:

Excellent! Congratulations! My wife Ronda is a great person and I am so glad that I am married to her. I hope Emma is the same for you!

Wally
# August 26, 2004 4:56 PM

Sam Gentile said:

Wow! Is she a Rotor buff too? -) Congrats!
# August 26, 2004 6:27 PM

marko rangel said:

Damn! beat me by 1 week! I'm getting married on the 3rd of September in Playa del Carmen, Mexico.

Good luck and congratulations!
# August 26, 2004 9:19 PM

John Lim said:

Congrats Andrew. Have a nice honeymoon.
# August 26, 2004 11:37 PM

Robin Debreuil said:

Hey Andrew,

While I haven't been running it under mono, that is certainly a goal. There will probably be a few issues, but I've been coding with neutral in mind where possible (targeting swf will do that ; ).

Awesome to hear you are getting married! I always think of the Bertrand Meyer quote that goes something like, "Hollywood movies always ends as the main characters are about to live happily ever after, but that is actually when the interesting part starts".

Of course he was talking about the chaos of object instances at runtime vs the clarity classes at design time -- then again that is a pretty good analogy too : ). All the best to you two...

Cheers,
Robin
# August 28, 2004 6:35 PM

Dmitriy said:

Congrats
# August 30, 2004 3:53 PM

TrackBack said:

# September 13, 2004 10:14 AM

Robert Hurlbut said:

Welcome back! Would love to see some of those sunrise shots.
# September 13, 2004 3:52 PM

cesar lopez nataren said:

Congratulations Andrew!

Cheers
Cesar
# September 16, 2004 4:16 AM

Erik Arvidsson said:

I'm a bit afraid here due to the fact that JScript 7 is not compatible with ECMAScript ed 4 aka Javascript 2.0. Since Mono is supposed to be more than .NET it might make sense to implement JS2 instead of JScript.NET, or at least have some compiler options here.

For the latest public draft see http://www.mozilla.org/js/language/js20/

# September 22, 2004 6:48 AM

rick said:

Dive Into Python by Mark Pilgrim is awesome. It's available in many electronic formats for free, or in print if that's your thing.

http://diveintopython.org/
# September 22, 2004 7:05 PM

Robert Hurlbut said:

This is hilarious!
# September 25, 2004 9:00 AM

Robert Hurlbut said:

And scary if ever true ...
# September 25, 2004 9:00 AM

TrackBack said:

# October 5, 2004 3:08 PM

TrackBack said:

# October 6, 2004 12:34 PM

Weston Weems said:

You know, I've had my eyes on FLEX and LASZLO for a long time. I'll be the first to jump on this bandwagon. No sense in requiring two runtimes to achieve such a simple goal.

Also, I think building this out in .net would absolutely provide a tighter integration. You have any word of when they were scheduled for open source deployment? I'll jump right on it =)
# October 6, 2004 5:56 PM

TrackBack said:

# October 7, 2004 5:27 AM

Andrew Stopford said:

Thanks for the comments. I saw your post on the mailing list Weston, I have updated my post with that. I really do think that we should do a port.
# October 8, 2004 8:43 AM

Andrew Stopford said:

I left this a week, see what happens... I have no idea who reads this and I don't doubt that anyone who knows or cares about Indigo does. So the fact no-one weighed in with a response to my post comes as no suprise. The road to Indigo will be a long one for many, not everyone will make the jump to light speed for it, getting ready, and helping folk to get ready plays as bigger part as the technology its self. So to all the Indigo players, don't forget the little man, lots of us.
# October 8, 2004 9:06 AM

David Temkin said:

Andrew -- One thing we're doing at Laszlo in the near term is decoupling the compiler and the presentation server; it will soon be possible to compile a Laszlo app into a SWF, and deploy it on a Web server without deploying the (Java) presentation server. This gets you part of the way there, since Java will no longer be a required portion of the deployment stack.

However, funcitons like SOAP, XML-RPC, proxying, transcoding, real-time push, and Java RPC (or its .NET equivalent) would need to be reimplemented for apps that need them, since they rely on the server. See

http://www.davidtemkin.com/mtarchive/000007.html

Separately, what are your thoughts on .NET client integration (compile to CLR, rather than SWF) and Visual Studio integration? I'd appreciate your take on these issues as well as the server issues.
# October 9, 2004 9:41 PM

William Luu said:

Interesting read, I also wondered about a .NET version of Laszlo to replace the J2EE component.
# October 11, 2004 5:24 AM

Weston Weems said:

You know, I was one of the people that was interested in starting a .Net port of laszlo...

I've recently spoken with laszlo devs, and had several leads, however if I understand what your getting at, you'd like it to be "language independant", like the .net CLR in general. Or do I understand you wrong?

# October 11, 2004 11:37 AM

Andrew Stopford said:

Hi,

Thanks for the commments.

William your welcome to join the effort if things get moving.

Weston, I mean any language that can compile to the CLI (C#, VB.NET etc). Choice of language and common ground across them is a key strength of the CLI, it gives you the flexability to cover the points I outlined.
# October 11, 2004 5:39 PM

TrackBack said:

dr dreff - andrew-stopfords-weblog
# October 14, 2004 12:12 PM

Scott Galloway said:

Good news is that compression is is v.next of .NET. So far as I am aware SharpZipLib is fully compliant with the requisite RFCs (being a port of the Java implementations of these libraries which certainly were...)
# October 30, 2004 7:33 PM

veejay said:

could Xamlon be a flash killer?!...earlier stages...but..
# October 31, 2004 4:19 AM

Jesse Ezell said:

I use the SharpZipLib lib in SwfSource.NET for ZLib compression. It works quite well and isn't that difficult. The hardest part was locating the proper classes, they are nested somewhere inside the Zip namespace, which is a little confusing, since you would expect a ZLib namespace or something.
# October 31, 2004 1:56 PM

Andrew Stopford said:

Thanks for the comments. As much I am aware ZLib will be in ASp.NET and will be included in a set of FTP classes for Whidby. But a set of namepaces for compression (such as Zlib) in Whidby I can't find any referance to.

Jesse if you could let me know what those classes are that would be really great.
# October 31, 2004 2:20 PM

Jesse Ezell said:

InflaterInputStream and DeflaterOutputStream are what you are looking for. They are found at ICSharpCode.SharpZipLib.Zip.Compression.Streams
# November 1, 2004 12:23 AM

Brenton House said:

I think you will like Subversion. Let me know if you have any questions.
# November 5, 2004 4:49 PM

Jeff Lewis said:

About three years ago, I convinced our development team to move to CVS from RCS. It has been great except for the time it takes to tag - about 1 hour!

I use and love subversion, but we are in the middle of a long development cycle and just can't switch over right now.
# November 5, 2004 5:07 PM

Shannon J Hager said:

I don't think Avalon is shipping before Longhorn. I may be wrong (and would be happy if that is true) but I have not heard that from any official sources.
# November 5, 2004 8:35 PM

Christian Romney said:

The only thing I don't like about Subversion/Visual Studio combo is the funky thing that happens with web projects (they don't load properly).
# November 6, 2004 11:14 AM

Andrew said:

Thanks Shannon, I was off on ship dates. I have altered the post to reflect a true indication of current ship dates on Avalon.
# November 8, 2004 4:05 AM

Howard van Rooijen said:

I don't think you should have too much of a problem compiling this on the 1.0 framework - the main 1.1 requirement is post build events and it has workarounds (C++ project that do the pre and post events). The only dependency to 1.1 you might have is the new BizTalk 2004 tasks.

You might want to take a look at a post I wrote today about VS IntelliSense and SDC:

http://blogs.conchango.com/howardvanrooijen/archive/2004/11/09/229.aspx
# November 9, 2004 5:47 PM

Adam Hill said:

Go check out MutantBuild from the TestDriven.Net guy.
# November 10, 2004 12:31 AM

Andrew said:

Thanks for the comments guys.

Howard there is no source for the SDC build tools that I can locate?

Adam, MutantBuild requires .NET 2.0 b1, running it from home is fine. But in a commerical enviroment, impossible.
# November 10, 2004 3:58 AM

Howard van Rooijen said:

There is a GotDotNet workspace for the SDC tools:

http://www.gotdotnet.com/workspaces/workspace.aspx?id=0e85439d-91f7-47bf-bbba-c12b3917cfb0

You'll need to apply to be a member to get access to the source (I think there is a problem with GDN at the moment).

One important thing to remember with SDC is that there is a roadmap to MSBuild - the tasks you use today in SDC will be valid for MSBuild (as they will be available as a separate assembly you can reference).

I'm in the process of writing a document about SDC and CC.NET. I wrote about integrating SDC and Draco.NET a while ago:

http://www.1succeeded0failed0skipped.com/PermaLink.aspx?guid=f3dc048b-9557-4a93-b2c1-29ec869318b1

But in the past 2 releases CC.NET has really surpassed Draco in functionality.
# November 10, 2004 4:46 AM

Brian LeRoux said:

Our team's been using SVN very successfully for some time now. Great for .NET dev.
# November 10, 2004 6:37 PM

TrackBack said:

Regurgitated build stuff and more
# November 12, 2004 2:34 AM

TrackBack said:

# November 12, 2004 2:36 AM

TrackBack said:

# November 12, 2004 2:42 AM

Chris Martin said:

Thanks for the heads up. I really dig on Miguel lately.
# November 12, 2004 4:17 AM

Howard van Rooijen said:

I can send you a copy of a SDC script I wrote that does code coverage with NCover and NUnit. If you're interested ping me. You should be able to copy it across to NAnt pretty simply.

I spent all of last week setting up a similar projects with CC.NET, SDC, NCover, NUnit, FXCop, NDoc and ILMerge for an 18 project solution.

/Howard
# November 12, 2004 12:14 PM

TrackBack said:

# November 13, 2004 2:59 PM

Darrell said:

Not yet, but if you check it out make sure to post it!
# November 14, 2004 6:52 PM

Howard van Rooijen said:

No, but I have integrated Vil - http://www.1bot.com/
# November 15, 2004 3:48 AM

Sam said:

I wonder if this can be add-in for .NET Reflector and show information in browser?
# November 15, 2004 4:30 AM

TrackBack said:

# November 16, 2004 12:21 PM

Jonathan de Halleux said:

Hi Andrew,

I'm currently addind tests for the NAnt task. I finished the tests for MSBuild yesterday and I hope to fix this damn to fix this damn NAnt task tonight.

When I introduced assembly dependencies, this was a major refactoring and I did not have tests, so now the first step is takened, my tests are red. Just need the time to make them green again.
# November 16, 2004 1:14 PM

Jonathan de Halleux said:

This page might also interrest you: http://blog.dotnetwiki.org/archive/2004/08/29/856.aspx
# November 16, 2004 1:18 PM

Jonathan de Halleux said:

MbUnit works with CruiseControl but you need to add a xsl template to CC.NET. I'll put a xsl template in the next release that integrates nicely in CC.NET.
# November 16, 2004 1:54 PM

Jonathan de Halleux said:

I have finished the refactoring of the NAnt and MSBuild tasks (it will be available on builds greater that 1.0.861d). They now look the same and have been simplified to the maximum.

The wiki has been updated:

NAnt: http://www.testdriven.net/wiki/default.aspx/MyWiki.TestExecutionUsingNAnt

MSBuild: http://www.testdriven.net/wiki/default.aspx/MyWiki.TestExecutionUsingMSBuild
# November 16, 2004 10:39 PM

Jonathan de Halleux said:

For source access, you need to contact Jamie Cansdale.
# November 16, 2004 10:40 PM

Jonathan de Halleux said:

# November 16, 2004 10:43 PM

Roy Dictus said:

Great news Andrew! This confirms that porting utilities from NUnit to MbUnit is indeed quite a snap.

I guess we can send the sources to Jonathan or Jamie so that they can be included in the TestDriven.Net installation...

Roy
# November 17, 2004 9:33 AM

TrackBack said:

# November 17, 2004 11:22 AM

TrackBack said:

# November 17, 2004 2:23 PM

Jonathan de Halleux said:

Hey Roy and Anders,

I don't think branching is a good solution, we need to keep the source in one place and that is the sourceforge CVS.

Did you contact the authors of those projects ?
# November 17, 2004 4:28 PM

Andrew Stopford said:

I have left a note on Johns blog as to my next steps with this. Its as follows.

I have emailed the NUnitASP group and shared my experiences with them. I agree a fork is not a good idea and given the relative ease of switching between NUnit and MbUnit a fork makes no sense. Hopefully the exercise will prove useful for anyone moving from NUnit to MbUnit etc.
# November 17, 2004 7:35 PM

TrackBack said:

# November 18, 2004 7:21 AM

Jonathan de Halleux said:

# November 18, 2004 7:49 PM

Jonathan de Halleux said:

Looks like I need a test for that damn gui. Sorry, forgot to add the xsl template for CruiseControl. On the next build...

I strongly suggest that you avoid using the GUI, it is generally much slower that 'Run Tests...' in Visual Studio using TestDriven.NET
# November 18, 2004 7:51 PM

TrackBack said:

# November 19, 2004 1:35 AM

TrackBack said:

# November 20, 2004 9:02 AM

TrackBack said:

# November 20, 2004 9:40 AM

TrackBack said:

# November 20, 2004 9:44 AM

TrackBack said:

# November 20, 2004 10:03 AM

TrackBack said:

# November 20, 2004 10:05 AM

Howard van Rooijen said:

This link doesn't seem correct.
# November 21, 2004 6:10 PM

Jonathan de Halleux said:

Did you try to launch NCover from NAnt as a command shell instruction?
# November 21, 2004 11:45 PM

TrackBack said:

# November 22, 2004 12:54 AM

TrackBack said:

# November 22, 2004 12:54 AM

Andrew Stopford said:

I did'nt use NAnt I tried this manually in the command shell. I am profiling a class lib so to do that I need to profile NUnit as it runs the unit tests on the lib. Interestingly it raises the error but clicking continue finishes the profile, however coverage data includes NUnit but not my lib.
# November 22, 2004 4:30 AM

Melvin Lee said:

I use the following commandline to execute ncover for my lib

"c:\Program Files\NCover\NC
over.Console.exe" /c "c:\Program Files\TestDriven.NET 1.0\MbUnit\MbUnit.Cons.exe" MyAssemblyToProfile.dll /a MyNamespaceToProfile /v

You have to run this command line in the debug directory since NCover requires the pdb files.

I use the following Nant script snippet to do code coverage in a automatic build

<property name="test.include.pattern" value="./Tests/**/bin/debug/*Tests.dll" />
<property name="ncover.executable" value="c:\Program Files\NCover\NCover.Console.exe" />
<property name="mbunit.executable" value="C:\Program Files\TestDriven.NET 1.0\MbUnit\mbunit.cons.exe" />

<target name="code-coverage">
<foreach property="assembly.name" item="File">
<in>
<items>
<include name="${test.include.pattern}" />
</items>
</in>
<do>
<property name="assembly.namespace" value="${string::replace(assembly::get-name(assembly.name), 'Tests', '')}" />
<exec program="${ncover.executable}" commandline="/c &quot;${mbunit.executable}&quot; ${assembly.name} /a ${assembly.namespace} /w ${path::get-directory-name(assembly.name)} /v" />
</do>
</foreach>
</target>
# November 22, 2004 8:45 AM

Howard van Rooijen said:

# November 22, 2004 10:36 AM

Howard van Rooijen said:

I've never had a problem using SDC with ASP.NET projects - what are you trying to do?
# November 24, 2004 1:41 PM

Howard van Rooijen said:

Oh and have you seen this?

http://blogs.conchango.com/jamessimmonds/archive/2004/11/24/322.aspx

Send MSN Messenger notifications from the command line - used to notify developers to check in source before they go home :)
# November 24, 2004 1:44 PM

TrackBack said:

# November 24, 2004 2:20 PM

Jonathan de Halleux said:

Are you problems MbUnit related ?
Why not trying to compile with MSBuild ? You can even launch MSBuild using the exec task.
# November 24, 2004 8:54 PM

TrackBack said:

# November 25, 2004 12:05 AM

Andrew Stopford said:

MSBuild requires 2.0 beta1 which I can't run in the commerical enviroment. If I could then Jamie's MutantBuild/MsBuild combo might have done the trick. As it is the SDC Build tools are a build up to MSBuild. Should these work, I do have some larger issues to solve, compiling to different .NET 1.0 or 1.1 etc.
# November 25, 2004 4:05 AM

Dana Epp said:

Andrew, this was an awesome post. I have been pulling hairs out trying to use the <solution> tag in nant to no avail. Being able to call devenv within an <exec> is an AWESOME idea to get nant to build the entire solution from the command line.

I totally forgot that cmd was there. Thanks for the tip!
# November 25, 2004 10:20 AM

John Hardin said:

Is the license compatible with use in a closed-source app? (in other words, is it LGPL or GPL?)
# November 28, 2004 4:59 PM

John Hardin said:

Duh. Read the links first.

Ignore me.
# November 28, 2004 5:00 PM

Howard van Rooijen said:

Very nice - will try doing this with my build. At the moment I use the CommandLineBuilder:

<build type="commandLineBuilder">
<executable>SDCBuild.exe</executable>
<baseDirectory>..\</baseDirectory>
<buildArgs> /c:DailyBuild.config</buildArgs>
<buildTimeoutSeconds>30000</buildTimeoutSeconds>
</build>

and have used in the past, modified the NAnt Task:

<build type="nant">
<executable>SDCBuild.exe</executable>
<baseDirectory>..\</baseDirectory>
<buildArgs></buildArgs>
<buildFile> /c:ContinuousIntegration.config</buildFile>
<targetList>
<target>run</target>
</targetList>
<buildTimeoutSeconds>30000</buildTimeoutSeconds>
</build>
# November 30, 2004 8:34 AM

Andrew said:

Some cool ideas Howard. If you want the source/assembly for this task let me know. I am thinking about creating a gotdotnet workspace for SDC tasks etc.
# November 30, 2004 9:17 AM

Niki said:

I am trying to figure out which tool is good for .Net framework. There are many available online like NUnit, MbUnit and csUnit. Can please give me advantages and disadvantages of each.
# December 1, 2004 11:32 AM

Niki said:

I am trying to figure out which tool is good for .Net framework. There are many available online like NUnit, MbUnit and csUnit. Can you please give me advantages and disadvantages of each.
# December 1, 2004 11:34 AM

Jonathan de Halleux said:

Sidenote: my nickname is Peli, feel free to use instead of 'John'.

Beer Driven Development is a little game we have with Jamie Cansdale :)
# December 1, 2004 11:35 AM

Jonathan de Halleux said:

From the limited exploration I did in SDC, it seems that their tasks are hard coded (see XmlParser) which makes it very difficult to implement a MbUnit task without recompiling.

Moverover, it seems that the SDC team has totally moved their tasks to msbuild (seee the 2.0 build). Why not considering using msbuild instead of SDC ?
# December 1, 2004 11:37 AM

Andrew said:

Sure, I prefer Andrew to Andy but hey :) I have changed the post, will note the preferance in future posts. Another congrats BTW :)
# December 1, 2004 12:37 PM

Andrew said:

Hey Peli,

The problem with MsBuild is that you need .NET 2.0 beta to run it and in a
commerical enviroment thats out of the question.

Therefore I am working in the bounds of 1.0/1.1 and as such need to find
build tools for that .NET version. This is the reason I am using SDC over
MsBuild.

If a recompile is needed then its something then thats something that can be
done with out an issue. Could you provide some further data on say the wiki
or your blog on doing this so rather than actually providing the code you
just give us some ideas to go with that we can use to DIY it.
# December 1, 2004 5:28 PM

TrackBack said:

# December 7, 2004 9:05 AM

Howard van Rooijen said:

Thanks very much!

One of the things I hope I got across was that your Engineering Practices should be independent of project methodology – each one of the EP’s brings merit to the end product, regardless of how you manage getting to that point. Even if you’re not doing Scrum – there is no reason not to do the daily stand-up meeting – it’s just good common sense. The major point being that in Agile projects you need to be more rigorous with your Practices to offset the risks of developing solutions in an iterative and incremental way.

Make sure you take a look at Colin’s post his part of the presentation:

http://blogs.conchango.com/colinbird/archive/2004/12/07/401.aspx
# December 8, 2004 9:21 AM

Howard van Rooijen said:

I've been doing the same, I started off going down that path, using Wise and MSI, then got really frustrated and swapped to NSIS (Nullsoft Scriptable Install System) - job done! NSIS is excellent; lightweight, powerful and most importantly rapid to develop with.

Within an hour I had written 2 installers that register items in the GAC, create Virtual Directories, install a windows service and kick off a code gen process.
# December 9, 2004 3:18 PM

Andrew Stopford said:

Hi Howard,

Just started looking at NSIS, a few articles on creating the things such you mention would be great to see.
# December 10, 2004 6:55 AM

K said:

I agree, this is a pain where I work too. We work locally for development, post to another development server for content edits, a web-accessible staging server for client review and then finally live for one of our bigger .NET projects.

One solution that has been in use here is that there is no web.config stored in SCM, but instead a STAGIN-Web.config and a LIVE-Web.config which mirror the staging and live environment (respectfully). I cannot take credit for this as I am not actually on this project generally.

I would like to find another solution, something that is more dynamic. In most of our ASP [Classic] code we have code that dynamically determines where the code is being run from and adjusts pathing and datasource information accordingly but I haven't been able to find a way to do that with the static (and readonly) web.config file.
# December 10, 2004 8:16 AM

H. said:

We used to use configsections for each machine we need a web.config for. In app settings we then had machine names point to the right configsection like
<add key=webserver value=live/>
<add key=stagingserver value=staging/>
<add key=dev value=dev/>

In code we ask the machinename using system.environment, and with that we get the appropiate configsections.

To bad we use a ORM mapper now that want its connectionstring to be placed in the appsettings as well, so we are looking for a different solutions.
# December 10, 2004 8:25 AM

Scott Galloway said:

User.config files let you set these for each environment - appSettings at least take a look at http://dotnetjunkies.com/WebLog/seichert/archive/2003/06/03/194.aspx
For more info.
Whatg you'd do is have a common web.config and individual user.configs
# December 10, 2004 8:34 AM

AndrewSeven said:

I really take the the philosophy of config to heart.

The configs in dev and prod are different.

The person who deploys, does not dump the dev config into prod, he uses a tool to compare to previous versions and verifies new additions.




# December 10, 2004 9:39 AM

lorenh said:

I have written an command line XmlPreprocessor tool that lets me have a single source of truth config file that gets preprocessed at deployment time. The comments are non-invasive, so the development copy stays working for developers right out of source control.

Essentially it lets you do things like this:

<configuration>
<appSettings>
<!-- ifdef ${PRODUCTION} -->
<!-- <add name="someserver" value="s1"/> -->
<!-- endif -->

<!-- ifdef ${TESTING} -->
<!-- <add name="someserver" value="t1"/> -->
<!-- endif -->

<!-- ifdef ${DEV} -->
<add name="someserver" value="t1"/>
<!-- endif -->
</appSetting>
</configuration>

Although there are more ways to define values like on the command line, or in an external environment settings file (that has a tool useable by an operations person). We run the preprocessor as part of our MSI's as a custom action.

I am putting the tool out as open source (if I can ever figure out how to set up CVS access so I can check it into sourceforge) in case you are interested. The project will eventually be located at http://sourceforge.net/projects/xmlpreprocess

Scott Colestock has just released a BizTalk deployment script that uses it (http://www.traceofthought.net/PermaLink,guid,b9c45d34-85c8-449f-b1a6-deafc2d89084.aspx) so you can get the executable from there if you are interested in playing with it.
# December 10, 2004 10:04 AM

AJ said:

We keep different versions for each environment.... dev-web.config, staging-web.config, and prod-web.config. The build/deploy script takes care of renaming the correct one when necessary.
# December 10, 2004 7:50 PM

TrackBack said:

# December 11, 2004 7:36 PM

Jonathan de Halleux said:

You should definitely have a look at Wix, xml based MSI generator.
# December 11, 2004 9:24 PM

Wayne Allen said:

Patterns are moving from a hot topic to assumed knowledge. Although there will always be rediscoveries of current knowledge.
From my point of view patterns are a communication mechanism (i.e. jargon) that lets developers talk in short hand. You shouldn't be setting out to use Observer, rather you discover you have a need for something like Observer so you may change your code to conform to the Observer design or not.
# December 20, 2004 7:03 PM

TrackBack said:

# December 23, 2004 10:17 AM

Charles Chen said:

try

http://www.dofactory.com/Patterns/Patterns.aspx

"Patterns are moving beyond a hot topic to assumed knowedge"

Far from it. When I was at Factiva, a few of my team member's were *really* into design patterns and really worked to implement what I would describe as an elegant OOP solution. On the other hand, the self proclaimed "architect" (by seniority) of the team had no idea what design patterns were. Ugh, it was so frustrating working with the guy; every time we'd have a discussion on the design of some component, he would walk by, inject some bs like he knew it all, and we would do it his way, even though it was clearly *NOT* the best way of doing it. What's worse is that he had no desire to learn about design patterns, good OOP practices, or UML. I don't know how many times I sent the guy links, but he never looked at them. One of the team members even purchased several books including the "Gang of Four" Design Patterns book...he never cracked it open once.

He would hand us these quasi-UML diagrams that used UML notation in incorrect fashion. You can guess how much confusion that caused. Bottom line: design patterns are still a ways off from being "assumed knowledge". Design patterns should be one of the first courses they teach in any college level computer science curriculum. It's entirely absent in some curriculums and, in my case, was relegated to a short blip in one of the highest level CS courses which was not required for the major (meaning not many people in my graduating class were even exposed to it).

Sad, but true.
# December 23, 2004 3:54 PM

css said:

College curriculums are (usually) part of a big beauracracy which move slowly. Patterns are still a new thing to explore in my school's CS program. Of course it would help if some more of the profs had actual real industry experience in the last 5 years. I know one of my clasess (this is a grad level class) is the only class to ever discuss design patterns because I forced the prof to do it. We only spent 2-3 weeks on the topic at the end of the semester which is definately not enough time.
# December 23, 2004 4:04 PM

css said:

# December 23, 2004 4:04 PM

Charles Chen said:

I would also like to add another bullet to the above, which is the point that design patterns are more than just a way of communicating a design, more than just a way of thinking; if you think about it, each pattern is a kind of partial, generic solution to some problem that other's in the industry have encountered in the past.

In that sense, they are a starting point in solving common problems encountered in building software. A familiarity with the standard design patterns can help you avoid pitfalls that you would encounter if you were to try to go about "discovering" them for the first time.

As for college curriculums, I really feel that design patterns should be taught alongside of an introductory programming course (along with software engineering). I've never understood why software engineering (at Rutgers, this was a course focused on _how_ to develop software, how to work in teams, how to manage projects, how to write documentation, etc.) is a senior level elective.
# December 23, 2004 4:21 PM

Wayne Allen said:

OK, in my universe design patterns are assumed knowledge. Certainly I know of developers who have never heard of them, but they aren't what I consider to be "senior".

Design patterns are _a_ general solution to a general problem. My issue with teaching people to code to patterns is that they don't know why they are using the pattern. If you do know when to use a pattern (and more importantly when not to) then patterns are just shorthand for communicating design intent.

Tool support for patterns in IMHO a "bad" thing. I've seen to much code that has every GoF pattern in it because "patterns are good".
# December 23, 2004 5:12 PM

Drew Marsh said:

Avalon UI, which what you'd really be testing (not XAML), has an entire automation API[1].

HTH,
Drew

[1] http://winfx.msdn.microsoft.com/?//winfx.msdn.microsoft.com/winfx/accessibility/overviews/uiaccess_ovw.aspx
# December 24, 2004 1:09 AM

TrackBack said:

# December 28, 2004 8:29 AM

TrackBack said:

# December 28, 2004 1:09 PM

TrackBack said:

# December 28, 2004 10:58 PM

TrackBack said:

# December 30, 2004 11:06 PM

Robert McLaws said:

You might try out my MSBuild Compatibility Toolkit. It lets MSBuild compile to both 1.1 and 1.0.

http://www.interscapeusa.com/Downloads/Download.aspx?File=MSBuildToolkit.msi

Microsoft won't support MSBuild with 1.1. If you want it, this is how it's going to happen... through the community.
# January 1, 2005 4:47 PM

Torkar said:

Well my supervisor and I supervised an thesis work regarding a ruby2cil compiler.

At the moment my supervisor has a prototype working and he and others plan to publish their work in DDJ and .Net Developer's Journal.

Interested? Mail me in that case.
richard dot torkar at htu dot se
# January 2, 2005 8:39 AM

Jonathan de Halleux said:

5. is part of my 2005 'good intentions', I promess.
# January 3, 2005 3:29 AM

kj said:

Yeah I'm looking for the same thing.

KJ
# January 15, 2005 9:52 PM

SBC said:

there was a XML/.Net Workflow engine effort a few months ago -
http://dotnetjunkies.com/WebLog/lamont_harrington/archive/2004/04/27/12225.aspx
# January 15, 2005 10:30 PM

Andrew Stopford said:

Thanks, I was looking at this but it appears to be for SharePoint and uses its hooks. How simple it would be to make it generic I don't know.
# January 15, 2005 10:45 PM

Arun Puri said:

Rockford Lhotka had written a very simple, sort of proof of concept, Rule Engine in VB. It should give you some good ideas. Regarding extensibily, you can always modify it to loading rules from XML source or provide a UI to do that.
# January 16, 2005 4:33 AM

Dave said:

Why don't you just use a java engine? Its kinda like calling a webservice ain't it?
# January 16, 2005 11:55 AM

BradC said:

Link to the article Arun mentioned is here:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnadvnet/html/vbnet12232003.asp

Haven't read it yet, but it looks interesting. I am going to be implementing one of these for an upcoming project, too.
# January 16, 2005 5:44 PM

TrackBack said:

# January 16, 2005 10:14 PM

TrackBack said:

http://dotmark.net/default.aspx
# January 24, 2005 8:15 AM

TrackBack said:

http://internetnews.com/ent-news/article.php/3462271
# January 24, 2005 8:17 AM

TrackBack said:

# January 25, 2005 12:55 PM

TrackBack said:

# January 26, 2005 5:33 AM

TrackBack said:

<p>&lt;ul&gt;&lt;li&gt;Nehéz és hosszú szülés után... ami főleg időhiánynak köszönhető... kérjük azokat, akik szívesen olvasnak (=azt a keveset), hogyha talál vmi érdekeset, akár el is küldheti :)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;ht
# January 27, 2005 12:17 AM

sudhi said:

I have written something in c# for .NEt.
Best part is it is open source.
In a nutshell, it does not use any webservices..
Here is the summary

Create Task Nodes
Create system defined and user defined tasks and assoicate with TaskNodes.
Each task Nodes will have a task container which can be customized for any operations..
Then a Thread will start and execute the tasks (System Defined as well as user defined. in sequence.
If any task has dependencies, then you have to attach a wait task as "Next Task Sequence".
For more details.. Pls. contact ,e

My email is sudhi_bs@yahoo.com
# January 30, 2005 9:15 AM

TrackBack said:

# February 7, 2005 3:30 AM

TrackBack said:

# February 7, 2005 11:26 AM

Jonathan de Halleux said:

Andrew could you reformat the tables ? It is barely readable in my browser...
# February 7, 2005 11:16 PM

Mischa Kroon said:

It was released into the public domain.

Aka do with it what you will license :P
( trough the comments on that post )
# February 8, 2005 8:12 AM

CATALONIA NOT IS SPAIN said:

la gente k hace negocio cn las pulseras deverian meterlas en la trena!
# February 10, 2005 4:44 AM

TrackBack said:

# February 14, 2005 3:09 PM

TrackBack said:

# February 14, 2005 3:23 PM

TrackBack said:

# February 25, 2005 3:38 AM

TrackBack said:

# February 25, 2005 3:39 AM

Chris Szurgot said:

My biggest gripe about Unit Testing ASP.NET is the startup time involved. Because it doesn't precompile the actual aspx pages (just the code-behind), there's a considerably delay for each page. Hopefully, this will get better in Whidbey with the ability to compile everything.
# February 25, 2005 8:56 AM

Alex said:

Have you seen SWExplorerAutomation(http://home.comcast.net/~furmana/SWIEAutomation.htm)? The application allows to create an object model for any Web Application. The object model can be used for writing NUnit tests.
# February 25, 2005 11:55 AM

TrackBack said:

Interesting finds this week
# February 26, 2005 3:36 AM

TrackBack said:

# February 26, 2005 4:17 AM

Howard van Rooijen said:

The application is intrinsically linked to the Netron Project which is Open Source, so I have no problem with it!

I have made a start on the MSBuild version, but my current project is eating up all my time - so I've had to shelve development :(
# February 26, 2005 2:10 PM

Jonathan de Halleux said:

Andrew, would you consider pushing on the CC.Net team to have the template integrated in to CC.NET as part of the default distribution ? ;)
# February 26, 2005 5:50 PM

Carlton Nettleton said:

I am not sure if I follow you here - are your changes going to be incorporated into NUnitASP? Or maybe my question is: can you use NUnitAsp with MbUnit?

# March 1, 2005 7:07 PM

Andrew Stopford said:

The version that sits in CVS is easier to adapt to frameworks other than NUnit. However the changes noted are for versions earlier to this. With that version these changes would have ment branching NUnitASP and so they were not adopted into the code base. However you can easily make the changes your self, the post notes on how you can do this.
# March 3, 2005 7:38 AM

Mark Levison said:

Those are two interesting articles - however both rely on reflection. This appears to make the tests time consuming to write and very fragile -- the smallest rename and the tests break in very mysterious ways. Is the API you mentioned in the previous post likely to be less fragile? Is there anything in the way of an overview?

I've been playing with NUnitForms (http://dotnetjunkies.com/WebLog/mlevison/archive/2004/04/14/11415.aspx) for nearly a year now - while it does the job, its been hard work. Again the resulting tests are very fragile. So fragile I've stopped developing new NUnitForms tests for now.
# March 4, 2005 12:30 PM

Carlton Nettleton said:

OK. I understand now - you wanted to change the NUnitASP source so it was more generic to other frameworks, but that would have caused a branch. It was decided not to do that.

As a result, you checked out your own version of NUnitASP, did all the "find and replaces" on your own copy, compiled it and are using a "custom" version of NUnitASP that uses MbUnit.
# March 4, 2005 12:31 PM

Robert Hurlbut said:

Congratulations -- you ARE famous! :)
# March 18, 2005 10:20 AM

Howard van Rooijen said:

Excellent - great news. I hope the transition goes well.
# March 21, 2005 11:26 AM

Tim Drinkhill said:

Awww bless, Andrew - you're too kind! :-) It was a pleasure working with you.
# March 22, 2005 6:07 PM

Jeffrey Palermo said:

"User interface lead design I would consider in the agile world/RAD world."

Are you a RAD coder and an agile coder? I don't understand how you can make that comment? In agile, if you have a UI mockup but no user stories or specs, how can you develop a system?

As far as RAD goes, there are no rules. Get it out fast, period.

For CMM, the SRS is king. Nothing gets done without it. The SRS can be a big, bloated bunch of no value in the hands of the wrong project manager, or it can be used effectively with agile methodologies if it is trim and to the point and includes the relavent user stories.
# March 28, 2005 1:20 PM

Andrew Stopford said:

"Are you a RAD coder and an agile coder?"

I do them all thanks. However I am commenting on the world of BPUF/CMM.

"In agile, if you have a UI mockup but no user stories or specs"

At what point did I say anything about no stories or specs. I know full well that UI mockup in the world of agile is as important as any other methodology.

# March 29, 2005 12:41 PM

Brennan Stehling said:

I have done mostly .NET development this past year after doing Java for years. I would really like to see some smooth integrations between these two runtimes.

I have found some very "low tech" methods of providing that integration. Many people are focusing on placing the logic into Web Services with WS-I but in real world use I am finding people are using proven technologies, such as a database. You can place data into a table which Java, .NET, Perl, Python or Ruby can access and simply use the database as your communications medium. You could use Web Service communications to signal remote services to trigger events to check the database to make it highly responsive, but you can also use a simple socket and send a specific byte value over the wire to indicate a status which the remote system can handle.

That sort of integration you can get today without WS-I or XML involved at all.

The project I am on now has a mix of classic ASP/VB and Delphi developers along with new ASP.NET 2.0 software in the mix. We are finding stored procedures are an excellent mechanism for these 3 technologies to work well together.
# April 5, 2005 1:45 PM

Jonathan de Halleux said:

He should ;)
# April 9, 2005 1:36 PM

Robert Hurlbut said:

I discovered MbUnit a couple of days ago after much, much prodding from Andrew and it is a fantastic tool! Looking forward to showing it to the group ...
# April 11, 2005 8:29 AM

Duncan said:

Well, I guess he (Peli) decided not go OSS right now according to his latest blog entry (http://blog.dotnetwiki.org/archive/2005/04/15/1568.aspx)

I cross my fingers for MbUnit really going OSS again but the TestDriven.NET license and the page on the TestDriven.NET wiki suggests otherwise :(

# April 17, 2005 12:22 PM

TrackBack said:

# April 22, 2005 12:22 PM

Atul said:

Assert.IstTrue(True)
Its the future :-)
# April 22, 2005 12:28 PM

Steve Willer said:

Great!

Can't wait til we finally get an Assert.IsFalse(), or Assert.Contains()

:-)
# April 22, 2005 9:15 PM

Andrew Stopford said:

While we can help build the framework we can only encourage people to write unit tests correctly.
# April 23, 2005 4:19 PM

Andrea Sansottera said:

Glad to hear that Andrew. I'm going to join the mailing list. If I can, I will help you improving this great tool!
# April 25, 2005 9:37 AM

TrackBack said:

# April 25, 2005 10:55 AM

TrackBack said:

# April 25, 2005 11:08 AM

TrackBack said:

# April 27, 2005 3:28 AM

TrackBack said:

Previously I posted my thoughts around deciding on a unit testing framework. There was some discussion in that posted that voiced concern about the future of MbUnit as Jonathan de Halleux (Peli) had given up working on MbUnit and that...
# April 27, 2005 10:45 AM

Tim said:

# May 1, 2005 4:43 AM

TrackBack said:

# May 5, 2005 2:35 AM

Robert McLaws said:

weblogs.asp.net will be converted over to CommunityServer soon.
# May 5, 2005 1:54 PM

Haacked (aka Phil Haack) said:

Subtext will start off as a single user blog only engine. It's geared towards a different market than Community Server and thus ASP.NET.
# May 5, 2005 4:51 PM

TrackBack said:

Link Dump - 2
# May 5, 2005 7:21 PM

Rich said:

Excellent. A QuickGraph forum or community is much needed like the BGL community. Hopefully I can get my QG questions answered in this MBUnit ML.
# May 13, 2005 10:38 AM

TrackBack said:

# May 17, 2005 7:54 AM

Charlie Poole said:

The page is probably misnamed, since there really is no comparison of features.

The discussion really has to do with somebody's opinion that we should abandon development on NUnit, because MbUnit is so great. An obvious troll, and I fell for it. :-(

One interesting discussion topic to take up somewhere is "Are there intrinsic differences between the two projects and, if so, why?" I'm not sure where to have that discussion though.
# May 22, 2005 7:50 PM

amy said:

Hi Andrew, I looked at your gardening blog but I can't post a comment there because I don't have a blogger account, are you going to change that?
# May 27, 2005 12:27 AM

Andrew said:

Public comments are now enabled :)
# May 27, 2005 3:22 AM

Serge van den Oever [Macaw] said:

But I assume you can install the 1.1 framewortk next to .net 2, and use ccnet on that.
# May 30, 2005 6:36 PM

Vurg said:

I agree. The current TFS is so unreliable. I wouldn't even use it for testing.
# May 30, 2005 6:56 PM

TrackBack said:

# May 31, 2005 12:10 PM

TrackBack said:

# May 31, 2005 12:11 PM

Andrew said:

Hi Alex,

Thanks for the comments. I checked out Parabuild, got a few questions.

1) Does it have community license support for OSS projects?

2) Does it support runnings testing software (unit, functional, coverage etc) and reporting for that software?

3) Does it have a web service or API so it can be expanded, new plugins created, other SC providers or bug trackers plugged in etc?

Cheers

Andrew
# June 1, 2005 3:15 AM

TrackBack said:

# June 3, 2005 5:57 AM

TrackBack said:

# June 3, 2005 6:00 AM

TrackBack said:

# June 3, 2005 6:06 AM

Peter Ibbotson said:

One potential reason is to execute code paths for invalid states easily (makes checking that an invalid value in a switch does throw an exception). Ideally you shouldn't need to do this but it can be quite useful, particularly for regression testing.

You have to remember that the Unit Test stuff in here isn't just designed for TDD. TDD as a development model is pretty good for some things, but I don't think it's very good at the throw random data at an object kind of testing that good testers do.
# June 3, 2005 6:53 AM

Jerrad Anderson said:

Another good reason to test private methods is that sometime they are class helpers. Methods that are used internally to do some sort of repetitive class task. Testing these method then becomes just as important as testing public methods
# June 3, 2005 10:51 AM

TrackBack said:

Visual Studio Team System


Bill Sheldon from InterKnowlogy has an item in the June 3rd edition of...
# June 4, 2005 9:06 PM

TrackBack said:

Visual Studio Team System


Bill Sheldon from InterKnowlogy has an item in the June 3rd edition of...
# June 4, 2005 9:06 PM

TrackBack said:

Visual Studio Team System


Bill Sheldon from InterKnowlogy has an item in the June 3rd edition of...
# June 4, 2005 9:06 PM

TrackBack said:

# June 6, 2005 10:19 PM

Ernie Booth said:

You should check out Xamlon www.xamlon.com it is .NET support for flash. It also is Avalon programming support for flash.
# June 8, 2005 11:03 AM

Scott C. Reynolds said:

Ideally we'd like to support a number of unit test packages...drop me a line and we can discuss.
# June 13, 2005 10:21 AM

TrackBack said:

# June 14, 2005 5:56 PM

Atul Thakor said:

By setting a essential use policy:

Turn off viewstate EVERYWHERE... then as its needed turn it back on. It would have been great if you could set the default viewstate to off at a solution/project level.

To optimize client page loads theres a useful tool you can use which can be found here:

http://www.flesk.net/fleskviewstate.aspx

It woulds by setting the viewstate to an id and actually storing the viewstate at the server.
AT
# June 22, 2005 5:58 AM

Wilco Bauwer said:

Atul: as of 2.0, you can use the (out-of-the-box) session page state persister. See also http://www.wilcob.com/wilco/Default.aspx?NewsID=153.

Atul's approach makes sense to me. Turn viewstate off by default and enable it at places where it is desired (client/server load trade-off, etc.).
# June 22, 2005 8:14 AM

RichB said:

There are two issues, ViewState and Postbacks. ViewState in .Net v2 is very very compact. I'm totally impressed by what the ASP.Net team have done.

Secondly, the issue of Postbacks. It turns out that making every single web request a POST is not nice when it comes to search engines or bookmarks. Therefore, you have to make the judgement of how many GETs and how many POSTs it makes sense for your site to use. Is it any wonder that you won't find a single PostBack web request on the Ask Jeeves website, despite it being written in ASP.Net?

# June 22, 2005 8:56 AM

Atul Thakor said:

Wilco Bauwer: Cheers for the link on State.

Persister sounds like a pretty good idea. Just wondering does it persist over a server farm too? Just wondering if the session server will need to be upped a little bit.
# June 22, 2005 10:00 AM

Brennan Stehling said:

In response to that last comment about when to use POST or GET...

I like to use RewritePath to allow the base URL to provide necessary information. Like if it is a product, in Global.asax I could do...

If HttpContext.Current.Request.Url.AbsolutePath.Contains(WebConfig.ApplicationPath + "Product/") Then
HttpContext.Current.RewritePath("Product.aspx")
End If

With this code I map a pseudo path from /Product to resolve to Product.aspx. From there I can use a regular expression to get the name of the product.

/Product/Chair.aspx

In this case it is Chair, but it could be anything. It still has to end in aspx because that is registered to be processed by IIS as an ASP.NET page.
# June 22, 2005 10:18 AM

Andrew Stopford said: