<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1106446546494394833</id><updated>2026-06-28T12:22:11.851+05:30</updated><category term="ASP .NET"/><category term="Cool Stuff"/><category term="SQL Server"/><category term="Cool Technology"/><category term="Samsung Mobile Phones"/><category term="Mobile Phones"/><category term="Javascript"/><category term="Microsoft"/><category term="Nokia"/><category term="iPhone"/><category term="Google"/><category term="Samsung"/><category term="Motorola Mobile Phones"/><category term="Silverlight"/><category term="jQuery"/><category term="HTC Mobile Phones"/><category term="LG Mobile Phones"/><category term="Cool Hardware"/><category term="iPad"/><category term="Android"/><category term="Asus Laptop"/><category term="HTC"/><category term="Laptop"/><category term="BlackBerry"/><category term="Css"/><category term="Gadgets"/><category term="Google TV"/><category term="HTML5"/><category term="SQL Tricks"/><category term="Sony Ericsson"/><category term="Visual Studio 2010"/><category term="WPF"/><category term="Windows 7"/><category term="iPhone 4G"/><category term="Facebook"/><category term="RIA"/><category term="Sharepoint"/><category term="WCF"/><category term="Windows Phone 7"/><category term="Xbox 360"/><category term="ASUS"/><category term="Apple"/><category term="Apple TV"/><category term="CSS3"/><category term="Chrome OS"/><category term="HTML"/><category term="Hardware"/><category term="IE9"/><category term="IIS6"/><category term="Kinect"/><category term="MSI Laptop"/><category term="SQL Server 2008"/><category term="Tablets"/><category term="iPhone 3G"/><category term="iPhone 4"/><category term="iPod Touch"/><category term=".NET"/><category term="3D Laptop"/><category term="Acer"/><category term="Acer Laptop"/><category term="Adobe"/><category term="Adobe Phostoshop"/><category term="Adobe Photoshop CS5"/><category term="Altek"/><category term="Azure"/><category term="Blu-ray"/><category term="C#"/><category term="Cloud"/><category term="Cloud Computing"/><category term="Data WareHouse"/><category term="Dell"/><category term="Dell Laptop"/><category term="Dynamics"/><category term="Excell"/><category term="Flickr"/><category term="Fly Mobile Phones"/><category term="Fujifilm"/><category term="G-Speak"/><category term="G-Speak Spatial Operating Environment"/><category term="GP"/><category term="GP 2010"/><category term="Google Instant Search"/><category term="Google Phone"/><category term="Google SSL Search"/><category term="IIS7"/><category term="INQ"/><category term="Internet Explorer 9"/><category term="LG"/><category term="LINQ"/><category term="Lenovo Laptop"/><category term="Lync"/><category term="Lync Server"/><category term="MVVM"/><category term="Mac OS"/><category term="Mac mini"/><category term="MacBook"/><category term="MicroConsole"/><category term="Microsoft Tag"/><category term="MooTools"/><category term="Nintendo"/><category term="Office 2010"/><category term="Olympus"/><category term="Olympus Camera"/><category term="OnLive"/><category term="OneNote"/><category term="PS3"/><category term="PSJailbreak"/><category term="Pantech Mobile Phones"/><category term="SQL Azure"/><category term="SQL Server 2008 R2"/><category term="Safari"/><category term="Samsung C5010"/><category term="Samsung R631"/><category term="Sanyo"/><category term="Sanyo Mobile Phones"/><category term="Sharepoint 2010"/><category term="Skype"/><category term="Sony Playstation"/><category term="Sony Playstation Plus"/><category term="T-Mobile"/><category term="Vimeo"/><category term="Visual Studio"/><category term="Visual Studio 2005"/><category term="Visual Studio 2008"/><category term="Wallaby"/><category term="Wi-Fi"/><category term="Windows Live Essentials"/><category term="XML"/><category term="Yahoo"/><category term="iPhone Apps"/><category term="iPod"/><category term="twitter"/><title type='text'>IT Mania</title><subtitle type='html'>All about ASP .NET, SQL Server, jquery, javascript, new &amp;amp; cool technologies, gadgets n more</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>257</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-6943482420568203582</id><published>2012-03-06T10:57:00.000+05:30</published><updated>2012-03-06T11:00:28.356+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows 7"/><category scheme="http://www.blogger.com/atom/ns#" term="WPF"/><title type='text'>Hook windows keyboard - Capture keypress without focus in C#</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Here is a class which hooks windows keyboard to capture all keypress events even if your C# application is not focused. &lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;highlight&quot;&gt;    /// &lt;summary&gt;
    /// Capture any window key
    /// &lt;/summary&gt;
    public static class WinKeyCapture
    {
        private const int WH_KEYBOARD_LL = 13;
        private const int WM_KEYDOWN = 0x0100;
        private static LowLevelKeyboardProc _proc = HookCallback;

        public static void SetHook()
        {
            SetHook(_proc);
        }

        public static void UnHook()
        {
            UnhookWindowsHookEx(_hookID);
        }

        private static IntPtr SetHook(LowLevelKeyboardProc proc)
        {
            using (Process curProcess = Process.GetCurrentProcess())
            using (ProcessModule curModule = curProcess.MainModule)
            {
                return SetWindowsHookEx(WH_KEYBOARD_LL, proc, GetModuleHandle(curModule.ModuleName), 0);
            }
        }
        private static IntPtr _hookID = IntPtr.Zero;

        private delegate IntPtr LowLevelKeyboardProc(int nCode, IntPtr wParam, IntPtr lParam);

        private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
        {
            if (nCode &amp;gt;= 0 &amp;amp;&amp;amp; wParam == (IntPtr)WM_KEYDOWN)
            {
                int vkCode = Marshal.ReadInt32(lParam);
                if (vkCode == 44)
                    ScreenCapture.Load();
            }
            return CallNextHookEx(_hookID, nCode, wParam, lParam);
        }

        [DllImport(&quot;user32.dll&quot;, CharSet = CharSet.Auto, SetLastError = true)]
        private static extern IntPtr SetWindowsHookEx(int idHook,
            LowLevelKeyboardProc lpfn, IntPtr hMod, uint dwThreadId);

        [DllImport(&quot;user32.dll&quot;, CharSet = CharSet.Auto, SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        private static extern bool UnhookWindowsHookEx(IntPtr hhk);

        [DllImport(&quot;user32.dll&quot;, CharSet = CharSet.Auto, SetLastError = true)]
        private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode,
            IntPtr wParam, IntPtr lParam);

        [DllImport(&quot;kernel32.dll&quot;, CharSet = CharSet.Auto, SetLastError = true)]
        private static extern IntPtr GetModuleHandle(string lpModuleName);
    }
&lt;/pre&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/6943482420568203582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2012/03/hook-windows-keyboard-capture-keypress.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/6943482420568203582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/6943482420568203582'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2012/03/hook-windows-keyboard-capture-keypress.html' title='Hook windows keyboard - Capture keypress without focus in C#'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-643131942769884156</id><published>2011-12-21T15:24:00.000+05:30</published><updated>2011-12-21T15:25:40.274+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cool Technology"/><title type='text'>8 things your webcam can do, that you dont know</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;&quot;&gt;HOME
SECURITY SYSTEM&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;&quot;&gt;THERE
ARE PLENTY&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;&quot;&gt;
of free programs you can use to turn a webcam into a remote security system.
Simply install Yawcam (Windows only) from www.yawcam. com or Vitamin D (Windows
and MAC) from www. vitamindinc.com. Both are free and once installed, you can
configure them to live stream video and monitor the feed remotely. The software
can also be set to alert you or start recording when motion is detected in the frame
of view — this is great because you obviously cannot monitor the feed from the
camera all the time. For general surveillance, you can setup the software to
take snapshots at set intervals and upload them to a remote FTP server. For
Linux users, Motion (www.lavrsen.dk) does the same thing. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;FUN &amp;amp; GAMING &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
A &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;WEBCAM&lt;/span&gt;&lt;/b&gt;
can literally put you into the action while playing a game. At www.newgrounds.
com, you will find a collection of short, quick online games and Adobe Flash
applets that use your webcam. Just head to the games section and webcam games
subsection on the website. You will need to allow Flash Player to access your
webcam when it prompts you — this has to be done for each game. There are
plenty of games available on the site that you can play using your webcam and
each of them has a different theme. Our favourites are the 3D Target Shooting
(the game uses the webcam to detect your location and displays a 3D effect,
relative to your position), Night of the Ninja (fend off angry ninjas by
hitting them), Bunny Zap (zap bunnies before they hit the ground) and Dress Up
Yourself (add spectacles, thought/speech bubbles, facial hair, accessories to
your face). &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;LOGIN VIA FACE
RECOGNITION &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;&quot;&gt;SOME
COMPUTERS&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;&quot;&gt;
may have this feature built in, but if you have a PC running Windows and a
webcam, you can enable login via face recognition easily. Head to www.
luxand.com/blink or http://bananascreen.en.softonic.com&amp;nbsp;and download the
free software. In the initial configuration register your face with the
software and set an auto-lock for Windows. Once active, the software will
recognise your face and automatically log you in to Windows without the need
for a password. Since the software recognises certain points on your face, it
doesn’t matter if you have a different hairstyle or if you’re wearing
spectacles one day. There is an easy way to break in though – if anyone just
holds up a photo of yours to the webcam, the software may log in because it
can’t recognise 2D or 3D shapes.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;&quot;&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;OPTICAL CHARACTER
RECOGNITION &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;OCR&lt;/span&gt;&lt;/b&gt; OR &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Optical character recognition&lt;/span&gt;&lt;/b&gt;
using a webcam is a bit tricky as the image quality of most webcams is average.
However, your webcam can double up as an OCR reader in a pinch. You can take an
image using the webcam and then use software like Microsoft Document imaging,
Google Docs and Abbyy FineReader Online to convert images to text. You can also
try Evernote (free from www.evernote. com). Evernote is recommended software
for OCR since it reads the image from the webcam and converts it into
searchable text in real-time. You can use it to save notes, book pages, reports
and business cards. Accuracy of converted text varies between 70-90% depending
on the image quality and software used for OCR conversion. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;&quot;&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;PHOTOS WITH FUNNY
EFFECTS&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;&quot;&gt;IF
YOU &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;&quot;&gt;go
to www.cameroid.com, you can use any webcam to take funny photos — either with
various filters, distortion effects, scenes or frames. You don’t need to
install anything or even sign up — just give the site permission to access your
webcam through Adobe Flash when prompted. Once you take a photo, you can either
save it to the Cameroid public gallery or download the JPG file to your
computer. You can also try out similar effects at www.seenly.com. You can also
get software to create realtime effects while you video chat with someone using
Skype or Google Talk. Videoskin.net&amp;nbsp;offers some freeware while
www.webcammax.com&amp;nbsp;and www.shiningmorning. com offer trial versions of
their software with thousands of different effects. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;&quot;&gt;BAR
CODE READER&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;READING BAR&lt;/span&gt;&lt;/b&gt;
codes and QR codes is easy with a smartphone and a free app. But you can do the
same thing on a PC with a webcam (doesn&#39;t matter if the webcam is built in or
external, although external is probably better for this purpose). Download and
install bcWebCam (get it free from www.bcwebcam. de) and it will automatically
connect to your webcam to show the feed. Now just place the barcode or QR code
in front of the webcam, the software will take a few seconds to recognise the
embedded content and show you the text/link it contains. Mac users who need
similar functionality can use Evobarcode (15day trial &amp;amp; US$30 post that)
from www.evological.com&amp;nbsp;or QuickMark (US$ 3.99) from the Mac App store. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;TIME LAPSE &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;VIDEOS &lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;TIME LAPSE&lt;/span&gt;&lt;/b&gt;
is a photography technique wherein multiple photographs, taken at the same
location over a period of time are stitched together to form a video. The
resulting effect is of time passing by very quickly, hence the name. Free
software called Tilaphos (http://sourceforge.net/&amp;nbsp;projects/tilaphos) or
Webcam TimerShot (available on http:// download.cnet.com) can do this for you
without hassling you with too many technical details. An external webcam is
recommended for time lapse videos because it is easier to keep it still. Also,
it is much easier to place it at a location from where a wider frame can be
captured — larger coverage would result in capturing of more movements, which
in turn will make the video look good. It’s important that the laptop (or
webcam) is kept perfectly still and that it receives constant power. After
that, it’s just a matter of setting the time interval and recording the time
lapse. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;&quot;&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;MAKE YOUR OWN FONT&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;&quot;&gt;YOU
CAN&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;&quot;&gt;
use your webcam to create a font from your own handwriting. This font can be
used to send emails or create documents with a personal touch. Head over to
www.pilothandwriting.com, download and print the template provided. Now fill
out the boxes in the printed form with the corresponding alphabets — using your
handwriting. Once done, use your webcam to take an image of the form and upload
it to the website. After upload, the site will show you the template and you
can edit it to make the alphabets look better. Next, the website will generate
a font based on your handwriting and then you can download the font to your
computer and use it with any software of your choice. &lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/643131942769884156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2011/12/8-things-your-webcam-can-do-that-you.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/643131942769884156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/643131942769884156'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2011/12/8-things-your-webcam-can-do-that-you.html' title='8 things your webcam can do, that you dont know'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-3116202947400498554</id><published>2011-11-23T12:26:00.001+05:30</published><updated>2011-11-23T12:28:39.692+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="BlackBerry"/><category scheme="http://www.blogger.com/atom/ns#" term="Cool Technology"/><category scheme="http://www.blogger.com/atom/ns#" term="iPhone"/><category scheme="http://www.blogger.com/atom/ns#" term="Mobile Phones"/><title type='text'>Sabeer Bhatia launches free SMS app Jaxtr</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;
Sabeer Bhatia, the founder of Hotmail.com, on Tuesday launched JaxtrSMS, a mobile application that lets users send unlimited free text messages to any other phone anywhere in the world. &lt;/div&gt;
He claimed JaxtrSMS is the world&#39;s first mobile-based application for sending SMS that is completely open as the recipients do not need to have the app installed.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;
&lt;a href=&quot;http://timesofindia.indiatimes.com/tech/personal-tech/computing/sabeer-bhatia-launches-free-sms-app-jaxtr/sabeer-jpg/thumb/10833076/sabeer-jpg.jpg?width=300&amp;amp;resizemode=4&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;http://timesofindia.indiatimes.com/tech/personal-tech/computing/sabeer-bhatia-launches-free-sms-app-jaxtr/sabeer-jpg/thumb/10833076/sabeer-jpg.jpg?width=300&amp;amp;resizemode=4&quot; border=&quot;0&quot; src=&quot;http://timesofindia.indiatimes.com/tech/personal-tech/computing/sabeer-bhatia-launches-free-sms-app-jaxtr/sabeer-jpg/thumb/10833076/sabeer-jpg.jpg?width=300&amp;amp;resizemode=4&quot; /&gt;&lt;/a&gt;It is already available as a free download for all major mobile operating systems - iOS, Android, Blackberry and J2ME. In fact, users in 197 countries have already downloaded the app within a few weeks since the soft launch, said Bhatia, who is CEO &amp;amp; co-founded Jaxtr with Yogesh Patel in US. &lt;/div&gt;
&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
JaxtrSMS is unique in that a mobile user can send a text SMS to any mobile phone in the world without requiring the receiver to have the JaxtrSMS application installed on her phone. This &quot;open&quot; facet of JaxtrSMS distinguishes it from other free mobile messaging applications such as Whatsapp where messages can only be sent within a closed network to people who also have the same app installed. JaxtrSMS retains the number of the user and no new number is required while signing up for the JaxtrSMS service. &lt;br /&gt;
&lt;br /&gt;
&quot;15 years ago, we gave you Hotmail.com, the world&#39;s first webmail service that freed up e-mail from the confines of the desktop and aided the creation of a global communications network which was completely open and free for users. Today, we present JaxtrSMS which does to SMS what Hotmail did for e-mail. &lt;br /&gt;
Now, mobile users can leverage our free and open application to send messages to their contacts anywhere across the world without having to pay anything,&quot; said Bhatia. &lt;br /&gt;
&lt;br /&gt;
&quot;JaxtrSMS was completely developed in India. I am proud to showcase this as an example of Indian innovation and ingenuity,&quot; said Yogesh Patel, president &amp;amp; co-founder.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/3116202947400498554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2011/11/sabeer-bhatia-launches-free-sms-app.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/3116202947400498554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/3116202947400498554'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2011/11/sabeer-bhatia-launches-free-sms-app.html' title='Sabeer Bhatia launches free SMS app Jaxtr'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-655604458370947781</id><published>2011-08-16T16:46:00.000+05:30</published><updated>2011-08-16T16:46:05.997+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="jQuery"/><title type='text'>jQuery Blink Plugin</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div closure_uid_5a3z2t=&quot;84&quot;&gt;
I have created a plugin where you can apply blink effect on any dom object.&lt;/div&gt;
&lt;div closure_uid_5a3z2t=&quot;84&quot;&gt;
It can be div,span or anything.&lt;/div&gt;
&lt;div closure_uid_5a3z2t=&quot;84&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div closure_uid_5a3z2t=&quot;84&quot;&gt;
Check out &lt;a closure_uid_5a3z2t=&quot;92&quot; href=&quot;http://plugins.jquery.com/project/jqblink&quot;&gt;http://plugins.jquery.com/project/jqblink&lt;/a&gt; for more details&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/655604458370947781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2011/08/jquery-blink-plugin.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/655604458370947781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/655604458370947781'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2011/08/jquery-blink-plugin.html' title='jQuery Blink Plugin'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-3578303642707553394</id><published>2011-07-19T11:50:00.004+05:30</published><updated>2011-07-19T16:55:39.826+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Tricks"/><title type='text'>SQLHelper by Microsoft</title><content type='html'>&lt;pre class=&quot;highlight&quot;&gt;using System;
using System.Data;
using System.Xml;
using System.Data.SqlClient;
using System.Collections;


namespace Microsoft.ApplicationBlocks.Data
{
    public sealed class SqlHelper
    {
        #region private utility methods &amp; constructors

        private SqlHelper() { }

        private static void AttachParameters(SqlCommand command, SqlParameter[] commandParameters)
        {
            foreach (SqlParameter p in commandParameters)
            {
                if ((p.Direction == ParameterDirection.InputOutput) &amp;&amp; (p.Value == null))
                {
                    p.Value = DBNull.Value;
                }

                command.Parameters.Add(p);
            }
        }

        private static void AssignParameterValues(SqlParameter[] commandParameters, object[] parameterValues)
        {
            if ((commandParameters == null) || (parameterValues == null))
            {
                return;
            }

            if (commandParameters.Length != parameterValues.Length)
            {
                throw new ArgumentException(&quot;Parameter count does not match Parameter Value count.&quot;);
            }

            for (int i = 0, j = commandParameters.Length; i &lt; j; i++)
            {
                commandParameters[i].Value = parameterValues[i];
            }
        }

        private static void PrepareCommand(SqlCommand command, SqlConnection connection, SqlTransaction transaction, CommandType commandType, string commandText, SqlParameter[] commandParameters)
        {
            if (connection.State != ConnectionState.Open)
            {
                connection.Open();
            }

            command.Connection = connection;

            command.CommandText = commandText;

            if (transaction != null)
            {
                command.Transaction = transaction;
            }

            command.CommandType = commandType;

            if (commandParameters != null)
            {
                AttachParameters(command, commandParameters);
            }

            return;
        }


        #endregion private utility methods &amp; constructors

        #region ExecuteNonQuery

        public static int ExecuteNonQuery(string connectionString, CommandType commandType, string commandText)
        {
            return ExecuteNonQuery(connectionString, commandType, commandText, (SqlParameter[])null);
        }

        public static int ExecuteNonQuery(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            using (SqlConnection cn = new SqlConnection(connectionString))
            {
                cn.Open();
                return ExecuteNonQuery(cn, commandType, commandText, commandParameters);
            }
        }

        public static int ExecuteNonQuery(string connectionString, string spName, params object[] parameterValues)
        {
            if ((parameterValues != null) &amp;&amp; (parameterValues.Length &gt; 0))
            {
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connectionString, spName);

                AssignParameterValues(commandParameters, parameterValues);

                return ExecuteNonQuery(connectionString, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ExecuteNonQuery(connectionString, CommandType.StoredProcedure, spName);
            }
        }

        public static int ExecuteNonQuery(SqlConnection connection, CommandType commandType, string commandText)
        {
            return ExecuteNonQuery(connection, commandType, commandText, (SqlParameter[])null);
        }

        public static int ExecuteNonQuery(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            SqlCommand cmd = new SqlCommand();
            PrepareCommand(cmd, connection, (SqlTransaction)null, commandType, commandText, commandParameters);

            int retval = cmd.ExecuteNonQuery();

            cmd.Parameters.Clear();
            return retval;
        }

        public static int ExecuteNonQuery(SqlConnection connection, string spName, params object[] parameterValues)
        {
            if ((parameterValues != null) &amp;&amp; (parameterValues.Length &gt; 0))
            {
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection.ConnectionString, spName);

                AssignParameterValues(commandParameters, parameterValues);

                return ExecuteNonQuery(connection, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ExecuteNonQuery(connection, CommandType.StoredProcedure, spName);
            }
        }

        public static int ExecuteNonQuery(SqlTransaction transaction, CommandType commandType, string commandText)
        {
            return ExecuteNonQuery(transaction, commandType, commandText, (SqlParameter[])null);
        }

        public static int ExecuteNonQuery(SqlTransaction transaction, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            SqlCommand cmd = new SqlCommand();
            PrepareCommand(cmd, transaction.Connection, transaction, commandType, commandText, commandParameters);

            int retval = cmd.ExecuteNonQuery();

            cmd.Parameters.Clear();
            return retval;
        }

        public static int ExecuteNonQuery(SqlTransaction transaction, string spName, params object[] parameterValues)
        {
            if ((parameterValues != null) &amp;&amp; (parameterValues.Length &gt; 0))
            {
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection.ConnectionString, spName);

                AssignParameterValues(commandParameters, parameterValues);

                return ExecuteNonQuery(transaction, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ExecuteNonQuery(transaction, CommandType.StoredProcedure, spName);
            }
        }


        #endregion ExecuteNonQuery

        #region ExecuteDataSet

        public static DataSet ExecuteDataset(string connectionString, CommandType commandType, string commandText)
        {
            return ExecuteDataset(connectionString, commandType, commandText, (SqlParameter[])null);
        }

        public static DataSet ExecuteDataset(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            using (SqlConnection cn = new SqlConnection(connectionString))
            {
                cn.Open();
                return ExecuteDataset(cn, commandType, commandText, commandParameters);
            }
        }

        public static DataSet ExecuteDataset(string connectionString, string spName, params object[] parameterValues)
        {
            if ((parameterValues != null) &amp;&amp; (parameterValues.Length &gt; 0))
            {
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connectionString, spName);

                AssignParameterValues(commandParameters, parameterValues);

                return ExecuteDataset(connectionString, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ExecuteDataset(connectionString, CommandType.StoredProcedure, spName);
            }
        }

        public static DataSet ExecuteDataset(SqlConnection connection, CommandType commandType, string commandText)
        {
            return ExecuteDataset(connection, commandType, commandText, (SqlParameter[])null);
        }

        public static DataSet ExecuteDataset(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            SqlCommand cmd = new SqlCommand();
            PrepareCommand(cmd, connection, (SqlTransaction)null, commandType, commandText, commandParameters);

            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();

            da.Fill(ds);

            cmd.Parameters.Clear();

            return ds;
        }

        public static DataSet ExecuteDataset(SqlConnection connection, string spName, params object[] parameterValues)
        {
            if ((parameterValues != null) &amp;&amp; (parameterValues.Length &gt; 0))
            {
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection.ConnectionString, spName);

                AssignParameterValues(commandParameters, parameterValues);

                return ExecuteDataset(connection, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ExecuteDataset(connection, CommandType.StoredProcedure, spName);
            }
        }

        public static DataSet ExecuteDataset(SqlTransaction transaction, CommandType commandType, string commandText)
        {
            return ExecuteDataset(transaction, commandType, commandText, (SqlParameter[])null);
        }

        public static DataSet ExecuteDataset(SqlTransaction transaction, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            SqlCommand cmd = new SqlCommand();
            PrepareCommand(cmd, transaction.Connection, transaction, commandType, commandText, commandParameters);

            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();

            da.Fill(ds);

            cmd.Parameters.Clear();

            return ds;
        }

        public static DataSet ExecuteDataset(SqlTransaction transaction, string spName, params object[] parameterValues)
        {
            if ((parameterValues != null) &amp;&amp; (parameterValues.Length &gt; 0))
            {
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection.ConnectionString, spName);

                AssignParameterValues(commandParameters, parameterValues);

                return ExecuteDataset(transaction, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ExecuteDataset(transaction, CommandType.StoredProcedure, spName);
            }
        }

        #endregion ExecuteDataSet

        #region ExecuteReader

        private enum SqlConnectionOwnership
        {
            Internal,
            External
        }

        private static SqlDataReader ExecuteReader(SqlConnection connection, SqlTransaction transaction, CommandType commandType, string commandText, SqlParameter[] commandParameters, SqlConnectionOwnership connectionOwnership)
        {
            SqlCommand cmd = new SqlCommand();
            PrepareCommand(cmd, connection, transaction, commandType, commandText, commandParameters);

            SqlDataReader dr;

            if (connectionOwnership == SqlConnectionOwnership.External)
            {
                dr = cmd.ExecuteReader();
            }
            else
            {
                dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            }

            cmd.Parameters.Clear();

            return dr;
        }

        public static SqlDataReader ExecuteReader(string connectionString, CommandType commandType, string commandText)
        {
            return ExecuteReader(connectionString, commandType, commandText, (SqlParameter[])null);
        }

        public static SqlDataReader ExecuteReader(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            SqlConnection cn = new SqlConnection(connectionString);
            cn.Open();

            try
            {
                return ExecuteReader(cn, null, commandType, commandText, commandParameters, SqlConnectionOwnership.Internal);
            }
            catch
            {
                cn.Close();
                throw;
            }
        }

        public static SqlDataReader ExecuteReader(string connectionString, string spName, params object[] parameterValues)
        {
            if ((parameterValues != null) &amp;&amp; (parameterValues.Length &gt; 0))
            {
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connectionString, spName);

                AssignParameterValues(commandParameters, parameterValues);

                return ExecuteReader(connectionString, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ExecuteReader(connectionString, CommandType.StoredProcedure, spName);
            }
        }

        public static SqlDataReader ExecuteReader(SqlConnection connection, CommandType commandType, string commandText)
        {
            return ExecuteReader(connection, commandType, commandText, (SqlParameter[])null);
        }

        public static SqlDataReader ExecuteReader(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            return ExecuteReader(connection, (SqlTransaction)null, commandType, commandText, commandParameters, SqlConnectionOwnership.External);
        }

        public static SqlDataReader ExecuteReader(SqlConnection connection, string spName, params object[] parameterValues)
        {
            if ((parameterValues != null) &amp;&amp; (parameterValues.Length &gt; 0))
            {
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection.ConnectionString, spName);

                AssignParameterValues(commandParameters, parameterValues);

                return ExecuteReader(connection, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ExecuteReader(connection, CommandType.StoredProcedure, spName);
            }
        }

        public static SqlDataReader ExecuteReader(SqlTransaction transaction, CommandType commandType, string commandText)
        {
            return ExecuteReader(transaction, commandType, commandText, (SqlParameter[])null);
        }

        public static SqlDataReader ExecuteReader(SqlTransaction transaction, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            return ExecuteReader(transaction.Connection, transaction, commandType, commandText, commandParameters, SqlConnectionOwnership.External);
        }

        public static SqlDataReader ExecuteReader(SqlTransaction transaction, string spName, params object[] parameterValues)
        {
            if ((parameterValues != null) &amp;&amp; (parameterValues.Length &gt; 0))
            {
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection.ConnectionString, spName);

                AssignParameterValues(commandParameters, parameterValues);

                return ExecuteReader(transaction, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ExecuteReader(transaction, CommandType.StoredProcedure, spName);
            }
        }

        #endregion ExecuteReader

        #region ExecuteScalar

        public static object ExecuteScalar(string connectionString, CommandType commandType, string commandText)
        {
            return ExecuteScalar(connectionString, commandType, commandText, (SqlParameter[])null);
        }

        public static object ExecuteScalar(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            using (SqlConnection cn = new SqlConnection(connectionString))
            {
                cn.Open();
                return ExecuteScalar(cn, commandType, commandText, commandParameters);
            }
        }

        public static object ExecuteScalar(string connectionString, string spName, params object[] parameterValues)
        {
            if ((parameterValues != null) &amp;&amp; (parameterValues.Length &gt; 0))
            {
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connectionString, spName);

                AssignParameterValues(commandParameters, parameterValues);

                return ExecuteScalar(connectionString, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ExecuteScalar(connectionString, CommandType.StoredProcedure, spName);
            }
        }

        public static object ExecuteScalar(SqlConnection connection, CommandType commandType, string commandText)
        {
            return ExecuteScalar(connection, commandType, commandText, (SqlParameter[])null);
        }

        public static object ExecuteScalar(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            SqlCommand cmd = new SqlCommand();
            PrepareCommand(cmd, connection, (SqlTransaction)null, commandType, commandText, commandParameters);

            object retval = cmd.ExecuteScalar();

            cmd.Parameters.Clear();
            return retval;

        }

        public static object ExecuteScalar(SqlConnection connection, string spName, params object[] parameterValues)
        {
            if ((parameterValues != null) &amp;&amp; (parameterValues.Length &gt; 0))
            {
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection.ConnectionString, spName);

                AssignParameterValues(commandParameters, parameterValues);

                return ExecuteScalar(connection, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ExecuteScalar(connection, CommandType.StoredProcedure, spName);
            }
        }

        public static object ExecuteScalar(SqlTransaction transaction, CommandType commandType, string commandText)
        {
            return ExecuteScalar(transaction, commandType, commandText, (SqlParameter[])null);
        }

        public static object ExecuteScalar(SqlTransaction transaction, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            SqlCommand cmd = new SqlCommand();
            PrepareCommand(cmd, transaction.Connection, transaction, commandType, commandText, commandParameters);

            object retval = cmd.ExecuteScalar();

            cmd.Parameters.Clear();
            return retval;
        }

        public static object ExecuteScalar(SqlTransaction transaction, string spName, params object[] parameterValues)
        {
            if ((parameterValues != null) &amp;&amp; (parameterValues.Length &gt; 0))
            {
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection.ConnectionString, spName);

                AssignParameterValues(commandParameters, parameterValues);

                return ExecuteScalar(transaction, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ExecuteScalar(transaction, CommandType.StoredProcedure, spName);
            }
        }

        #endregion ExecuteScalar

        #region ExecuteXmlReader

        public static XmlReader ExecuteXmlReader(SqlConnection connection, CommandType commandType, string commandText)
        {
            return ExecuteXmlReader(connection, commandType, commandText, (SqlParameter[])null);
        }

        public static XmlReader ExecuteXmlReader(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            SqlCommand cmd = new SqlCommand();
            PrepareCommand(cmd, connection, (SqlTransaction)null, commandType, commandText, commandParameters);

            XmlReader retval = cmd.ExecuteXmlReader();

            cmd.Parameters.Clear();
            return retval;
        }

        public static XmlReader ExecuteXmlReader(SqlConnection connection, string spName, params object[] parameterValues)
        {
            if ((parameterValues != null) &amp;&amp; (parameterValues.Length &gt; 0))
            {
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection.ConnectionString, spName);

                AssignParameterValues(commandParameters, parameterValues);

                return ExecuteXmlReader(connection, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ExecuteXmlReader(connection, CommandType.StoredProcedure, spName);
            }
        }

        public static XmlReader ExecuteXmlReader(SqlTransaction transaction, CommandType commandType, string commandText)
        {
            return ExecuteXmlReader(transaction, commandType, commandText, (SqlParameter[])null);
        }

        public static XmlReader ExecuteXmlReader(SqlTransaction transaction, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            SqlCommand cmd = new SqlCommand();
            PrepareCommand(cmd, transaction.Connection, transaction, commandType, commandText, commandParameters);

            XmlReader retval = cmd.ExecuteXmlReader();

            cmd.Parameters.Clear();
            return retval;
        }

        public static XmlReader ExecuteXmlReader(SqlTransaction transaction, string spName, params object[] parameterValues)
        {
            if ((parameterValues != null) &amp;&amp; (parameterValues.Length &gt; 0))
            {
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection.ConnectionString, spName);

                AssignParameterValues(commandParameters, parameterValues);

                return ExecuteXmlReader(transaction, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ExecuteXmlReader(transaction, CommandType.StoredProcedure, spName);
            }
        }


        #endregion ExecuteXmlReader
    }

    public sealed class SqlHelperParameterCache
    {
        #region private methods, variables, and constructors

        private SqlHelperParameterCache() { }

        private static Hashtable paramCache = Hashtable.Synchronized(new Hashtable());

        private static SqlParameter[] DiscoverSpParameterSet(string connectionString, string spName, bool includeReturnValueParameter)
        {
            using (SqlConnection cn = new SqlConnection(connectionString))
            using (SqlCommand cmd = new SqlCommand(spName, cn))
            {
                cn.Open();
                cmd.CommandType = CommandType.StoredProcedure;

                SqlCommandBuilder.DeriveParameters(cmd);

                if (!includeReturnValueParameter)
                {
                    cmd.Parameters.RemoveAt(0);
                }

                SqlParameter[] discoveredParameters = new SqlParameter[cmd.Parameters.Count]; ;

                cmd.Parameters.CopyTo(discoveredParameters, 0);

                return discoveredParameters;
            }
        }

        private static SqlParameter[] CloneParameters(SqlParameter[] originalParameters)
        {
            SqlParameter[] clonedParameters = new SqlParameter[originalParameters.Length];

            for (int i = 0, j = originalParameters.Length; i &lt; j; i++)
            {
                clonedParameters[i] = (SqlParameter)((ICloneable)originalParameters[i]).Clone();
            }

            return clonedParameters;
        }

        #endregion private methods, variables, and constructors

        #region caching functions

        public static void CacheParameterSet(string connectionString, string commandText, params SqlParameter[] commandParameters)
        {
            string hashKey = connectionString + &quot;:&quot; + commandText;

            paramCache[hashKey] = commandParameters;
        }

        public static SqlParameter[] GetCachedParameterSet(string connectionString, string commandText)
        {
            string hashKey = connectionString + &quot;:&quot; + commandText;

            SqlParameter[] cachedParameters = (SqlParameter[])paramCache[hashKey];

            if (cachedParameters == null)
            {
                return null;
            }
            else
            {
                return CloneParameters(cachedParameters);
            }
        }

        #endregion caching functions

        #region Parameter Discovery Functions

        public static SqlParameter[] GetSpParameterSet(string connectionString, string spName)
        {
            return GetSpParameterSet(connectionString, spName, false);
        }

        public static SqlParameter[] GetSpParameterSet(string connectionString, string spName, bool includeReturnValueParameter)
        {
            string hashKey = connectionString + &quot;:&quot; + spName + (includeReturnValueParameter ? &quot;:include ReturnValue Parameter&quot; : &quot;&quot;);

            SqlParameter[] cachedParameters;

            cachedParameters = (SqlParameter[])paramCache[hashKey];

            if (cachedParameters == null)
            {
                cachedParameters = (SqlParameter[])(paramCache[hashKey] = DiscoverSpParameterSet(connectionString, spName, includeReturnValueParameter));
            }

            return CloneParameters(cachedParameters);
        }

        #endregion Parameter Discovery Functions

    }
}
&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/3578303642707553394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2011/07/sqlhelper-by-microsoft.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/3578303642707553394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/3578303642707553394'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2011/07/sqlhelper-by-microsoft.html' title='SQLHelper by Microsoft'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-7369472245079923194</id><published>2011-07-13T18:25:00.000+05:30</published><updated>2011-07-13T18:30:15.552+05:30</updated><title type='text'>Invitation to be part of success story</title><content type='html'>&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Dear Friends,&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Hope you are doing well along with your family.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;2010-11 has been an excellent year for us i.e. Prakash
Software. &lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Apart from increased number of satisfied customers, we got “&lt;span style=&quot;color: magenta;&quot;&gt;Best Innovation Company 2011 Award&lt;/span&gt;” from GESIA. &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.prakashinfotech.com/coverage/gesia.html&quot;&gt;View details&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;We are yet observing phenomenal growth on the road ahead and
I am excited to invite you to be part of it.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;I am glad to announce that as part of our growth process –
we are going to hire yet more members at both our Ahmedabad &amp;amp; Baroda
branches.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Have a look through below and follow any of contact steps to
be part of our success story!&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Current Openings:&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;1.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;CODE ‘201107-MOSS-SNR’: Microsoft SharePoint – Senior
Developer / Tech Lead [2-5 years relevant experience] Vacancies – 1 [Ahmedabad]
JOBCODE: &lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;2.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;CODE ‘201107-MOSS-JNR’: Microsoft SharePoint –
Junior Developer [1-2 years relevant experience] Vacancies – 2 [Baroda]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;3.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;CODE ‘201107-BDE’: Business Development Executive
[1-8 years of experience] Vacancies – 4 [Ahmedabad-2, Baroda-2]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;4.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;CODE ‘201107-BA’: Business Analyst [1-5 years of
experience] Vacancies – 1 [Ahmedabad]&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Get rolling through one of below:&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;mso-list: l1 level1 lfo2; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;1.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Send your latest CV to ‘&lt;a href=&quot;mailto:cv@prakashinfotech.com&quot;&gt;cv@prakashinfotech.com&lt;/a&gt; ’; please
ensure to write Job Code in subject for faster processing.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;mso-list: l1 level1 lfo2; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;2.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Call us at +91-9714882647&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/7369472245079923194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2011/07/invitation-to-be-part-of-success-story.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/7369472245079923194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/7369472245079923194'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2011/07/invitation-to-be-part-of-success-story.html' title='Invitation to be part of success story'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-860655798463255818</id><published>2011-04-16T14:13:00.004+05:30</published><updated>2011-07-22T13:08:18.291+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="RIA"/><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight"/><category scheme="http://www.blogger.com/atom/ns#" term="WCF"/><title type='text'>Datapager: Paging in RIA Application with MVVM</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: large;&quot;&gt;&lt;b&gt;PagedEntitySet&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
This will help creating List of Entities that can be paged.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;highlight&quot;&gt;public class PagedEntitySet&lt;t&gt; : INotifyPropertyChanged, INotifyCollectionChanged, IPagedCollectionView, IEnumerable&lt;t&gt;
	where T : Entity, new()
{

	#region Private Members

	private IPagedCollectionView _pagingView;

	private IEnumerable&lt;t&gt; Enumerable { get { return this._entityList; } }

	private EntitySet&lt;t&gt; _entityList;

	#endregion

	#region IEnumerable&lt;t&gt; Members

	public IEnumerator&lt;t&gt; GetEnumerator()
	{
		return this._entityList.GetEnumerator();
	}

	#endregion

	#region IEnumerable Members

	IEnumerator IEnumerable.GetEnumerator()
	{
		return this.GetEnumerator();
	}

	#endregion

	#region Constructor

	public PagedEntitySet(EntitySet&lt;t&gt; entityList, IPagedCollectionView delegatePagingView)
	{
		_entityList = entityList;
		INotifyCollectionChanged collectionChanged = _entityList as INotifyCollectionChanged;
		if (collectionChanged != null)
			collectionChanged.CollectionChanged += (s, e) =&amp;gt; CollectionChanged(this, e);
		_pagingView = delegatePagingView;
		_pagingView.PageChanging += PageChanging;
		_pagingView.PageChanged += PageChanged;
		INotifyPropertyChanged propertyChanged = _pagingView as INotifyPropertyChanged;
		if (propertyChanged != null)
			propertyChanged.PropertyChanged += (s, e) =&amp;gt; PropertyChanged(this, e);
	}

	#endregion

	#region INotifyPropertyChanged Members

	public event PropertyChangedEventHandler PropertyChanged = delegate { };

	#endregion

	#region INotifyCollectionChanged Members

	public event NotifyCollectionChangedEventHandler CollectionChanged = delegate { };

	#endregion

	#region IPagedCollectionView Members

	public bool CanChangePage
	{
		get { return _pagingView.CanChangePage; }
	}

	public bool IsPageChanging
	{
		get { return _pagingView.IsPageChanging; }
	}

	public int ItemCount
	{
		get { return _pagingView.ItemCount; }
	}

	public bool MoveToFirstPage()
	{
		return _pagingView.MoveToFirstPage();
	}

	public bool MoveToLastPage()
	{
		return _pagingView.MoveToLastPage();
	}

	public bool MoveToNextPage()
	{
		return _pagingView.MoveToNextPage();
	}

	public bool MoveToPage(int pageIndex)
	{
		return _pagingView.MoveToPage(pageIndex);
	}

	public bool MoveToPreviousPage()
	{
		return _pagingView.MoveToPreviousPage();
	}

	public event EventHandler&lt;eventargs&gt; PageChanged = delegate { };

	public event EventHandler&lt;pagechangingeventargs&gt; PageChanging = delegate { };

	public int PageIndex
	{
		get { return _pagingView.PageIndex; }
	}

	public int PageSize
	{
		get { return _pagingView.PageSize; }
		set { _pagingView.PageSize = value; }
	}

	public int TotalItemCount
	{
		get { return _pagingView.TotalItemCount; }
	}

	#endregion

}
&lt;/pagechangingeventargs&gt;&lt;/eventargs&gt;&lt;/t&gt;&lt;/t&gt;&lt;/t&gt;&lt;/t&gt;&lt;/t&gt;&lt;/t&gt;&lt;/t&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: large;&quot;&gt;&lt;b&gt;PagedViewModelBase&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;This abstract class will help binding your view model to view page with paging functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;highlight&quot;&gt;public abstract class PagedViewModelBase: IPagedCollectionView, INotifyPropertyChanged
{

	#region Member Properties

	private static PropertyChangedEventArgs IsPageChangingChangedEventArgs = new PropertyChangedEventArgs(&quot;IsPageChanging&quot;);

	private static PropertyChangedEventArgs ItemCountChangedEventArgs = new PropertyChangedEventArgs(&quot;ItemCount&quot;);

	private static PropertyChangedEventArgs PageIndexChangedEventArgs = new PropertyChangedEventArgs(&quot;PageIndex&quot;);

	private static PropertyChangedEventArgs PageSizeChangedEventArgs = new PropertyChangedEventArgs(&quot;PageSize&quot;);

	private static PropertyChangedEventArgs TotalItemCountChangedEventArgs = new PropertyChangedEventArgs(&quot;TotalItemCount&quot;);

	private static PropertyChangedEventArgs IsLoadingChangedEventArgs = new PropertyChangedEventArgs(&quot;IsLoading&quot;);

	private bool _isLoading;

	public bool IsLoading
	{
		get { return _isLoading; }
		set
		{
			if (_isLoading != value)
			{
				_isLoading = value;
				RaisePropertyChanged(IsLoadingChangedEventArgs);
			}
		}
	}

	#endregion

	#region Member Functions

	public abstract void LoadData();

	#endregion

	#region INotifyPropertyChanged Members

	public event PropertyChangedEventHandler PropertyChanged;

	protected void RaisePropertyChanged(PropertyChangedEventArgs args)
	{
		if (PropertyChanged != null)
			PropertyChanged(this, args);
	}

	#endregion

	#region IPagedCollectionView Members

	public bool CanChangePage
	{
		get { return true; }
	}

	bool isPageChanging;

	public bool IsPageChanging
	{
		get { return isPageChanging; }
		private set
		{
			if (isPageChanging != value)
			{
				isPageChanging = value;
				RaisePropertyChanged(IsPageChangingChangedEventArgs);
			}

		}
	}

	int itemCount;

	public int ItemCount
	{
		get { return itemCount; }
		set
		{
			if (itemCount != value)
			{
				itemCount = value;
				RaisePropertyChanged(ItemCountChangedEventArgs);
			}
		}
	}

	public bool MoveToFirstPage()
	{
		return MoveToPage(0);
	}

	public bool MoveToLastPage()
	{
		return MoveToPage(TotalItemCount / PageSize);
	}

	public bool MoveToNextPage()
	{
		return MoveToPage(PageIndex + 1);
	}

	public bool MoveToPage(int index)
	{
		if (index == PageIndex || index &amp;lt; 0 || index &amp;gt; TotalItemCount / PageSize)
		{
			return false;
		}
		PageChangingEventArgs args = new PageChangingEventArgs(index);
		try
		{
			IsPageChanging = true;
			PageChanging(this, args);
			if (!args.Cancel)
			{
				pageIndex = index;
				LoadData();
				RaisePropertyChanged(PageIndexChangedEventArgs);
				PageChanged(this, EventArgs.Empty);
				return true;
			}
			return false;
		}
		finally
		{
			IsPageChanging = false;
		}
	}

	public bool MoveToPreviousPage()
	{
		return MoveToPage(PageIndex - 1);
	}

	public event EventHandler&amp;lt;EventArgs&amp;gt; PageChanged = delegate { };

	public event EventHandler&amp;lt;PageChangingEventArgs&amp;gt; PageChanging = delegate { };

	int pageIndex;

	public int PageIndex
	{
		get { return pageIndex; }
		set
		{
			if (pageIndex &amp;lt; 0 || pageIndex &amp;gt; totalItemCount / PageSize)
			{
				throw new ArgumentOutOfRangeException(&quot;PageIndex must be greater than or equal to 0 and less than the page count&quot;);
			}
			MoveToPage(value);
		}
	}

	int pageSize = 10; //default page size to 10

	public int PageSize
	{
		get { return pageSize; }
		set
		{
			if (pageSize != value)
			{
				pageSize = value;
				RaisePropertyChanged(PageSizeChangedEventArgs);
			}
		}
	}

	int totalItemCount;

	public int TotalItemCount
	{
		get { return totalItemCount; }
		set
		{
			if (totalItemCount != value)
			{
				totalItemCount = value;
				RaisePropertyChanged(TotalItemCountChangedEventArgs);
			}
		}
	}
	
	#endregion
}
&lt;/pre&gt;&lt;br /&gt;
&lt;/div&gt;This both Class will help you to easily bind your datagrid and datapager.&lt;br /&gt;
Just use &lt;b&gt;PagedEntitySet&lt;/b&gt; type for binding data in your viewmodel for both datagrid and datapager.&lt;br /&gt;
Use constructor to initialize data in it.&lt;br /&gt;
&lt;br /&gt;
This is the easiest way I find. If you have some more smart code please share it. Hope this will save a lot of your time. Happy Coding..&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/860655798463255818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2011/04/datapager-paging-in-ria-application.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/860655798463255818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/860655798463255818'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2011/04/datapager-paging-in-ria-application.html' title='Datapager: Paging in RIA Application with MVVM'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-1647848137468296711</id><published>2011-04-12T19:21:00.003+05:30</published><updated>2011-07-22T10:34:17.063+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight"/><category scheme="http://www.blogger.com/atom/ns#" term="WPF"/><title type='text'>Implementing RelayCommand in easiest way</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;public class RelayCommand&amp;lt;T&amp;gt; : ICommand
{
        Action&amp;lt;T&amp;gt; _TargetExecuteMethod;

        Func&amp;lt;T, bool&amp;gt; _TargetCanExecuteMethod;

        public RelayCommand(Action&amp;lt;T&amp;gt; executeMethod)
        {
            _TargetExecuteMethod = executeMethod;
        }

        public RelayCommand(Action&amp;lt;T&amp;gt; executeMethod, Func&amp;lt;T,bool&amp;gt; canExecuteMethod)
        {
            _TargetExecuteMethod = executeMethod;
            _TargetCanExecuteMethod = canExecuteMethod;
        }

        public void RaiseCanExecuteChanged()
        {
            CanExecuteChanged(this, EventArgs.Empty);
        }

        #region ICommand Members
        bool ICommand.CanExecute(object parameter)
        {
            if (_TargetCanExecuteMethod != null)
            {
                T tparm = (T)parameter;

                return _TargetCanExecuteMethod(tparm);
            }

            if (_TargetExecuteMethod != null)
            {
                return true;
            }

            return false;
        }

        // Beware - should use weak references if command instance lifetime is longer than lifetime of UI objects that get hooked up to command

        // Prism commands solve this in their implementation

        public event EventHandler CanExecuteChanged = delegate { };

        void ICommand.Execute(object parameter)
        {
            if (_TargetExecuteMethod != null)
            {
               _TargetExecuteMethod((T)parameter);
            }
        }
        #endregion

}
&lt;/pre&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/1647848137468296711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2011/04/implementing-relaycommand-in-easiest.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/1647848137468296711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/1647848137468296711'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2011/04/implementing-relaycommand-in-easiest.html' title='Implementing RelayCommand in easiest way'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-7193533639055747633</id><published>2011-03-11T16:03:00.000+05:30</published><updated>2011-03-11T16:03:33.879+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="HTML5"/><category scheme="http://www.blogger.com/atom/ns#" term="Wallaby"/><title type='text'>Adobe Launches Flash to HTML Conversion Tool - Wallaby</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, sans-serif; font-size: 13px; line-height: 19px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-2506&quot; height=&quot;200&quot; src=&quot;http://www.republicofcode.com/wp-content/uploads/2011/03/wallaby.jpg&quot; style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; float: left; margin-bottom: 10px; margin-left: 0px; margin-right: 10px; margin-top: 0px;&quot; title=&quot;Wallaby&quot; width=&quot;175&quot; /&gt;Earlier this week Adobe announced a new technology called&amp;nbsp;&lt;a href=&quot;http://labs.adobe.com/technologies/wallaby/&quot; style=&quot;color: #3972cd; text-decoration: none;&quot;&gt;Wallaby&lt;/a&gt;&amp;nbsp;that will enable its users to convert Flash projects into HTML5. Unlike the&amp;nbsp;Flash iPhone Packager, Wallaby will not be able to convert any ActionScript into interactive HTML5 content, instead the tool simply makes it possible to convert Graphical content in FLA files into HTML5 ready content that may be displayed on webkit browers and iOS devices such as the iPhone and the iPad. Wallaby conversion works only with FLA files written in AS3 format.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;You can learn more about Wallaby and download it from&amp;nbsp;&lt;a href=&quot;http://labs.adobe.com/technologies/wallaby/&quot; style=&quot;color: #3972cd; text-decoration: none;&quot;&gt;Adobe Labs&lt;/a&gt;, but you should note that this is an early technology showcase, so do not expect it to be bug-free.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/7193533639055747633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2011/03/adobe-launches-flash-to-html-conversion.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/7193533639055747633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/7193533639055747633'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2011/03/adobe-launches-flash-to-html-conversion.html' title='Adobe Launches Flash to HTML Conversion Tool - Wallaby'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-4212143328890960303</id><published>2010-10-23T21:06:00.000+05:30</published><updated>2010-10-23T21:06:41.279+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="MVVM"/><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight"/><category scheme="http://www.blogger.com/atom/ns#" term="WPF"/><title type='text'>Why to use MVVM patterns with Silverlight and WPF development</title><content type='html'>To begin with, there are numerous and varied ways in implementing methodologies like MVVM, most of which are used based on personal preference. To a novice trying to educate themselves, this leads to disparity in information. Complicating this factor is that many of the articles or videos that attempt to describe the MVVM pattern also include components of other architectural patterns. This adds unnecessary complexity to understanding the MVVM pattern because of the inconsistencies in the pattern being described.&lt;br /&gt;
&lt;br /&gt;
A great artical by Kim Schmidt. &lt;a href=&quot;http://hackingsilverlight.blogspot.com/2010/10/why-use-mvvm-pattern-with-silverlight.html&quot; target=&quot;_blank&quot;&gt;Here is the link&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/4212143328890960303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/why-to-use-mvvm-patterns-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/4212143328890960303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/4212143328890960303'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/why-to-use-mvvm-patterns-with.html' title='Why to use MVVM patterns with Silverlight and WPF development'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-1713200625798505172</id><published>2010-10-22T23:34:00.000+05:30</published><updated>2010-10-22T23:34:12.025+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP .NET"/><category scheme="http://www.blogger.com/atom/ns#" term="Javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="jQuery"/><title type='text'>Calendar &amp; Date Picker Scripts for ASP.NET and more</title><content type='html'>Calendars can be seen frequently in most web pages today especially in blogs and personal websites. As for corporate sites or e-commerce sites, it is utilize to layout announcements, up-coming events, contest and much more. What makes a calendar almost essential? It allows users to know what is new, what to be expect on specified date and track back older information all at one glance.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.hongkiat.com/blog/useful-calendar-date-picker-scripts-for-web-developers/&quot; target=&quot;_blank&quot;&gt;Here is the full post&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/1713200625798505172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/calendar-date-picker-scripts-for-aspnet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/1713200625798505172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/1713200625798505172'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/calendar-date-picker-scripts-for-aspnet.html' title='Calendar &amp; Date Picker Scripts for ASP.NET and more'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-6709157211512440982</id><published>2010-10-21T12:37:00.000+05:30</published><updated>2010-10-21T12:37:00.905+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Windows Phone 7"/><title type='text'>Create games for Windows Phone 7 - Getting Started Platforms Full Download</title><content type='html'>&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;br /&gt;
&lt;/td&gt; &lt;td&gt;&lt;h3&gt;Phase 1 - Platform&lt;/h3&gt;Get introduced to Windows Phone 7, and phone game development with  XNA Game Studio. This set of educational content is for all skill levels  and phases of development, with a focus on introducing basic game  techniques – such as input, graphics, and sound – to developers  interested in making games on Windows Phone 7 using XNA Game Studio 4.0.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Download &lt;a href=&quot;http://create.msdn.com/downloads/?id=641&quot; target=&quot;_blank&quot;&gt;Part 1 (13 MB)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Download &lt;a href=&quot;http://create.msdn.com/downloads/?id=642&quot; target=&quot;_blank&quot;&gt;Part 2 (83 MB)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;br /&gt;
&lt;/td&gt; &lt;td&gt;&lt;h3&gt;Phase 2 - Performance&lt;/h3&gt;Learn how to get the most out of Windows Phone 7 and XNA Game Studio with optimization tips and tricks.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Download &lt;a href=&quot;http://create.msdn.com/downloads/?id=645&quot; target=&quot;_blank&quot;&gt;Part 1 (8 MB)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Part 2 - Coming Soon&lt;/li&gt;
&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/6709157211512440982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/create-games-for-windows-phone-7.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/6709157211512440982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/6709157211512440982'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/create-games-for-windows-phone-7.html' title='Create games for Windows Phone 7 - Getting Started Platforms Full Download'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-6578144272340769932</id><published>2010-10-20T11:56:00.000+05:30</published><updated>2010-10-20T11:56:00.219+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Mobile Phones"/><category scheme="http://www.blogger.com/atom/ns#" term="Sony Ericsson"/><title type='text'>Sony Ericsson S006 phone with 16.2-megapixel CMOS sensor</title><content type='html'>&lt;span id=&quot;intelliTxt&quot;&gt;&lt;center&gt;&lt;img alt=&quot;Sony Ericsson S006 phone gets 16.2-megapixel CMOS sensor&quot; border=&quot;0&quot; src=&quot;http://www.ubergizmo.com/photos/2010/10/kddi-cybershot.jpg&quot; style=&quot;margin: 0px;&quot; title=&quot;Sony Ericsson S006 phone gets 16.2-megapixel CMOS sensor&quot; /&gt;&lt;/center&gt;&lt;br /&gt;
Sony Ericsson has certainly outdone itself with the S006 smartphone  from KDDI, where it will boast a massive 16.2-megapixel CMOS sensor,  catering to those who think that &quot;more is better&quot;. Digital photography  doesn&#39;t work that way though, but at least it gives you some bragging  rights among your less informed mates. Other specifications of the S006  include the proprietary Exmor R image engine, the ability to achieve ISO  12800, a 1GHz Snapdragon processor, Wi-Fi connectivity, an integrated  FM tuner, GPS navigation, Bluetooth connectivity and a 3.3-inch display  with VGA resolution. No idea on pricing, but don&#39;t expect to see this  hit the US anytime soon.&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/6578144272340769932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/sony-ericsson-s006-phone-with-162.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/6578144272340769932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/6578144272340769932'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/sony-ericsson-s006-phone-with-162.html' title='Sony Ericsson S006 phone with 16.2-megapixel CMOS sensor'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-8576876875194808685</id><published>2010-10-19T11:56:00.001+05:30</published><updated>2010-10-19T11:56:02.913+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="IIS6"/><title type='text'>IIS/Exchange logs and WebDAV functions</title><content type='html'>You can collect information about client requests by enabling logging for sites      and services. IIS logs are stored in      %SystemRoot%\system32\Logfiles\&lt;service_name&gt;. If you examine the IIS/Exchange      log file you will see the request for the sample application being handled by      IIS - you can notice couple of jargons like GET, PUT, POST, MKCOL, LOCK, UNLOCK,      PROPFIND, SEARCH, PROPATCH, SUSBCRIBE, UNSUBSCRIBE, POLL etc.&amp;nbsp;&lt;/service_name&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;clip_image002&quot; border=&quot;0&quot; height=&quot;323&quot; src=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-92-17-metablogapi/2086.clip_5F00_image002_5F00_6E1E85C7.jpg&quot; style=&quot;border: 0px none; display: inline;&quot; title=&quot;clip_image002&quot; width=&quot;748&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
The three main HTTP functions used are &lt;strong&gt;GET&lt;/strong&gt;, &lt;strong&gt;PUT&lt;/strong&gt;      and &lt;strong&gt;POST&lt;/strong&gt;:     &lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;                      &lt;strong&gt;GET: &lt;/strong&gt;Retrieves a document&amp;nbsp;             &lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;                      &lt;strong&gt;PUT: &lt;/strong&gt;Puts an item in a folder&amp;nbsp;             &lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;                      &lt;strong&gt;POST: &lt;/strong&gt;Submits an item to a folder&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
In addition to above, there are few more WebDAV functions that are used:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;                      &lt;strong&gt;MKCOL: &lt;/strong&gt;Makes a collection that is in essence the same as a Web              Storage System folder. MKCOL allows you to make folders and set their              properties.&amp;nbsp;             &lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;                      &lt;strong&gt;LOCK: &lt;/strong&gt;Locks documents to prevent writes.&amp;nbsp;             &lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;                      &lt;strong&gt;UNLOCK: &lt;/strong&gt;Allows writes and creates updates.&amp;nbsp;             &lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;                      &lt;strong&gt;PROPFIND: &lt;/strong&gt;Searches for properties individually or for a whole              set of folders.&amp;nbsp;             &lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;                      &lt;strong&gt;SEARCH: &lt;/strong&gt;Provides filter, subquery and sort capabilities to a              search.&amp;nbsp;             &lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;                      &lt;strong&gt;PROPPATCH: &lt;/strong&gt;Sets arbitrary properties on an item.&amp;nbsp;             &lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;                      &lt;strong&gt;SUBSCRIBE: &lt;/strong&gt;Adds a user to a list.&amp;nbsp;             &lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;                      &lt;strong&gt;UNSUBSCRIBE: &lt;/strong&gt;Removes a user from a list.&amp;nbsp;             &lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;                      &lt;strong&gt;POLL: &lt;/strong&gt;Checks to see if the notification is fired.         &lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/8576876875194808685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/iisexchange-logs-and-webdav-functions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/8576876875194808685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/8576876875194808685'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/iisexchange-logs-and-webdav-functions.html' title='IIS/Exchange logs and WebDAV functions'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-4412410795546911921</id><published>2010-10-17T12:33:00.000+05:30</published><updated>2010-10-17T12:33:53.736+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><title type='text'>System Stored Procedure sys.sp_tables in SQL Server</title><content type='html'>to know the list of the tables from the database: &lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;code style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;SELECT &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;*&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;FROM &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;sys.tables&lt;br /&gt;
GO&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The script above provides various  information from create date to file stream, and many other important  information. If you need all those information, that script is the one  for you. However, if you do not need all those information, I suggest  that you run the following script:&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;code style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;EXEC &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;sys.&lt;/span&gt;&lt;span style=&quot;color: darkred;&quot;&gt;sp_tables&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;GO&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The script above will give all the  tables in the table with schema name and qualifiers. Additionally, this  will return all the system catalog views together with other views. This  Stored Procedure returns all the tables first in the result set,  followed by views.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Even though Stored Procedure returns more numbers of rows, it still performs better than the sys.table query.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Let us verify it with two different methods for database AdventureWorks:&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;1) SET STATISTICS IO ON&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;code style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;USE &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;AdventureWorks&lt;br /&gt;
GO&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;SET STATISTICS &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;IO &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;ON&lt;br /&gt;
SELECT &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;*&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;FROM &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;sys.tables&lt;br /&gt;
GO&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;EXEC &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;sys.&lt;/span&gt;&lt;span style=&quot;color: darkred;&quot;&gt;sp_tables&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;GO&lt;br /&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;(81 row(s) affected) (This is for sys.tables)&lt;br /&gt;
Table ‘syspalvalues’. Scan count 0, logical reads 162, physical reads 0,  read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob  read-ahead reads 0.&lt;br /&gt;
Table ‘syssingleobjrefs’. Scan count 0, logical reads 324, physical  reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0,  lob read-ahead reads 0.&lt;br /&gt;
Table ‘sysidxstats’. Scan count 81, logical reads 168, physical reads 0,  read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob  read-ahead reads 0.&lt;br /&gt;
Table ‘syspalnames’. Scan count 0, logical reads 162, physical reads 0,  read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob  read-ahead reads 0.&lt;br /&gt;
Table ‘sysschobjs’. Scan count 1, logical reads 16, physical reads 0,  read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob  read-ahead reads 0.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;(1 row(s) affected)&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;(456 row(s) affected) (This is for sys.sp_tables)&lt;br /&gt;
Table ‘sysobjrdb’. Scan count 1, logical reads 29, physical reads 0,  read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob  read-ahead reads 0.&lt;br /&gt;
Table ‘sysschobjs’. Scan count 1, logical reads 16, physical reads 0,  read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob  read-ahead reads 0.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;(1 row(s) affected)&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;2) Execution Plan&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.pinaldave.com/bimg/sp_tables.jpg&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;You can see that the execution plan for &lt;strong&gt;sys.table&lt;/strong&gt; has much higher cost of query batch.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Well, if you only need to know the name  of the tables, I suggest that you start using SP_TABLES; at least it  takes less typing to do.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Source: sqlserverauthority &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/4412410795546911921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/system-stored-procedure-syssptables-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/4412410795546911921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/4412410795546911921'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/system-stored-procedure-syssptables-in.html' title='System Stored Procedure sys.sp_tables in SQL Server'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-4514873080458557415</id><published>2010-10-13T11:47:00.000+05:30</published><updated>2010-10-13T11:47:00.605+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP .NET"/><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft"/><title type='text'>Free E-Books/Guides essential for .NET Programmers and Architects</title><content type='html'>&lt;h5&gt;Foundations Of Programming&lt;/h5&gt;The Foundation Of Programming  Series Free e-book By Karl Seguin is one of my favorites. It is simple,  short and sweet. Especially for ‘casual’ programmers, this will give a  better thought process – that’ll definitely enable them to code better  and think better. This book covers the ALT.NET Philosophy, Domain Driven  Development concepts, DI, TDD etc in a nice way. This book is close to  my heart.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://codebetter.com/media/p/179694.aspx&quot; target=&quot;_blank&quot;&gt;Download From Here&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;h5&gt;Microsoft Application Architecture Guide, 2nd Edition&lt;/h5&gt;Published  by Microsoft, this is an essential read for any Microsoft.NET developer  or Architect to understand the underlying architecture and design  principles and patterns for developing successful solutions on the  Microsoft platform and the .NET Framework. This guide neatly covers  popular architecture patterns, best practices and common challenges you  need to understand for developing .NET applications. Get a good grip on  developing enterprise applications in .NET.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ce40e4e1-9838-4c89-a197-a373b2a60df2&amp;amp;displaylang=en&quot; target=&quot;_blank&quot;&gt;Download From Here&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;h5&gt;Rob Miles C# Yellow Book 2010&lt;/h5&gt;A  nice action packed book that takes you through C# and .NET concepts.  This book explains C# language and .NET library in general – with a  clear focus on implementation thought process and best practices.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.csharpcourse.com/&quot; target=&quot;_blank&quot; target=&quot;_blank&quot;&gt;Download From Here&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;h5&gt;Threading in C#&lt;/h5&gt;A  short, neatly written book from Joe Albahari about Threading in C#.  This is a must read for any .NET programmer to understand more about  threading in general, thread pooling, synchronization, Non blocking  synchronization, etc. In this book, Joe even covers the Parallel  Framework Extensions and Parallel programming in .NET&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.albahari.com/threading/&quot; target=&quot;_blank&quot;&gt;Download From Here&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;h5&gt;Improving .NET Application Performance and Scalability&lt;/h5&gt;This  guide is again from Microsoft, and focuses on designing your  applications with Performance and scalability in mind. It has sections  relevant to architects, developers, testers, and administrators.  Following the checklists and guidance in this book will ensure that  there won’t be any unpleasant surprises in the end. Read this guide if  you develop Enterprise applications in .NET&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8A2E454D-F30E-4E72-B531-75384A0F1C47&quot; target=&quot;_blank&quot;&gt;Download From Here&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;h5&gt;Applying Design Patterns&lt;/h5&gt;This  is a quick introduction towards the thought process of applying design  patterns. The objective of the book is to introduce design patterns in a  simple way, so that developers can understand some common patterns and  how to apply them. I wrote that some time back ;)&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://amazedsaint.blogspot.com/2009/06/software-design-patterns-for-everyone.html&quot; target=&quot;_blank&quot;&gt;Download From Here&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;h5&gt;RefCardz from DZone&lt;/h5&gt;&lt;a href=&quot;http://dzone.com/&quot;&gt;DZone&lt;/a&gt;  has a number of awesome Ref Cardz (Quick reference sheets) on multiple  technologies. You can go to DZone –&amp;gt; RefCardz to browse and download  them (after getting a free DZone Id). Here are some of my recent  favorites &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://refcardz.dzone.com/refcardz/getting-started-windows-0&quot; target=&quot;_blank&quot;&gt;Getting started with WCF 4.0&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://refcardz.dzone.com/refcardz/getting-started-silverlight&quot; target=&quot;_blank&quot;&gt;Getting Started With Silverlight + Expression Blend&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://refcardz.dzone.com/refcardz/essential-f&quot; target=&quot;_blank&quot;&gt;Essential F#&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/4514873080458557415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/free-e-booksguides-essential-for-net.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/4514873080458557415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/4514873080458557415'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/free-e-booksguides-essential-for-net.html' title='Free E-Books/Guides essential for .NET Programmers and Architects'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-8176214631190080745</id><published>2010-10-12T10:25:00.003+05:30</published><updated>2010-10-12T11:49:52.571+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Windows Phone 7"/><title type='text'>Creating High Performing Applications for Windows Phone</title><content type='html'>&lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;&lt;p&gt;Performance is an important consideration when creating applications for a Windows Phone 7 device. A Windows Phone 7 device has a limited central processing unit (CPU) and graphics processing unit (GPU) compared to a desktop or laptop PC. To optimize performance of Silverlight applications on Windows Phone 7, several changes were made to the way that Silverlight processes graphics and other objects. Even though Silverlight has been optimized for Windows Phone 7, there are several things that you can do in your Silverlight applications to best leverage the CPU and GPU. This topic describes ways that you can improve the performance of your Silverlight applications and includes multiple code samples.&lt;/p&gt;in reference to: &lt;p&gt;&lt;blockquote&gt;&quot;Creating High Performing Applications for Windows Phone&quot;&lt;br /&gt;
- &lt;a href=&#39;http://msdn.microsoft.com/en-us/library/ff967560(v=VS.92).aspx#&#39;&gt;Creating High Performing Applications for Windows Phone&lt;/a&gt; (&lt;a href=&#39;http://www.google.com/sidewiki/entry/dhavaltawar/id/kaikb-x70Dg9zqUZuKW99Awau6M&#39;&gt;view on Google Sidewiki&lt;/a&gt;)&lt;/blockquote&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/8176214631190080745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/creating-high-performing-applications.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/8176214631190080745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/8176214631190080745'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/creating-high-performing-applications.html' title='Creating High Performing Applications for Windows Phone'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-6915741968297081981</id><published>2010-10-11T18:57:00.000+05:30</published><updated>2010-10-11T18:57:00.747+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Css"/><category scheme="http://www.blogger.com/atom/ns#" term="jQuery"/><title type='text'>Simple Tooltip with jQuery &amp; CSS</title><content type='html'>There are a lot of tooltip plugins out there, but not many of them  explain what exactly goes on in the logic of a tooltip. But Soh Tanaka has created a nice tooltip and explained the logic also.&lt;br /&gt;
&lt;br /&gt;
&lt;span id=&quot;more-4537&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.sohtanaka.com/web-design/examples/element-tooltip/&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;jQuery Tooltip Tutorial &quot; class=&quot;center&quot; src=&quot;http://stblog.tanaka.netdna-cdn.com/wp-content/uploads/preview2.jpg&quot; title=&quot;jQuery Tooltip Tutorial &quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.sohtanaka.com/web-design/examples/element-tooltip/&quot; target=&quot;_blank&quot;&gt;Click for Demo &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.sohtanaka.com/web-design/simple-tooltip-w-jquery-css/&quot; target=&quot;_blank&quot;&gt;Click here for full post&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/6915741968297081981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/simple-tooltip-with-jquery-css.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/6915741968297081981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/6915741968297081981'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/simple-tooltip-with-jquery-css.html' title='Simple Tooltip with jQuery &amp; CSS'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-294153972725989509</id><published>2010-10-10T18:48:00.001+05:30</published><updated>2010-10-12T10:31:11.824+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Mobile Phones"/><category scheme="http://www.blogger.com/atom/ns#" term="Nokia"/><title type='text'>Nokia N8 + HDMI + Bluetooth Keyboard/Mouse = WIN</title><content type='html'>&amp;nbsp;&lt;a href=&quot;http://images.dailymobile.se/wp-content/uploads/2010/10/nokia-n8-tv.jpg&quot;&gt;&lt;img alt=&quot;nokia n8 tv&quot; class=&quot;aligncenter size-full wp-image-62324&quot; height=&quot;289&quot; src=&quot;http://images.dailymobile.se/wp-content/uploads/2010/10/nokia-n8-tv.jpg&quot; title=&quot;nokia n8 tv&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://images.dailymobile.se/wp-content/uploads/2010/10/nokia-n83.jpg&quot;&gt;&lt;img alt=&quot;nokia n8&quot; class=&quot;aligncenter size-full wp-image-62325&quot; height=&quot;312&quot; src=&quot;http://images.dailymobile.se/wp-content/uploads/2010/10/nokia-n83.jpg&quot; title=&quot;nokia n8&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
In this video, Noah from phonedog goes hands-on with the Nokia N8  connected to a TV (via HDMI) and Apples bluetooth keyboard / mouse.  Check out the video after the break!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;object height=&quot;385&quot; width=&quot;640&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/SmwE_U3NtOM?fs=1&amp;amp;hl=en_US&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/SmwE_U3NtOM?fs=1&amp;amp;hl=en_US&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;640&quot; height=&quot;385&quot;&gt;&lt;/embed&gt;&lt;/object&gt;</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/294153972725989509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/nokia-n8-hdmi-bluetooth-keyboardmouse.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/294153972725989509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/294153972725989509'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/nokia-n8-hdmi-bluetooth-keyboardmouse.html' title='Nokia N8 + HDMI + Bluetooth Keyboard/Mouse = WIN'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-2701003200516200796</id><published>2010-10-09T18:48:00.000+05:30</published><updated>2010-10-09T18:48:06.560+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2010"/><title type='text'>Keyboard Bindings / Shortcuts in Visual Studio 2010</title><content type='html'>All the Visual Studio 2010 Keyboard bindings are available here for  you to download. These are very helpful resources for a person who  spends most of his days in Visual Studio.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;amp;FamilyID=92ced922-d505-457a-8c9c-84036160639f&quot; title=&quot;http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;amp;FamilyID=92ced922-d505-457a-8c9c-84036160639f&quot;&gt;http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;amp;FamilyID=92ced922-d505-457a-8c9c-84036160639f&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I  personally like Ctrl+. which allows me to add the using statement  without going to the top of the file. I use it quite frequently.</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/2701003200516200796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/keyboard-bindings-shortcuts-in-visual.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/2701003200516200796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/2701003200516200796'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/keyboard-bindings-shortcuts-in-visual.html' title='Keyboard Bindings / Shortcuts in Visual Studio 2010'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-7232842556178499794</id><published>2010-10-08T12:58:00.000+05:30</published><updated>2010-10-08T12:58:00.225+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="RIA"/><category scheme="http://www.blogger.com/atom/ns#" term="WCF"/><title type='text'>MVVM with WCF RIA Services</title><content type='html'>&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt;&quot;&gt;&lt;b&gt;&lt;span lang=&quot;EN&quot;&gt;&lt;span style=&quot;color: #333333; font-size: 11pt;&quot;&gt;MVVM without RIA:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin: 0in 0in 0pt 0.5in; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span lang=&quot;EN&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;·&lt;/span&gt;&lt;span style=&quot;line-height: normal;&quot;&gt;&lt;span style=&quot;font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;MVVM relies on the concept that View (XAML) will not contact your Model directly. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin: 0in 0in 0pt 0.5in; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span lang=&quot;EN&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;·&lt;/span&gt;&lt;span style=&quot;line-height: normal;&quot;&gt;&lt;span style=&quot;font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;View will contact Model via ViewModel classes.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin: 0in 0in 0pt 0.5in; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span lang=&quot;EN&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;·&lt;/span&gt;&lt;span style=&quot;line-height: normal;&quot;&gt;&lt;span style=&quot;font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;ViewModel talks with View using Data Binding and Commanding in XAML based applications.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin: 0in 0in 0pt 0.5in; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span lang=&quot;EN&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;·&lt;/span&gt;&lt;span style=&quot;line-height: normal;&quot;&gt;&lt;span style=&quot;font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;ViewModel talks with Model via web service communication in case of Silverlight when we don’t use RIA Service.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCyDGB-M2Ok2T_CnA4YrAQiFlS7nEnAjppt5t4YNugsTK179kQAG6VYRRPvzBfmzeDmyyQqHK8Q4MIegY4PZBEdIjCBIqXS_NxWCACpDgaxxG0yHLVnZWYq1E5a-S3OOJv_NVPIbAE7cM/s1600/without+RIA.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;306&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCyDGB-M2Ok2T_CnA4YrAQiFlS7nEnAjppt5t4YNugsTK179kQAG6VYRRPvzBfmzeDmyyQqHK8Q4MIegY4PZBEdIjCBIqXS_NxWCACpDgaxxG0yHLVnZWYq1E5a-S3OOJv_NVPIbAE7cM/s640/without+RIA.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt;&quot;&gt;&lt;br /&gt;
&lt;span lang=&quot;EN&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt;&quot;&gt;&lt;b&gt;&lt;span lang=&quot;EN&quot;&gt;&lt;span style=&quot;color: #333333; font-size: 11pt;&quot;&gt;MVVM with RIA:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin: 0in 0in 0pt 0.5in; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span lang=&quot;EN&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;·&lt;/span&gt;&lt;span style=&quot;line-height: normal;&quot;&gt;&lt;span style=&quot;font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;RIA  Service abstracts the web service layer from developer’s perspective  and presents on client an identical set of classes that we have in model  on server.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin: 0in 0in 0pt 0.5in; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span lang=&quot;EN&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;·&lt;/span&gt;&lt;span style=&quot;line-height: normal;&quot;&gt;&lt;span style=&quot;font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;This  simply means that under normal MVVM scenario we just change the  communication between ViewModel and Model to go via the auto generated  model classes on client side instead of explicitly calling web services  (though internally it is still WCF communication).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin: 0in 0in 0pt 0.5in; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span lang=&quot;EN&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;·&lt;/span&gt;&lt;span style=&quot;line-height: normal;&quot;&gt;&lt;span style=&quot;font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;In my opinion, this should not pose any problems to the MVVM pattern given that we keep the communication link same as above.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb8_dbDD8w9xb2YY8_XlueWLoiO-DJ21TwTuG_6CyW8ELndIOinzGRQ3Po9EyzxG2T4AY0BYEKwr6sqz-ENf1SAxN5Jpttw9GtTycWL2Zwsd5KZrt0l7IL2Vl6CkjHu8jhwi2GVvcN1es/s1600/with+RIA.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;398&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb8_dbDD8w9xb2YY8_XlueWLoiO-DJ21TwTuG_6CyW8ELndIOinzGRQ3Po9EyzxG2T4AY0BYEKwr6sqz-ENf1SAxN5Jpttw9GtTycWL2Zwsd5KZrt0l7IL2Vl6CkjHu8jhwi2GVvcN1es/s640/with+RIA.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt;&quot;&gt;&lt;br /&gt;
&lt;span lang=&quot;EN&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt;&quot;&gt;&lt;b&gt;&lt;span lang=&quot;EN&quot;&gt;&lt;span style=&quot;color: #333333; font-size: 11pt;&quot;&gt;Cautions/DON’Ts:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin: 0in 0in 0pt 0.5in; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span lang=&quot;EN&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;·&lt;/span&gt;&lt;span style=&quot;line-height: normal;&quot;&gt;&lt;span style=&quot;font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;We  should never attach the auto generated client model classes of RIA with  View directly. This link of View to Model should happen via ViewModel  only. In a nutshell, these auto-generated model classes should never be  considered as ViewModel.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin: 0in 0in 0pt 0.5in; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span lang=&quot;EN&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;·&lt;/span&gt;&lt;span style=&quot;line-height: normal;&quot;&gt;&lt;span style=&quot;font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;We  also have the availability of some RIA controls like DomainDataSource  (in XAML). In case of MVVM we should NEVER use any such RIA controls in  XAML since they break the very pillar of MVVM by contacting auto  generated client side model of RIA directly (which is same as above  point).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/7232842556178499794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/mvvm-with-wcf-ria-services.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/7232842556178499794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/7232842556178499794'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/mvvm-with-wcf-ria-services.html' title='MVVM with WCF RIA Services'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCyDGB-M2Ok2T_CnA4YrAQiFlS7nEnAjppt5t4YNugsTK179kQAG6VYRRPvzBfmzeDmyyQqHK8Q4MIegY4PZBEdIjCBIqXS_NxWCACpDgaxxG0yHLVnZWYq1E5a-S3OOJv_NVPIbAE7cM/s72-c/without+RIA.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-7984160631764970885</id><published>2010-10-07T10:35:00.001+05:30</published><updated>2010-10-07T10:35:00.298+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="Sharepoint"/><category scheme="http://www.blogger.com/atom/ns#" term="Sharepoint 2010"/><title type='text'>SharePoint 2010 Development Platform Stack - Diagram</title><content type='html'>This diagram shows the platforms on which SharePoint Server and SharePoint Foundation are built. &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;The boxes with a blue fill represent independent platforms and each depends on the platforms below it. &lt;/li&gt;
&lt;li&gt;The empty boxes inside the larger boxes are selected important subparts or features of the platform. &lt;/li&gt;
&lt;li&gt;The thin downward arrows indicate selected dependency relations. Not every sub-platform or dependency relation is shown. &lt;/li&gt;
&lt;li&gt;The  thicker, green, sideways arrows indicate that one entity accesses the  entity to which the arrow points. Again, only some selected access  relationships are shown. &lt;/li&gt;
&lt;/ul&gt;For more information, see &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee537319.aspx&quot; target=&quot;_blank&quot;&gt;Conceptual Overview of SharePoint Foundation &lt;/a&gt;and its child nodes.​&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmFis_83-5LlTeo5rHxgNU2HfQfDjdvj00wqt_Gx1CM5tpY4kx9PT4NkxOKBiBVmtGgdnMFI1EDwvXLII_XNv1cwptWbj0WQCqsac1oD9N6GMWkuaWix9QpjdZeMQij8FhduJ-oPk1x8c/s1600/8688.SharePoint_Development_Platform_Stack_2_37141EAA.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;507&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmFis_83-5LlTeo5rHxgNU2HfQfDjdvj00wqt_Gx1CM5tpY4kx9PT4NkxOKBiBVmtGgdnMFI1EDwvXLII_XNv1cwptWbj0WQCqsac1oD9N6GMWkuaWix9QpjdZeMQij8FhduJ-oPk1x8c/s640/8688.SharePoint_Development_Platform_Stack_2_37141EAA.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/7984160631764970885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/sharepoint-2010-development-platform.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/7984160631764970885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/7984160631764970885'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/sharepoint-2010-development-platform.html' title='SharePoint 2010 Development Platform Stack - Diagram'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmFis_83-5LlTeo5rHxgNU2HfQfDjdvj00wqt_Gx1CM5tpY4kx9PT4NkxOKBiBVmtGgdnMFI1EDwvXLII_XNv1cwptWbj0WQCqsac1oD9N6GMWkuaWix9QpjdZeMQij8FhduJ-oPk1x8c/s72-c/8688.SharePoint_Development_Platform_Stack_2_37141EAA.jpg" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-8537366394483269847</id><published>2010-10-06T10:45:00.000+05:30</published><updated>2010-10-06T10:45:00.543+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Javascript"/><title type='text'>Communication between Iframes</title><content type='html'>In cases when we host different applications within Iframe on a  web&amp;nbsp;page, we often need them to communicate with each other or just be  able to communicate with its host parent.&lt;br /&gt;
&lt;br /&gt;
The basic to have this communication happen is by ensuring that the &lt;br /&gt;
&lt;pre class=&quot;scroll&quot;&gt;&lt;code class=&quot;js&quot;&gt;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;&lt;pre class=&quot;scroll&quot;&gt;&lt;code class=&quot;js&quot;&gt;document.domain&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
property of both communicating&amp;nbsp;parties are same. &lt;br /&gt;
&lt;br /&gt;
Consider this, say&amp;nbsp;parent page is &lt;a href=&quot;http://parent.example.com/mypage.aspx&quot;&gt;http://parent.example.com/mypage.aspx&lt;/a&gt;  . This page host another application in an Iframe. To&amp;nbsp;have parent and  hosted application able to communicate with each other we need to have  IFrame application be in either a subdomain of parent.example.com (like &lt;a href=&quot;http://sub.parent.example.com/myapp.aspx&quot;&gt;http://sub.parent.example.com/myapp.aspx&lt;/a&gt;) or in parallel to parent.example.com (like &lt;a href=&quot;http://sub.example.com/myapp.aspx&quot;&gt;http://sub.example.com/myapp.aspx&lt;/a&gt; ).&lt;br /&gt;
&lt;br /&gt;
Once we setup both applications as mentioned&amp;nbsp;above; we can then set  the document.domain property to parent.example.com (in case IFrame  application is hosted in a subdomain like &lt;a href=&quot;http://sub.parent.example.com/myapp.aspx&quot;&gt;http://sub.parent.example.com/myapp.aspx&lt;/a&gt;)&amp;nbsp;or we need to set the document.domain&amp;nbsp;to example.com (in case the Iframe application is hosted in a parallel domain like &lt;a href=&quot;http://sub.example.com/myapp.aspx&quot;&gt;http://sub.example.com/myapp.aspx&lt;/a&gt;&amp;nbsp;)&lt;br /&gt;
&lt;br /&gt;
We can do so by calling a script function at onload event handler of  both parent page and on page which is to be hosted inside the iframe, or  by simply doing something like this.&lt;br /&gt;
&lt;pre class=&quot;scroll&quot;&gt;&lt;code class=&quot;html&quot;&gt;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;&lt;pre class=&quot;scroll&quot;&gt;&lt;code class=&quot;html&quot;&gt;



&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot;&gt;

document.domain = &quot;somevaliddomain&quot;;

&lt;/script&gt;



.. all other stuff




&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
now, parent and iframe document can communicate without any hassle.&lt;br /&gt;
for example iframe document can now call any javascript method on its parent, passing&amp;nbsp;any&amp;nbsp;required data,&amp;nbsp;like shown here&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;scroll&quot;&gt;&lt;code class=&quot;cplusplus&quot;&gt;&lt;script language=&quot;javascript&quot; type=&quot;text/javascipt&quot;&gt;

var someValueFromIframe = &quot;test data&quot;;

if(parent &amp;amp;&amp;amp; parent.SomeFunc &amp;amp;&amp;amp; typeof(parent.SomeFunc) == &quot;function&quot;)

{

parent.SomeFunc(someValueFromIframe); // passing to parenthost

}

&lt;/script&gt;&lt;/code&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/8537366394483269847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/communication-between-iframes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/8537366394483269847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/8537366394483269847'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/communication-between-iframes.html' title='Communication between Iframes'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-2809335721931846512</id><published>2010-10-05T10:27:00.001+05:30</published><updated>2010-10-05T10:27:00.187+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Javascript"/><title type='text'>LinkList in Javascript</title><content type='html'>&lt;pre&gt;&lt;code&gt;
    function LinkList() {

        var count = 0;

        var head = null;

        function Node() {

            var Data = null;

            var Next = null;

        }

        this.Count = function () {

            return count;

        }

        this.Add = function (data) {

            var nd = new Node();

            nd.Data = data;

            if (head) {

                nd.Next = head;

            }

            head = nd;

            count++;

        }

        this.Traverse = function () {

            var result = &quot;&quot;;

            var current = head;

            while (current) {

                result = result + &quot; --&amp;gt; &quot; + current.Data;

                current = current.Next;

            }

            return result;

        }

    }

var mylist = new LinkList();



function AddToList() {

    var txtCtrl = document.getElementById(&#39;datatxt&#39;);

    var resCtrl = document.getElementById(&#39;result&#39;);

    if (txtCtrl &amp;amp;&amp;amp; txtCtrl.value.length &amp;gt; 0) {

        mylist.Add(txtCtrl.value);

        if (resCtrl) {

            resCtrl.innerHTML = &quot;&lt;b&gt;&quot; + txtCtrl.value + &quot;&lt;/b&gt; added to list.&quot;;

        }

        txtCtrl.value = &#39;&#39;;

    }

}

function PrintList() {

    var resCtrl = document.getElementById(&#39;result&#39;);

    if (resCtrl) {

        if (mylist.Count() &amp;gt; 0) {

            resCtrl.innerHTML = mylist.Traverse();

        }

        else {

            resCtrl.innerHTML = &quot;List is empty.&quot;;

        }

    }

    var txtCtrl = document.getElementById(&#39;datatxt&#39;);

    if (txtCtrl) {

        txtCtrl.value = &#39;&#39;;

    }

}

function GetCount() {

    var resCtrl = document.getElementById(&#39;result&#39;);

    if (resCtrl) {

        resCtrl.innerHTML = &quot;List has &lt;b&gt;&quot; + mylist.Count() + &quot;&lt;/b&gt; items.&quot;;

    }

    var txtCtrl = document.getElementById(&#39;datatxt&#39;);

    if (txtCtrl) {

        txtCtrl.value = &#39;&#39;;

    }&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;}
&lt;/code&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/2809335721931846512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/linklist-in-javascript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/2809335721931846512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/2809335721931846512'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/linklist-in-javascript.html' title='LinkList in Javascript'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1106446546494394833.post-7849628022421703528</id><published>2010-10-04T22:24:00.000+05:30</published><updated>2010-10-04T22:24:00.269+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Mobile Phones"/><category scheme="http://www.blogger.com/atom/ns#" term="Samsung"/><title type='text'>Samsung I8700</title><content type='html'>&lt;img align=&quot;left&quot; alt=&quot;&quot; hspace=&quot;5&quot; src=&quot;http://i1.phonearena.com/showimage.php?m=Phones.Images&amp;amp;f=image&amp;amp;id=22634&amp;amp;v=thumb&quot; vspace=&quot;2&quot; /&gt;Samsung I8700 is rumored to be a Windows Phone 7 running device with 4&quot; touch screen.  &lt;div style=&quot;text-align: right;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Basic specifications:&lt;/b&gt;&lt;br /&gt;
&lt;img hspace=&quot;5&quot; src=&quot;http://s1.phonearena.com/img/bullet_1.gif&quot; /&gt;GSM 850/900/1800/1900&lt;br /&gt;
&lt;img hspace=&quot;5&quot; src=&quot;http://s1.phonearena.com/img/bullet_1.gif&quot; /&gt;UMTS 900/1900/2100&lt;br /&gt;
&lt;img hspace=&quot;5&quot; src=&quot;http://s1.phonearena.com/img/bullet_1.gif&quot; /&gt;              WiFi, 3G               &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Windows Phone 7             &lt;br /&gt;
&lt;img hspace=&quot;5&quot; src=&quot;http://s1.phonearena.com/img/bullet_1.gif&quot; /&gt;GPS - Yes</content><link rel='replies' type='application/atom+xml' href='http://dhavaltawar.blogspot.com/feeds/7849628022421703528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/samsung-i8700.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/7849628022421703528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1106446546494394833/posts/default/7849628022421703528'/><link rel='alternate' type='text/html' href='http://dhavaltawar.blogspot.com/2010/10/samsung-i8700.html' title='Samsung I8700'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08115639974399994825</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>