Saturday, August 25, 2012

Weekly digest #11

Using JSHint inside Visual Studio – the basics, Steven Sanderson: JSHint is great. It’s a linting tool for JavaScript: a simple tool that can very often spot your mistakes before you do. It can save you from a lot of tedious debugging, lets you refactor JavaScript code with greater confidence, and reduces the chances of you deploying broken code to your production server.

What's really new in ASP.NET MVC 4 (not much), Max Toro: Max Toro summarizes what has really changed in MVC 4. A very concise and to the point explanation.

Entities, Models, and Architecture, Chris Eargle: I read several programming articles a day to expose myself to other’s ideas and maybe find a gem or two. I share the articles I find interesting, but I don’t always agree with everything the author has written. One of these articles caused quite a bit of controversy when I posted it to my Facebook, probably because I have a lot of DBA friends and the title was Why I Avoid Stored Procedures (And You Should Too).

How integrate Facebook, Twitter, LinkedIn, Yahoo, Google and Microsoft Account with your ASP.NET MVC application, Ugo Lattanzi: In the past week, 15 august, Microsoft released an incredible number of cool stuff, starting from Windows 8 and ending to Visual Studio 2012 including the new ASP.NET Stack.

Inside the DLR - Invoking methods, Simon Cooper: So, we've looked at how a dynamic call is represented in a compiled assembly, and how the dynamic lookup is performed at runtime. The last piece of the puzzle is how the resolved method gets invoked, and that is the subject of this post.

An Introduction to ASP.NET Web API, Rick Strahl: Microsoft recently released ASP.NET MVC 4.0 and .NET 4.5 and along with it, the brand spanking new ASP.NET Web API. Web API is an exciting new addition to the ASP.NET stack that provides a new, well-designed HTTP framework for creating REST and AJAX APIs (API is Microsoft’s new jargon for a service, in case you’re wondering). Although Web API ships and installs with ASP.NET MVC 4, you can use Web API functionality in any ASP.NET project, including WebForms, WebPages and MVC or just a Web API by itself. And you can also self-host Web API in your own applications from Console, Desktop or Service applications.

About signing assemblies, GAC and friends, Ran Wahle: Recently I was asked by one of my colleagues to explain to a customer of his about signing assemblies, putting them into GAC etc. So I’ve  decided to put some terms in order, for you to understand what it’s all about.

Extra Information from OAuth/OpenId Provider, pranav rastogi: When you authenticate a user using the OAuth/OpenId providers, you can request for some extra information about the user if you have granted access for these providers to send this information.

Tuesday, August 21, 2012

Weekly digest #7, #8, #9 and #10

It has been very tough last month so i could not publish anything. Following is what’s been interesting in these four weeks in the .Net world.

How to migrate an existing ASP.NET Website Project to Windows Azure, zafarx: In this blog we will discuss how to migrate an existing ASP.NET Website project to Windows Azure.

Why TCP is evil and HTTP is king, Ayende @ Rahien: I got asked why RavenDB uses HTTP for transport, instead of TCP. Surely binary TCP would be more efficient to work with, right?

Rich JavaScript Applications – the Seven Frameworks (Throne of JS, 2012), Steven Sanderson: t’s no longer good enough to build web apps around full page loads and then “progressively enhance” them to behave more dynamically. Building apps which are fast, responsive and modern require you to completely rethink your approach.

Task<T> vs IObservable<T>: when to use what?, Flavien Charlon: The Task<T> class was integrated with the .NET Framework in .NET 4.0, as part of what is known as the Task Parallel Library. The main purpose of the TPL was to facilitate writing parallel code, making it easier to run code on multiple cores, for instance. That is why the class itself was called Task, it represented a piece of program you could run in parallel with other pieces of program. Task, however, is much more versatile than that. In .NET 4.5 (now RTM, and on MSDN next week), Task will be the primary actor for working with the new async/await language feature.

Where does ASP.NET Web API Fit?,  Rick Strahl: With the pending release of ASP.NET MVC 4 and the new ASP.NET Web API, there has been a lot of discussion of where the new Web API technology fits in the ASP.NET Web stack. There are a lot of choices to build HTTP based applications available now on the stack - we've come a long way from when WebForms and Http Handlers/Modules where the only real options. Today we have WebForms, MVC, ASP.NET Web Pages, ASP.NET AJAX, WCF REST and now Web API as well as the core ASP.NET runtime to choose to build HTTP content with.

Simple.Web and Nancy, MARKRENDLE: Several people have asked me what the difference is between Simple.Web and Nancy, so I’m going to try and outline it here, and share some more of my motivation for writing Simple.Web in the first place.

Properties in JavaScript: definition versus assignment, Dr. Axel Rauschmayer: Did you know that defining a property is not the same as assigning to it? This blog post explains the difference and its consequences. It has been triggered by an email from Allen Wirfs-Brock on the es-discuss mailing list.

Knockout.js pro tips – working with templates, Filip W.: Just like last time, when we discussed observable arrays, I wanted to share a few (hopefully) useful tips about working with templates in Knockout. This is not going to be a comprehensive look into templating with knockout – there are plenty of resources that cover that – but rather a collection of smaller pieces of advice that could make you life easier.

Performance Tips: System.Text.StringBuilder and String.Concat, Feng Yuan: Much has been written about the benefits of using StringBuilder over string concatenation. So much so that there seems to be overuse of StringBuilder class, causing performance issues again.

A Tool to Remove Source Control Bindings from Visual Studio Solutions and Projects, Saveen Reddy: Ever need to share your Visual Studio solution or projects with someone? You ZIP up a folder with your code and send it. If your project is under source control – one that is integrated with Visual Studio – you will likely hear from the recipient of your code. They will be complaining that the get weird warnings from Visual Studio when they load the solution and projects.

Reliable job scheduling with NServiceBus and Quartz.NET, Jimmy Bogard: One of the more interesting features of NServiceBus is the ability to schedule messages and send messages in the future. The default implementation works well for simple cases, where you have messages that need to be sent every X seconds. But for many of our scenarios, we are more calendar based.

Caching LINQ Results, Chris Eargle: Christopher Nolan’s recent films have earned him a place among the pantheon of geek heroes. The grittiness of his Batman films corrected the campiness of the previous series, and his movie Inception represents recursion with artistic flair that should make Douglas Hofstadter proud. However, before Nolan’s recent slate of successful films is another film with analogies in programming.

OData support in ASP.NET Web API, Alex D James: Earlier versions ASP.NET Web API included basic support for the OData, allowing you to use the OData Query Options $filter, $orderby, $top and $skip to shape the results of controller actions annotated with the [Queryable]attribute. This was very useful and worked across formats. That said true support for the OData format was rather limited.  In fact we barely scratched the surface of OData, for example there was no support for creates, updates, deletes, $metadata and code generation etc.

Using JSHint inside Visual Studio – the basics, Steven Sanderson: JSHint is great. It’s a linting tool for JavaScript: a simple tool that can very often spot your mistakes before you do. It can save you from a lot of tedious debugging, lets you refactor JavaScript code with greater confidence, and reduces the chances of you deploying broken code to your production server.