Welcome to the .NET Developers Blog
This is an aggregated blog of .NET developers.
If you have a blog about Microsoft, .NET, XAML, WPF, Silverlight, etc... development
add your blog here.
Email me for any suggestions and feedback.
Minh T. Nguyen
|
Visual Studio .NET Tips and Tricks
|
|
|
SQL SERVER 2008 RTM RELEASED (Finally)!
Marlon Ribunal - 8/7/2008 9:55 AM PST
|
|
[Verbatim from Microsoft]
SQL Server is a comprehensive data platform that is secure, reliable, and scalable for your mission critical applications, while providing rich services for any data type. SQL Server simplifies the management of your data platform with innovative policy based infrastructure, while reducing development complexity with data abstraction, and integration with .NET Framework and [...]
|
Using Windows Server as a desktop
Huw Collingbourne - 8/7/2008 9:42 AM PST
|
I've come to the conclusion that I really do have strong views about Vista: I loathe the thing. As a software developer, I find there is just so much of Vista that gets in the way... I recently had something of a revelation: I understood why some people might actually like Linux on the desktop. Now, don't get me wrong - I don't really have any very strong views on operating systems (unlike cars where it simply has to be BMW, M5, black and with go-faster-stripes. Sad, really). What I do (...)
|
Paying programmers: are bonuses bad and what to do about it?
gojko - 8/7/2008 9:41 AM PST
|
|
Marry Poppendieck talked today at Agile 2008 about compensation schemes, attacking the traditional model of bonuses and appraisals. Pointing out that a traditional bonus system undermines teamwork and implies that most people will not do their best without additional financial incentives, she suggested focusing on more immediate and non-financial motivation techniques.
Quoting Jeffrey Pfeiffer’s testimony to [...]
|
WCF - Common pitfalls - Asp.Net integration
Yves goeleven - 8/7/2008 4:29 AM PST
|
|
Because the WCF programming model supports that many communication types, it also has an enormous amount of configuration options and associated hidden traps. This series of posts is about all of those pitfalls that I've ran into so far…
|
Konferenzen H2 2008
Damir Tomicic - 8/7/2008 1:44 AM PST
|
|
Eine Auswahl kommender technologischer Events und Konferenzen, fett hervorgehoben
mit meiner Teilnahme ... :-)
-
IFA 2008, Berlin, 29. August - 3. September (http://www.ifa-berlin.de/)
-
ICE 2008, Lingen, 30. August (http://www.ice-lingen.de/)
-
Java Konferenz, München, 12. September (http://www.javaconference.com/)
-
Herbstkampus, Nürnberg, 15.-18. September (http://www.herbstcampus.de/)
-
BASTA!, Mainz, 22.-26. September (http://it-republik.de/dotnet/basta/)
-
DevReach, Sofia, Bulgaria, 13.-14. Oktober (http://www.devreach.com/)
-
ADC, Frankenthal, 13.-14. Oktober (http://www.adc08.de/)
-
do it Konferenz, Stuttgart, 13.-14. Oktober (http://www.doit-kongress.de/)
-
CMConf/SubConf 2008, München, 14.-16. Oktober (http://www.heise.de/events)
-
.NET Open Space, Leipzig, 18.-19. Oktober (http://netopenspace.de/)
-
Microsoft PDC, Los Angeles, USA, 27.-30. Oktober (http://www.microsoft.com/pdc)
-
TechEd EMEA, Barcelona, Spanien, 10.-14. November (http://www.microsoft.com/emea/teched2008/developer)
-
Xtopia, Berlin, 16.-18. November (http://www.xtopia-konferenz.de/)
-
Technical Summmit, Berlin, 19.-21. November (http://www.technical-summit.de/)
|
August Lounge Update
James Avery - 8/6/2008 6:51 PM PST
|
|
July was another great month for The Lounge, we picked up some new advertisers in Gurock Software (the makers of SmartInspect) and Lite Accounting. We also added some great new members to The Lounge.
I announced Scott joining The Lounge a couple weeks ago, I am thrilled to have in as a member and having him in the Web Publishers Room has vastly increased the advertiser value for that room.
Nikhil Kothari has to be one of the longest blogging members of the ASP.NET team and he continues to write insightful posts on a frequent basis. He makes another great addition to the room.
The Small Publishers Room also continues to grow with some great new additions.
Jeff Blankenburg is a Developer Evangelist for Microsoft and increases my already high percentage of Great Lakes region (it's not called that anymore is it?) bloggers.
I recently discovered Ryan Farley's blog but I was very impressed with the writing and the history of great content (since 2003!).
Shawn Wildermuth is very well known in the .NET community, is an INETA speaker, and has been writing some great posts about NHibernate and Silverlight.
The month ahead will be very eventful for The Lounge, I plan on launching the RSS room in the next week, announce some new podcasts, and also plan on launching another all new room!
|
New and Notable 256
Sam Gentile - 8/6/2008 3:52 PM PST
|
|
ASP.NET/Silverlight IronRuby/DLR/IronPython NHibernate Unit Tests/TDD Visual Studio/Software Development Tools CLR SaaS Technorati Tags: New and Notable, ASP.NET AJAX, Silverlight, IronRuby, IronPython, NHibernate, Unit Tests, TDD, Visual Studio 2008 SP1 Beta, CLR, SaaS
|
A Cool IE HTML/CSS Trick - Conditional Comments
David Truxall - 8/6/2008 3:11 PM PST
|
|
I am continually humbled by the amount of stuff I don't know in the areas where I generally feel good about my level of knowledge.... Today I learned about conditional comments. This is an IE specific trick, but in my case I'm trying to have different CSS for a certain class so it behaves properly in IE6 and standards compliant browsers. The problem is using .png files that have transparency. IE6 totally botches .png files. But it turns out there is an IE-specific filter (progid:DXImageTransform) that causes IE6 to render a .png properly. An older article at A List Apart describes how to use it, along with conditional comments. Conditional comments allow IE to display the content between the comments based on an expression. In this case, the expression is testing for the browser version:
So this code snipped would cause IE 6 to load this custom stylesheet. IE7 interprets the comment correctly and doesn't load the stylesheet. Other browsers interpret this as a comment and ignore it. Very nice.
|
Users can see all team projects after upgrading from TFS 2005 to 2008
VSTSBlog (by Neno Loje) - 8/6/2008 1:44 PM PST
|
- Make sure all team project members are added to the appropriate groups (Project Administrators, Contributors and Readers).
- For every team project remove the "[Server]\Team Foundation Valid Users" group from the team project settings (Team Project Settings » Securty).
 - Done. Regular members now should only see team projects where they have permissions.
Enjoy!
|
SQL Server 2008 RTM
Mehran Nikoo - 8/6/2008 1:18 PM PST
|
|
SQL Server 2008 was released to manufacturing earlier today and the MSDN and TechNet subscribers can now download the following editions from the subscribers area:
-
Developer (x86, x64, ia64)
-
Enterprise (x86, x64, ia64)
-
Standard (x86, x64)
-
Web (x86, x64)
-
Workgroup (x86, x64)
|
Error: Unrecognized option 'async' specified
Christoph Wille - 8/5/2008 10:32 AM PST
|
|
The MSDN article Synchronous
and Asynchronous Operations explains what options are available to you when using
WCF. It even tells me that svcutil.exe has an /async switch. Great!
Now, back to my current home turf, Compact Framework. There is netCFsvcutil.exe, that
comes with the Compact Framework Power Toys 3.5. Guess what? That option isn't available
in this scaled down rendition of svcutil.
Once again Compact Framework makes it so much harder to work productively, and here's
why:
http://msdn.microsoft.com/en-us/library/2e08f6yc.aspx
Quote: Asynchronous delegates, specifically the BeginInvoke and EndInvoke methods,
are not supported in the .NET Compact Framework.
Back to the drawing board and the thread pool (most likely).
|
Batch remove Zone.Identity information from downloaded files and scripts
Oisin Grehan - 8/5/2008 9:06 AM PST
|
As we all [should] know, running scripts downloaded from the Internet is a risky business.
But sometimes you know exactly where they came from, and you trust the source. The
problem arrives when you’re on a server without any of your familiar utilities and
you’ve just downloaded a zip of several ps1 scripts. Unzipping the zip via the windows
built-in zip handler in explorer will preserve the Zone.Identifier information for
the extracted files. This means that even if you have your Execution Policy set to
RemoteSigned (which most people seem to have – it’s a sensible balance), the now “local”
scripts are treated as remote and they will not run. Ideally you should “unblock”
the zip file before extracting the files; all extracted files are then also
“unblocked.” Unblocking a file is as simple as right-clicking it in Explorer and choosing
“Properties.” (see figure 1).
Now, sometimes you don’t have this luxury. Either someone else downloaded/extracted
the files or you are logged in remotely via PowerShell Remoting/WINRM
for example. Thankfully, the annoyingly talented Mark Russinovich has written a great
little tool for stripping NTFS ADS (alternate
data streams – where the zone indentifier information is attached to a regular file)
called streams.exe.
He’s also made the tool easily available via a UNC path: \\live.sysinternals.com\tools\streams.exe Usage
is simple: just start in the root directory of the extracted scripts and run: streams
–s –d *.ps1 ; the –s means traverse subdirectories and –d instructs it to delete any
alternate data streams from the files.
|
Why is DotNetNuke better than Kentico?
Chris Hammond - 8/5/2008 8:33 AM PST
|
Why is DotNetNuke better than Kentico CMS? Reason #1, it's free! DNN is free and easy to configure, Kentico CMS costs $1500 for the enterprise license, and that cost is going up to $9999 on September 1st! For more reasons why you should be using DotNetNuke...(read more)
|
SharePoint Error: Some or all identity references could not be translated
Colt Kwong - 8/5/2008 2:46 AM PST
|
|
I create numerous SharePoint sites with the same port number in my virtual machine frequently during envisioning / POC phrase, and I face an error when I try to re-create the same Web app in SharePoint today: Some or all identity references could not be translated. The result from google is not so helpful but I finally figure out that the problem is caused by an old app pool in IIS after reading this post - I need to clean up the content db, virtual directory and app pool properly next time.
|
ASP.NET Themes Don’t Like IE8’s X-UA-Compatible header; Neither Do I
Jon Galloway - 8/5/2008 1:07 AM PST
|
Summary I ran into an interesting issue a few months ago with IE8 support on sites which use ASP.NET Themes. I’ll talk about the issue and how to fix it. More important, though, I’ll talk about how this small example fits into the whole IE8 / X-UA-Compatible thing, and why I think the way that turned out was bad for everyone. The Problem: That First Meta Tag If you’ve got a page that doesn’t render correctly in IE8’s new standards mode, you can add a meta tag to the page which requests that IE8 render it in IE7 mode. The problem I ran into would have been comical if the timing had been better: - IE8 only recognizes the X-UA-Compatible header if it’s the first META tag, appearing immediately after the <HEAD> tag
- The ASP.NET Theme system writes out the theme CSS reference immediately after the <HEAD> tag
Of course, the reason I know that is that I needed to emulate IE7 on a page which was using ASP.NET themes. Video.Show was released in November 2007 and was tested on Firefox 2, Safari 3, and Internet Explorer 7. We built a demo for the MIX 08 conference which ran on the a Pre-Beta 1 release of IE8. Back then, you had to opt-in to super-standards mode, so our IE7 capable markup did just fine. Here’s how that page looked:  A little while after that, IE8 Beta 1 came out. One of the significant changes in Beta 1 was that IE8 would render your page in standards mode unless you specifically opted out. That was important to us because our client on that project wanted to be able to use the Video.Show demo we’d built for him, and it didn’t work well in IE8 Beta 1. Here’s how it looked:  The most obvious problem here is that the page background was messed up. The page structure is a bit complex due to the expanding banner at the top, and IE8 calculated that the page header extended to the bottom of the expanding banner area. Also, the navigation links below the header were showing in a vertical line rather than floating left in a horizontal row. We had a very short turn around time for this project, and the IE8 display quirks weren’t well documented at that time, so tried just adding that fancy new X-UA-Compatible header: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<meta http-equiv="X-UA-Compatible" content="IE=7" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="shortcut icon" href="favicon.ico" />
<script type="text/javascript" src="Javascript/silverlight.js"></script>
<title>Video.Show</title>
</head>
<body>[...]</body></html>
However, here's what was actually rendered:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1">
<link href="App_Themes/Default/DefaultStyle.css" type="text/css" rel="stylesheet" />
<meta http-equiv="X-UA-Compatible" content="IE=7" />
content="IE=7" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="shortcut icon" href="favicon.ico" /><link rel="stylesheet" href="css/lookDefault4.css" type="text/css" />
<script type="text/javascript" src="Javascript/silverlight.js"></script>
<title>Video.Show</title>
</head>
<body>[...]</body></html>
IE8 didn’t recognize the X-UA-Compatible header because the ASP.NET Themes engine always writes out the CSS link as the element in the head section.
How I Fixed It: A Custom Response Header in IIS7
Since I was setting this up in a virtual machine for demo purposes, I could easily make server changes. Here’s how I added that header in IIS7:

The IE blog has links to instructions on setting those headers various servers: IIS7.0, IIS6.0, Apache 2.2, Apache 2.0, Apache 1.3. So, yeah, it works, but it’s not perfect. For one, it sets that header for all pages in the site. But, more concerning – what would I have done if I wasn’t able to make changes to the server configuration? If you’re running under IIS7, you can tweak headers with a change to your web.config file:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<add name="X-UA-Compatible" value="IE=EmulateIE7">
</customHeaders>
</httpProtocol>
<system.webServer>
</configuration>
Otherwise, you can code your way around it with an HTTP Module or something, but the point is that the solution’s so simple anymore. All that brought me back to the X-UA-Compatible conversation from several months ago.
X-UA-Compatible: One Developer’s History
One of the big changes in IE8 is a major shift in the method of selecting the rendering mode for a particular file. The DOCTYPE switch was born a decade ago, and made sense at the time – it used an opt-in model which assumed that a page with a valid DOCTYPE knew what it was doing, so browsers would render the page according to the latest browser standards. It seemed to make sense, but there was trouble in DOCTYPE paradise:
Unfortunately, two key factors, working in concert, have made the DOCTYPE unsustainable as a switch for standards mode:
- Egged on by A List Apart and The Web Standards Project, well-intentioned developers of authoring tools began inserting valid, complete
DOCTYPEs into the markup their tools generated; and
- IE6’s rendering behavior was not updated for five years, leading many developers to assume its rendering was both accurate and unlikely to change.
And so, the IE8 team came up with what most folks would agree is a good idea: opting-in to “standards mode” itself is meaningless unless you specify which standards you’re opting-in to. Targeting “web standards” is great as a platonic ideal, but in reality our pages are rendered by specific browser versions. It’s a lot more practical to opt in to a specific browser version’s rendering mode than a mythical and fluid “standards” mode.
But, then, there was question: since IE8 will be entering a world already populated by billions of web pages written over the past dozen or more years, how should it handle them? Thus began a comedy of errors.
Proving That All Of Us Is Dumber Than Any Of Us
How it’s remembered:
The IE team first announced that it would require pages to opt-in to IE8’s “super-duper standards mode”. The web development community loudly protested, and the IE team changed the default behavior so that pages would be rendered in “super-duper standards mode” by default. We all won!
Here’s what actually happened:
- The IE team had it right the first time. There are billions of webpages out there which won’t work well in IE8 without changes.
- The IE team forgot that the web development community, by and large, hates them so much that… I don’t even know how to describe it.
- The web development community reacted to IE team’s announcement the way they react to just about (except improved CSS support) that the IE team announces. They protested loudly.
- The IE team decided to switch it up a bit and did what the web development community was telling them they wanted, and quickly to boot.
- We all lost, but almost no one’s admitting to it.
I know this is all old news – Joel Spolsky wrote about this in March. His post was way too long, but the basic idea was that an idealistic solution isn’t all that useful if people do install the browser because their favorite sites won’t work in it. A lot of people disagreed, using two different arguments:
- “It’s not easy, but we have to try to do the right thing” – I agree with the intentions, but I’m cynical here. Users still stalling on the upgrade from IE6 to IE7, even though IE7 was a relatively minor upgrade.
- “IE is irrelevant – These responses were popular in the web standards community, but were themselves irrelevant. Okay, all your friends are running Firefox 3 on their Macbook Air’s, but the browser stats show that IE is still the dominant browser by a large margin. Unfortunate facts are still facts. If you’re hoping that real people will actually use your sites, you have to care about how IE8 works.
Fix Your Pages! Also, Let Them Eat Cake!
I’ve heard a lot of people say that this is a good time for us all to just get this over with and move on. After all, you’ve got several options:
- Fix your pages. While I’ve been working with IE8 Beta 1, this is a little easier said than done – there are several IE8 regression bugs which work fine in IE7 and below but fail in IE8. Sure, it’s beta 1, but my point is that this isn’t simply a case of “good HTML / CSS = perfect display in IE8” just yet. I’ve spent several days chasing down several of these bugs, for instance. But, sure, providing that IE8 is really good on CSS 2.1 support, this is the ideal solution. The underlying assumption is annoying, though – the idea is that IE8 is now the authoritative CSS reference. As of now, that’s not at all the case. So, in some cases my HTML and CSS are correct, work in FF2/3 and IE7 – so why should I have to “fix” them to render in IE8? My point is that the argument this pain is worthwhile because we’re “doing the right thing for the web” is only valid if we really are improving the HTML/CSS quality of the web.
- Use the X-UA-Compatible header in your pages. This is listed as the standard response when people list cases where it’s not so easy to fix your HTML. The example above shows a case where a pretty new website built on a pretty modern web framework didn’t support that easily. Forget the case where the HTML is bundled in old CDROM’s or help files written out by installers – a web application built on ASP.NET 3.5 less than a year ago had problems with that approach.
- Write the headers some other way. Sure, it was possible in my case, but depending on the site, the skill level of the developers working on the site and their access to the server configuration, this could add up to an unacceptable amount of time. Unacceptable as in “Sorry, we don’t support or recommend IE8 – please use IE7. Thanks!”
Granted, I’m testing with IE8 Beta 1 and IE8 Beta 2 is due out soon, so this situation could improve the situation for actively developed websites. But the operation of the X-UA-Compatible header seems to be pretty much set, and I don’t think it works well with the majority of the billions of HTML documents we’ve already created.

|
Social Networks OMG
Adron Hall - 8/4/2008 10:20 PM PST
|
Oh... My... God... WTF? I'm sitting here on the floor of the new apartment, Joleen working on a large scale multi-page poster type thing that will adorn the wall and I'm digging through various social medium online. The nature of this social medium is rather overwhelming these days and really makes me ponder what we can achieve through increased social interaction via the computer. As is obvious, with myspace, Facebook, and the others (I remember when Friendster...(read more)
|
Terracotta
ALTERthought - 8/4/2008 8:14 AM PST
|
|
I looked at Terracotta over the last few weeks. My goals were to understand what it does and how it could be helpful to us in the future. To achieve these goals, while evaluating it I always related it back to past projects to look at how terracotta could have been helpful those.
What I found [...]
|
WPF is Different - The XAML Way of Doing Things
Johan Danforth - 8/4/2008 5:52 AM PST
|
|
Wow, I've finally spent some time looking at Silverlight and WPF samples, and it sure takes a while to wrap your head around "The XAML Way of Doing Things". It's so easy to fall back to the WinForms coding style when you're supposed to do it The XAML Way. For example, if you have an options dialog with user settings for your app - DON'T do it the old WinForms way, but look at Configuration with Databinding (from Scott Hanselman's adventure with BabySmash). The code behind you need is really minimal if you do it the right way. There are also a gazillion ways to handle control events declaratively within the XAML itself, without having to create a code behind event and code things up from there. Take a look at WPF Styles and Triggers and learn it! Especially if you want to create nice looking effects, animations and such, but styles and triggers are useful for more than bells and whistles. For many things related to the UI there | |