Navigation

Search

Categories

On this page

An interesting start...
Visual Studio.NET 2003 RTM on MSDN
Instant Messaging
C# samples and BCL type names
Asynchronous Messaging is Dangerous
Messaging is hot
A small sign of life
Enterprise Services and Exceptions II

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

# 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] | | # 
# Wednesday, March 26, 2003
Messaging is hot
Wednesday, March 26, 2003 5:40:53 PM UTC ( Architecture )

The blog community is discussing message oriented programming, service oriented architectures, and of course SOAP and RPC. It’s great to see so many smart people seeing the potential of these emerging architectural principles!

And for what it’s worth; I’m in the messaging camp!

Comments [0] | | # 
# Tuesday, March 25, 2003
A small sign of life
Tuesday, March 25, 2003 7:22:19 PM UTC ( General )

It has been some time since my last update. I guess there isn’t much to say except I’ve been really busy trying to combine downhill skiing with a lot of research and work. On top of that I’m squeezing in time to complete a couple of slide decks about message oriented architecture and GXA in dynamic environments.

Comments [0] | | # 
# Saturday, February 22, 2003
Enterprise Services and Exceptions II
Saturday, February 22, 2003 8:37:32 PM UTC ( Enterprise Services )

Tomas agrees with me that the exception irregularities found when using Enterprise Services are indeed interesting, and asks for clues. I have yet to find any, but I would be very surprised if it wasn’t related to the marshalling services.

After doing a series of tests I’ve found that all basic types (integer, string, decimal …) that probably have some optimized marshalling code introduce the exception problem, but as soon as you add a custom type to the method signature, either it is a value or reference type, the expected behavior takes place.

If I find the time I’ll try to delve more thoroughly into the problem area. This situation is really annoying and I have yet to see any documentation or discussion about the problem. Makes you wonder…

Comments [0] | | #