Monday, November 03, 2003

I Have Installed Visual StudioNET 2003 Many Times On Windows Server 2003 Yet This Time Around I Get A

I have installed Visual Studio.NET 2003 many times on Windows Server 2003 yet this time around I get a bizarre error.  I run setup, throw in the prerequisite disk when requested, and then get this error:

"Please go to the control panel to install and configure system components."

Visual Studio.NET setup then just disappears.  No log file that I can find, nothing.  Server 2003 is already in the Application role so IIS and ASP.NET 1.1 are already installed.  My suspicion is that some windows update patch has messed something up that prevents VS.NET 2003 from installing. If that is the case I would have thought I would find something in the knowledgebase or in google. However after spending a couple hours on this I was not able to find an install problem that manifested for other folks in this fashion.

Any thoughts? 

Monday, November 03, 2003 2:28:44 PM (Pacific Standard Time, UTC-08:00)   #      Comments [3]  
 
Warningnbsp This Is A Rantnbsp I Bought A New IBM Thinkpad T40 Back In March Of 2003nbsp I Ha

Warning.  This is a rant.  I bought a new IBM Thinkpad T40 back in March of 2003.  I have been a Thinkpad proponent for a long time having gone through 4 or five iterations of the line.  I was moving from a a21p to the T40p.  I hated giving up the 1600x1200 to go to 1400x1050 but was willing to overlook that IBM was moving away from the high resolution screens now that everyone else was introducing them.  I really needed something faster, lighter that allowed me to  add more than 512MB of memory.

I got the new laptop and I loved it….

For about 3 weeks.  It then started freezing incessantly.  After sending it to IBM twice as well as having someone look at it locally at a “Platinum IBM Repair Center” twice I was at my wits end.  The problem persisted.  Finally IBM stepped up after three months and said they were going to replace the machine!  I was so excited.  I was cursing IBM after waiting through three months with a dead laptop but I felt, finally!  My allegiance to IBM is paying off.  I then dealt with another 5 months without a laptop as I went through hell dealing with the person who “owned” my problem.  What a crock!  I couldn’t get the guy to call me back, respond to my mail, etc.  I finally got the laptop 10/30/03 while I was at the PDC.  I was so excited to come home and find the exact same machine I ordered 8 months ago.  No they didn’t ship me the latest version the T41.  No they didn’t throw in some extra memory.  Bupkis for being without my laptop for 8 months!

At first I thought I was the only one.  I have now spoken with two other folks whose experiences almost mirror mine!  Not as long in terms of time but still pretty crazy.  If you are thinking about buying another Thinkpad, run don’t walk to another vendor.  I have pretty much sworn off them from this point on.

I have never been a Toshiba fan after several lame duck Tecras in the past but will be looking for other options the next time around.  Perhaps Dell.

Monday, November 03, 2003 2:17:31 PM (Pacific Standard Time, UTC-08:00)   #      Comments [4]  
 

  Sunday, November 02, 2003

Compact Framework Configuration Settings

We have been doing quite a bit of Compact Framework development as of late and the lack of a configuration class was driving us nuts.  So here is an implementation of a configuration class that you can use and play with.  Please post any issues you find to the comments here.  Let me know if you think this is worthy of starting a GotDotNet workspace around.

VergentSoftware.CompactFramework.Utilities.Setup.msi (119 KB)

VergentSoftware.CompactFramework.Utilities.Setup.Source.msi (95 KB)

Enjoy!

Sunday, November 02, 2003 10:54:28 AM (Pacific Standard Time, UTC-08:00)   #      Comments [0]  
 

  Thursday, October 30, 2003

Mobile Application Development and Distribution: Innovation and Opportunity I am blogging this panel for the Microsoft Regional Directory program Thursday, October 30, 2003 10:39:36 AM (Pacific Standard Time, UTC-08:00)   #      Comments [2]  
 

  Wednesday, October 29, 2003

Windows Forms Performance Tips

Shawn Burke showed up a bit late but proceeded to give a number of great tips/tricks for improving windows forms performance.

One tip that I found fairly interesting was to use premultiplied bitmaps when doing drawing.  To do this you load your image, then create a new image using 32bppPArgb  for the format.  Draw your image into this image using the Graphics class, dispose of the original image and then use the new image from them on for an approximately 6x increase in drawing performance!  Very, very cool.

Wednesday, October 29, 2003 1:10:11 PM (Pacific Standard Time, UTC-08:00)   #      Comments [0]  
 
ClickOnce Deployment

ClickOnce Deployment has finally been shown to the masses so I can talk about it.  I am quite excited about click once since it alleviates a number of the problems we have experienced with HREF-exe type applications in 1.1.

Click Once is a feature integrated into VS.NET that will take your executable, package it up, deploy it to a web server, and give you a test page like the current ASMX model.

You can make packages for online or online/offline applications.  Online applications don't change any system state so they will be run without any prompting but be very limited in what they can do at install time.  They must be capable of being rolled back.  Online/offline applications can do things like add things to the start menu, etc. but as a result the user is prompted if they want to install the application.

Privilege elevation is handled by prompting the user to allow privileges to be elevated.  There are several administrative things that admins can do to prevent users from elevating privileges or to sign an application so it gets it's privileges elevated automatically based on a one time deployment of the root key used to sign the application.

There is also an object model that allows your application to query if a new version is available and if it is download it in the background and use it on next startup.

The longhorn version will support BITS.

All in all very, very cool stuff!

Wednesday, October 29, 2003 8:20:45 AM (Pacific Standard Time, UTC-08:00)   #      Comments [0]  
 

  Monday, October 27, 2003

Finally Made It!

I finally made it to the PDC!  Took a side trip through Portland but made it here around noon.  Missed the keynote but picked up the Avalon overview.  In a word, wow!  If you have been envious of OSX as a windows user this is for you.  The stuff they are doing is amazing and goes beyond what I have seen in Jaguar.  Cool stuff.

Monday, October 27, 2003 4:50:59 PM (Pacific Standard Time, UTC-08:00)   #      Comments [0]  
 

  Saturday, October 25, 2003

Switched to dasBlog

Well I did it!  I went ahead and switched to dasBlog.  Radio finally drove me to the brink and I needed some new software in time for the PDC.  I must admit I really wished it supported hosting multiple blogs in a more flexible fashion but it is pretty amazing how easy the transfer was from Radio.  I looked at .Text but most folks I know are running dasBlog and they claimed the Radio transition was fairly painless.  More posts coming next week from the PDC...

Saturday, October 25, 2003 11:38:52 AM (Pacific Standard Time, UTC-08:00)   #      Comments [0]  
 

  Wednesday, September 24, 2003

More Compact Framework Thoughts

More Compact Framework Thoughts

Wow!  Two posts in one day.  Considering the dearth of posts from this blog lately that is pretty amazing. After my earlier rant I remember something I brought up with the CF team at Microsoft.

When I have heard the limitations of CF described in the past by MS folks it has been in the context of, "We are running on smaller, memory constrained devices so we built a smaller version of the framework that fits in just 2 MB."  That is all well and good but I am starting to do work for Windows CE based devices with 128MB and 256MB and I really want the full power of the framework.  While it is impressive that they were able to compress the amount of goodness that they did into 2 MB but what about developers for which there is abundant memory available?  Why didn't the team take more of a factored approach such that if I was willing to give them another 2MB I could get remoting or <insert your favorite dropped feature here>?

This really brings to life the promise of only needing to know how to develop for one platform, .NET.  I don't need to know a long laundry list of limitations of things that I can't do on WindowsCE.  Instead I have to be willing to step up and trade RAM for features.  I know, I know not all features will be available on WindowsCE because of limitations of the OS.  I am fine with that.  The list of things removed due to OS limitations is going to be much shorter than the current list of things that were removed.  IOW the delta between desktop and compact will narrow but not necessarily close the gap.

Wednesday, September 24, 2003 2:26:51 AM (Pacific Standard Time, UTC-08:00)   #      Comments [0]  
 
Compact Framework Rant

Compact Framework Rant

I admit it.  I have been doing a considerable amount of Compact Framework programming over the last couple of months. First off let me say I think Compact Framework hold great potential.  That being said I think it has a long way to go.

I recently build two applications using the compact framework.  One was a kiosk style application that had to communicate with other controller programs running on the kiosk.  This communication ended up happening using windows messages.  Luckily the MessageWindow class provides a way to receive messages however it is the only hWnd exposed so the applications I was communicating with had to do a FindWindow() on my forms to find their hWnds.  Ridiculous considering the hWnd is exposed off each windows form in the desktop framework.  Next problem we hit was that come to find out Windows CE has a 32MB process size limit!  Of course we were precaching a number of graphics, etc and even attempting to play video which meant that we hit this limit pretty quickly.  In a day when devices had 2-4 MB on average a 32MB process limit probably made sense.  Today however is it ridiculously small.  Next roadblock.  We needed to play animated GIFs.  They play in PocketIE so we figured no problem.  Wrong!  The animated gif support was ripped from the bitmap class in Compact Framework!  This of course meant that we needed to write our own animated GIF class.  Things were going fine until we were handling the dispose types for an animated GIF and realized that the lack of a way to XOR bitmaps was going to make the process very, very difficult.  Granted this is a limitation in the desktop framework as well as the compact framework.  Argghh!

Next we move on over to writing a PocketPC application where things go a bit smoother but we still find some frustrations.  It is intended to be a wireless application used as a specialized tool for a customer service person.  Sort of like the folks you see at the Hertz car rental places.  It talks to a backend database as well as a wireless 802.11b printer.  Of course the middle tier that is in place uses remoting which, you guessed it, the compact framework lacks.  So we wrapped access to the remoted interface with a web service.  Things are going along well once we get around this roadblock, until we test on the actual device.  We realize that we have written an application that has no way to bring up the SIP (soft input panel) on the device. Not a problem we say.  We can just place the SIP control on our form and use it to display the SIP.  Whoa!  We don't have a menu bar on our form and for some bizzarro reason the SIP will only work on forms with a menu bar!  So we figure out how to make the API call and draw a few lines to show a fully functional SIP on our form.

If you are interested here is how you show the SIP:

  [System.Runtime.InteropServices.DllImport("coredll.dll")]
  private static extern bool SipShowIM(int dwFlag);

To show it:

    SipShowIM(1);

To hide it:

    SipShowIM(0);

There is a bottom line missing on the SIP since it counts on the menu bar to draw it.  So add a:

e.Graphics.DrawLine(new Pen(Color.Black), 0, 294, 240, 294);

In the forms paint when the SIP is showing and you are all set.

Wednesday, September 24, 2003 12:39:37 AM (Pacific Standard Time, UTC-08:00)   #      Comments [0]  
 


Administration
Sign In