XNA Streaming - Part4

23
Mar
1

In the previous parts of this articles I’ve talked about the service components of the XNA Streaming system. In this part, I’m going to talk about the Communication Broker.

The role of the Communication Broker is to cover the communication with the Streaming Service. By doing so, the code required of client applications is simplified, and less duplicate code will be generated for each application using the system. the broker also caches all variable changes and periodically sends all changes accumulated to the service, thus reducing the number of calls per second required by a single client to a predictable amount.

XNA Streaming – Part 3

27
Feb
0

After quite a long break, I resume the series of articles on my XNA Streaming project by describing the actual Stream Service component. This component is responsible for transmitting the broadcast information to all connected users.

The information is encoded in (<property name>, <value>) pairs. All serializable data types are supported for values. Users register with the Stream Service either as Broadcaster or as Observer. After this step, the Broadcaster uses the service to send updates for information (property-value pairs). Observers get notified by the service of the updated information via a IXNAStreamCallback callback contract, a feature of WCF services.

XNA Streaming - Part 2

26
Oct
0

In part one of this article, I did an overview of the XNA Streaming project. In this part I’m going to describe the File Transfer Service.

The main responsibility of the File Transfer Service is to provide access to streamable games. The service stores the game files in a database table, together with their relative file paths. This way the file system structure can be recreated when downloading the game. The game’s name, author and a short description are also stored in another table.

XNA Streaming - Part 1

21
Sep
0

Introduction

As I mentioned in my previous post, at this year’s Microsoft Community Bootcamp I entered in the demo competition together with Adi. We’ve had some issues in the past with (cheap) broadcasting of presentations. There are plenty of professional tools out there that accomplish this goal, but that’s not my point. My point is that I have not yet found a cheap (free) utility that will allow me to give a presentation to several viewers that may not be in the same room (or the screen isn’t big enough for the whole audience).

Given this background, Adi proposed we create a way in which several people can see the same thing that a broadcaster transmits. Further, the “thing” that everyone sees is actually an XNA game, that could might as well be an interactive presentation in 3D.

Microsoft Community Bootcamp v5

18
Sep
0

IMG_0047During 11.09.2008 and 14.09.2008 I attended the fifth annual event dedicated to Microsoft professionals from the industry and academic environment. I also attended last year and wrote a bit about the experience here. A change from last year’s event was the fact that this year, the professionals invited were almost as many as MSPs (until now,  only a handful of MVPs had been invited). The location was Vatra Dornei. Possibly due to the fact that the bootcamp was held later than last year, it was much colder (and so we were "encouraged" to stay indoors or dress "heavily").

Creating a Vista Sidebar Gadget Using Microsoft Silverlight

2
Aug
46

Introduction

Some while ago I did a post on how to create a Vista Sidebar gadget using JavaScript. I also mentioned that I tried to create the gadget using XBAP or Silverlight, but due to the limitations in those technologies at that time, I decided that I had to give up on too much of the Sidebar gadget specific functionality (flyouts, cross domain data retrieval).

More than 6 months have passed since then and now I am pleased to announce that I’ve changed my opinion regarding Silverlight Sidebar gadgets. Due to the fact that the Silverlight technology has matured a lot (version 2.0 beta 2 is now available), Sidebar gadgets can be developed using this technology, without sacrificing any Sidebar gadget specific functionality. This is due to the fact that there is full interoperability between Silverlight and the JavaScript code. Also, cross domain calls are now allowed in Silverlight, so retrieving data is no longer an issue. Furthermore, it has been greatly enhanced due to the fact that one can consume WCF services using Silverlight.

Auto Complete for Textboxes in WPF

1
Jun
18

Introduction

It is very common when entering a search string in a textbox to get a small list of valid search results that match the search string entered so far. This feature is called auto complete and it has been widely used in web pages and desktop applications alike.

From the developer’s point of view, the auto complete feature has been implemented as part of the TextBox control in Windows Forms. That being said, I had a bit of a surprise when I could not find the functionality in the Windows Presentation Foundation TextBox control. Upon further online searches on the matter, I discovered that, in fact, auto complete has not been implemented for textboxes in WPF. The purpose of this post is to suggest (no pun intended) an implementation for the missing feature.

Functional Description

The entity we wish to create is a WPF user control that can be instantiated both through Xaml and code (C# or VB). We can either inherit from TextBox and add properties and methods required for auto complete, or we can create a control that can "wire up" the auto complete feature for any targeted TextBox control. The first approach not recommended due to the fact that a ListBox must be added to a TextBox. I chose to follow the second approach, perhaps being inspired by the AutoCompleteExtender in the ASP.NET AJAX Control Toolkit and also because it requires minimum intervention on existing WPF code (no need to change the type of many TextBox controls). Also, I did not include the targeted TextBox inside the custom control, in order to be able to apply this functionality on already existing code. The variant with the TextBox included can be found here.

A finite number of suggestions should be displayed as soon as a minimum number of  characters are typed, and then the suggestion list should be updated with each new modification to the search string. The maximum number of suggestions displayed should be configurable by means of a property. The user should be able to highlight a suggestion using the up/down keys, and be able to select a suggestion by pressing Tab or Enter in order to set the text of the target TextBox to that value. The means by which the suggestions are returned (from a web service, or simple method, etc.) should be as configurable as possible.

Managing "Global Constants" with a Database

20
Jan
1

Introduction

There always comes a time while developing an application when a programmer has to introduce some “constants”. These may be Id’s, names, time intervals. The first action is to just put the literal constant where it’s needed first.

Once the value of the constant is needed in additional places, a decision has to made: where to store the “constant”. The really bad answer would be to just reuse the literal constant. A better approach would be to create a “const” or “readonly” field with the required value. This is perfectly fine if the constant has a very little chance of changing it’s value (due to specifications change some of the constants may change). Changes to constants defined in this way can only be performed by recompiling the code and redistributing the new build.

Sometimes the probability of change for a “constant” is so high, that it actually becomes a “global variable” (even though it may continue to be called a “constant”). Recompiling the whole solution now becomes unfeasible.

Iron Maiden in Romania

27
Dec
0

After about 2 years of sobbing because none of the big band names I like were even considering a visit in Romania, something finally changed. On the 4th of August 2008 Iron Maiden is coming to Romania. Tickets are very reasonably priced, so get your’s while they’re cheap and available here.

Rock on.

Bad Behavior has blocked 145 access attempts in the last 7 days.