About the DVB.NET and VCR.NET Software Projects

 

I started developing software in 1980 on some Apple II computer using UCSD Pascal. On my way I touched many operation systems and many languages always trying to be learn what's coming up next. Now although today LINUX and Java are strong there is still one Microsoft Technology which may bring some new - ok, at least partial because large parts are simply stolen from the JVM - aspects in developing software: the .NET Framework. In addition to the platform a new programming language combining features from both worlds C++ and Java provides a high potential of becoming a real competitor for both: C#. Some time ago I decided to start a private project to evaluate the possiblities of C#/.NET especially under the aspect of client/server technologies based on SOAP Web Services - another often cited technology nowadays.

So to mention first all the stuff you can find here is part of a private project. I decided to offer full source of what I do without granting any rights violating my intellectual rights on the code itself and especially not allowing any commercial use. For any developer who wants to take a look or use my code for his private purposes: simply be wellcome.

Now it's not enough simply to set the goal on a new technology: there must be something the software to be developped should do. In January 2003 I bought a Hauppauge Nexus-S DVB-S receiver card for my PC mostly for recording TV shows. Short afterwards I found the features provided by the software coming with the hardware concerning recording quite poor. My first decision was to evaluate if there could be some C#/.NET client accessing the hardware - the project got the name DVB.NET. I got the TechnoTrend API/SDK 2.10 and started to work on it. There is quite a bit of technical features in the DVB.NET library since the API/SDK is based on the Microsoft Visual C++ 6.0 MFC Extension DLL technology which can be used from C#/.NET but not without some more specialized knowledge on how C#/.NET interacts not only with a standard Windows DLL but also with a DLL not exporting functions but C++ class methods - including virtual methods and intrinsic MFC classes.

The core purpose of the DVB.NET project is to prove the concept of accessing the DVB API/SDK from C#/.NET. It provides some assemblies which allow accessing some aspects of the DVB hardware. Although I provided a simple viewer client this is nothing what really matters. My goal for the DVB.NET implementation is to enable C#/.NET clients to record TV shows using the Nexus-S - not less and only a bit more. This is then used in the VCR.NET Recording Service which is primarly a SOAP Web Service based on DVB.NET which can be accessed to define recording jobs. A simple but efficient client - no DVB.NET in there - is included as one possible configuration tool. Since the VCR.NET Recording Service talks SOAP any other client will do as well - even over some network if needed (at least in principle because I did not need this feature so it's not tested at all).

I put together a couple of web pages not as a full documentation - although I tried to mention each feature somewhere (to cite one large internet search portal: go, find it!) - but as an overview. This overview together with some source code documentation should help a developer not only to understand the overall architecture but also the detailed behaviour and the possibilities of further developments. For end users DVB.NET is absolutly of no interest but the VCR.NET Recording Service may be. In lack of time for support and especially develop the software to a point where it's usefull not only to me I recommend that the software is not used at all. Now taking it on your own risk the general approach I took with placing all the sources for download says: if you dare, try it. If it works, use it at your will.

(Last Update: 2007/03/09)