Wednesday, December 5, 2007
SQL Compare is a must have tool for developers and dba's that regularly use SQL Server.
Thursday, November 8, 2007
A facinating article detailing the different types of rounding is Wikipedia Bankers Rounding. I am a software developer/engineer which explains my use of the term "facinating" to describe an article about rounding numbers.
Tuesday, October 23, 2007
Anyway, when I did that, I started getting GDI+ errors on all my pages containing Infragistics webcharts. With the help of David Negley (Infragistics) we identified that this was a permissions error on the folder the charts were rendered into. It did not initially look like a permissions error (UnauthorizedAccessException) because when I was actively debugging, the charts rendered fine. No errors. What?#@#! During testing I set Full control permissions to the following accounts: Network Service, ASPNET, Everyone, Users, NeighborsDogMilo, etc. Still no dice. The application was configured to Impersonate which to my surprise does not work as expected in Vista/IIS7. As soon as I set Identity Impersonate="False" everything worked great.
Thursday, October 18, 2007
Saturday, August 18, 2007
How do we as a software development company ensure that our software will be successful as defined above?
- We make sure that software (virtual environment) matches the real environment as much as possible. The software process must match the real world conditions as closely as possible. The software process should not just match an ideal workflow, it should match the actual workflow. This provides a clear path for improvement.
- We work directly with the people that will use the software. The software users effectively become software designers. They are much more likely to support and use the software if they are involved in the design. It virtually guarantees success.
- We either learn everything possible about the business process the software will support, or ideally, we participate in the design of the business process itself.
- We keep the software as simple as possible, excluding all features that are not completely necessary.
- We add features and functionality at the pull of the customer. By customer I am referring to the entire user base that will be using the software, not just a customer champion. It is very important that the majority of the users are ready and requesting new functionality to get the maximum benefit. Unnecessary features and functionality is wasteful. It takes valuable time (to the developer) to create, maintain, and test features that are not immediately useful. It adds unnecessary complication for the user when they are presented with more functionality than they need. It just slows the learning curve. Our typical customers use about 85-95% of the features that are present in our software. That is an exceptionally high percentage when compared to typical off-the-shelf software.
Tuesday, May 22, 2007
There are both advantages and disadvantages to using a Vista box for .Net development, however as of this writing, in my opinion, the disadvantages outway the advantages. So what are some of the things to consider before jumping on the Vista bandwagon?
- Are you doing .Net 1.1 development? If yes, I would caution against your tried and true XP environment. Why? Visual Studio 2003 is not "supported" in Vista. Yes I know there are lots of posts about workarounds, hacks, etc to run it in Vista, but really... just because you can doesn't mean you should. If you need to use VS 2003 to support customers or hosting companies that haven't made the jump to 2.0 Framework, you will probably find yourself running XP in a VPC. That doesn't sound so bad, you say. True, as a developer you are probably already familiar with VPC for some reason or another, but there are additional considerations for using a VPC image to do production software development. Among those include infrastructure concerns. Some of the concerns are listed below:
- Backup method (every day you work on anything in the image would flag the whole image for backup, Yikes that eats storage space quickly).
- Installation of common helper software like Visual Source Safe, SQL Server, Excel (for maintaining revision history data and/or local export to Excel testing) on both the VPC and the host. Sure you can have SQL Server set up on just the host, but that brings up additional more advanced VPC network configuration requirements. VPC 2007 provides new functionality to make that easier, but what if you are doing development on a laptop without a private network available? Now you have to configure loopback connections, etc.
- Configuration of the VPC for optimal performance. VPC 2007 appears to have significant performance improvement over 2004, but you are still truncating the available resources of the PC.
- It certainly complicates separating your data from your OS/applications.
- Windows updates on the VPC and the host (hate those pesky please restart now messages). Ever tried to debug an app you are developing that just doesn't seem to work right until after you realize Windows installed updates, but you decided to hold off on the restart until later? After the restart the problem vanished as if by magic.
- Need to do testing on IE 6 when your development VPC has IE 7? Now you need to transfer files from one VPC image to another to test IE 6. Hope you have a lot of Ram or time to transfer the files from the VPC to the host or a storage location, then close that instance and open the next VPC.
- Ever try to do a show and tell at the customer on the projecter using a VPC and the VPC would not go into full screen mode? Yuck.
- Now you need to understand the configuration process for IIS 5, IIS 6, and IIS 7. You will have to anyway, but based on the above, you are probably already spending more time on workarounds than what pays the bills (development).
This sounds like a rant, but it is really intended to help you make a (more) informed decision, before making a transition that is not quickly or easily reversed.
Vista for use at home is a pretty easy decision in my opinion. If you have the hardware to support it and you checked to make sure the software you use runs on it (trust me, don't skip the Vista hardware and software compatibility checks), I would do it. Vista has lots of consumer features (read "looks cool") and parental controls if you have kids. Don't be too surprised if you have to go find and install the latest drivers for your video card if you or your kids play games like WOW or Warcraft III. And kids can be less patient than the CEO regarding unexpected downtime.
Thursday, April 12, 2007
Selection of the method can be difficult because you need to balance the versions of Office the users have available with the importance of specific Excel related formatting and features with performance.
Office XP/2003 users only XML/XSLT :
Using XSLT to create Excel spreadsheets (Office XP/2003 only) is a great simple method that provides a high level of formatting ability such as adding Conditional formatting, styling, etc very easily. Be cautioned that when creating spreasheets using XSLT with more than a couple hundred rows, performance degrades quickly and it can take upwards of several minutes to create the file. Sure the performance can be improved by optimizing the XSLT template, but rendering a couple thousand rows of data will still be frustrating to most users.
Office 97-Office 2007 Office XML:
You can use the new native Office XML format of the Office 2007 products to create the file, but since it is still a relatively new technology, there is not as much documentation available to make quick work of the project. Additionally your user's running Office versions earlier than 2007 will need to be able to download and install the Office 2007 compatibility kit.
Office 97-Office 2007 HTML:
You can create HTML files and output to the stream with a response.ContentType of application/vnd.ms-excel and Excel will open the HTML into Excel. This method provides a good balance of speed, and the ability to format the cells and even add formulas to the cells. This method can be a little confusing to the users when they change some data in the spreadsheet and try to save the file. This is even more advantageous if what you want to export is in the form of a datagrid that you can override the rendering method to output the Datagrid HTML directly to the response stream instead of manually building the HTML table.
Office 95-Office 2007 csv or tsv:
This is the most compatible method, but provides the least flexibility with formatting or other Excel specific functionality.