From kudvenkat:

Over 12 years of experience, with Microsoft .NET technologies like ASP.NET, C#, SQL Server, AJAX, WCF, JQuery, SSIS, SSAS and SSRS. Currently working as a Technical Architect in central London. Love to share knowledge as I believe in “TO TEACH IS TO LEARN”.

Got the opportunity to work on world’s largest e-commerce and banking web applications that are highly transactional in nature. Now, it’s my turn to give something back to the community, hence this video tutorial.



Data Access (formerly Open Access ORM), the Telerik  free .NET object-relational mapping tool




is part of Telerik DevCraft—the ultimate product bundle for professional developers targeting Microsoft platforms.

Gain access to the complete stack of products to help you build your next web, mobile or desktop app:

  • UI suites for all .NET platforms and HTML5 (ASP.NET AJAX, MVC, HTML5, Silverlight, WPF, WinForms and Windows 8)
  • Reporting and data layer generation tools
  • Developer productivity tools for better and cleaner code
    • Supported Databases

      • Microsoft SQL Azure
      • Microsoft SQL Server 2000, 2005, 2008, 2012
      • Microsoft SQL Server 2005, 2008, 2012 Express, LocalDB
      • Microsoft SQL Server Compact 3.5, 4.x
      • Oracle Server 10.x, 11.x
      • Oracle Database 10g, 11g Express Edition
      • MySQL 5.x
      • Maria DB 10.0 Alpha
      • SQLite
      • PostgreSQL 9.1
      • Firebird 2.x
      • Advantage Database Server 9.1, 10.1
      • Sybase SQL Anywhere 11.x, 12.x
      • VistaDB

    • LINQ Support

      Data Access offers extensive LINQ support against all supported databases, which has been validated with the Microsoft 101 LINQ to SQL Samples (available in the Data Access Samples Kit). The major advantage of LINQ is the compile-time check of your queries-meaning no surprises at run time.

    • Utilizing Specific Database Features

      Telerik Data Access can be used with a wide variety of relational backends. It offers specific features such as support for SQLGeometry and SQLGeography types in MS SQL Server, RefCursors and Auto-increment Sequences in Oracle. It also offers various types of Stored Procedures and Functions for each database, Data streaming to blob storage columns and more.

      Utilizing Specific Database Features


  • Utilizing Specific Database Features

    Telerik Data Access can be used with a wide variety of relational backends. It offers specific features such as support for SQLGeometry and SQLGeography types in MS SQL Server, RefCursors and Auto-increment Sequences in Oracle. It also offers various types of Stored Procedures and Functions for each database, Data streaming to blob storage columns and more.

    • Database-first mapping is the process of creating a set of objects and .NET classes to be used in your application from an already existing database. This approach is also known as Schema-First and Reverse Mapping. Data Access recognizes the data model, the data types and any additional information like keys and stored procedures, and then generates the object model and related C# or VB.NET code. The process is transparent and you have complete control over the created mapping by using the Create Model Wizard.


    • forward-mapping

      Model-First (Forward) Mapping

      Model-First Mapping (also known as Forward mapping) takes your existing object model and creates an optimized database schema. In Telerik Data Access, this process is handled by the Update Database from Model wizard. It can generate your database and maintain its schema for you so that you will not have to do anything during the design phase.

    • Round-Trip (Mixed Mode) Mapping

      The unique capability called Round-trip Mapping means you don’t have to choose in advance whether to forward- or reverse-map your project. With the help of Telerik Data Access Visual Designer in Visual Studio, you employ both approaches.

    • Code Only Mapping (Fluent API)

      Code Only Mapping (Fluent API)

      If you view code as your model, preferring to write code instead of using visual assistance tools, Telerik Data Access provides Fluent Mapping API that assists you in setting-up your classes for use with Data Access. There is no need to touch a designer or work with the XML mappings.The completely automated, initial Fluent Mapping code generation is done by Data Access. The Data Access Fluent API covers 100 percent of the the functionality of the mapper, and is efficiently used by Telerik Sitefinity CMS.  If required, your model can be visually adjusted in the Visual Mapping Designer.

    • Mapping Stored Procedures and Functions

      Data Access allows you to create new or reuse existing Stored Procedures and follow the widely adopted pattern of DB logic encapsulation inside the database. Under higher security requirements, the stored procedures can be used for all insert, read, update and delete operations to inject additional checks in the database server. A Stored Procedures Editor simplifies the set-up and use of stored procedures.


    • Mapping-Tables-and-Views

      Mapping Tables and Views

      Telerik Data Access forward and reverse mapping enables you to map database views and tables to classes. The data exposed by the tables and views can be modified and then stored back to the database.

    • Model Creation

      The Data Access Model is created in Visual Studio with the aid of numerous tools and wizards, which simplify the process to point-and-click table to object mapping. The model describes the application-specific object or “conceptual” model against which you can program. It raises the abstraction level above logical database schemas, which also allows you to reuse it in different applications and for different databases.


    • Native .NET API, ZERO Reflection, Application Portability

      Data Access uses standard .NET conventions and idioms (inheritance, polymorphism, composition, .NET/generic collections, etc.).  It does not use .NET reflection. The code is free of data access code “plumbing” and is enhanced transparently after compilation. The code generated by Data Access closely follows all established .NET and object-oriented programming standards.

      All classes in Telerik Data Access are persistent ignorant and work independently from the source code and database. This means true portability for your .NET applications, where you can switch the database and reuse the same code and even data model.

    • Change Tracking and CRUD Operations

      You only need to modify the state of an object when updating data – Data Access takes care of the rest. Because the programming model does not change, you do not need to know any of the SQL performed on the backend. Telerik Data Access converts the commands issued by the domain model at runtime (usually via LINQ or low-level API), into backend database retrieval and SQL statements. This frees you from writing the time-consuming CRUD operations. Data Access helps you with the following CRUD operations:

      • Create– instantiate a .NET object and add it to the Data Access context
      • Read– use LINQ to retrieve objects from the database
      • Update– once you have a reference to a persistent object, you simply make changes to the object state
      • Delete– pass the object to be deleted to the Data Access context
      Change Tracking and CRUD Operations

    • Model-Operations-Dialog-for-Instant-Mapping-Modification

      Model Operations Dialog for Instant Mapping Modification

      Data Access provides the Model Operations that enable you to update your model in a few clicks. This is done through a simple dialog, so you can:

      • Update many (or all) classes and properties using a configurable batch operation, such as changing class namespaces, changing property types and more
      • Speed-up the process of making changes in class and property names by presenting them in a data grid
      • Always have a good reference for the current state of your model using a grid-based overview

    • Testability

      All classes enhanced by Telerik Data Access are still normal CLR objects, and as such, can be easily tested by state of the art unit tests. SQL code can be traced by writing it to the console, in a text file or to the .NET tracing framework. Performance counters show you the state of your running application, website or application server.




Now on Pluralsight:

The ASP.NET MVC 5 Fundamentals training course spends most of its time on new features for version 5 of the framework, including:

ASP.NET MVC 5 Fundamentals covers all the new features of ASP.NET MVC 5, as well as the new features for web developers in Visual Studio 2013, including WebApi 2, OWIN, Katana, SignalR, and the Entity Framework version 6

The Building Applications with ASP.NET MVC 4 training course is a start to finish introduction to programming with ASP.NET MVC 4. Some of the demos in the 7+ hours of content include:

– Using controllers, action results, action filters and routing

– Razor views, partial views, and layout views

– Models, view models, data annotations, and validation

– Custom validation attributes and self-validating models

– Entity Framework 5 code-first programming

– Entity Framework migrations and seeding

– Security topics including mass assignment and cross site request forgeries

– Using JavaScript and jQuery to add paging, autocompletion, async form posts, and async searches

– Taking control of Simple Membership

– Using OAuth and OpenID

– Caching, localization, and diagnostics

– Error logging with ELMAH

– Unit testing with Visual Studio 2012

– Deploying to IIS

– Deploying to a Microsoft Windows Azure web site


ASP.NET Web API Attribute Based Routing

Route attributes bring the URL definition closer to the code that runs for that particular URL, making it easier to understand which URL must be called for a particular block of code and simplifying many common routing scenarios.

For example, let’s say you want to define a Web API that has the standard set of HTTP actions (GET, POST, PUT, DELETE, and so on) but you also want to have an additional custom action, such as Approve. Instead of adding another route to the global route table for the Approve action, you can instead just attribute the action directly:

public class OrdersController : ApiController


public IEnumerable<Order> GetOrders() {…}

public Order GetOrder(int id) {…}

public Order Post(Order order) {…}


public Order Approve(int id) {…}


An extended route template syntax makes it simple to specify default values and constraints for route values. For example, you can now easily create two actions that are called based on parameter type. In the following People controller, the id parameter of the GetByID action takes only int values. The GetByName action method contains a default name of “Nick”.

public class PeopleController : ApiController



public string GetByName(string name) {…}



public string GetById(int id) {…}


You can also define common route prefixes for your web APIs. For example, you can use route prefixes to set up a resource hierarchy:




public class MoviesController : ApiController


public IEnumerable<Movie> GetMovies() {…}

public IEnumerable<Movie> GetMoviesByActor(int actorId) {…}

public IEnumerable<Movie> GetMoviesByDirector(int directorId) {…}


Or, you can use route prefixes to handle multiple versions of your web API:


public class CustomersV1Controller : ApiController {…}



public class CustomersV2Controller : ApiController {…}

Similar to the new CORS support in ASP.NET Web API, the new support for attribute-based routing is largely a contribution from the community.