Saturday, July 31, 2010



Windows 7 Service Pack 1 (Beta)

Microsoft continuously collects feedback on Windows 7 from customers and partners through several channels. This feedback results in enhancements that help improve compatibility, reliability, performance, and user experience. Service Pack integrates all these updates, along with additional enhancements, into a single package and help ensure that your systems are up-to-date.
The beta of SP1 for Windows 7 contains the pre-released 17 security updates and 456 hotfixes. The impact of SP1 on Windows 7 is considered to be minimal since it only includes pre-released hotfixes and security updates. Even though the current SP1 release is a beta, Microsoft has made it clear to not anticipate the SP1 for Windows 7 to be substantial. While SP1 is not intended to be a vehicle for releasing new features, some existing features do gain slightly enhanced functionality in SP1.
The SP1 beta has been released in English, French, German, Japanese, and Spanish. This beta will expire on June 30, 2011. You will have to upgrade to a newer build or uninstall and return to the RTM build by that time. Service Pack 1 will be released within the first half of calendar year 2011. You would not be able to upgrade from the beta builds to the final build of SP1 and will have to uninstall the Service Pack or do a clean install of Windows 7.
Setup Prerequisites:

  • Your current operating system must be the Release to Manufacturing (RTM) version of Windows 7 (build 7600).

  • Users updating through Windows Update/WSUS must install the Servicing Stack Update (SSU). This update is necessary to successfully install or uninstall the service pack.
Delivery Methods:
  • Standalone Package
    Meant for commuters without internet access or system administrators.
    About 297 MB (x86) or 535 MB (x64) of download size.
  • Windows Update
    Meant for most home or many business users.
    About 23 MB (x86) or 45 MB (x64) of download size.
  • Integrated DVDMeant for new PCs or Vista upgrades
Changes in Windows 7 SP1
  • Additional support has been added to allow Windows 7 clients to effectively communicate with third-party identity federation services.
  • Improved HDMI audio device performance.
  • Corrected behavior when printing mixed-orientation XPS documents using the XPS Viewer.
  • Change to behavior of “Restore previous folders at logon” functionality. All folders are restored to their previous positions rather than the cascaded position based on the location of the most recently active folder.
  • Enhanced support for additional identities in RRAS and IPsec.
  • Support for Advanced Vector Extensions (AVX).
for more information & processes:
READ MORE - Windows 7 Service Pack 1 (Beta)

Friday, July 23, 2010



Windows Sidebar Gadget's Manifest's Schema

While developing my app (see previous post) i came across a need to validate my generated xml with a schema. I searched around the internet but couldn’t find any schema for the Windows Sidebar Gadget.xml. Many people were asking for one various forums but they got no reply. I needed it too so i thought why not create one for myself, since i didn't knew much about creating xml schemas so referenced some websites and wrote the following schema in Visual Studio. Using Visual Studio made it all easier for me to write a schema cause it helped me by automatically completing and closing tags and it also suggested various attributes i can set, through its "intellisense".  Visual Studio obviously boosts productivity and makes learning new things easy.
Following is the schema code for the Windows sidebar gadget’s manifest.

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="SidebarGadget"
  <xs:element name="gadget" type="Tgadget"/>
  <xs:complexType name="Tgadget">
    <xs:sequence maxOccurs="1">
      <xs:element name="name" type="xs:string"/>
      <xs:element name="namespace" type="xs:string"/>
      <xs:element name="version" type="xs:string"/>
      <xs:element name="author" type="Tauthor"/>
      <xs:element name="copyright" type="xs:string"/>
      <xs:element name="description" type="xs:string"/>
      <xs:element name="icons" type="Ticons" maxOccurs="unbounded"/>
      <xs:element name="hosts" type="Thosts"/>
  <xs:complexType name="Tauthor">
      <xs:element name="info" type="Turl"/>
      <xs:element name="logo" type="Tlogo"/>
    <xs:attribute name="name" type="xs:string"/>
  <xs:complexType name="Turl">
    <xs:attribute name="url" type="xs:string"/>
  <xs:complexType name="Tlogo">
    <xs:attribute name="src" type="xs:string"/>
  <xs:complexType name="Ticons">
      <xs:element name="icon" type="Ticon"/>
  <xs:complexType name="Ticon">
    <xs:attribute name="hight" type="xs:nonNegativeInteger"/>
    <xs:attribute name="width" type="xs:nonNegativeInteger"/>
    <xs:attribute name="src" type="xs:string"/>
  <xs:complexType name="Thosts">
      <xs:element name="host" type ="Thost"/>
  <xs:complexType name="Thost">
      <xs:element name="base" type="Tbase"/>
      <xs:element name="permission" type="xs:string"/>
      <xs:element name="platform" type="Tplatform"/>
      <xs:element name="autoscaleDPI" type="xs:boolean" nillable="true"/>
      <xs:element name="defaultImage" type="TdefaultImage"/>
    <xs:attribute name="name" type="xs:string" default="sidebar"/>
  <xs:complexType name="Tbase">
    <xs:attribute name="type" type="xs:string"/>
    <xs:attribute name="apiVersion" type="xs:string"/>
    <xs:attribute name="src" type="xs:string"/>
  <xs:complexType name="Tplatform">
    <xs:attribute name="minPlatformVersion" type="xs:double"/>
  <xs:complexType name="TdefaultImage">
    <xs:attribute name="src" type="xs:short"/>
I hope this could be useful to someone who need it and don't have time to make one.
Comments or suggestion are welcome...

READ MORE - Windows Sidebar Gadget's Manifest's Schema

Wednesday, July 21, 2010



Cool Borderless Rounded WPF Form

Hi, recently i was making a small app that will allow me to create a Sidebar Gadget manifest (gadget.xml) by just entering various elements and properties on a form. It will generate the manifest file based on your input. Now first thing i had to decide was to take on win-form as my ui or the go with WPF. Well since WPF is new tech i ended up with WPF form.

Now i wanted my WPF to be good looking with a smooth round edge. First i tried different ways discussed on internet, but none sufficed my requirements. So i went down my own way and created a good looking form i wanted. Below is a snapshot.

The method is simple, since i didn't wanted the default windows border so i set my WindowStyle="None" and to hide the corners protruding behind the border i set the AllowsTransparency="True" and Background="{x:Null}.
Now i warped my grid in a Border control and set CornerRadius to 12
 for all corners. Now for a Title Bar i added a Canvas control in the grid and inserted a Label and a button for Closing the form. (Actually the Button itself is a collection of two rectangles transformed to 45 Degree, simply X didn't looked good). Then in the End i adjusted the Border's Background to a Horizontal gradient with 3 stops to mix it with the Title bar. Following is the code.

(Click on Image to Enlarge)

I know there are many ways to do this , this was mine.

Do write comments please...
READ MORE - Cool Borderless Rounded WPF Form



Top 10 WPF Performance Tips

Windows Presentation Foundation provides a very confortable way to develop rich user experiences. A drop shadow for example can added by inserting two simple lines of XML. But this simplicity can also mislead us to overuse them. This leads to performance issues. The following tipps may help you to avoid or fix them.

  1. Dispatch expensive calls either within the UI thread with a lower DispatcherPriority by calling Dispatcher.BeginInvoke() or to a background thread by using a BackgroundWorker to keep the UI responsive.
  2. Fix binding errors because they consume a lot of time, trying to resolve the path error, including searching for attached properties. You can find them by looking for System.Windows.Data Error in the Visual Studio output log.
  3. Reduce the number of visuals by removing unneeded elements, combining layout panels and simplifying templates. This keeps the memory footprint small and improves the rendering performance.
  4. Prevent Software Rendering. The use of transparent windows by setting AllowsTransparency to true or using old BitmapEffects can cause WPF to render the UI in software on Windows XP, which is much slower.
  5. Load resources when needed. Even thow it's the most comfortable way to merge all resources on application level it can also cost performance by loading all resources at startup. A better approach is to load only often used resources and load the other on view level.
  6. Virtualize lists and views by using a VirtualizingStackPanel as ItemsPanel for lists. This only creates the visible elements at load time. All other elements are lazy created when they get visible. Be aware that grouping or CanContextScrol="True" prevents virtualization!
  7. Enable Container Recycling. Virtualization brings a lot of performance improvements, but the containers will be disposed and re created, this is the default. But you can gain more performance by recycle containers by setting VirtualizingStackPanel.VirtualizationMode="Recycling"
  8. Freeze Freezables by calling Freeze() in code or PresentationOptions:Freeze="true" in XAML. This reduces memory consumption and improves performance, because the system don't need to monitor for changes.
  9. Disable Assembly localization if you don't need it. By using the [NeutralResourcesLanguageAttribute]. This prevents an expensive lookup for satelite assemblies
  10. Lower the framerate of animations by setting Storyboard.DesiredFrameRate to lower the CPU load. The default is 60 frames/second
  11. Use StreamGeometries instead of PathGeometries if possible to draw complex 2D geometries, because they are much more efficient and consume less memory.
Originally Taken From
READ MORE - Top 10 WPF Performance Tips

Thursday, July 15, 2010



My Blog's First Post

The idea of having a blog is sure that you have something and you wanna share it with the whole world. The blogs or weblogs   were meant to create a log or a journal of events, articles, etc in  a chronological model.  The idea of having my own blog was not instant, instead i had long wondered to have it but i couldn't find a compelling element that could put me in really writing one, not until i attended the Microsoft's Community Tech Days in Delhi on 11 July . There i got to learn so many things that i couldn't contain all of it in me, so it had to go out somewhere and nothing can be better than a blog post. Here i got to learn so pesky points of software development that i couldnt do the sin of keeping the knowledge to myself. i had to spread it.
The Microsoft's Community tech Days is still going on, you can register for its free online live webcast or in-person event.
READ MORE - My Blog's First Post