Office 2007 Upgrade Issues and Expression Web Designer#

Ironically, right before I was ready to install the RTM of Office 2007 Professional, I saw a post titled, Office 2007 won't upgrade from a prerelease version of the 2007 Office System - Office 2007 Setup Spelunking from Scott Hanselman about some issues he had had with upgrading Office 2003 to 2007. 

He had some great information about how to uninstall some things from beta versions of office 2007 that do not necessarily appear in the standard Add / Remove programs feature in XP.  He used a tool called MyUnInst which I ended up having to download also because I ran into a similar problem.  But my problem even went further which was very frustrating.  Even after removing anything that had to do with Office 2007 beta, which I never installed on my system anyway's, but found some of the same files Scott did, I still could not install. 

So I thought well, I have this program called Expression Designer Beta 1, maybe that needs to be removed also.  So when I tried to remove it, it said I could not uninstall it because of some language thing.  What?  So I downloaded and reinstalled the Expression Designer Beta 1 and then uninstalled it fine.  Then Office 2007 installed.

Well all that frustration ended up being worth it.  I love the new outlook 2007.  That alone is worth the upgrade for me.  I really do like having feeds integrated in and the integration of ie7 and office for adding feeds could not be more seamless.

Now I doubt many consumers will have the problems I had, but for other early adopters beware of the betas you have installed and make sure to remove them all to get a nice install of Office 2007.  It is definitely worth it.

Monday, November 20, 2006 6:01:46 AM UTC #    Comments [0]  |  Trackback

 

Codesmith 4.0 Released#

This is by far by favorite release of Codesmith.  It has NetTiers as part of it, which is what I use for almost every project I create.  Why would I do such a thing?  Well to save time of course.  I am not trying to sell Codesmith, but if it was my job, I would probably do very well.  You see any time a developer can save time, be more productive and write code the proper way, you feel more empowered.  For years I have known that you can create prototypes very quickly using code generation, but the code generation tools I created were just the way I write code.  This can be good, but also bad. You see, with code generation you can automate creating code that is inherently bad also.  It depends on your style and how you adapt to change.  I have learned many lessons with code gen and have learned that the one that is best is the one that is easiest to change.  NetTiers is not always the best way, but nothing is always the best way.

NetTiers should be use when you need an admin to your application especially.  If your app is constantly changing and you want more dynamic control, then code gen may not be for that project.  Also if you have a team where you want to control the way they access the data layer, then code gen is great because it standardizes the way all of the team accesses data.

Thursday, November 16, 2006 8:35:47 AM UTC #    Comments [2]  |  Trackback

 

Multiple Forms and the Enter Button in ASP.NET 2.0#

If you are using ASP.NET 2.0 and have multiple forms or submit buttons, you may have found out that you can only have one form tag in the master page and are not allowed to have another form tag in the page. 

If you want to have the user press the enter button on the keyboard to cause any of your multiple submit buttons to submit, you have to use the <asp:Panel control and set the DefaultButton property equal to the button id that is in that panel. 

For example, I had an asp:Login control in a master page and also a search form.  When the user wanted to search and hit the enter key, it would try to login.  You could set the DefaultButton property in the master form element, but that is also dangerous if you have other forms throughout your site.  Also if you want to have it work depending on where the user has focus, then you have to use the panel control.

Tuesday, November 07, 2006 8:48:58 AM UTC #    Comments [17]  |  Trackback

 

Microsoft, Novell and Zend Partnerships#

I have to say that I am impressed with Microsoft this week.  They not only partnered with Zend to help PHP to run as fast if not faster on Windows than Linux and the LAMP stack, but  Microsoft also partnered with Novell to support their SuSe Linux distribution as an alternative deployment platform to Windows.  This partnership seems to be mostly about the virtualization and interoperability of the two operating systems along with some sort of coupon for Intellectual Property rights that only lawyers can describe.

Also note that Novell bought the company that started the Mono Project 4 or 5 years ago, which is the open source Linux version of the .NET framework.  I have always thought that Novell bought into the Mono project to eventually partner with Microsoft.  I also think that the only reason Microsoft made .NET open is so that this very moment would happen.  Wow are they smart. 

This is going to get very interesting.  Go to this Webcast of it in case you want to hear it from the horse's mouth.

Friday, November 03, 2006 9:39:00 AM UTC #    Comments [0]  |  Trackback

 

Why use VS 2005 Web Application Projects?#

So I have been using several applications lately that use the Web Application Projects method lately and I have also created some.  One in particular is driving me crazy because the source code is not on the server and I cannot fix the problem unless I find the source code and can compile it.  Well I found a new version and cannot compile it.  Where is the old version?  I wish I just had the source on the server so that I could make a simple modification without having to try to find and recompile the entire project and upload it again. 

The next thing that pops up in my head is when I used to use Visual Studio 2003 and I would be replacing the DLL on the server and the site would go down for that 20 - 30 seconds or how ever long it takes to upload the new DLL.  Sometimes I would have to check that the file made it up there at all.  Sometimes this can cause permission issues, sometimes if the upload does not complete and you do not realize it then your site is down.  Imagine your entire site goes down all night because you did not check to make sure the DLL uploaded completely.   Anyway this does not happen that often, but does at the wrong times it seems.

So far it seems as though WAP might be a bad idea anyway to do this, but it does have it's added benefits.  It is nice to have one library to push up to the server that is compiled and locked down.  This works great for applications that you do not want to have someone else, especially on a multi-hosted server that you do not own, look at or steal your source code.  Also it is great when trying to make a quick upgrade from 1.1 to 2.0.

Here is some great information from ScottGu's blog about when it is good to use the WAP method.  If you are upgrading from VS 2003 and have not realized the benefits of the default asp.net 2.0 model or want to upgrade from .NET 1.1 without too much work, then you will be more comfortable with the WAP method.  You will also own that code and will have to figure out where the specific bugs exist.   I have been in similar situations where I wish the old code I wrote 3-4 years ago was a little bit more dynamic like asp.net 2.0 and PHP.  That way anyone who needs to edit that code in the future can do it from whatever environment they are best suited with and the source code is on the server.  The dynamic compilation method allows you to edit files on the server to fix problems if it comes to needing to do that.  In an ideal world you would never want to do that, but we don't live in an ideal world.  This has been the way it is for fixing poorly written PHP and Perl applications on Linux for years.

At the end of the day, make sure that when you leave that project, that it is easy for the next guy to pick up where you left off.  If that is well documented processes, then good for you.  If you don't have time to do it, then please leave the source on the server where they can modify it when something needs to change.

Friday, November 03, 2006 7:55:13 AM UTC #    Comments [0]  |  Trackback

 

ASP.NET AJAX Beta 1.0 Release#

You can now download the new Atlas or shall I say ASP.NET AJAX.  They have several downloads including the toolkit with a ton of cool controls for asp.net Ajax and also a library for non asp.net users.  Pretty cool stuff. 

You know they say they are going to commit to this for 10 years.  I don't know about you, but anyone who is going to support this type of technology for 10 years is one that you should be getting to know now.  This is not going anywhere and you know Microsoft will always be adding features to this stuff.

 |  | 
Tuesday, October 24, 2006 8:13:16 AM UTC #    Comments [0]  |  Trackback

 

Turning a Linksys WRT54G Router into a Wireless Client Access Point#

I just got Verizon FIOS (15 MB down and 2MB up), fiber to the house!  They actually wired cat5 from the outside to my kitchen from the fiber connection.  So I wanted to have my 3 computers in my office be able to communicate wirelessly to the wireless router that was given to me from Verizon.  I had an old linksys WRT54G and decided to search on hacking this router.  By the way you can buy these for like $50 now if you need one.  I wanted to get my WRT54G running in client mode.  Well what do you know, I pulled up this killer open source software that turns your router into a client access point and a nice firewall.  Unbelievable.  It actually works.  I am going to post how to do it here in case this link goes bad.  Follow the instructions exactly and this will work first time.

Instructions:

1. Download the "wrt54g alchemy firmware" (google this, or go here) version 6rc5 from the Internet (it is the only one compatible with the new models wrt54g V2.2 & wrt54gs V1.1).
2. Upload the firmware to the wrt54g via the "Administration->Firmware Upgrade" option in the router's web interface.
3. Reset the device (press reset button until power led flashes - this could take 20 seconds or more). In the following steps, leave all settings which are not mentioned in the description at their default (only change the ones specifically mentioned in the step).
Note: We will use addresses that end in 128-255 for the wrt54g router and it's attached PCs. To make sure there is no overlap in the addresses assigned by the two routers, we have to make sure that your main router only assign addresses below 128 to its own clients. For example, if your main router address is 192.168.0.1, its DHCP address range could be 192.168.0.50 - 192.168.0.120. Another important note regarding the main router: some routers allow you to disable the broadcast of the SSID, but for this setup to work properly the SSID broadcast MUST BE ENABLED (which is usually the default behavior).
4a. In "Setup::Basic setup" screen, set Internet Connection Type to "Automatic Configuration - DHCP".
4b. Set the local IP to 192.168.0.129, assuming your main router is 192.168.0.x (in general, if your main router is a.b.c.d set the wrt54g to a.b.c.129).
4c. Set the Subnet Mask to 255.255.255.128.
4d. Set the "Gateway" to the IP address of your main router (e.g. 192.168.0.1).
4e. Set the DHCP Server to Enabled, and starting IP Address to something above 129 (e.g. 140).
4f. Save the settings on this page. You should reboot the attached PC, since the subnet mask has changed. Note: from now on you have to use the new local IP you set in step 4b (e.g. http:// 192.168.0.129) to connect to the router from your PC.
5. In "Setup::Advanced Routing" screen, make sure operating mode is "Gateway".
6. In "Wireless::Basic Settings" screen, set Wireless mode to "Client", wireless network mode to "mixed", and SSID to your main wireless router's SSID.
7. In "Wireless::Security" screen, set your WEP/WPA settings which match the main wireless router. You should now be connected to the main wireless router. Note: if you have MAC filtering set up on the main router (which allows only specific clients to connect), then obviously you have to add the client router to the list of allowed clients.
To verify that you've established a connection to the main router, you can check the "Status::Router" screen, which should show an IP Address assigned by the main router (which would end with a number below 128), and the "Status::Wireless" page should show the AP Signal strength together with the mac address of the main router. Also you should now be able to ping the main router and even log in to it (using h ttp://192.168.0.1) from the PC attached to the client router (the wrt54g).
8. In "Security::Firewall" screen, disable firewall protection, as this subnet is already behind your main router's firewall. Also make sure that "Block Anonymous Internet Requests" is unchecked.
9. In "Administration::Management" screen, you can leave all settings at their default. You may want to enable remote management and Telnet or SSHD, especially if you want to be able to log in to the wrt54g from a computer which is not directly attached to it.
10. To enable PCs attached to the main router to be able connect to PCs attached to the wrt54g: Login into the wrt54g using telnet or ssh by running the command "telnet 192.168.0.129" and use same root/passwd as for the web interface. Then type this command (copy it exactly):
# echo 1 > /proc/sys/net/ipv4/conf/`route | grep default | awk '{print $NF}'`/proxy_arp
Now you should be able to ping/telnet to any PC attached to the wrt54g from any PC attached to the main router. Btw, this assumes that the subnet mask of the main router is the default 255.255.255.0.

Important note about the last step : The last step (which is an optional step) allows PCs attached to the main router to be able to connect to PCs attached to the client router, by specyfing the IP of the destination PC, for example "telnet 192.168.0.150". But they are still on two different subnets which do not share their broadcast messages, therefore when browsing PCs on the local network you will not automatically see the PCs attached to the other router. But you can always connect to them by explicitly specyfing the IP. Btw, this step was added after the initial posting of this HOWTO and solves a lot of the issues people discussed later in this thread, so don't worry if you read posts in this thread about problems with communicating between PCs attached to different routers. Also note that this proxy_arp setting is not saved in the WRT54G non-volatile memory like all the other settings, so when the router is rebooted (like after a power outage), it will be cleared and you will need to repeat step 10 to set the proxy_arp back on.
Done !!! That's it !!!!

Friday, October 13, 2006 5:29:09 AM UTC #    Comments [67]  |  Trackback

 

Windows Live Writer Beta Review#

I have to admit, I was skeptical as to what good Live Writer might do.  Why would you just not log in to your blog and add drafts in there?  Well I found out it is very nice to have a free rich text editor that I can save my drafts locally and then preview them on my blog before publishing them.  I am using DasBlog1.9 and Windows Live Writer connects to it right out of the box.  It took literally 10 seconds to connect to my blog.  Pretty cool stuff and it also supports most of the top blog engine out there like:  

You can also write plug-ins to it and can see some examples at the Windows Live Gallery - Writer .  And you can find more info on Windows Live Writer SDK at the live.com blog. 

Here is a picture of Live Writer using Live Writer to add it.  Nice.

Here is a map of where I live, well close to where I live.  Wow, that was easy.  Very cool!

 

This is the first time I have used those features, and I must admit that would have taken much longer in the admin for any blog. 

And now I just downloaded an Event plug-in.  I don't have an event to add right now, but I will soon.  There aren't too many plug-ins available yet, but you know there will be a lot soon.

If you have a blog, try this out.  It has saved me some time and made blogging much more enjoyable.

Tuesday, October 10, 2006 8:19:00 AM UTC #    Comments [0]  |  Trackback

 

I am now a Microsoft Visual Developer ASP.NET MVP#

I was just awarded Microsoft's MVP award this week and am very grateful to many people for helping to make that happen.  This is a great honor and feels good that the work that i have done in the community for the last 12 months is acknoledged. I really have enjoyed speaking at Code Camps and look forward to doing much more next year.   I have learned so much this last year from others in the community.

It all started when I went to my first DotNet Users Group meeting here in Tampa and met Ambrose.  We started to chat about things and I asked him about how one would speak at a Code Camp.  Well Tampa code Camp 2005 was coming up in 3 weeks and he forwarded my info to Joe Healy who has since helped me to become a confident speaker at Code Camps since last year.  Joe has definitely influenced me a lot and has introduced me to people I would not have met otherwise.  I also want to thank Shawn Burke, who has helped me be part of a very smart software team on codeplex with the Atlas Control Toolkit.  They really have taught me what it's like to be part of project bigger than just your own.

I also want to thank Keith Kabza, who is president of the DotNet Users Group here in Tampa.  Working with him has taught me some very useful tips and tricks for C# development.  We helped build a Code Camp starter Kit that has yet to be put into beta, but it has worked for at least Tampa Code Camp last July.  If there was only more time in a day.

Now that I have control over my blog using DasBlog, I plan on blogging a lot more and adding some quick demos to this site, so keep in touch and subscribe to my feed.

Monday, October 09, 2006 12:43:45 AM UTC #    Comments [1]  |  Trackback

 

 

All content © 2010, Jim Zimmerman
Book
New Book
Links to me
On this page
Sponsors
Calendar
<November 2006>
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789
Archives
Tags
Blogroll OPML
Technorati
Favorite Links
Disclaimer

Powered by: newtelligence dasBlog 1.9.6264.0

The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

Send mail to the author(s) E-mail