Skip to main content

Posts

Showing posts from 2014

When to use void and Task as return type for Async method

As most of us are aware that there can be 3 return types of the method marked as Async. Task Task<T> void When any Async method has return type as void, it means not to return anything. In case of synchronous, this is fine. But situations become difficult when it comes to asynchronous operations. While dealing with asynchronous operations, void behaves like ‘fire and forget’. It means whatever happens, but do not let caller know anything. So, it means, caller will not at all aware about the operation stage, whether it is successful or unsuccessful. As data type is void, method will not even propagate exceptions, which can be very harmful in some cases. So, always use the word void with caution. If you don’t want your Async method to return anything, then also one should prefer to use return type as Task so that at least exceptions will be propagated to the caller.

What and Why of CDN

What is CDN? CDN is short for Content Delivery Network. A CDN in simple terms is a collection of servers that are spread across the globe. In other words, a CDN is a network of servers in which each request will go to the closest server. Why Do We Need CDN? For any web application, data can be categorized into either static or dynamic content. Dynamic content is the one which generally comes from a database. Static content is the one like CSS, images, JavaScript, flash files, video files, etc. Now one may ask, how are requests served when a user enters an URL in the browser? Interesting… let’s take a look at it. Before knowing a CDN and its usage, it is very important to understand this process. How is a Web Page Served? When a client requests any URL, let’s say www.google.com in the browser, there is a server configured to listen to any request that comes in for www.google.com . A server in turn performs some computations and sends raw HTML back to the client. Raw HTML...

Handling UI control's events in ViewModel [Prism 5.0]

Recently I came across a requirement in which I was supposed to data bind a command from my viewModel to an event. In other words, my code-behind was not supposed to contain any code related to event handlers of a control. After digging more into Prism, luckily I found my answer. Above requirement can be achieved using InvokeCommandAction provided in Prism 5.0. Well, so my article will elaborate more on how to achieve this. InvokeCommandAction InvokeCommandAction consents us to invoke ICommand implementation on our viewModel to an event that exist on our control. It basically means, we are no longer bound or required to have a command property on a control in order to invoke a command. Now, you may say you have seen this similar thing before. And you are right because Blend SDK ships one. But the InvokeCommandAction which Prism provides is little bit different in two ways: First, it manages the state of the element. It updates the enable state of the control that is...

Skype calls in browser

Microsoft just announced that soon we will be able to make voice and video calls from our web browser. This Skype for Web (beta) calls will work on Firefox, Safari, Chrome and of course IE. As of now, it will work as a plugin but soon it will work natively on all browsers without plugins. So, are you excited to try this out ???

Microsoft to unveil its first Nokia-less Lumia on November 11

Yes, its true. Soon Microsoft is about to reveal its own Lumia having 5-inch display, 1.2 GHz processor, 1GB of RAM, 8GB of storage and 3G-only connectivity. First look of this Lumia is already out: More info

PopUps with Interactivity using ConfirmationRequest [Prism 5.0]

In continuation to my previous blog on PopUps with Interactivity , here we will see how to implement IConfirmation request. In order to make this post short, I'll implement IConfirmation request on top of previous example.  Let's open our viewModel and add property for InteractionRequest of type IConfirmation  as: public InteractionRequest<IConfirmation> ConfirmationRequest { get; set; } Now for every getter/setter we should have a corresponding command, which will help us in invoking this request: public ICommand ConfirmationCommand { get; set; } Just like NotificationRequest, we need to create instances of these objects in constructor as: If you will see above snippet closely, you will notice that in case of Confirmation, we are handling Status in slight different manner. Next step is to update our View as we did for NotificationRequest. Now everything is in place. Let's quickly run the application and click on PopUp button:...

PopUps with Interactivity using NotificationRequest [Prism 5.0]

Just about every application has a need to notify user about an event or ask for confirmation before proceeding onto the next operation. Prior to MVVM, we would have used the MessageBox class in the code-behind. But for MVVM applications, that’s not the appropriate way as it breaks the separation of concerns from the view or viewmodel. There are lots of ways to show popups in MVVM application. In Prism, we just happen to use triggers. Triggers Triggers are used to initiate actions when a specific event is raised. So, it means we have to setup a view to detect the interaction request of event and then present an appropriate visual display for that request. What is required for raising events? Now for raising events, we need an event trigger. But not just any event trigger. We don’t want to use the built-in event trigger, instead Prism provide its own InteractionRequestTrigger. This trigger binds to the source object or the InteractionRequest object that exist in your viewm...

Introducing Windows 10

Hope most of you are aware that in the mid of last week, Microsoft announced Windows 10 (Technical Preview).  This preview is a small set of new code and is not the final one. It means lot more is on the way :) This release contains desktop-focused features, primarily for business customers. Actual consumer preview is plan to launch somewhere around January. Windows 10 will run across unbelievably broad set of devices from 4 inch screens to 80 inch screens. Some of the devices we can hold in hand and others are 10 feet away. So, are you ready to dive into the new features? Well, let's start. Start Menu: Start menu with Live tiles and favourite apps Everything runs in a window: Windows store apps now opens in the same fashion as desktop apps format – can be re-sized and move around – have title bars Snap Enhancements: New quadrant layout to view four snapped apps in single shot M...

What's New In Prism 5.0?

Are you WPF, Silverlight or Windows Phone developer and used Microsoft’s patterns and practices library to build your applications? If you are, then you might want to know that Microsoft’s patterns and practices team have just released Prism 5.0. All the applications built using the previous versions of Prism are now broken. So, in this artifact, I’ll be discussing about the new assemblies, new objects and deprecated objects which can/can’t be used with Prism 4.1 and Prism 5.0. Downloading Prism 5.0 Prism 5.0 can be downloaded and installed either from patterns and practices site having URL as http://compositewpf.codeplex.com/ or by using Nuget package inside Visual Studio. Mentioned link also discusses about all the changes which are part of Prism 5.0 Supported Platforms Let’s have a quick look at the supported platforms of Prism 5.0. While working with previous versions of Prism (i.e. 4.1), one was able to create applications like WPF (.Net 4.0), Silverlight 5 and Window...