Pages

Casting or Parsing a variable in generic type member variable in C#

Wednesday, December 18, 2013

Microsoft .Net already has a bunch of great string conversion routines you can use! A TypeConverter can do most of the heavy lifting for you. Then you don't have to worry providing your own parsing implementations for built-in types. Note that there are locale-aware versions of the APIs on TypeConverter that could be used if you need to handle parsing values expressed in different cultures. The following code will parse values using the default culture:

public object Convert(string member, string value)
{
    Type type = typeof(T).GetProperty(member).PropertyType;
    var converter = TypeDescriptor.GetConverter(type);
    return converter.ConvertFromString(value);
}

The best way to compare two objects by value in C#

To compare to object by value we can use the following code snippet.

private static bool CompareValue(object o1, object o2)
{
    return o1.GetType() == o2.GetType() && Object.Equals(o1, o2);
}

This method compare the types of two object and then check their value.


Whats New in ASP.NET and Web Tools for Visual Studio 2013

Tuesday, December 10, 2013

Microsoft recently released the new version of Visual Studio 2013 and web tools. Here are the summary of the new features for the web developers in Visual Studio 2013.
  • New release focuses on One ASP.NET, which steps toward to unifying the ASP.NET technologies so core features can and web tools work the same  across the platforms (e.g. adding ASP.NET MVC controllers to a Web Forms application).
  • Enhance Authentication and Identity feature.
  • New version of ASP.NET, which includes ASP.NET MVC 5, Web API 2, Razor 3, Entity Framework 6 and SignalR 2.0
  • New Browser link feature that lets you to connect multiple browsers to Visual Studio and refresh them all by clicking a button in the toolbar.
  • New core features include new templates based on Bootstrap, a new scaffolding system.
  • Awesome editor for web tools, including HTML5, CSS3, JavaScript,  jQuery, AngularJS, Ember, LESS, CofeeScript etc.
  • New Project Readme.html page.
  • New and enhance Web publish features like easily automate Web.config file encryption, automate taking an application offline during deployment.
  • Visual Studio 2013 released with a new NuGet 2.7 for package management.

SPDY: Let's make the web faster

Introduction

SPDY (Pronounced as "SPeeDY") is an open networking protocol similar to HTTP, with particular goals of reducing web page load latency and improving web security. SPDY achieves reduced latency through compression, multiplexing, and prioritization. 

Background: web protocols and web latency

Today, HTTP and TCP are the protocols of the web. TCP is the generic, reliable transport protocol, providing guaranteed delivery, duplicate suppression, in-order delivery, flow control, congestion avoidance and other transport features. On the other hand, HTTP is the application level protocol providing basic request/response semantics.

Get property value from C# dynamic object by string using reflection

In Generic Class, it is quite common to get the value for a specific property dynamically. C# refection provides ways to get the Property value dynamically. If the IDynamicMetaObjectProvider can provide the dynamic member names, you can get them. See GetMemberNames implementation in the apache licensed ImpromptuInterface (which can be found in nuget), it works for ExpandoObjects and DynamicObjects that implement GetDynamicMemberNames and any other IDynamicMetaObjectProvider who provides a meta object with an implementation of GetDynamicMemberNames without custom testing beyond is IDynamicMetaObjectProvider.