October 2008 Entries
We recently had a need to support a distributed transaction across web service calls. The natural choice is WCF. We managed to get the transaction support working, but ran into another issue along the way. WCF uses a stricter addressing scheme than ASMX. It only supports one “binding” per sheme. So, you can only have one valid HTTP:// address for your service. This is not the case with IIS or ASMX services, where a web site can listen on multiple IPs via multiple DNS names. ASMX services automatically adjust by returning WSDL that is based on the address...
Today I got tired of typing long SQL table names, so I figured I’d try Red-Gates’s SQL Prompt add-in for SQL Management Studio. I installed the trial version and in a matter of minutes got my first experience of “Intellisense” for SQL. One word: Awesome! The tool is really nice. It integrates very well into the environment, provides a ton of useful information, time saving features, and configuration options. The demo version also includes a feature that formats the SQL code. This is pretty nice too. It makes everything the correct case, does...
I watched the PDC day 1 keynote today with my fellow coworkers. Below are my (unrefined) notes from the session.
Ray Ozzie
Why Cloud?
Current solutions focused on internal apps
Future solutions will assume more external facing solutions
Users expect more social networking features embedded in solutions (ranking, reviews, etc)
Operations teams and Dev teams are finding that they must work more closely together
Some companies have spike / valley traffic patterns
Companies need redundancy as apps move to...
EDA is a special interest of mine and one of the first posts on my blog. It seems that it is a great way to stitch together the services that we create inside the enterprise. Otherwise, you end up with the same tightly-coupled spider web that you had before SOA.
Recently, my enterprise architect forwarded a great article on Event Driven Architecture from The Architect Journal. The article does a great job of explaining the idea and explaining how it fits in an SOA ecosystem. Definitely worth a read!
You can imagine my delight to see that Microsoft is releasing EDA capabilities...
Microsoft’s PDC conference started today. They’ve got a ton of great stuff coming out this year!
While I cannot be there this year, I’ll soak up as much as I can…
http://www.MicrosoftPDC.com/
Oleg Sych has a great set of posts that show how to use the T4 Templating feature that is included in Visual Studio 2008. This is a great technology that makes it really easy to create code generation capabilities inside a project. He goes into the details, but it’s really simple to get started. Add a text file with a “.tt” extension. Add your template to the file. Add logic to the template in your language of choice (VB.NET / C#) Save the template...
J.D. Meier has a ton of great information and advice for improving at work and in life. His “Effectiveness Post Roundup” post gives a nice list, linking to lots of great information. He has information on a variety of topics including: Communication Email Leadership Learning Management Productivity Project Management Teamwork...
I think I found something that fixes the problem with XP’s windows explorer search for cases where you are searching for text inside a file. You may have noticed in the past, that it doesn’t return results that you know it should return. The fix that seems to be working so far is referenced as method #2 in the MS Knowledge Base article KB309173. The article includes the following recommendation: Method 2 To configure Windows XP to search all files no matter what...
I've been using Fiddler for a while and covered some of the basics in a previous post. I just learned that with Fiddler, you can put a breakpoint on network traffic! It’s “F5” for network packet capture!
Basically, you launch Fiddler and tell it to stop once it’s received the request (F11 keyboard shortcut). Then you can look at this request and even change it. When you’re ready, you can tell Fiddler to send the request on to it’s ultimate destination.
But it doesn’t stop there…
You can either tell Fiddler to just continue, or you can tell it to stop again once...
I ran across a useful utility that helps both in explaining and diagnosing Kerberos delegation setup. The utility is really nicely done. You just put it on your web server, and then browse to the page. The good stuff is green and the errors are in red. The great thing is that it has in-line explanations of everything and additional steps to help fix the problem! The utility is specifically targeted at showing whether delegation will work and explaining in detail why it might not. It also allows you to “add a backend” server to the...
A nice VB statement is IF(). It’s equivalent to the C# ?? operator. It works like this: Dim i as integer? = Nothing Console.WriteLine(IF(i, –1)) i = 3 Console.WriteLine(IF(i, –1)) The above will output: -1 3 The IF() statement evaluates the nullable variable. If it is not null, then it will return the value of the variable. Otherwise, it returns the value of the second parameter. The equivalent in C# would be: int? i = null; Console.WriteLine(i ?? -1); ...
As I started looking at LINQ, I’m running into some interesting scenarios regarding nullable boolean values. We all know how SQL allows for a BIT to be 3 values: True, False or NULL. We also know that in SQL, handling NULLs in comparisons requires special attention. For the most part NULL does not equal NULL. The use of LINQ brings this concept and scenario up into the .NET programming world. Now I need to be careful about conditionals that include Nullable(Of Boolean). I won’t repeat all the information here, but please read the following articles that explain this...
If you haven’t used Fiddler, you should check it out. It shows you the HTTP traffic that is flowing over the wire. This can be a huge help when diagnosing issues. One small challenge is using Fiddler to view traffic that stays on the local machine. By default, fiddler cannot see data sent to http://localhost/ or http://127.0.0.1/. This is because the OS doesn’t push this data through the normal networking pipeline. One workaround is to use the name of your machine in the URL. So, if you have a machine named “Machine1”, you could use a URL of...
Nice article listing the top 10 LINQ myths… http://www.albahari.com/nutshell/10linqmyths.aspx
I just stumbled on a CodePlex project called Sculpture. It’s a Visual Studio add-in / package that allows users to create services and applications in a model-drive approach. Model Driven Architecture (MDA) has been a hot topic lately. You can see this in Microsoft’s feature set of VS 2010. They’re baking in many features to “design” systems visually and raise the level of abstraction. Sculpture is pretty new (currently in beta), but the way they’ve implemented it is pretty nice. It’s more than just a code-generator. It appears that you can re-generate the model down into your...