| Matthew's profileSimplifying ComplicationBlogListsNetwork | Help |
|
|
September 04 Visual Studio ASP.NET Development Server - “Internet Explorer cannot display the webpage”I like to work at home, and my set up at home is almost at good as work, but due to less distractions it can be better. When I created a TFS workspace for my home computer (was Vista, now Windows 7), I got the latest source, built it, and all was good… almost. It did not run. We are building an ASP.NET application and when running under the ASP.NET Development Server (WebDev.WebServer.exe) I would get sent to this error page, which told me nothing useful about why it was failing.
This was irritating, but didn’t really bother me because I could work around it quite quickly. I opened the Web properties of the ASP.NET Web Application project (right click the project, select Properties and then the Web tab on the left) and set it to run from the Local IIS (Internet Information Services) Web server. The only issue this had was I must run Visual Studio as an Administrator since I have User Account Control (UAC) enabled, and I don’t get Edit and Continue.
Today however, this won’t do. Today I want to create a new workspace on my home machine to work on multiple unrelated things at the same time. Multiple workspaces is a great productivity boost, from reproducing issues locally in an unchanged environment, to running units tests or other long running processes and working on something else while they are chugging away. I do not want to create multiple virtual directories in IIS, although I could. One of the things I like about the environments I have set up, is that they allow virtually no configuration on any PC you want to use, as long as you have Visual Studio with Team Explorer, you are ready to develop. And our rich wiki requires OneNote and that is all. Both enable also enable working offline and starting new developers or changing PCs is very easy. I thought it might be related to UAC or the firewall, but after a quick look around and I found ASP.NET Developer server not working which lead to IE won't connect to asp.net server which had the solution. Opening up Notepad as Administrator (since I have UAC on) loading the C:\Windows\System32\drivers\etc\hosts file and commenting out the line ::1 localhost, restart only the browser instance that failed and all is working.
Now Visual Studio does not need to run as Administrator, I do not need to configure IIS, I can have Edit and Continue and multiple workspaces all running completely independently.
July 30 Automate, else Enforce otherwise Path of Least ResistanceThese are my Three Principles of Pragmatic Process Establishment. From my experience, these are the only ways to successfully implement a process, no matter how much value it may add, or how simple it may be to follow. If these principles are not followed, neither will the process that has been put in place when it comes to the crunch. AutomateAutomation is the most desired and beneficial option. The benefits are obvious. If a process is automated the value-add from that process is gained, without extra effort from the team. For example, the simple process that developers should run the unit tests. The value is obvious. Errors are found earlier and higher quality code results. However, although this is a simple instruction to follow, running unit tests has blockers for many developers. Firstly, they take a long time to run. Secondly, not all are relevant to you. Thirdly, they may have environmental requirements you cannot or do not want to setup. This simple process also has a simple automation solution: have a continuous integration build server that runs all the tests for the developers on each check-in. All the benefits gained, and everyone will perform the process. Another example is having developers log their time spent working against work items. Having developers do this is controversial (individual developers should never be measured, only the team as a whole), but the value is the schedule becomes very realistic and accurate based on actual burn-down rates. Time tracking is however, time consuming and error-prone. Developers tend to forget to record the time started, time finished and minus interruptions against each work item. The numbers are then fudged voiding all the value of the process. The automation solution utilized has been to use TFS Working On. The tool allows developers to very easily track their time, without wasting their time. The data is providing us with accurate reporting while dog-fooding our BI product. Automated processes also have the benefit of accurate repeatability. If an installation package is fully created each build, the risk involved in following a multiple step process is gone. A typical Standard Operating Procedure (SOP) is usually a long manual process that is error prone, especially when under time pressure and reduces confidence in the end result, compared to an automated solution. Of course the negatives of this process implementation solution is that not everything can be automated, it may not work for all required cases or require ongoing maintenance, or may take a long time to implement. EnforceWhen Automation does not fit enforcement is usually the next best. The reason a process even needs enforcement is that it will most likely not be the easiest thing to do. There is much value in doing it, but not necessarily by the person doing it, or not at that time. The enforcement itself must be a physical enforcement, not a SOP document stating "thou shalt follow". By physical I mean generally technical. A document cannot be uploaded to SharePoint until it has certain properties set. Physical is like ballot papers must be folded, so they don't fit in the slot on the box, until they are folded. In the development world check-in policies are one of the best examples of enforcement. Here you can define your coding standards, code reviewer, check-in comments and work item association for example. Having these particular policies helps maintain higher code quality and readability, easier searching of history, and better reporting. The danger of enforcement is going too far and having people overwhelmed with the number of hoops they have to jump through to get things done, making them feel inefficient and ineffective. Each process enforced must be reviewed occasionally to ensure it is still adding value, and if found to be less value than that of the time it costs, it should be dropped immediately. Path of least resistanceWhen a process cannot be automated or enforced it must be the easiest way to get the task done. If not, it will require someone to be the Sergeant to enforce the process which itself is time consuming, error allowing, inconsistent and demoralizing. Essentially a path of least resistance process is very simple and value is seen clearly. It could however be artificially made the path of least resistance by making the other paths more difficult or less effective. Using a wiki for team collaboration and information is a good thing and seems like a simple enough process to follow. However, most wikis require custom syntax for mark-up and uploading images is a pain. What I have seen happen is email is just used instead, since it allows simple rich text editing, inline images and the information is directly sent out to everyone right away. This is almost an acceptable process over the wiki, but distracting email threads tend to occur, important emails are overlooked and new employees cannot access the information. What we have implemented instead is Microsoft OneNote for our wiki. OneNote is a rich client application that automatically synchronizes all the content locally, is searchable including text in images, can show a list of recent changes if you want to follow what is happening and all sections show who modified it and when (still needs proper versioning though). It has become the easiest way to share information among the team, and is a great resource for new employees. General TipsBegin a new process with as little as possible. Do not start a new form with a large amount of mandatory fields. Grow them as the required. The process will have fewer blockers, less red tape with little perceived value, and get more user buy in. Do not over analyze. Analysis Paralysis is state I now know I use to get stuck in. Do something. Keep it light, nimble and able to be adapted quickly as it matures. Re-evaluate occasionally. Make sure you are getting value out of what the process is requiring people to do. If the cost is high and value is low, either look at how the cost can be reduced through automation or trim some of the fat of the process that is yielding low returns. If people are having trouble with the process, don't blame the people. Focus on smoothing out the bumps that are causing them to fall of the path. Do not provide much documentation of the process. The process needs to be simple to follow and self documenting, i.e. each step points to the next. Documentation tends to be TAGRI and will either stop a process being nimble or quickly become out of date with the process. The best option for documentation if it is required is to have it automatically generated. A good process will perform under pressure. Do not abandon it to save a penny now, because it should save you hundreds later.
Technorati Tags: Software Development Process
July 04 Opera please compete, not complainI really like Opera. When I need to do some browsing, I open Opera. It’s full featured yet not cluttered. Mouse gestures and the render speed make it very fast and efficient to do browse many things at once. However, the gap I find it has in speed and ease of use is closing. I still use Internet Explorer. It is set as my default browser. Opening links from emails or whatever, IE is just far more convenient. It feels lighter for the smaller tasks. And now with IE 8 on Windows 7, pinned web pages and frequently visited have an even lower barrier of entry. I wanted to know, before I install the beta, does Opera 10 make proper use of Windows 7 Jump Lists. How nice would it be if your Speed Dial was in your Jump List? I don’t know whether it is or not, but my problem is when I searched for it I don’t find what I want, and I find myself reading again the garbage about the Opera CEO complaining that Opera isn’t installed by default on Windows but IE is and users should have none, or all browsers installed for choice. What annoys me about this is that it is the OEMs Opera should be pushing to install their stuff. Prebuilt PCs come with plenty of crapware, it would be a pleasant change if some of it was good. Also, they do not complain about Apple including Safari in OS X, or Ubuntu including Firefox, and do not push them to install Opera. The Google Chrome guys made the point with this video that the end user really does not even know what a browser is (I tried this one on my wife, who I have using Opera, and my Mum, both gave the same kind of answer as the people on the video. I found it fascinating, try it on your friends.). So claiming that the end users are the ones that want more choice seems difficult. Multiple browsers installed as a suggest best solution, is by far not the best solution. The end user only cares if it is simple and works. More choices for most users is just more confusing. I am probably being too hash on Opera. More competition is certainly good. Firefox’s popularity gave Microsoft a kick to finally get moving again with updating IE from the dated version 6. Personally I don't understand why Opera is not more popular. The guys at Opera are doing awesome work. Simple features like mouse gestures, speed dial, custom searches and Opera Link make using it quicker and simpler than others. Opera 10 has some nice features like inline spell checker and auto update. I'm unsure how Opera Unite will go. The video show the purpose of Opera Unite is really cool. The feature that I find potentially useful at the moment is the file sharing, for access to my home PC from work, but there are other ways to do that. So as with any platform it will succeed if it is embraced by developers with some killer apps. Until then best of luck to Opera. March 13 XPS Unknown by Microsoft SupportRecently I had to contact Microsoft support. I stated my issue and gave a copy of my print out relating to the issue, as an XPS. This is convenient to do, as after installing .NET 3.0 Framework, which gives you XPS support, the option to print to XPS is available. The reply I got back however, was
This knocked me to the floor! How could Microsoft support not open an XPS! Firstly, as stated on fileinfo.net:
So why is Microsoft support not using Vista? Secondly, when opening an unknown file type, Windows default file type unknown dialog would point them to the the page http://shell.windows.com/fileassoc/0409/xml/redir.asp?EXT=xps, which clearly states what it is and what they need to do.
So I sent an email to the XPS team about my issue, and got very polite replying saying thanks for the interest and feedback, and they are following up the issue with the teams involved. Let’s hope they do. XPS from a .NET developers perspective is just brilliant. Even if the format is not as featured or whatever as PDFs, the ease of creation due to the XAML declaration is just too easy to ignore. Not to mention the Adobe Reader (currently version 9.1 and 41.1MB!) is way too bloated (use Foxit Reader, version 3.0, 3.26MB). The issue holding XPS up is that is it not in wide enough support yet. I have sent them to family and friends and get the same type of reply from them, as I did from Microsoft support. Hopefully with more applications using .NET 3.0 and Windows Vista & 7 adoption on the increase, this will be resolved soon. Then, as a developer, I can say goodbye to painful PDF creation. To make sure you have got all you need for XPS, be sure to install the Microsoft XPS Essentials Pack (7.2MB – 9.0MB, after .NET 3.0 Framework, which you should have anyway!). Although you get viewing and creating abilities with just .NET 3.0, the pack also gives you an IFilter for Windows Vista\Desktop Search and IPreviewHandler for Windows Vista Explorer previews, and Outlook 2007 previewer:
On a positive note, Microsoft support was very good. Very fast responses and when I sent the print out as a PDF my issue was very quickly resolved. Aside: Same issue with internal adoption of Microsoft’s standards. The Inside Windows Live Messenger blog, has flash at the front, instead of Silverlight. I would have thought, since Messenger 9 has sprinkles of WPF, Silverlight would be a no brainer.
February 03 TFS Working On – Version 1.1 ReleasedToday I have set the TFS Working On beta to release for version 1.1. The code has not changed since the end of November 2008 and I have been using it full time along with 9 more developers at my work. This has provided us with excellent data in TFS, that we are now actively reporting our schedule on. There are many more features that I wanted to get in, but since this release has had such a long testing time, with no significant issues, I thought it worthwhile to cut the release. I can now get on with the new features, without the risk of destabilizing this build. Download the release and try it out. If you find any issues or have any feature requests, please log them. I do also prioritize on votes, so be sure to vote on features you want to see in. Below are the usage instructions: TFS Working On is a simple system tray utility that makes it easier to record your time spent on TFS Work Items.
Simply specify your server and project, then search for your Work Item and you are tracking your time.
The icon turns green to notify you that you are tracking your time.
This will record your time in the history of the work item whenever you stop working on the item. To stop working on, double click the icon or select stop from the menu, and the work item is updated and the icon turns red.
You can also specify your estimates against a work item so that you can record how you are going.
Access to the work item is available. With some very simple configuration the estimates can be mapped to the TFS Work Item fields, per work item type, per project. This can be performed by one member of the team, most likely the one responsible for setting up the project, and then stored on the network share for all team members to reference.
Features can be configured here also. Hovering over the help icon will give you details of the settings.
Auto Time Out will automatically stop working on when the computer is idle for the set time, and resume when activity begins again. Nag will remind you when you are not working on anything.
Technorati Tags: TFS Working On,Team Foundation Server January 20 TFS Business Intelligence ReportingIn December, I spoke at the Queensland VSTS User Group about reporting on TFS using the Analysis Services cube that is included on the data tier. At the end of this post I have included links to my slides and some sample reports in Excel 2007 to get you started. Reports are only as good as the data. Using TFS Working On to help accurately report the time spent, or at least remaining hours on your work items has been working very well for my development team. Due to this, the next version should be released shortly, and hopefully continually improved quickly as we are all using it in anger. Before you can use the Excel reports you must change the TFS cube connection:
November 27 Queensland VSTS User Group presentationOn Friday 5th December 2008 I will be presenting at the Queensland VSTS User Group. The abstract of my talk is below:
November 22 Bluetooth Auto Lock Gadget - ReleasedIt has almost been one year since my first post, which was about my Auto Lock Vista Sidebar gadget. However, this gadget was only available on Si-Mi. So today I have released it here and on Windows Live Gallery, here, to hopefully be able to be useful to more people. Usage instructions are as follows:
Technorati Tags: Vista Gadget,Bluetooth November 19 TFS Working On Wins!My entry to the Coolest Team System Gadget Contest has been announced the winner! Many thanks to Mike Azocar for hosting the competition and the judges Martin Woodward and Ed Blankenship. Version 1.1 is hopefully not too far away with many features and improvements slated. You can currently get an early installer of it from CodePlex which contains a User Activity Timeout feature. This automatically stops recording time when you get pulled away from your desk, and starts up again when you are back. Technorati Tags: Team Foundation Server October 29 DevSta Entry - Mobile Memory SpeedRecently, I entered the DevSta {Challenge 2008}. The Challenge Brief was release at 0808 EST on Monday 29 September. This was the start of 200 hours and 8 minutes to develop a Windows Client, Mobile or Silverlight application or a Vista Gadget based on the theme Old School / New Cool. Not only was the time very limited, since I do work full time and have a 3 month old son, but thinking of an idea to fit the theme, that would be exciting and able to be completed in time, was difficult. Asking many people the only responses for ideas I got, was games. That is fine, and there were some good suggestions, but the time constraints meant I would never get these finished. My idea ended up being the simple game of Memory on a Windows Mobile device. The "new cool", was to make it Speed, in which matched pairs would turn back over after a time out. Not a very cool idea I understand, but it is additive to play nonetheless. Below is the description of my submission:
I was able to complete the application within 10 hours and am very happy with the result. It feels like a completed product, although I have had many more suggestions for features to mix up the game further. The winners have been announced and unfortunately my entry is not among them. All in all it was a good experience putting something together so quickly. It has given me more motivation to just get in there and write more applications. Thanks also to Microsoft, the sponsors, the judges and the guys that organised the competition, and congratulations to the winners! I look forward to participating next year. Until then, I have made an installer for Mobile Memory Speed if you would like to give it a go. Note that the Microsoft .NET Compact Framework 3.5 is required. August 31 Team System Gadget Contest - TFS Working OnSince mid June, Mike Azocar has been running a team system gadget contest. Leaving it right up to the last minute, I have just submitted my entry, TFS Working On. TFS Working is a simple system tray utility that makes it easier to record your time spent on TFS Work Items. Immediately after installing, TFS Working On is ready to help you track your time. Simple specify your server and project, then search for your Work Item and you are tracking your time. This will record your time in the history of the work item whenever you stop working on the item. You can also specify your estimates against a work item so that you can record how you are going. With some very simple configuration the estimates can be mapped to the TFS Work Item fields, per work item type, per project. This can be performed by one member of the team, most likely the one responsible for setting up the project, and then stored on the network share for all team members to reference. This will now allow the estimates to automatically update the work item fields, making it easier to record time spent to help with TFS reporting and evidence based scheduling. I will be putting the code up soon on CodePlex. This is just version 1, and I have many features I wish to add.
Update: Project now on CodePlex: http://www.codeplex.com/TFSWorkingOn
Technorati Tags: Team Foundation Server August 19 Demos Happen Here - State FinalsLast night I was fortunate enough to participate in the Queensland State Finals for the Demos Happen {Here} competition. Congratulations to David Apelt who did an excellent demo and will be representing Queensland at the national finals at Tech Ed in Sydney. I would also like to thank Andrew Coates and Roger Lawrence for running the competition and hosting the night. Technorati Tags: Demos Happen Here June 25 Demos Happen HereQueensland VSTS User Group ran it's demo fest last Friday. I participated. Here is my demo's abstract:
Below is the video that was taken on the day. This is also available from the Demo's Happen Here site. I've talked about PowerCommands before, and here is where to get RockScroll. Anthony posted the results of the mornings sessions. Of course I was a little disappointed to be one point behind winning. But the result is also encouraging and I did have a lot of fun. I hope to do some more presentations soon at some upcoming user groups. Thank you to Anthony Borton for putting the morning together, and use of his laptop for my presentation. Thank you to John O'Brien for recording the video.
June 19 Circle of InterestRecently, Steve Nagy nominated me to continue on with the circle of interest started by Paul Stovell stating the technology areas where I will be focusing my efforts. So here it is: Core - Green Non-Core - Blue No More Time - Red There are things that I didn't fit on my list, like Expression Studio, Windows Home Server and Windows Media Center. These are things I tinker with, but it is something that I won't get much time, but I like to be able to get by. For example, I used Expression Design to draw the circle. Other technologies, like Windows Server 2008, SQL Server 2008, IIS 7, and other environmental and system administration tasks I am able to get familiar with, due to my work in WiX, MSI and deployment. But I need to utilise others expertise in these areas, because I don't have time to learn it all myself, but again, like to be able to get by. Another interesting thing, is that putting the items in a graphic, just made things so much easier to see. When I began drafting, I wrote the items in lists, and it just was not clear. I guess that is a testament to Mind Maps... Technorati Tags: Circle of Interest May 17 Must have for any Visual Studio 2008 developerPowerCommands for Visual Studio 2008. Install it. Nothing else really needs to be said, but I want to highlight a few things. This is a free Microsoft built VSX (Visual Studio Extensibility) extension. It adds extremely useful yet simple menu commands that are integrated as if Visual Studio shipped with them already there. I will not go into the detail of the commands there is a comprehensive yet brief document here for that. It is definitely worth the installation and Visual Studio just does not feel the same without it anymore. I have been using version 1 for a couple of months now and have just found version 1.1 was released a month ago which adds a host of new handy features. It gets better, the source code is available. This provides a great example on how to code seamless add-ins to Visual Studio. Before you can build the source you need to install the Visual Studio SDK. I have a list of simple refactoring commands that I intend to write as a learning exercise that will also make common coding tasks easier. If PowerCommands has convinced you that free first party VSX extensions are a good thing, be sure to check out other releases from Microsoft on the Visual Studio Gallery. The Resource Refactoring Tool is another very good must have. Technorati Tags: Visual Studio,VSX April 17 Finding the Assembly locationFinding the location of the running application is a task that is often hit. This is usually required to locate resources relative to the application, such as application settings or deployed files. There are many locations that can be used outside of the assemblies location that are often more appropriate, such as the Users' Application Data directory, temporary directory or a database. One example that I hit recently where those locations just didn't fit the requirement was for an installation deployed configuration file, which is configured by the installer for application wide settings, and was not to be modified once deployed. This method had to be consistent as it would be used in a shared library by WinForms, Web applications and Office Add-ins. Environment.CurrentDirectory, is usually set to the directory the application was started in, so I skipped that and went straight to the method I've used before:
From a WinForms application it returned, as expected:
However, when I was running it in a web application it returned a directory that was not very helpful:
And within an Excel Add-in it returned:
My colleague mentioned another method, so I gave that one a whirl: (Note _Default is the name of a class in the assembly)
Unfortunately it returned the same as above in all instances. After a little searching I found another:
From a WinForm application it returned the same as above. From a Web application hosted by IIS it returned:
Note however, that this also returned a Local Temporary ASP.NET Files location when running under the Visual Studio ASP.NET Development Server, but this is to be expected. From an Excel Add-in it returned:
This method appears to work in WinForm applications, Console applications, Office Add-ins, and Web applications hosted in IIS.
March 02 Vista Media Center cannot consume Media SharingAfter a rebuild of my desktop PC to Windows Vista and a shuffle of my hard drives to give more capacity to my Windows Home Server, all the content for my Vista Media Center had moved. This required a rebuild of my Media Center library but this time I wanted to be smarter about it so that I would not have this same issue later. Windows Home Server has the well promoted Windows Home Server Media Sharing feature which states,
Before I enabled it on my Home Server, due to the potential file copy performance issues that can be aggravated, I decided to test it first hosting from my main desktop PC. Enabling Media Sharing is very easy. Under the library menu of Windows Media Player is Media Sharing... On the Media Center under Networking in Explorer the Media Sharing from desktop is shown as a network device. Clicking on this opens up media player and the shared media library is available as a separate library and works just like the local library. The nice advantage of this is that the you only need to maintain your library is one place and all the updates are immediately available on by the media consuming machine or devices. Opening up Media Center however, the picture was not so bright. Since the shared media is attached in Media Player as another library, the fact the Media Center and Media Player use the same library is void, and the shared media does not come through to Media Center. I found this thread on The Green Button which covers the issue and Noah Spitzer-Williams, Program Manager for Media Center, entered the discussion and cleared things up,
Ok, so no Media Sharing consuming for Media Center. At least they are aware of the issue. Looking closer at the Windows Home Server Media Sharing documentation there is a section on Streaming Music to devices and Media Center is included. The recommendation is to enable the Home Server guest account and add the shared folders to the folder watch list. I already have the Media Center user a user in the Home Server, so I do not need to activate the Guest account. I am cautious that if the user has write access to anything, which is useful to update media information, the current home server corruption bug may appear. Disappointed with Media Center, I then went for a last ditch effort to make use of this Media Sharing. My wife uses exclusively my old laptop. It is running Windows XP Professional with Media Player 11. Immediately the Media Sharing menus did not work the way they did in Vista so I was suspicious. Very quickly I found the Media Sharing FAQ which nicely told me XP could share the media library, but not consume one! What good is that? I can see the usefulness of Media Sharing, but unfortunately at the moment it can only be used if you have an Xbox 360, which if you have a Media Center alternately could be used as a Media Center extender anyway.
February 12 Windows Photo Gallery background color bleeding through picturesI've been running Vista on my development computer for several months now. On the whole I have been quite happy with it. Things have worked well, stability has been equal to XP, speed (once I got more RAM) has been better. One strange thing I had though was that pictures in the Windows Photo Gallery looked a little strange. After a little searching for how to change the background color, I found other people with this symptom describing it as an off color, yellow tint, orange or yellowish tinge, beige, cream colored background which, shows through the picture itself, distorts the colours, or bleeds through pictures. In most situations the problem went away in slide show mode. This was an annoying issue, making me avoid looking at pictures whatsoever in Windows Photo Gallery. This wasn't that much of an issue because I do not use photos or pictures often on my development machine. But before I was going to install Vista on my other computer where I view photos constantly, I needed to ensure that I would not have this issue. The solution is found here. The problem ended up being the incorrect usage of a color profile set by a Windows Update for the monitor driver. This commonly occurs on Samsung monitors. My monitors are Samsung's. The monitors on my other computer are LG's and this issue did not occur. Fortunately, the fix is very simple. Just remove the color profiles for the monitors. Since I have dual screen setup I did one monitor at a time to see if it worked. The article said you must restart your computer. I did not find this the case. Simply restarting Windows Photo Gallery was enough. The difference was quite obvious when I put the picture split across the two screens. Adjusting the other monitor color profile fixed it completely. Below is the color management dialog with the color profile set for the monitor. This needs to be removed. To get to the color management, right click the desktop, select Personalize > Display Settings > Advanced Settings... > Color Management tab > Color Management... Technorati Tags: Windows Photo Gallery,Windows Vista January 24 WiX project type in Visual Studio "Rosario"I am very much looking forward to the release of Visual Studio Rosario. The list of major features is available here. On the list is the integration of WiX. Rob Mensching posted about this back in November. This really validates the work that Rob and his team have done (congratulations to them), and enforces the position many adopted when we took the risk to develop our commercial products' installers with the toolset. Rob mentioned that code changes made by the Visual Studio team would be checked back into the WiX trunk. I was curious about the progress on WiX in Rosario so I downloaded the November CTP VPC. I was a bit disappointed when I saw that at the moment, it is just Votive installed as in Visual Studio 2008, but it is very early days. I am hoping that the Visual Studio team would take WiX in a similar way that they did with FxCop and Code Analysis. I still think it should be called WiX in Visual Studio, but I would like it to be a first grade component, rather than a latecomer tack on. The difference between the integrated version and the sourceforge hosted version should be very simple, WiX project types should be within Other Project Types > Setup and Deployment and different product/upgrade GUID's. Christopher Painter said there is a huge gap in the authoring/designer/editing tools for WiX, which is completely correct. I think Microsoft considering to purchase a current tool and integrate that might be a good way to go, but I think Microsoft already has code, mostly from the current Visual Studio Setup projects, for the critical features that are required. 1. Enabling automatic file references generation based on project outputs. Microsoft already has the ability to add project output for the current Setup Project. Adding XML output of these files outputs should be a comparably small task with a huge gain. With web projects, manually maintaining the file list is the largest complaint I get about WiX from the development team. I know automating this has issues with component rules, but there was talk a while ago that there is a solution that could be implemented using a component catalog database. This should also include the automatic Detected Dependencies. 2. Forms designer The current WPF forms designer is a live dual view, form and XML. Add to the toolbox the Windows Installer form components and modify the XML generation engine. 3. Bootstrapper integration This is already available via the GenerateBootstrapper MSBuild task. Add the interface as in a Setup Project or ClickOnce for configuration and Prerequisite selection. It would be a nice addition to both WiX and VS Setup projects if selections for the bootstrapper prerequisites, also sets the launch conditions on the MSI. 4. File System, Registry, File Types, User Interface Sequence, Custom Actions and Launch Conditions Editors All these editors currently existing could be made to support WiX generation. This would be a huge step forward for WiX becoming mainstream. Since developers are not afraid to modify XML like WiX, it still comes down to the understanding of Windows Installer to do advanced things correctly, whether or not you have nice designers and authoring tools. However, this current set of editors has allowed many developers to author satisfactory installers without needing to know what is going on. As a developer, I understand it is easy for someone of the outside to look in and say, "it should be quick and easy", but that is not often the reality. This is just my wish list. I do realise this is very early stages, and only more good will come of WiX with some full time developers on it. Exciting times ahead, other installation tool companies better watch out! Technorati Tags: WiX,Visual Studio January 19 WiX is Free... almostChristopher Painter recently posted an interesting WiX post, WiX: Forced to use Beta Software, and now has a follow up cleverly titled, Pay No Attention To The Bugs Behind the Curtain. These are very good arguments that have been bought up, but I think there is another aspect that is being slightly overlooked. WiX is free open source software. My experiences with open source projects have generally come with the issues that Christopher has been raising, lack of support, unknown release quality, and unknown version compatibility. If Microsoft and not just their employees, on their own time, built WiX, many of these concerns might go away. Being open source is also its strength. It is completely free, if you have the time. If WiX were a commercial product, it would then have great difficulty competing against the current major MSI authoring tools. If you come across any showstopper bugs, you can fix them yourself, although this can be a time consuming, expensive process. If it does not suit, you can make it. You just need to look at what SharpDevelop did to the WiX MSBuild target for WiX v2 to support fragments in their IDE. The difference is the developer remains in control. Whenever you use a third party product you are depending on them to support and fix any issues you find in a timely manner. This does not always happen and can leave you stranded. Being forced to use Beta software is a bit of an embellishment. I completely agree that as a setup developer you are stuck if you want to use Votive. How do I get around this? I do not use it. WiX v2 is great, Votive v2 is not. As long as you can hit a button and create a ready to ship MSI, this is all that matters. I simply have an empty C# project that contains the list of WiX files. In the MSBuild script for the project, I run the command line tools to generate my installer with WiX. I have the WiX release I used to develop that installer, checked in source control, and referenced by the MSBuild task. You do not need to be concerned about what WiX release you are using as long as it creates the MSI you need for your project. This only becomes an issue when you want to take advantage of new features or you come across a bug that you cannot workaround. Here you have two options. See if it has been fixed in a later release, or fix it yourself. If you use a later release, then you have to go through a complete quality assurance process of your MSI you have created. This is like any commercial product. If you fix it yourself, it will cost you time, but hopefully you will be able to estimate the timeframe that will be required. This is not like any commercial product. For example, we have recently come across a showstopper bug in the .NET Framework 2.0 SP1. This is preventing us moving forward to .NET 3.5. The fix is known, has been raised with Microsoft, but we need to wait for their process to get a fix. (A recent update informs there will not be a hotfix release, because a workaround is available, which may not help to us, because the code is in a 3rd party control.) I am using WiX v2 and do not intend to move to WiX v3 until the schema is stabilised and it is given the go ahead. It would be too expensive for me to develop my installers in v3 and have to modify them heavily to work in later releases of v3. There are already plenty of modifications required to move from v2 to v3, so I only want to have to do this once. Having all the developers focused on v3 is an issue since support for v2 is short. The mailing list alleviates this issue, although many responses are "you can do this in v3", which is of no help. I would like to move to v3 due to great new features and integration with Visual Studio. This is not something that I can do if business depends on it. It was a risk moving to WiX v2 while it still was not finished. I had to choose a weekly release and work with that, until I hit a bug that was fixed in a later weekly release. Now that WiX (Votive specifically) is being developed within the Visual Studio Rosario team hopefully releases will be more supported, higher quality and better version compatibility. It is unlikely that I will move to WiX v3 for any commercial project before a release candidate of Rosario is available. Technorati Tags: WiX,Visual Studio |
|
|