newtelligence poweredRSS 2.0
# Friday, February 08, 2008

Scott Hanselman today announced the Asp.Net Wiki (Beta).

"The idea is that folks spend a lot of time trolling the blogs, googling live-searching for answers to common "How To" questions. There's piles of fantastic community-created and MSFT-created content out there, but if it's not found by a search engine and the right combination of keywords, it's often lost."

I think it's a great idea and I hope to see other product groups at Microsoft follow suit. Since it's linked off http://www.asp.net, and a Microsoft entity, I see it quickly becoming the one stop shop for Asp.Net information.

If you jump on and contribute to the wiki right now, you could be a top contributor, at least for a couple of days.

Friday, February 08, 2008 11:34:45 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology | Programming | Review For Future Projects
# Wednesday, February 06, 2008

Jeff Atwood wrote about databases under version control in a recent blog posting. In it he advocates that you should put the goal of getting your database into source control above things such as what tools and processes to us as per the Agile Manifesto.

We have met this goal, and our database is under version control, however, I feel it has become a cumbersome and time consuming process (although my I have a lot shorter time working with the process then the other developers so maybe I'm missing some tricks). I have been thinking of ways to improve upon the process.

Also in Jeff's post, are links to a series of 5 posts by K. Scott Allen in which he explains how he does database version control. Some of his points match up with what I have been thinking, some don't. That, in and of itself further proves a my idea that no process is perfect, and what works for someone may not work exactly for you.

K Scott Allen's Posts:

  1. Three rules for database work
  2. The Baseline
  3. Change Scripts
  4. Views, Stored Procedures and the Like
  5. Branching and Merging

I recommend that interested parties take the time to read the posts, as what follows is a brief overview.

  • 3 rules for databases: Never use a shared database for development work, Always have a single schema source (source control), Always version your database.
  • Create a baseline script. This is a single script for your tables. Your derived objects (stored procedures, views, etc).
  • Change scripts are used to update the baseline, and should include an insert statement into your custom version table.
  • Derived objects (stored procedures, views), are updated, by making changes to the individual file corresponding to the objects. These changes are checked into source control. All derived objects are dropped and recreated from the script files. If you add a new object, create a new file, if you need to delete an object, delete the file. Once thing I don't understand, is how are these "versions" related to the schema version? One of the points made is that you should be able to create a database from any point in time. This process covers the schema well, but you would have to hunt thru source control to find the collection of files that relate to that version. Perhaps this is a necessary trade off.
  • Branching and merging depend on how you branch your application. The example given, is that when it gets close to a release, functionality is frozen and a branch is made for the release. Only bug fixes go into the branch and new features for the next version go into the main trunk. For the database, this means a new baseline script is created for the new version, which is a point in time snapshot of the database at the time of the branch. If there are changes in the branch, those changes are duplicated as a change script in the main trunk. You just have to be careful that the main trunk script is written in a way that it checks to see if the branch script has been run. (See the actual post for a better explanation).

Finally, I somehow got to this post by Phil Haack, in which he describes how using the information_schema views (see his post, and Books Online for a listing of what you can get from the views) will help future proof your scripts, because as Phil points out, Microsoft makes no guarantees on the schemas of the system tables.

As I posted before, I'm now heading up our embedded device project, so I won't be working on our uber back-end database as much. While we have a need for a database in the embedded project, I'm strongly considering using DB for Objects (db4o). While there is a bit of a learning curve, it looks pretty easy to use.

My plan is to use db4o to start out and then re-evaluate our database needs at the end of the project, hopefully saving the time it takes to manage a data access layer, scripts, etc. This would also make a cost benefit analysis of db4o easier, as I can simply estimate the time it would take to implement a traditional RDBMS and compare that to the cost of db4o.

Wednesday, February 06, 2008 4:56:16 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Sql
# Tuesday, February 05, 2008

One of the goals I am working on at work, is a revitalization of our use of Team Foundation server, starting with a new project that I am leading. While we have always used TFS, I do not think that we are taking full advantage of its features. Part of the reason I think, is because there is so much good information that you really have to take some time to understand what it's telling you.

In the past week, I re-discovered the Process Guidance section of the Share Point site which is created when you create a new TFS project. I have been going thru each tab and sub section trying to gain a better understanding for how to use, and interpret the data.

One particular section that I have over looked in the past, is the Index tab. As it sounds, the index tab displays a list of all the topics covered in the process guidance (and then some), broken down by group (Workstreams, Activities, Work Items, Work Products, Reports, Queries and How To's). I have been looking into the CMMI template, so you may not have all of what is listed below.

Workstreams

From the process guidance: "Workstreams are groups of activities that flow logically together and are often associated with a particular role."

Activities

Activities are the specific individual activities that make up a workstream.

Work Items

From the process guidance: "A work item is a database record which Visual Studio Team Foundation uses to track the assignment and state of work. The MSF for CMMI Process Improvement process defines seven work items to assign and track work. These seven work items are task, change request, risk, review, requirements, bug, and issue."

Work Products

From the process guidance: "Work products are files, documents, specifications, binaries, parts, and other tangible items that are necessary to complete activities and build the product. Many times the creation of one work product is dependent on the completion of another work product."

Most of the definitions given here, relate to the document templates which are created with each new SharePoint site. For the CMMI template, you need to click on Documents from the quick launch menu, then general documents to find the templates.

Reports

From the process guidance: "Project health charts aggregate metrics from work items, source control, test results, and builds. They answer questions about the actual state of your project at many scales: for the days within an iteration, iterations within a project, or projects with in a program. The questions are also relevant for many kinds of work items such as scenarios, quality of service requirements, tasks, and bugs."

Each report gets a description, as well as healthy and unhealthy examples. This is great reading material for management to help them to understand how they can take advantage of TFS (It's not just for developers).

Queries

This index lists the pre-defined queries and that they are designed to show. Again, a good way to show management how they can keep an eye on the project without relying exclusively on MS Project (it's not a bad tool, but it's not the only tool).

How To's

From the process guidance: "How To's present information on how to accomplish tasks related to activities and workstreams"

There are 8 how to's that cover enough to get you started with the template. I wish they had more how to's and examples, and even a complete project walk thru, but I guess they needed to leave something for partners and book writers.

Speaking of books, I am currently reading Software Engineering with Microsoft Visual Studio Team System, which is a book on how to use TFS in the context of Project Management. I have also seen this book, Visual Studio Team System: Better Software Development for Agile Teams, which looks very interesting as it has a book length case study. Unfortunately I can really only read 1 book at a time, but I think I will defiantly be looking to buy this book soon.

Look for more posts of TFS and possibly project management in the future.

Tuesday, February 05, 2008 12:27:16 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# Sunday, February 03, 2008

While surfing the web, I found some interesting news, that there was a leaked beta for my cell phone, a HTC Mogul (HTC Titan, PPC 6800) which finally enables the GPS and EDVO-Rev A. I decided to look into this more, as well as give it a try.

** WARNING: I assume no responsibility if you brick your phone. Be sure to spend at least 1 HOUR reading thru all of the directions (in the forums) before proceeding. Also, BE SURE to back up your PST settings **

Resources:

I was having issues getting the ROM and Radio updates to go over active sync, but I found these instructions on how to flash the ROM from an SD Card.

  1. First open the ROM or Radio exe file with WinRar. There will be a .nbh file. Extract that and rename it to TITAIMG.nbh
  2. Next format a microSD card with FAT 32 (you will most likely have to do this as most are FAT16 by default). Copy the file TITAIMG.nbh to the root of the sd card with a card reader.
  3. Finally place sdcard in device and reset into bootloader mode (press and hold the power button and the camera button while pushing the reset button). The flash will proceed from the SD card and it should work fine.
    1. The 3 color boot loader screen showed briefly (you should see that it's version 2.4), then it went into a gray screen with the words "Loading...".
    2. It should say loading for a couple of seconds, then some other stuff comes up and then it should say TITAIMG.nbh at the top with some other stuff below, and finally, Press power button to start update image.
    3. After the upgrade has completed, it will say complete in blue letters. Perform a soft reset to reboot the phone with the new ROM.
  4. After the ROM update the phone will reboot and "hang" at the Sprint Screen (if you have a sprint phone). You need to reset the phone and go into the boot loader (see step 3) to flash the radio.

I also tried this using a different computer and sync cable, and had much better results then the first computer I tried (which led me to use the SD card version). 

At this point I had my phone flashed and it was booting into Windows Mobile. However, I was unable to use it except as a PDA as some of the required settings were missing. I went into the PST (##PST#) menu and reset the MSID and MDN values. You will need your MSL key in order to edit the settings (search for a program called GetSCP or GeSPC on xda-developers).

I started setting my phone up, and ran into issues getting my phone to sync over the air with our exchange server. Turns out, I was using the wrong URL. It had been such a long time since I first set the phone up that the start of the URL should have been mobil.X.com instead of webmail.x.com. After that issue was resolved, I had no other problems. The rest of my email accounts are all setup, custom programs, etc.

So, what about the GPS. All I can say is, IT WORKS! I was able to acquire a location fix on Google Maps, as well as a free program called VisualGPSce which has a couple of screens which remind of of traditional screens found on older GPS devices. In doing some additional research I found this thread on XDA-Dev which talks about GPS software and issues with the Titan. Most of the commercial software like TomTom, you need an app like Google maps, or VisualGPSce to "start" the GPS. There are several links to launcher applications, which enable the GPS and keep it running in the background.

So about this time, I went back to the post with DCD's ROM, and saw he had released a 2.1 version. So I was off and running again, updating my ROM, then reinstalling everything. His 2.1 version is running Windows Mobile 6.1 as an added bonus, removes the extra crap sprint installs, and has a nice black theme/skin, including a new skin for the dialer (a new skin is a must for the dialer, as you can actually press the buttons with your thumb). He has another ROM in the works which will add more optimizations based on WM 6.1

I've started keeping all the applications I run on my MicroSD card so I can share them with other people (like my Dad who just bought a Mogul yesterday). This is what I currently have installed:

Stuff that I am considering

  • Point UI (if they are able to extend the UI to more screens)
  • Astro GPS Launcher (If I get a commercial GPS Package)
  • Commercial GPS software
  • HTC Home Customizer

The driving factor in the commercial GPS software will be if I can find an acceptable car mounting kit. I would like to find one which has integrated power, such as this one. I do NOT like the idea of using the FM transmitter, as it eliminates my ability to listen to music at the same time. They do sell one with an amplified speaker, but I don't know if they have one specific for the mogul.

This brings up an interesting question, can I get the turn by turn directions, and music from the Mogul thru my Stereo? I wanted to get the Blue Tooth adapter for my Alpine Deck so I could have hands free phone calls. I wonder if I could pipe the turn by turn directions, and possibly music from the Mogul to the deck via Blue Tooth. I've seen a 6GB micro SD card on Amazon for around $50, and heard of the Mogul being able to support at least an 8GB card. I only have an 8GB MP3 player hooked up right now, and I'm not even using all of that space. So I could get most of my favorite music, 1-1.5GB of map data and still have around 1GB free for files. Defiantly something I will have to look into. I would be one step closer to the all in one device I have been waiting for.

Sunday, February 03, 2008 2:19:02 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# Wednesday, January 30, 2008

I will be attending the first annual Microsoft RFID Solution Days, February 18-21 in Washington. I'm hoping to make it for the Reception on Sunday but I'm still waiting for my travel itinerary to be finalized by the Travel Agency. I'm also on the wait list for the hands on training and hope to get into that as well.

Wednesday, January 30, 2008 8:38:49 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
BizTalk
# Tuesday, January 29, 2008

ScottGu's latest blog post talks about the VS 2008 web deployment project and the MS Web Deployment Team blog, which deals with a web deployment tool (not to be confused with the VS 2008 project).

I had to do a little digging, but found this white paper on MSDN which explains the web deployment project for 2005. From the abstract:

Visual Studio 2005 provides deployment support through its Copy Web Site and Publish Web Site features. While these are ideal for many scenarios, there are other, more advanced scenarios where developers need the following capabilities:

  • More control over assembly naming and output.
  • Custom pre-processing and post-processing for the build.
  • The ability to exclude, add, and transform files and directories during builds.
  • The ability to modify the Web.config file to change database connection strings, application settings, or the URLs for Web references, depending on the build configuration. (For example, it might be necessary to use different values for development, test, staging, and release settings).

this white paper describes a solution to these advanced scenarios and introduces a new feature called Web Deployment Projects for Visual Studio 2005.

The web deployment tool on the other hand, is a stand alone tool (currently just a command line utility called msdeply.exe), "that provides support for deploying, synchronizing and migrating IIS 6.0 and 7.0."

It supports moving configuration, content, SSL certificates and other types of data associated with a web server. You can choose to sync a single site or the entire web server. Because we know that one tool can never ‘automagically’ guess what your application relies on, we’ve tried to be pretty flexible and powerful – you can customize exactly what you want to sync using a manifest file. You can also skip sites or other objects, or you can perform regular expression replacements during a sync (like changing the home directory on the destination machine).

 

These two new tools will help make deployment a lot easier and enable a more agile environment. Unfortunately my project assignment at work has changed, so I won't be getting direct exposure to these.

Tuesday, January 29, 2008 10:57:29 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Programming | Tools
# Saturday, January 26, 2008

Wouldn't you know, by TFS warehouse is not updating. It seems like I have had this problem before, but today, it was a new error.

Today, I added 2 test projects to TFS, one for the MSF Agile (4.2) and one for MSF CMMI (4.2) to reference while I read Software Engineering with Microsoft Visual Studio Team System (thanks Larry). I'm not even through chapter one and I am hooked on this book. Chapter 1 was talking about the Reaming Work report, and I wanted to view it for the 2 test sites.

I was able to view the report for the MSF Agile site, but not the CMMI site. A quick look at the reports via the Reporting Services web management UI, and I had a pretty good guess that the warehouse was not updating because there were no iterations or areas listed for those report parameters.

I went checked out the TfsWarehouse.dbo._WarehouseConfig table, and saw that, yes, the warehouse stopped updating a couple of hours ago. My attempts to manually run the update using the web services interface via IE didn't seem to work. Remembering some of my previous troubleshooting, I went to the event log and found several errors, starting around the time that I created the CMMI project.

Event Type:    Error
Event Source:    TFS Warehouse
Event Category:    None
Event ID:    3000
Date:        1/25/2008
Time:        6:20:57 PM
User:        N/A
Computer:    [TFSServer]
Description:
TF53010: The following error has occurred in a Team Foundation component or extension:
Date (UTC): 1/26/2008 12:20:57 AM
Machine: DATFSP100
Application Domain: /LM/W3SVC/1977639788/Root/Warehouse-4-128456993088380000
Assembly: Microsoft.TeamFoundation.Warehouse, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; v2.0.50727
Process Details:
  Process Name: w3wp
  Process Id: 8512
  Thread Id: 9920
  Account name: [ServiceAccount]

Detailed Message: The pending configuration changes were not successfully added to the cube because of the following error: System.Security.Principal.IdentityNotMappedException: Some or all identity references could not be translated.
   at System.Security.Principal.NTAccount.Translate(IdentityReferenceCollection sourceAccounts, Type targetType, Boolean forceSuccess)
   at System.Security.Principal.NTAccount.Translate(Type targetType)
   at Microsoft.TeamFoundation.Warehouse.OlapCreator.AddAccountToRole(Role role, String accountName, Boolean needToUpdate)
   at Microsoft.TeamFoundation.Warehouse.OlapCreator.SetupAnalysisDatabase(Server server, String analysisDBName, String accessUser, String[] dataReaderAccounts)
   at Microsoft.TeamFoundation.Warehouse.OlapCreator.CreateOlap(WarehouseConfig whConf, String accessUser, String[] dataReaderAccounts, Boolean dropDB, Boolean processCube)
   at Microsoft.TeamFoundation.Warehouse.AdapterScheduler.EnsureCubeIsUpToDate()

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

So started my Google Search. I came across a post on the MSDN forums which had some code to check to see if account translation is working on the network, and it appears to be (I got a SID value back for both my tfs service and tfs reports account)

 

   1: using System;
   2: using System.IO;
   3: using System.Text;
   4: using System.Xml;
   5: using System.Xml.Serialization;
   6: using System.Threading;
   7: using System.Security.Principal;
   8:  
   9:  
  10: namespace CheckAccountForTfs
  11: {
  12:  public class Program
  13:  {
  14:   public static void Main(string[] args)
  15:   {
  16:    try
  17:    {
  18:     string accountName = args[0];
  19:     Console.WriteLine(new NTAccount(accountName).Translate(typeof(SecurityIdentifier)).Value);
  20:    }
  21:    catch (Exception e)
  22:    {
  23:     Console.WriteLine(e);
  24:    }
  25:   }
  26:  }
  27: }

 

Continuing my Google search, I found something embarrassing, I had the same exception for TFS listed on a previous post, on my very own blog. My solution last time was to run (Make sure you replace Server with your TFS server name, as well as use FQDN for the service and reports account).

setupwarehouse -o -s Server -d TfsWarehouse -c Warehouseschema.xml -a Domain\TfsService -ra Domain\TfsReports -v -mturl http://Server:8080 -rebuild

I did not remove the TFSWarehouse from Analysis Server before running this command. Also, the setupwarehouse command is in %Program Files%\Microsoft Visual Studio 2008 Team Foundation Server\Tools.

Eureka, manually invoking the warehouse job from the web service via IE actually starting processing, and with no errors in the Event Log. Looks like I might have to create a batch script to keep on the TFS server in case this happens again. I also need to search my own blog a little more carefully next time.

While I was trying to get the Remaining Work report to display initially, I somehow managed to mess up the parameter definition for Iteration and Area. I fixed this by saving the report (Go to the report's properties and click edit), along with another report with the at least those 2 parameters. Once saved as a text file, I copied the ReportParam element for both parameters from the good report to the bad report, then uploaded the fixed report back to reporting services. Problem solved.

Saturday, January 26, 2008 1:24:49 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Programming
# Friday, January 25, 2008

Scott's weekly list of links this week, focuses on web sites designed for mobile browsers, such as my HTC Mogul running on the Sprint network. I have posted my list below, but encourage you to check out his full list as well.

AccuWeather - www.acuweather.com/pda/pda_5dy.asp
Excellent weather site. I prefer it over weather.com.

Marcus Theaters - http://marcuspda.com
Mobile version of movie show times for Marcus Theaters, the main theater franchise in Madison.

MSN - http://m.msn.com
Direct link to a mobile version of MSN.Com (also available off the mobile Windows Live page)

MSN Money - http://usmoneymobile.msn.com
Need to feed my market addiction

My Blog on Google - http://www.google.com/search?as_sitesearch=blog.salvoz.com
Makes it very easy to search my blog for information on the go.

Orb - http://mycast.orb.com
Orb automatically detects mobile browsers, making it extremely easy to get your orb content on your browser.

Windows Live - http://mobile.live.com/pocketpc
Shortcuts to various live services, including MSN and MSN Money. Almost a favorites list in and of itself

Friday, January 25, 2008 12:27:07 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# Monday, January 14, 2008

I needed to change a bunch of project references such that they referenced a different location so that I could provide a solution to a 3rd party for a review. The idea of going thru 20 some projects and removing and re-adding the references was not appealing, so much that I thought about writing an application. I've learned my lesson though, and decided to Google to see if something was already written, and came across Cool Commands.

Cool Commands was written by Gaston Milano of Deklarit. It's a very good plug-in, it just doesn't have much documentation, and since the tool is free, I'm not complaining.

Install

I was unsure how to install the plug-in, as there is no documentation, other then to unzip and run the setup.bat from a VS command prompt.

  1. Download Cool Commands from this Direct download link
  2. UnZip - I unzipped to %MyDocuments%\Visual Studio 2005\AddIns\CoolCommands. I would suggest unzipping to a permenant location, and not a temp folder.
  3. Open up VS 2005 command prompt (you must run this as an administrator)
  4. Navigate to where you unzipped Cool Commands and run Setup.bat.
  5. The step where devenv /setup is run, took about 1 minute to run on my computer, so you should expect this.
  6. Start up VS 2005 and load a project to test it out.
  7. Review this blog post for a good overview.

Summary

While commands does not have a find and replace reference, which is what I exactly needed, the global remove and add reference was close enough. Also, all the extra features more then made of for the lack of an exact solution.

Tempting fate, I decided to try installing Cool Commands for VS 2008. I copied cool commands to by Addins folder under 2008 and ran the setup from a VS 2008 command prompt, which succeeded without error. However, non of the options are available in the context menu, so it looks like it needs to be updated for VS 2008.

References

Monday, January 14, 2008 5:02:14 PM (GMT Standard Time, UTC+00:00)  #    Comments [1] -
Tools

I was doing some Google searches for more information on Linq and SqlCe 3.5 this morning. While I knew you could use the SqlMetal command line utility to get Linq to Sql Support for SqlCe 3.5, I made an incorrect assumption that Linq to Sql was available on the compact framework. For the love of god, could Microsoft please release a Compact Framework builder, akin to platform builder for Windows CE. For smart phones and other off the shelf devices, keep an official CF release, but for those of us writing applications bundle withed devices, let us determine what we need, and do not need in the compact framework.

Anyway, during my search, I came across Dan Vanderboom's blog. Dave is a Windows Mobile developer and shares some of the same pain that I do. He has alot of good information, and is currently working on a enterprise manager like application for SqlCe running on devices, but will not require active sync.

Thanks to Dave, I found 2 new applications for my smart phone.

  1. Task Manager - The name is somewhat deceiving, as it is allot more then just a task manager. You can view processes, window handles, device drivers, edit the registry, view network stats and more.
  2. WiFiFoFum - War driving application for the Pocket PC.
Monday, January 14, 2008 3:28:52 PM (GMT Standard Time, UTC+00:00)  #    Comments [3] -
Tools | WinCE
Archive
<February 2008>
SunMonTueWedThuFriSat
272829303112
3456789
10111213141516
17181920212223
2425262728291
2345678
About the author/Disclaimer

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

Copyright 2010
Adam Salvo
Sign In
Statistics
Total Posts: 234
This Year: 13
This Month: 1
This Week: 0
Comments: 34
Themes
Pick a theme:
All Content 2010, Adam Salvo
DasBlog theme 'Business' created by Christoph De Baene (delarou)