Do you have a Microsoft account? Yes, the same consolidated account that powers your Outlook email/contacts/calendars, OneDrive, Xbox, Windows 8 and Windows Phone devices, along with a slew of other Microsoft services. Millions of people do. Chances are, your application’s users probably also have a Microsoft account. This presents a potential opportunity.

Live Services is what powers many facets of your Microsoft account, like profile information, contacts, calendars and OneDrive. These services are very familiar for many users, and when you’re able to leverage these same services, users can feel right at home within your application. Enter Live Connect APIs, which are a thin layer of RESTful services on top of Live Services that allows developers to integrate Live Services into their applications. This is possible from any type of application – web, whether desktop or mobile, and across any platform. You can do user authentication through MSFT account on web & any mobile app (native/hybrid) across platforms. You can then take the next step forward & integrate with user’s Calendar, Contacts & even OneDrive.

See the promise? Check out my 2 article series on integrating Live Connect in your Web, Windows 8 & hybrid mobile apps. Write-up & walkthrough over HERE & HERE @ the Telerik Dev Network.

Adios!

 

Are you developing apps for Windows 8/8.1? Do you know all the different notification types & delivery mechanisms to keep your users engaged? Yeah, I don’t remember all of the details when I’m coding; so a concise write-up helps. Check out my article on the Telerik Developer Network on demystifying Windows notifications for developers.

Write-up & walkthrough over HERE @ the Telerik Dev Network.

Adios!

 

Are you a mobile app developer? Want to show off your creations or plain project your phone screen onto a larger canvas? Yep, you need a mirroring solution and thankfully, there are several options no matter which platform you are on. Check out my article on the Telerik Developer Network on device mirroring options for mobile developers.

Write-up & tooling over HERE @ the Telerik Dev Network.

Adios!

 

One beautiful web across all devices – that’s the promise of responsive web design. Thankfully, there is plenty of help for us ASP.NET web developers out of the box. There is just no more an excuse to not deliver the best possible web experience, irrespective of the user’s device. Check out my article on the Telerik Developer Network on options of going responsive with the ASP.NET MVC stack.

Write-up, sample code & demos over HERE @ the Telerik Dev Network.

Thanks for reading. Adios!

 

Think the web you make can handle touch? Lack of hover making you lose sleep? Web menus not being adaptive when viewed on mobile devices? Yeah, we developers have all been there and I documented few of my tricks. Check out my article on the Telerik Developer Network, along with a host of other awesome topics from my Telerik Developer Advocate colleagues.

Write-up, sample code & demos over HERE @ the Telerik Dev Network.

Thanks for reading. Adios!

 

Love real-time communication through SignalR? Want to take the real-time experience to mobile devices? Off course, you can go native with .NET for Windows/Windows Phone; but it would be pretty darn wonderful to go cross-platform to iOS & Android. Be it the HTML5/JS approach through Telerik AppBuilder or C# everywhere through Xamarin, you can use the SignalR magic either way to delight your mobile users. Sound interesting? Check out my article on the Telerik Developer Network, along with a host of other awesome topics from my Telerik Developer Advocate colleagues.

Write-up, sample code & demos over HERE @ the Telerik Dev Network.

Thanks for reading. Adios!

 

April 2013. After years of being a consultant and having seen some of the best/worst that enterprise software development entails, it was time to see how’s life in a product company. And having already used/advocated Telerik products for years, I didn’t have to look around much either. Thus started work as a Senior Technical Trainer for the Telerik Services team. Now, trainer is an interesting word. If you already develop cool software, like to play with & talk about new technologies, and have a big involvement in the developer community, you’ll be surprised how easy training comes to you. It’s no more than dev to dev straight talk! Now, don’t get me wrong – training is plenty challenging. If you’re teaching a group of 30 enterprise developers for a week, you better know your stuff inside out, for the utter fear of humiliation. Prep, practice & repeat, no shortcuts! The past year has been a lot of fun – I travelled & stayed at home; did offsite, onsite & remote training on a whole slew of Telerik products suites. It’s always great to see what clients are actually building with your dev tools; and you grow with every new experience. But all good things come to an end .. I’m starting in a new role inside Telerik today!

Now, I can’t move on without mentioning what’s been the biggest influence on me for the past year. Steve & Michelle Smith, and the whole Telerik Services gang (ex-NimblePros) at the Hudson office. I’ve worked with many dev teams before, but no where else have I seen so many software craftsmen under one roof. Folks like Steve, Brendan, Jimmy, Kevin, Todd, Jeff, Chris, Craig, Weston, Caitlin, JoLene, Molly and others – are just crazy smart; and I’ve learnt a lot from each. Not only are they some of the best developers/designers I’ve seen around, but the whole team is like a family that values each other. Cheers to everyone at the Hudson office; it has truely been a pleasure!

Now, on to what’s next. When you find a position that’s a perfect fit, but challenges you with new work – you dive in. Starting today, I’m a Developer Advocate for Telerik in the Developer Relations team, lead by the awesome Rey Bango. My partners in crime? Glad you asked – how about a team with Michael Crump, Jeff Fritz, Burke Holland, John Bristowe, TJ Vantoll, Brian Rinaldi, Jim CowartDhananjay Kumar, Lohith Nagaraj & other super smart folks. Humbling for sure with the kind of reputation each have in our community, but exciting because we’ll get to do awesome stuff together!

Is .NET/Microsoft and Telerik DevTools your bread & butter? Do Windows apps excite you or the ubiquitousness of the web? Have you embraced JavaScript as the assembly language of the web? And off course, you are into all things mobile & the cloud/backend services. And cross-platform development isn’t for the cool kids any more; you cannot afford to not reach every potential user across any technology stack. Just like you my polyglot friend, I love it all! Let’s bridge the gap between the enterprise & hipster world. Using or considering Telerik products? Hit me up & let’s talk.

Cheers!

One snowy February Saturday morning. After about a month of telling myself that I did not need the upgrade from the original Surface RT to the new Surface 2, I gave up. Hey, one needs some cheer during the dreary winters, right? Not that I was unhappy with my original Surface; it was still serving me ok after more than a year of rough use. But the new Surface 2 with all its bells & whistles just seemed irresistible.

PS: For folks like me who desperately try to “justify” the near constant tech gadget crave or the precious device upgrade, BestBuy now seems to have a permanent device trade-in policy (details HERE). The original Surface in good condition, for example, would fetch you a decent $75. Otherwise, there is always Craigslist or eBay that might get you a bit more in consolation.

So, out with the old & in with the new shiny toy. Here are 7 things I absolutely dig about the Surface 2:

  • The screen resolution – this thing alone more than justifies the upgrade. Folks with the Surface Pro know this already, but I’m coming from a paltry 1366×768 resolution on the Surface RT. The Surface 2’s full 1080P 1920×1080 resolution is ridiculously high for a screen that small. The result – more real estate for tiles/desktop & everything is super crisp. Running 3 apps side by side is actually practical & useful. Make sure to follow the steps in Scott Hanselman’s post HERE to get the most of your pixels.
  • The Tegra 4 processor shows its mettle. Almost every app or interaction feels much zippier compared to the somewhat sluggish original Surface RT.
  • I have a generation 1 Surface Type & Touch cover each. Glad that these work seamlessly with the Surface 2 – no new accessories needed.
  • The kickstand going back a second step is very welcome, especially during long flights or when on lap. I remember Jeff Blankenburg & I unboxing the original Surface RT & wishing the kickstand went a little further back – well, now you have it!
  • The magnetic power adapter stills thinks twice before snapping in place, but is way better than the finicky one that came with the original Surface.
  • Battery life – I’m getting 10/11 + hours easy with normal multimedia usage. Let’s just say this is more than handy. Unless I need to fire up Visual Studio, I can get some good productive work done on this baby, all the while the games being just a tap away.
  • The extra OneDrive space & Skype World credits don’t hurt at all :) .

So, if you can spare the extra money, stop thinking & get the upgrade. I’m not repenting ..

Adios!

Are you using SalesForce for CRM? Did you know SalesForce also offers an industry-leading enterprise social network called Chatter? Are your users starting to bring Windows devices in the BYOD fold? Would you not like to custom apps on web/desktop/mobile that allows your users to interact with SalesForce applications more easily? If you answered yes to any, read on ..

Now, you probably already heard that SalesForce recently announced SalesForce Toolkits for .NET developers. This comes courtesy of my good friend, the brilliant Wade Wegner. Details about the SalesForce Toolkit announcement can be found HERE, which has links to the Force.Com & Chatter Toolkits for .NET.

When Wade asked me to take a look, my little world of Windows 8 apps was the obvious choice to try things out. So, let’s try connecting to SalesForce Chatter from a Windows Store app, to give the new APIs a spin. Here’s my step by step guide:

SFDashBoard

  • Before our 3rd party app can talk to SalesForce, we need a “Connected App”, sort of like a proxy which allows us to talk to SalesForce APIs on behalf of the user. From the dashboard, click Build->Create->Apps from the left menu; at the bottom, you’ll see Connected Apps, as below .. click New.

CreateNewApps

  • Create a new App, by specifying App name, Callback URL & OAuth permissions. The end result should be something like my SFChatterApp, as below. Let’s make note of the app’s Consumer Key & Secret; we’ll need them in our client app.

AppCreated

  • While you are just done creating your SalesForce Connected App, let’s take care of one more setting, unless you want to be left scratching your head like me later down the line. Click on your app to go to Settings and make sure you relax IP firewall settings, or allow your specific IP ranges to have access, like shown below.

AppSettings

  • That’s it .. we’re all set on the SalesForce side with our connected app. Time to now build our Windows 8 Store app to connect to SalesForce through the connected app we just created. So, back in Visual Studio, we create a new Windows 8 app from default template. Next step, let’s grab the Chatter Toolkit for .NET, which is available as a NuGet package. We could add this visually, as below or using the NuGet Package Manager Console and “Install-Package DeveloperForce.Chatter”.

SFNuGet

  • With the added DLL references, now let’s write some code to hook up our client Windows 8 Store app to the SalesForce Chatter APIs. I’m going to use the Username-Password flow to quickly get an OAuth access token from Chatter; but for anything real-world, you may want to use the WebServer or OAuth flows, so that each user can get his/her own access token. Wade has these flows nicely documented HERE and HERE. Here’s some code in my App.xaml.cs:

using Salesforce.Common;
using Salesforce.Chatter;
using Salesforce.Chatter.Models;

public AuthenticationClient SFAuth = new AuthenticationClient();
public ChatterClient SFChatter;
public Me SFMe;

 public static new App Current
 {
    get { return Application.Current as App; }
 }

private async void DoSalesForceHandshake()
{
    await SFAuth.UsernamePassword("ConsumerKey", "ConsumerSecret", "UserName", "Password");
    SFChatter = new ChatterClient(SFAuth.InstanceUrl, SFAuth.AccessToken, SFAuth.ApiVersion);
    SFMe = await SFChatter.Me(); 
}
  • You’ll notice that I have a few global variables that I want to hydrate & use elsewhere in my app. I invoke the DoSalesForceHandshake() method from my app’s OnLaunched event handler, to do the SaleForce Chatter handshaking upfront. If your AuthenticationClient object is hydrated correctly, you’re all set. Notice how we create the ChatterClient using details from our authentication call to Chatter APIs. Lastly, we grab info about our personal Chatter feed using the Me() method call. This is sounding like fun, isn’t it?
  • What we want to do is try posting a Chatter message from our Windows 8 app onto SalesForce Chatter, through our client handshaking that we just did. Here’s my over-simplified Windows 8 UI in MainPage.xaml for posting a Chatter message:

ChatterWin8

  • Here’s my code on the send button’s click event handler, so we can post to Chatter:

private async void sendChatBtn_Click(object sender, RoutedEventArgs e)
{            
    var messageSegment = new MessageSegment()
    {
       text = chatTextbox.Text,
       type = "Text"
    };

    var body = new FeedItemBody { messageSegments = new List { messageSegment } };
    var feedItemInput = new FeedItemInput()
    {
        attachment = null,
        body = body
    };

    var feedItem = await App.Current.SFChatter.PostFeedItem(feedItemInput, App.Current.SFMe.id);
}
  • Notice how we are identifying the user (through id property of Me object) as we post the FeedItemInput containing the message to Chatter. The result on button click .. sure enough, our user’s message gets posted to Chatter, as shown below:

SFChatter

  • We only scratched the surface of Chatter APIs here .. you can do many more fancy things like liking/commenting on a Chatter feed item etc. And all of this helps you make interactive mobile apps for your users.
  • Now, here’s the best part – you’ll notice that the Chatter toolkit uses the Async-Await C# pattern for asynchronous access, which allows from easy consumption from any UI client you want to build and it also uses PCLs under the covers. So, as long as you are building any modern .NET based applications, the same code/techniques apply .. this extends coverage to Windows 8, Windows Phone, Silverlight, WPF & even Console apps. Fun!

Hope this was helpful.
Adios!

Running Windows 8/8.1 on a high resolution display? May be you have one of the new 4K monitors or the ultra high DPI laptops. Are you sure you are getting the most of your pixels?

I recently put Windows 8.1 on my last remaining laptop, one with resolution much more than 1080P (1920×1080). To my dismay, several desktop applications looked plain blurry! Font text was inconsistent in size between applications and icons/imagery appeared pixelated around edges. However, a lot of the native Windows applications, like IE or File Explorer, looked fine. So what’s the deal? If you are ever stuck with less than crisp displays while running Windows 8/8.1, read on ..

  • First, let’s get the obvious out of the way. Make sure you have the latest Windows uppdates and running the latest drivers for your video/graphics card. Lot of OEM vendors have updated their Windows drivers and there is no excuse not to be running the latest.
  • Once you know it is not a driver issue, it must be something software. Turns out, Windows caters to a huge number of screen sizes and there has to be some compromises made in terms of defaults. Most of the non-geek population isn’t as concerned about screen real estate like we developers. So, Windows defaults to a bit of display scaling if the native resolution is much higher than 1080P. Much like what OSX does for the MacBook Retinas out of the box.
  • If you trust your eyes and want to shut off this automatic scaling for high resolutions, Windows gives you granular as well as blanket options. For me, Chrome browser, for instance, looked really blurry. So, right click on the program (either from the Taskbar/Desktop or the actual EXE in Program Files) and get to the Properties. Then switch to the Compatibility tab.

ChromeProperties

  • See the checkbox for “Disable display scaling on high DPI settings”? That’s the one you want to have checked. The result – smaller fonts, bigger real estate & crisp edges/icons/imagery.
  • Now, you can do this one at a time for applications you select, or one time for every application in a sweep. Head to the Display settings in Control Panel and turn on the custom scaling for all displays with appropriate text size. Once set, automatic scaling will be turned off and all applications display native resolutions. You can always fine tune magnification inside individual applications.

GlobalTextSetting

Result – ultra high resolution DPI nirvana and more stuff on screen with the increased real estate! Your eyes are your responsibility though :) . Hope this helps.

Adios!