UniveRSS : 3D RSS Reader for Vista

UniveRSS is a RSS reader, that Microsoft team has built using Windows Presentation Foundations (WPF), to show the power of .NET 3.0 and WPF, the application is awesome and eye catching, it has a black background, and the way you browse is just like you browse in games, the application uses animation and surely it's a vector graphics application, so you can zoom the text just like you do in Acrobat Reader, it also has a sliding panel that moves from left to right once you hover one item, the project is exposed to the public and you can download and study the code, the current version is limited to read RSS channels from IE7, but future versions will be so powerful and will provide all RSS functionalities, such as searching, flagging, etc.., hopefully they will provide imporing OPML channels, you will have to have Windows Aero enabled on your computer to run UniveRSS, and one galaxy represents one RSS channel, if you click a galaxy it will list all the items under this RSS channel, and if you hover one item and press the right arrow, it will open the brief content of the channel.

UniveRSS, is built using ClickOnce technology, or in other words it is zero install and zero update, every time, you will run UniveRSS it will check version and if it finds any update it will update the application and run it, I think UniveRSS is the next generation for RSS Readers, and it's an ambioutious endevour to implement WPF.

this is the first screen you get after running the appliction

and this is my blog feed from inside UniveRSS, after I added it to IE7 RSS feeds, it showed unread feed items 0, which is not correct, maybe that's a bug.


BizTalk Server 2006 on Vista

In this post, I will mention how could I install, configure, administer, and run BizTalk Server 2006 on Vista, I just installed vista 3 times before, and I really like to upgrade, but at the same time I want to use the new operating system to the max by migrating all my development work and applications to the new cutting-edge Vista.

I installed Vista Ultimate, and then I updated it, then restarted the machine, ah !, my machine is 1.83 GHZ, core duo, 1 GB RAM, however first thing I did was to disable UAC, User Access Control, simply speaking UAC is a new feature in Vista, that limits application rights, and this reminds me of CAS in .NET, or Code Access Security, so UAC will alert you every time one application tries to do one administrative action, so if you have any virus or malware on your system that's trying to do some malicious actions, UAC will show a modal window that is asking for your permission to run this application, and frankly it's a very annoying feature, esp. for developers and administrators, and some applications will act inconsistently when UAC is working behind the scenes, so it's better disable it, at least for me, to get more information about the UAC , for more information about UAC refer to this guide.

You can disable UAC in so many ways, you can do it through UI, or command line, and I preferred to do it via UI, I did the following to disable UI:
  1. Press CTRL+R, type msconfig
  2. System configuration will launch, go to Tools tab.
  3. Select "Disable UAC"
  4. Reboot the machine.

After you reboot you will get a red icon in the toolbar, and this is the security warning that you will get every time when you start your system, right click it and select exit.

Then, I started to install SQL Server 2005, and as you may know that you cannot run BizTalk on SQL Server Express Edition, I like to run Developer edition, as this is a development machine, and it would be better to run developer edition, I launched installation, and the wizard went through the checklist peacefully,but there was one warning about IIS, the installation wizard was not able to detect IIS 7, however after some searching, I got to know how to fix this issue, I needed to add some IIS feature that are not installed by default when you install Vista, to get around this check this Microsoft article, after checking the full list and added all required components, I restarted SQL server installation wizard and it installed successfully, also one more interesting thing, SQL Server 2005 is not installing the sample Adventure Works databases, by default so you have to select custom installation and select them, after finishing installation I opened the AdventureWorks, ran some queries, everything was fine.

Next step, was to install Visual Studio.NET 2005, I opted to install the Team Suite Edition (TS), because I like to have all the features installed, however while installing both SQL server and VS.NET I got one window more than once, warning about a well known compatibility issue of VS.NET 2005 with Vista, I simply selected to resume, if you want to get the full list of issues for VS.NET 2005 with Vista, refer to this article on Microsoft, after installing VS.NET I created one windows application and it ran well, also I created a test web application and also it ran successfully, then I proceeded to the next step that's installing BizTalk.

I launched the BizTalk Server 2006 installation wizard, and selected to download the cab file that contains all required components to run BizTalk, it launched Microsoft Downloads website in an external IE window, and it was pointing to the cab file for Windows Server 2003, I downloaded the cab file, and then restarted installation and gave path to the cab file I downloaded before, installation completed successfully, and that was great for me, then I finished installation and checked to launch the configuration wizard, I selected Basic Configuration, the configuration went well, but i took so long time more than expected, it took about 10-15 minutes, maybe more than this, however after successful configuration I opened one simple BizTalk application that I had build before, it simply contains 2 schemas, one map, and one orchestration that writes a message to 2 different file locations based on one conditional decide, I rebuilt the 2 projects, first messaging one, then orchestration project, then I set deployment options to deploy to my local server, I deployed assemblies successfully, and then launched the BizTalk Server 2006 Administration Console, to create physical send and receive ports and bind them to the orchestration, first I started with creating the receive location, but after filling all required fields and pressing OK, I got the following error : " Could not store transport type data for Receive Location 'rcvLocEmployee' to config store. Primary SSO Server '{MachineName}' failed. Could not contact the SSO server '{MachineName}'. Check that SSO is configured and that the SSO service is running on that server".

I wanted to check the SSO service from Services console, hit CTRL+R, typed Services.msc, launched Services console, I checked the "Enterprise Single Sign-On Service", and the status was "Starting", I right clicked the service and stopped it, then started it, it started well, then I recreated the receive port, and this time it passed , and then I created a couple of send ports, and it passed as well, then I started the BizTalk Application 1, it started successfully this time, because before I restart SSO service I tried to start it but it didn't.

I enabled the receive location and enlisted and started the 2 send ports I just created, everything ran quite well, then I bound the physical ports to my orchestration and it got bound successfully, I started to test my simply application by copying an XML message to the receive location, after a while it disappeared as expected and got copied to the destination folders, as per my orchestration logic, I tested another message and it was working greatly, and finally I made sure that everything is working fine, I was so happy to do it , as I have searched on Google so many times but couldn't find clear walk through to get BTS 2006 running on Vista, I opened BizTalk Configuration and exported my configuration settings to XML file, so I can consume later in case of any disaster, I checked the BAM site and it was running as well, also I ran some queries in HAT and it ran as expected, my next step is to install Service Packs to fix these compatibility issues.

Happy BizTalking on Vista!


BizTalk Server 2006 Configuration Problem

I was configuring BizTalk Server 2006 on Windows Server 2003, actually this machine has been configured before many times, but this time every time I try to configure it either through basic or custom configuration, I have been getting SSO error, the configuration utility is not able to create a database for SSO, after sometime I remembered that I have uninstalled SQL Server 2005 before, and kept SQL Server 200 ( surely with SP4 ), and as a normal behavior for SQL Server uninstall, it keeps all the databases in data folder, so everytime I was trying to configure it by creating new databases, it was saying that the user account is not able to access the SSO database, and when I opt for using an existing that database, it was throwing an error as well, becuase the databsae file is already there just like a detached database, so if I create a new database it will not accept as the data folder contains a physical file with the same name, however I searched the data folder and found all the configuration databases that BizTalk Server configuration utility is creating, then I deleted all the log files and database files, ran the configuraion again, it worked peacefully, so next time you get configuraion errors, have a look at the SQL server data folder, maybe you will find some databases that are kep from prior configuraiton.

Note: you will only get this error for SSO because the other services are dependent on SSO and the configuration utility is creating the SSO first, then it congiures the other services.


Taking ASP.NET 2.0 Application Offline

That's really one of the cool things about ASP.NET 2.0, taking your application offline, and basically you will want to do that at many situations, such as marinating or updating your application which may take your application down, and users will get inconsistent response, like Server Error exception page, so you should provide a consistent response while your application is not serving users, also you may need to take the application offline to any other purpose such as releasing some resource locks on a textual file or Microsoft Access / SQL Express database file, and while you may use some other ways to do that; using this way is the easiest and best one, especially when you host your application on a shared hosting provider, also one of the situations that I have experienced before, is that you may be hosting your application on a webfarm and you upload and test your updates on one machine, , so it's advisable to take the server you are updating offline, while keeping the other servers up and serving users' requests, then once you finish updating and testing the first server, you can get it back online, and then take all other servers offline, update them, then turn them back online.
The idea to take your application offline is so simple, you will just need to write one file with a special name app_offline.htm into your main application directory, afterwards you will application will stop to serve any upcoming requests and it will show the contents of the special app_offline.htm file to users, noting that this will not redirect users to that file, however the user will get the URL he requested into the browser's address bar wile the content shown will be grabbed from app_offline.htm, so this will keep the user sure that he is on the right location.
However, you have to take care about one interesting issue that Scott Guthrie blogged before, you have to make sure that your app_offline.htm content is greater than 512 bytes, otherwise the content will not be shown and the generic friendly message of IE6 will be shown to users, that may leave users unsure whether the application is responding or not, so you can work around this by just adding comments into this file, you can read more about this workaround at Scott's blog, App_Offline.htm and working around the "IE Friendly Errors" feature, also if you're adding inline styles in your file this will fix this issue.
In this article we will just have a ready html file that contains the offline content you want to show to your users while the application is offline, and we'll provide a humble programmatic approach to take the application offline, by simply renaming this file to the special app_offline.htm file name, and the file name that will be renamed will be saved in web.config, while you can think of other way to do this just like writing the file via FTP, or using Windows Explorer, in case you have access to the server, but I think that's the best way as you will just hit one page before doing your updates and then the application will be down, on the other hand there is no way to take the application offline except deleting or renaming the app_offline file, and you will not be able to do that programmatic because your application would be already dead at that time!, but also you can do that pragmatically using another live application that have access rights to the first application folder, in this article we'll rename an existing file to app_offline.htm and then to get the application back to life, we will just rename that file to a predefined file name.

This webpage contains the code that will rename the htm file, and the name of that htm file is contained in web.config, I added a server-side code block in the same SetOffline.aspx page to keep things compact, however you can save the page logic into a codebehind file, the page markup is empty, and herein the C# code for SetOffline.aspx page:

private string offlineContentFilename, offlineContentFilePhysicalPath, app_offlineContentFilename;
protected void Page_Load(object sender, EventArgs e)
offlineContentFilename = System.Web.Configuration.WebConfigurationManager.AppSettings["OfflinePageContentPath"];
offlineContentFilePhysicalPath = Server.MapPath(offlineContentFilename);
app_offlineContentFilename = offlineContentFilePhysicalPath.Substring(0,offlineContentFilePhysicalPath.LastIndexOf("\\"))+ "\\" + "app_offline.htm";
// here you have to check whether the user is authorized //take the app offline.//if (this.User.Identity.IsAuthenticated &&//this.User.IsInRole("Administrator"))//{ TakeApplicationOffline(); //}}private void TakeApplicationOffline(){try
if (System.IO.File.Exists(offlineContentFilePhysicalPath)){
Response.Write("Application has been turned OFF successfully, all upcoming requests will direct users to offline content page.");
Response.Write(offlineContentFilePhysicalPath + " doesn't exist, please make sure the file exists and try again!");
catch (Exception fileException)

The code is self-descriptive, however it's just reading the offline content file name, and composes the app_offline.htm file physical path, then renames the first file to app_offline.htm, then you can simply take that page and copy it to your application and add a key to web.config with key value OfflinePageContentPath, and set the value to the file that contains the offline content you want show when the application is offline, also you should make sure that the user has enough rights to take the application offline.
Now, try to browse to any page under your application you will get html content contained in app_offline.htm, and all upcoming requests will just get this content, after you finish your update just go and rename app_offline to the same file name contained in web.config, then your application will come back to life.


That's a simple way to manage app_offline new feature, and you could do that manually if you prefer, but could make things more manageable, also you can change TakeApplicationOffline method to copy the file contents instead of renaming the file, and then you can simply delete the app_offline.htm, this will give you the same result.

Microsft Gulf Geek II Website

As a reference to an ex-post, Geeks II conference has a website now, but they haven't released the agenda yet, and also they added some cool geeks wallpapers and screensavers, the speakers are published at Speakers section, as expected the sessions will be around:
  • WCF ( Windows Communication Foundations ).
  • WPF ( Windows Presentaion Foundations ).
  • WWF ( Windows Workflow Foundations ).
  • WM 5 ( Windows Mobile 5 ).
  • AJAX ( Asynchrouns Javascript and XML ), hopefully using Microsoft Atlas toolkit.
  • Sharepoint Server 2007.
  • SOA ( Service Oriented Architecture ).
  • Microsoft Expression.

Maybe there will be a facility for hands on labs excersises, I remember that I had this facility in MDC at Cairo 2004, however the good news about this event that it targets both gurus and students.

You can register at Registration Page

Meet you there.

P.S. perhaps some photos are not showing, maybe website is still under development


Windows Aero Glass and Intel

Windows Aero is just one of the cool features about Vista; simply it's the 3D effects you see everywhere in Vista, and some applications require it to be running, however 10 months back I have got my HP Pavilion dv4000 laptop, at that time the Laptop with sticked with the standard sticker "Windows Vista Capable", and these were the days of Vista as a beta OS, however from inside Vista there is one application that's checking your system performance, graphics, memory, etc.. and gives each item a rank out of five, and then the overall rank is determined as per the minimum rank you get, Unfortunately I have got 1 as an overall rank, and whe you get such a rank Aero would be disabled by Vista, but users used to change some registry keys to get Aero enabled, and so many people used Vista Beta did this trick to get Aero working, however with the release of Vista, Microsoft fixed this registry hack, and then no way to get Aero running until you have the proper rank with the proper Graphics Driver.

Coming to Drivers, in Vista you have 2 types of drivers WDDM ( Windows Display Driver Model ), and XPDM ( XP Driver Model ), my laptop has integrated graphics chipset 910/915, and I have 1.5 GB RAM, and for most of laptops that released one year back or so, you will find this chipset with most of Intel based Laptop, however I installed Vista Premium, it ran pretty well on my hmuble laptop, but I couldn't get Aero running, because Intel is not providing WDDM for the chipset claiming that the architecture for the chipset is completely different than the Vista's graphics architecture, if this is true: so how could users enable Aero in Beta Versions ???

Intel has to answer this interesting question, Intel is not willing to provide a WDDM driver for the chipset, that irritates me and thousands of users who bought laptop which is Vista Capable and now no support for this chipset, look at this thread at Intel website and you will know how much people are so annoyed about that, and some customers are willing to boycott Intel as they are not respecting customers http://softwarecommunity.intel.com/isn/Community/en-US/forums/thread/30231505.aspx.

So you'd better check your laptop chipset and if you are willing to get a new laptop avoid this chipset get 945 models and upwards, one more thing today's laptops are sticked with Windows Vista Premium Capable if it's Premium capable then Aero will be enabled, so one more questions to Intel, 10 months back all the laptops were only marked by Vista Capable and no Premium capable I think at this time they weren't ready for Vista Aero, it's really very bad from Intel, I don't know , Am I supposed to throw my laptop and get brand new one for Aero Glass !!!!
And also the chipset is DX9 enabled, it means you can run state of the art games on it, and I am already running Half Life II on my laptop, but for some basic 3D stuff in Vista I cannot run.

I am sure one day you will get to read this post, as soon as you start upgrading to Vista, and you will get the same anger I have now with thousands of other customers, there is an online petition that I strongly recommend you to sign, maybe Intel will respect us and stop this scam, by providing a WDDM driver for Vista.

Oline Petition: http://www.petitiononline.com/mod_perl/signed.cgi?intel915

Number of signatures is 2699 at this time of writing.