August 2007 - Posts
I've experienced editing Team Foundation Server builds by hand and I didn't like it. Maybe I'm missing something here, but it's very complex and troublesome. I want some more 'advanced' stuff in my build process, like preparing a build for our test environment but also for our production environment. I want to have different configuration files for both, with different connectionstrings for example. And I want my ClickOnce application to be deployed on the correct location with the right version numbers. And I want continues integration with CruiseControl.NET.
That's not overly complex when I just use CC.NET and MSBuild. But with TFS I cannot extract the build onto my local desktop and change stuff until I think it's right. I'm interfering with the normal continues builds and other teams don't like this.
So I decided to leave TFS Build for what it is and use CC.NET and MSBuild stand-alone. Problem is, I still need to checkout files to increase version numbers and such. But I cannot find any MSBuild tasks related to Team Foundation Server!
So my question is...
- Are there any MSBuild tasks that can talk to Team Foundation Server?
- Is anyone interested in these if I'd develop them?
- Is it a good idea to host this stuff on Codeplex?
I'd really like to know answers to these. Email to me directly or respond here. Thanks.
Before installing Community Server 2007 I wanted to customize the look and feel of it a bit, so it wouldn't be the standard CS2007 skin. Luckily there was a theme competition at Community Server and Kevin Harder created a great skin.
I've installed it and you can look at it right here...
I really like it when people think about real-life things and bring that into my (or 'a') computer. For example, I once saw some kind of fruit-bowl in which you could lay your PDA, camera and other devices and it would automatically download images and stuff. You could then see the images and files in the bowl and shift them around with your hands. The idea was that one of the most used places in our houses is the fruit bowl. People place their keys and phones in there and pictures of their family. So why not use it when we're thinking about technical devices as well? And after a while, the most used pictures and files are on top and stuff you hardly use is at the bottom of the bowl, hidden under other stuff. And of course Microsoft Surface is another good example.
I just love that kind of use and way of thinking about technology.
It's the same feeling I have with Ript. When I saw screenshots of Ript I immediately had to try this out for myself. And I love it! Here's my first experience.
You can use it to email and save pictures, create multiple of the above pages, very easily add text using a great font. This is stuff that's great to send to family for a quick snapshot of the latest images. I'd love to see this being incorporated into some service where you can print these pages and/or create a real photo album.
It also reminds me a bit of Max (blog) but this looks much cooler. I don't know if anyone used the sharing feature of Max, but the idea was very cool. Not sure if it'd work though. It might also be an idea to create some digital photo album you can share. Currently you can only share by creating a jpeg and e-mail it directly from Ript. But perhaps the ability to upload images to Flickr would be also cool.
It's just so easy to create great looking pages.
Get more information here.
And from a developers point of view, you might want to look at the Ript code with Reflector. You might learn a lot from how it's set up and organized, even though it's obfuscated. It looks really clean and maintainable. But then again, it's written by Oxygen who preach and practice agile a lot!
Michele Leroux Bustamante has just posted a lot of links to resources to get you going on .NET 3.5. As her, I can recommend you get started with .NET 3.5 because it rocks! It makes life a lot easier. I'm really starting to miss all the enhancements every time I go all the way back to .NET 2.0 ;-)
Anyway, read Michele's post about her roadshow setup and start working with .NET 3.5.
Of course, if you're coming to our .NET 3.5 Summer Class training in September, we'll take care of that installation for you and you can join us with empty pockets! ;-)
I hope in the RTM you'll get more help solving your WCF Ajax problems then I currently get, because I'm getting mad from time to time. In my quest for getting things to work, I learned some stuff I wanted to share. Read: have a checklist for myself because I tend to forget this kind of stuff! ;-)
- First, have a look at the errors your service reports. Right-click your service's .svc file in Visual Studio 2008 and choose "View in browser".
- If you're using the WebScriptServiceHostFactory in your .svc file you don't need anything in your web.config and you can remove the entire <System.ServiceModel> part. This is how the .svc then should look like:
<%@ ServiceHost Language="C#" Debug="true" Service="WebApplication1.WCFAjaxService" CodeBehind="Service.svc.cs" Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory"%>
var proxy = new tempuri.org.IWCFAjaxService();
Example : http://localhost/service.svc/js
- The service can't handle multiple authentication schemes; meaning you can only have anonymous access or integrated security or another option. In IIS Management right-click your website (or virtual directory) and select the "Directory Security" tab, press the first "Edit" button for Authentication and access control and select only one checkbox.
After this you'll have to stop and start the website which can be done by using IISRESET in the command prompt.
When I come across more I will post them here, including an update comment.
I'm writing some applications and demos for the Summer Class using the .NET Compact Framework 3.5. For one of them I need the internet, but couldn't connect. Some problem about the device emulator that can't connect due to Virtual PC. I've found the solution now and wanted to share it.
First, install Active Sync 4.0 or higher. I've used 4.5. Then go to connection settings and set "Allow connections to one of the following" to "DMA". Press okay.
The simplest way for anyone to get the Mobile Device Emulator running is to start a new smart device project and build and deploy the project, or plain press "F5". You're now connected. In Visual Studio choose "Tools" and select "Device Emulator Manager". Now one device should have some "play" icon in front of it, as in the screenshot on the right. Right-click the running emulator and choose "Cradle". ActiveSync will start syncing stuff.
It's possible you're browsing the internet using a proxy server. Be sure to configure it. In the Windows Mobile start menu, select "Settings". Select the tab "Connections" at the bottom and then select the "Connections" icon. Select "Manage existing connections" and select the "Proxy settings" tab at the bottom.
Windows Mobile has two preferences on what network/connection to use for either internet or private network stuff. In my case it wanted to connect to the internet via an ISP. Of course I don't have one in my emulator, so I had to change it to "My work network". You can do this by selected "Settings" in the start menu, then select the "Connections" tab and then the "Connections" icon. Select the "Advanced" tab at the bottom and then press the "Select networks" button. In the top button set the combobox to "My work network" and you should have internet.
For some reason, Windows Mobile suddenly configures a proxy server in its settings, completely unknown to me. I have no idea where it comes from and I'm not using a proxy server anywhere. If I uncheck it, I can connect again. Very weird.
When first cradling my emulator ActiveSync cannot connect for some weird reason. In ActiveSync I choose "Connection settings..." from the file menu, choose the upper-right "connect" button and immediately cancel it. Then it's suddenly able to connect.
You just gotta love this stuff! :-)
I'm so very, very, very ALT.NET that I'm NOT going to look at Ruby, Python or any other dynamic language. Everyone's doing it, I'm taking my own path and stay C# and VB.NET.
There, glad I finally said it. My coming out!
As said before, we're currently on location at the "middle of nowhere", creating material for the upcoming .NET 3.5 Summer Class. We're having a blast, creating slides and hands on labs until way past midnight. I'm busy with the WCF Web stuff, Alex is creating Linq to SQL/XML stuff and Pascal is currently doing Silver (WCF/WF). Yesterday Mike came by to have some fun with us.
Click the images for larger views.
Picture on the left, from left to right are Mike, Alex and Pascal. Second picture is me, Alex and Pascal.
Two things that should've been there since WCF v1. My colleague Alex Thissen already blogged about the WCF Library projects and the service host that comes with it. In beta 2 there's a new test client that'll connect to your service and will show you the available operations, configuration and allows you to invoke the operations.
When you take a look at the properties of your service library, you'll notice that under the "Debug" tab page, a command line argument has been added: /client:"WcfTestClient.exe". This allows it to start and connect to your service.
After a default installation, this client will crash upon connecting to your service. That's because svcutil.exe isn't signed in Beta 2, as you can read here and here. Unfortunately both bloggers don't tell you where you can find svcutil. You can find it right here:
C:\Program Files\Microsoft SDKs\Windows\v6.0a\bin\
Open the Visual Studio 2008 command prompt, browse to that folder and delay sign it by executing the following command:
sn.exe -Vr svcutil.exe
Now both Service Util and the WCF Test Client work.
Wow it's been some time since I blogged. Mainly because of being very busy at work and three weeks of holidays. Next week I'll be offline again because Pascal, Alex and me will be preparing for the .NET 3.5 Summer Class in September. If you still don't know what it is, have a look at it and be sure to come. We'll teach you almost everything that's .NET 3.5 and you'll go home knowing what a great addition it is and how to build projects using it. This won't be a standard training, you will know how to use this stuff in your next projects.
Anyway, I was having some problems with dropping a database. It was the mirror of another one, mirrored by transaction log shipping. For some reason during my holidays and after some tweaking done by my client on more then one database, it failed. After having a look, some properties changed and not for the good. I decided to set it up again from scratch.
After removing transaction log shipping from the root database, I wanted to drop the database on the mirror server. Unfortunately I got the following error:
Cannot drop the database 'xxx' because it is being used for replication. (Microsoft SQL Server, Error: 3724)
The jobs were gone, the root database wasn't attached anymore, but SQL Server 2005 still thought it was being used for replication. I even tried hacking the system tables using the dedicated administrator connection but it just wouldn't drop, delete, detach or anything.
The final solution was to create a new database on another server with the same name and create a backup. After copying the backup to the server with problems, I chose to restore the backup. You can't do this by right-clicking on the database, because it'll only allow to restore transaction logs. Right-click the server itself and choose to restore it onto the database with problems and select to "overwrite" in the options screen.
It overwrote the database and I could delete it!