Navigation

Search

Categories

On this page

TweakDotNet v0.1 Alpha
Atom 0.2 Feed
Back at The Norwegian .Net User Group
An interesting start...
Visual Studio.NET 2003 RTM on MSDN
Instant Messaging
C# samples and BCL type names
Asynchronous Messaging is Dangerous

Archive

Blogroll

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

RSS 2.0 | Atom 1.0 | CDF

Send mail to the author(s) E-mail

Total Posts: 83
This Year: 0
This Month: 0
This Week: 0
Comments: 20

Sign In

# Saturday, August 16, 2003
TweakDotNet v0.1 Alpha
Saturday, August 16, 2003 11:30:43 AM UTC ( Tools )

I’ve opened up a GotDotNet Workspace for a small pet project of mine. TweakDotNet is a configuration utility that lets you change source control providers and configure assembly folders. I know there are tools out there to do these things already, but I wanted a single extensible program where I could add this sort of functionality as ideas popped into my head.

If you need that sort of functionality or simply just want a new tool for your toolbox then give it a try :)

Comments [0] | | # 
# Sunday, August 10, 2003
Atom 0.2 Feed
Sunday, August 10, 2003 4:48:55 PM UTC ( Blog )

This blog has been kind of quiet lately. I’ve been very busy with work, warm weather and trying to steal some time away from my everyday life to catch up on some very interesting tech reading. However my schedule seems to be clearing up a bit, and hopefully this will leave some time for this blog.

I’ve added an experimental atom 0.2 feed to my blog as well as to the newtelligence dasBlog blogging engine. It validates so give it a try :)

Comments [0] | | # 
# Friday, May 30, 2003
Back at The Norwegian .Net User Group
Friday, May 30, 2003 6:21:46 PM UTC ( Architecture | Talks )

I talked about Message Oriented Architectures at the Norwegian .Net User Group (NNUG) on the 27th of May in Oslo. This was my second speaker appearance at NNUG, and this session was a very different experience from my last one. I found it a lot more challenging to talk about architecture than talking about dynamic SQL vs. stored procedures. It’s really hard to decide on what slides and bullet points to include when delivering an introduction to such a wide and exiting topic.

It was fun to share my thoughts on XML and modern messaging, loosely coupled designs and asynchronous messaging. I ended the talk with some slides on GXA and the XML message bus. After the presentation we had a very interesting discussion about some issues with asynchronous designs.

I’ve made the slide deck available here if anyone is interested.

Comments [0] | | # 
# Wednesday, May 7, 2003
An interesting start...
Wednesday, May 7, 2003 3:32:41 PM UTC ( General )

Clemens enlightened the audience at the Norwegian Visual Studio. NET 2003 launch event, SOAP 1.2 became a W3C Proposed Recommendation and Mono got C# Iterators. I guess this makes for an another interesting .NET month :)

Comments [0] | | # 
# Thursday, April 10, 2003
Visual Studio.NET 2003 RTM on MSDN
Thursday, April 10, 2003 5:56:04 PM UTC ( General )

Visual Studio.NET 2003 RTM is available trough MSDN Subscriber Downloads! Go fetch :)

Comments [0] | | # 
# Tuesday, April 8, 2003
Instant Messaging
Tuesday, April 8, 2003 6:03:09 PM UTC ( General )

People are publishing their instant messaging addresses, and I thought I would throw mine onto the pile. You can reach me through Windows/ MSN Messenger on [email protected] I’m available for discussions, questions, rants and laughs, or if you just want to share an online beer (b).

Comments [0] | | # 
# Saturday, April 5, 2003
C# samples and BCL type names
Saturday, April 5, 2003 8:32:27 PM UTC ( General )

Brad Adams asks an interesting question regarding code samples and whether to use the native type names of the programming language or the more generic BCL type names.

My view on this is that once you choose to write an example or a code snippet in a specific programming language for whatever reason; you should adapt all of the features of that language. Both with regard to coding style, custom type names and special constructs (for instance the using statement in C#).

As of today both VB.NET and C# have pretty much the same language features, but if we look to the future we can see that the C# language is evolving (generics, iterators, anonymous methods, partial types). And I assume that VB.NET will evolve to better suit its users much in the same way. And more languages are coming. As the language differences increase it will start to look somewhat unnatural if you ignore its features, as I believe the type keywords to be.

In my experience most C# programmers are using the C# specific keywords and not the BCL types, I know I do. I guess I’m getting a weak pseudo code feeling when I see the use of BCL types in samples.

If you want to write generic examples that appeal to all user groups you should probably use a pseudo language, and I guess that’s not really a tempting options. If you have made a language decision, then use the language in a way that its users are most familiar with. Make the code samples feel natural, and appeal to their sense of best practice.

I guess this is a bit wider than the original questions, but I just wish there were more using statements in C# samples…

Comments [0] | | # 
# Friday, March 28, 2003
Asynchronous Messaging is Dangerous
Friday, March 28, 2003 11:30:36 PM UTC ( Architecture )

Messaging as an application design pattern has been around in enterprise applications for decades, but recently it has been getting a lot of community press as web services are starting to roll out and service oriented architectures are climbing the preferred design ladder.

One of the most interesting aspects of a message oriented programming is the inherent ability to approach an asynchronous design. Yet, for some reason the transition from synchronous operations seem to be very hard. I suspect that it is not necessarily the added technical complexity, but rather the fear of loosing control that is the primary obstacle. Now that we are moving towards factoring our systems into services this is a situation we must learn to master.

Looking at the way business transactions are done today, and the way they have been done for ages, we can easily see that quite a few of them are asynchronous. Either it is a matter of message exchange via regular mail, fax, e-mail or some messaging product like Microsoft BizTalk Server. When for instance a user compiles a set of requests into an order with a procurement system the transaction is committed long before the order has reached the supplier, or even before the order has left the procurement system. In this particular scenario we are used to an asynchronous interaction, and it is indeed the only way.

Keeping in mind the before mentioned example it is strange that we seem to be unable to apply the same pattern within our own applications. I guess to some extent it is because we feel that we are the masters of our own system and that we have the ability and the right to perform synchronous operations, and that we should do so either to uphold consistency or to provide accurate and immediate user responses. Just because we can!

Even though a synchronous design may provide you with the comforting feeling of control, as business processes become more complex and the amount of users increase this will prove to be a troublesome preference. As we start refactoring our applications into services and begin to enjoy the dynamic nature of GXA it will be unreasonable to except a synchronous processing pattern for a variety of different reasons; some concerning processing time, load balancing, transactional boundaries, internal system restrictions and manual processing tasks just to name a few.

I guess what I am saying is that we need to learn to let go, to be able to trust individual part of our own systems as well as external systems and embrace the black box nature of services. It’s important to note that asynchronous messaging is in no way synonymous with unreliable messaging. If we are able to do this then at least the fear of loosing control may fade away, and I guess the immediate user response is a user education problem.

Comments [0] | | #