WCF Chat 1.1 Alpha

Rating: No reviews yet
Downloads: 3807
Change Set: 61673
Released: Dec 28, 2010
Updated: Feb 1, 2011 by rbonini
Dev status: Alpha Help Icon

Downloads

Application SetupCloudOptions
application, 859K, uploaded Dec 28, 2010 - 745 downloads
Application SetupChatServerUpdated
application, 904K, uploaded Feb 1, 2011 - 1132 downloads
Application ClientServerClientSetupUpdated
application, 892K, uploaded Feb 1, 2011 - 975 downloads
Application ClientServerChatCloud
application, 2023K, uploaded Dec 31, 2010 - 955 downloads

Release Notes

Download Information

SetupChatServer (formerly SetupCloudService - name changed for clarity) - This is the updated Windows Service and the Options application.

ClientServerClientSetup - This is the Client UI for the Windows Service and the Cloud Server.

ClientServerChatCloud - This is the source for the Windows Azure Web Role.

SetupCloudOptions - This application configures the Options for the Windows Azure Web Role

See Source Code tab for the source.

Server Endpoints

Chat Service Endpoint: 8080 (add /ChatServerService for the Windows Service) ( you must run netsh http add urlacl url=http://+:8080/ChatServerService user=DOMAIN\user as Administrator from the command line for the windows service)

Cloud Service Admin Endpoint: 8000 (Cloud Service only)

WCF Chat 1.1 Alpha

Todays changes basically upgrade everything to .Net 4 and make sure its compatible. Todays release does not take advantage of anything new other than some additional LINQ and extension methods.

The original server was actually just a console application. I took that original code and ported it to a Windows Service. There were trivial logic changes made at most. The UI ( i.e the Options form) that was part of that console application has been moved into its own project.

I also ported the server code to a Windows Azure web role. The XML file and the collections I stored the streams in are replaced with Windows Azure Tables for Users, Streams, DMS and Files. The files themselves are written to Windows Azure Blobs rather than being written out to disk.

The web role as written is actually single instance. The reason is that the collection that stores the active users (i.e. what users are active right now) is still a collection. I haven’t moved it moved it over to windows azure tables yet. You could fire up more than one instance of this role, but all of them would have a different list of active users. And because Windows Azure helpfully provides you with a load balancer, there’s no guaranteeing which instance is going to respond to the client. There is a reason why i haven’t move that collection over to Windows Azure Tables. Basically, I’m not happy with it. If Azure had some sort of caching tier, using Velocity or something so i could instantiate a collection of objects to the cache and have all instances share that collection. The Windows Azure table would be changing from minute to minute with Additions, Edits and Deletions and I don’t think Windows Azure Tables would keep up.

I also added an Options application to talk to the Windows Azure Web Role, and I wrote a WCF web service in webrole to support this application.

The client is essentially the same as it has always been. There is the addition of a domain when you are logging in – this could be for either cloud or service based server implementations. Since there is no default domain, the client needs one when you are logging in. The client will ask for one when logging in. once you have provided one, you’ll have to restart the application.

There are installers for all the applications except for the Cloud project. The service installer will install both the service and the Options application.

Bear in mind that for the Options Applications, there is no authentication and authorisation. If you run the app on a server with the ChatServer installed, or you point the CloudOptions app at the appropriate server, you are in control. This is a concern to me and will be fixed in a future release.

Final Words

Also, bear in mind that this is marked Alpha for a reason. If it eats your homework and scares your dog, its not my fault – I’m just some guy that writes code.

Finally, this code all works IN THEORY. I’ll be testing all these pieces throughly in the coming weeks.

For this 1.1 Alpha release, you’ll find each setup files for each component in a separate downloadable zip file. The CloudServer code is included as is, since no setup files are possible for Cloud projects.

Reviews for this release

No reviews yet for this release. (Previous release: 5 stars out of five with 1 rating and 1 review)