.NET and 64-bit

June 27th, 2007

If you are moving from 32-bit to Windows 2003 x64, you may find yourself wondering which regasm.exe to use or what the differences are between c:\windows\microsoft.net\framework and c:\windows\microsoft\framework64.

64-bit Windows supports existing 32-bit code using the Windows-on-Windows 64 (WOW64). Heath Stewarts’ Blog does a good job describing the .NET Framework support for 64-bit.

If you need to support legacy or .NET 1.1 applications in IIS, you can enable 32-bit worker processes in IIS by changing a metabase property called Enable32BitAppOnWin64. KB article 894435 describes how to do this, but beware that IIS 6.0 does not support running both modes at the same time. You will need to install the script maps for the appropriate 32-bit or 64-bit version.

It’s also worth noting that running VBS scripts at the command prompt (to troubleshoot legacy ASP/COM code) requires the use of the 32-bit or the 64-bit version of cscript.exe. If you use the wrong one, you may find yourself getting “provider not found” errors when using the Oracle driver - ORAOLEDB.Oracle.1.

32-bit System Root:%SystemRoot%\sysWOW64

32-bit Registry Hive: HKLM\Software\Wow6432Node

64-bit System Root: %SystemRoot%\system32

64-bit Registry Hive: HKLM\Software

Life At Intel: Response to ‘Life At Google-A Microsoft Perspective’

June 27th, 2007

The article about comparing a developer’s life at Google compared to Microsoft caught my interest. I joined Intel as a software developer straight out of college a little over 2 years ago. I work in the Folsom campus which is in the Sacramento area. Reading about Google’s culture catches my interest, except that I don’t really want to live in the Bay Area again (I graduated high school in Pleasanton).

Intel is probably a lot more like Microsoft for software developers. I work in IT supporting existing web applications and writing new ones for HR. All the things you read about working at Intel, the good things at least, are true. The culture is very A-type personality, with many meetings, small greyish blue cubicles and positive focus on career development. The pay has been good considering bonuses, awards and on-call pay. I made $10k more than my base salary last year and I am on track to do the same this year. We don’t get anything for free such as CPUs, food, banners, posters or t-shirts, although I do have a free t-shirt for community involvement.

Here is my Intel perspective…responses to some of the questions to the Google employee:

1. What is the culture really like? How many hours are people actually working? What are the least amount of hours you can work before you are looked down upon?

Many people work very long hours, but some people take advantage of Intel’s policy on work-life balance. In my experience, Intel does a great job of awarding and promoting based on accomplishments. On the other hand, I am on my 4th manager in 2 years and all 4 have liked me. My managers are the opposite of micro-managers and I rarely see them.
Intel did not make it on the Top 100 Companies to Work For this year, but it has in the past.

3. What are the office arrangements like? Do you have an office or cube space?

See Conan’s visit to Intel Headquarters in Santa Clara. In Folsom, my cubicle is big enough to roll my chair in and out and that’s it. Folsom, Santa Clara and Chandler, Arizona all have the same color cubicle walls, it’s disgusting. The CEO even has a cube, except it’s much larger.

4. What is the management structure like (hierarchy)?

Intel is nowhere near like Google. Intel strives to have about 10 direct reports for each manager. At one point, our CIO John Johnson (we call him JJ) was about 30,000 feet in relation to how many managers he was away from me. Intel has recently gone through some downsizing in order to become a more ‘agile‘ company.

5. Do they actually have plans for career development?

Yes they do. There are all sorts of career development resources, but it’s ultimately up to the employee to talk with his/her manager about it.

Employee/Manager frequent one-on-one meetings are engrained in our culture. Check out How Intel Grooms Its Leaders The succession formula is downright revolutionary: It picks CEOs years in advance, without drama or surprise.

6. Who would you recommend Google Intel to? Is it for the college kid or family type, worker bee or innovator?

Intel is definitely a great company to work for if you love the work you do, as long as you are not in support. My coworkers, recent college graduates from University of Arizona and Virginia Tech, generally like their job and are satisfied with management, but they are moving on to pursue post-graduate degrees.

For a recent college graduate, the experience I have gained working on enterprise level applications and learning from senior developers/architects has been tremendous. Test Driven Development, Agile, and Rails are not part of the culture in my department, but some of us are beginning to change that. If you want to do C++, .NET, Java or SAP then Intel is the right place. If you want to create new and exciting web apps, then you should look at Google or startups.

How about a SQL 2005 Dyanamic Mgmt View to help troubleshoot long running queries

June 26th, 2007

It’s been a while since my last post. I have been working on a new vanilla app called Saba, a learning content management system (LCMS) based on Java. Reverse engineering enterprise web app SQL queries is starting to become fun….

In SQL Server 2005, use this Dynamic Management View (DMV) to watch a SPIDs wait times, wait types, sql text, etc based on your database id:

– CURRENT REQUESTS, WAIT TYPE, & QUERY TEXT
select wait_time as ‘wait time’, wait_type as ‘wait type’,
SQLText = (SELECT Text FROM sys.dm_exec_sql_text(er.sql_handle)),*
FROM sys.dm_exec_requests er JOIN sys.dm_exec_sessions es ON er.session_id = es.session_id and database_id=41

Loading this assembly would produce a different grant set

April 25th, 2007

PROBLEM: when debugging a .NET 2.0 web application on Windows XP and IIS 5, you get the following error:

ERROR:
Exception type: FileLoadException
Exception message: Loading this assembly would produce a different grant set from other instances. (Exception from HRESULT: 0×80131401)

RESOLUTION: iisreset fixes the problem

CAUSE: unknown - temporary asp.net files not being cleaned?

COMException - SourceSafeTypeLib.VSSDatabaseClass

April 25th, 2007

I use the following code to make a connection to VSS:

SourceSafeTypeLib.VSSDatabase ssDB = new SourceSafeTypeLib.VSSDatabase();
ssDB.Open(vssServerPath, vssUserName, “”);

Here are some exception details of the runtime error:

((SourceSafeTypeLib.VSSDatabaseClass)(ssDB)).Users’ threw an exception of type System.Runtime.InteropServices.COMException’
{”The SourceSafe database path migtool does not exist. Please select another database.”}
ErrorCode -2147167977
HelpLink “ssusexp.hlp#12009″

A temporary workaround to this problem was to use <identity impersonate=”true”> in my web.config so that the web application and business object dll run as my user account instead of the ASPNET user in Windows XP.

The ideal solution would be to deploy the business object assembly in a COM+ application running under different user credentials, but I am removing this code this week and switching to Team Foundation Source Control.

Additional information about this problem can be found at:
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=62249&SiteID=1
http://blogs.msdn.com/korbyp/archive/2003/06/24/54033.aspx

Unable to start debugger

April 24th, 2007

The following module was built either with optimizations enabled or without debug information: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\myproject\…\my.business.object.dll
To debug this module, change its project build configuration to Debug mode. To Suppress this message, disable the ‘Warn if no user code on launch’ debugger option.

This error came out of nowhere while modifying an existing ASP.NET 2.0 web service application today.

I found a few tips here but I did not try any.

I thought I would try removing the referencing to my.business.object.dll in the web server project and re-add it. That worked.

My guess is that the assembly project dll could not be updated because of VSS source control (it was not checked out).