Troubleshooting Circular Dependency by Analyzing Dependency Graphs Generated using Visual Studio 2013 Ultimate Architecture Feature
What's New In Microsoft Enterprise Library 6 Release | C# Tutorial And Tips
- Semantic Logging Application Block.
- Transient Fault Handling Application Block (this application block was previously a part of the Enterprise Library Integration Pack for Windows Azure; in this release it has been generalized and updated to the latest technologies).
- New programmatic configuration that doesn’t require a container.
- AsynchronousTraceListenerWrapper for the Logging Application Block, which enables existing listeners to write messages asynchronously.
- JSON formatter for the Logging Application Block.
- Registration by convention.
- Support for NetCore (Windows Store apps).
- Resolving objects of type Lazy<T>.
- The Unity assembly is now Security Transparent.
- Support for ASP.NET MVC and ASP.NET Web API.
- Caching Application Block
- Cryptography Application Block
- Security Application Block
Components In Microsoft Enterprise Library 6 | C# Tutorial And Tips
- Data Access Application Block. Developers can use this application block to incorporate standard database functionality in their applications, including both synchronous and asynchronous data access and returning data in a range of formats.
- Exception Handling Application Block. Developers and policy makers can use this application block to create a consistent strategy for processing exceptions that occur throughout the architectural layers of enterprise applications.
- Logging Application Block. Developers can use this application block to include logging functionality for a wide range of logging targets in their applications. This release adds asynchronous logging capabilities.
- Policy Injection Application Block. Powered by the Interception mechanism built into Unity, this application block can be used to implement interception policies to streamline the implementation of common features, such as logging, caching, exception handling, and validation, across a system.
- Semantic Logging Application Block. This application block provides a set of destinations (sinks) to persist application events published using a subclass of the EventSource class from the System.Diagnostics.Tracing namespace. Sinks include Windows Azure table storage, SQL Server databases, and flat files with several formats and rolling capabilities. Developers can extend the block by creating custom formatters and sinks. For those sinks that can store structured data, the block preserves the full structure of the event payload in order to facilitate analyzing or processing the logged data. Events can be persisted in-process or collected and persisted out-of-process in a separate service.
- Transient Fault Handling Application Block. This application block makes on-premises or cloud applications more resilient to transient failures by providing intelligent retry logic mechanisms.
- Unity Application Block. Developers can use this application block as a lightweight and extensible dependency injection container with support for constructor, property, and method call injection, as well as instance and type interception. This release adds support for Windows Store apps as well as the registration by convention feature to ease the task of configuring Unity.
- Validation Application Block. Developers can use this application block to create validation rules for business objects that can be used across different layers of their applications.
Scenarios To Implement Microsoft Enterprise Library | C# Tutorial And Tips
- Enterprise Library provides sufficient functionality to support many common cross-cutting scenarios that enterprise-level applications must address.
- Enterprise Library can serve as the basis for a custom library. You can take advantage of the extensibility points incorporated in each application block and extend the application block by adding new providers. You can also modify the source code for the existing application blocks to incorporate new functionality, and even add new application blocks to Enterprise Library. You can either develop extensions for existing application blocks and new application blocks yourself, or you can use extensions and application blocks developed by others.
- Enterprise Library is designed so that its application blocks can function independently of each other. You need to add only the application blocks that your application will use.
- Enterprise Library includes the source code and the unit tests for all application blocks. This means you can explore the implementations, modify the application blocks to merge into your existing library, or you can use parts of the Enterprise Library source code in other application blocks or applications that you build.
- Enterprise Library includes documentation, a reference implementation, and source code. Enterprise Library embodies many design patterns, and demonstrates good architectural and coding techniques. You can use the library as a tool for learning architectural, design, and proven coding practices.
Features Of Power Tools Extension For Visual Studio 2013 | .Net Tips And Tricks
Connection Resiliency Feature In Entity Framework 6 | Visual Studio 2013
Async and Task Support For Entity Framework 6 In Visual Studio 2013
EF6’s new Async Query and Save support enables you to perform asynchronous data access and take advantage of the Task<T> support introduced in .NET 4.5 within data access scenarios. This allows you to free up threads that might otherwise by blocked on data access requests, and enable them to be used to process other requests whilst you wait for the database engine to process operations. When the database server responds the thread will be re-queued within your ASP.NET application and execution will continue. This enables you to easily write significantly more scalable server code.
Interception and Logging For Entity Framework 6 Is Improved In Visual Studio 2013
Custom Code-First Conventions In Entity Framework 6 Improved In Visual Studio 2013
Introducing ASP.NET MVC 5 In Visual Studio 2013
- Authentication filters: These filters allow you to specify authentication logic per-action, per-controller or globally for all controllers.
- Attribute Routing: Attribute Routing allows you to define your routes on actions or controllers.
ASP.NET Identity In Visual Studio 2013
ASP.NET Scaffolding In Visual Studio 2013
New Features Of ASP.NET and Entity Framework In Visual Studio 2013
One ASP.NET
- No Authentication
- Individual User Accounts (Single Sign-On support with FaceBook, Twitter, Google, and Microsoft ID – or Forms Auth with ASP.NET Membership)
- Organizational Accounts (Single Sign-On support with Windows Azure Active Directory )
- Windows Authentication (Active Directory in an intranet application)
Responsive Project Templates with Bootstrap
Visual Studio Web Tooling Improvements
Browser Link – SignalR channel between browser and Visual Studio
ASP.NET Scaffolding
ASP.NET Identity
ASP.NET Web API 2
Attribute routing
OAuth 2.0 support
OData Improvements
- Support for $select, $expand, $batch, and $value
- Improved extensibility
- Type-less support
- Reuse an existing model
OWIN Integration
More Web API Improvements
- CORS support
- Authentication Filters
- Filter Overrides
- Improved Unit Testability
- Portable ASP.NET Web API Client
ASP.NET SignalR 2
ASP.NET MVC 5
- Authentication filters: These filters allow you to specify authentication logic per-action, per-controller or globally for all controllers.
- Attribute Routing: Attribute Routing allows you to define your routes on actions or controllers.
Entity Framework 6 Improvements
Async and Task<T> Support
Interception and Logging
Custom Code-First Conventions
Connection Resiliency
Microsoft OWIN Components
For more information about OWIN and Katana, see What's new in OWIN and Katana.
Summary
This post was originally Appeared on Scott Gu's Blog
Recommended C# Data Type for SQL Server Image Data Type - C#
According to a Microsoft document in managing ntext, text, and image Data, avoid using this feature in new development work. Use varchar(max), nvarchar(max), and varbinary(max) data types instead
byte[] is the recommended C# data type equivalent to image data type of SQL Server.
For example, the below SQL statement shows ProductImages table with an Image type column
CREATE TABLE [ProductImages] ( [ProductImageID] [int] IDENTITY(1,1) NOT NULL, [ProductImage] [image] NOT NULL CONSTRAINT [PK_ProductImages] PRIMARY KEY CLUSTERED ( [ProductImageID] ASC ) )
This can be defined in a ProductImages C# class. Note that the SQL Server Image type is mapped with C# byte[] type
public class ProductImages { private int productImageID; public int ProductImageID { get { return productImageID; } set { productImageID = value; } } private byte[] productImage; public byte[] ProductImage { get { return productImage; } set { productImage = value; } } }
Create NewApp in Facebook and Connect the App to ASP.NET MVC Project - ASP.NET MVC
Facebook ASP.NET MVC Template provides boilerplate code to connect your application to Facebook and retrieve Facebook properties such as Likes, photos, email and friends profile details. However, in order to get your application connect and interact with Facebook, we need to configure some settings from an application that you created in Facebook copy to your ASP.NET MVC project.
- In your browser, navigate to https://developers.facebook.com/apps and log in by entering your Facebook credentials.
- If you aren’t already registered as a Facebook developer, click Register as a Developer and follow the directions to register.
- Click Create New App.(Figure 1)
- Enter an App Name and App Namespace, and then click Continue.(Figure 2)
- On the Basic Settings page for the app, set the Sandbox Mode to Enabled. This ensures that you have exclusive access to the app until it's ready to be made available to everyone.(Figure 3)
- In Visual Studio, open the application Web.config file that is located in the root folder of your project.
- Copy and paste the AppId, App Secret, and App Namespace values into the corresponding key elements in the appSettings collection in the Web.config file.(Figure 4)
- In Solution Explorer, right-click the project and click Properties, and then click the Web tab.
- Copy the Project URL from the Web tab and paste it into the Canvas URL field in the Facebook Basic Settings page.(Figure 5)
- Change Canvas Width to Fluid.
- Click Save Changes.(Figure 6)
- Press CTRL+F5 to run the application.
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Adding a Class Attribute via Html.BeginForm - ASP.NET MVC
We can specify the css class attribute in an HTML helper method BeginForm as below in ASP.NET MVC Application
Html.BeginForm("MyActionName", "MyControllerName", FormMethod.Post, new { @class = "myclass"})
Rendering Textarea Using @Html.EditorFor | ASP.NET MVC
The default view generated will render an input control of type text for a string field.
@Html.EditorFor(model => model.Text)
However, if you want to have a textarea for the string field to facilitate the user to provide multiline text, we need to use [DataType] attribute on your view model
public class MyViewModel { [DataType(DataType.MultilineText)] public string Text { get; set; } }
Don't forget to import System.ComponentModel.DataAnnotations as below
using System.ComponentModel.DataAnnotations;
Now, your view will render a textarea for the string field.
ASP.NET MVC Facebook Application | ASP.NET MVC
Visual Studio 2012 recent update released (VS2012.2) contains an enhancement to ASP.NET MVC that introduced new Facebook Application template. This tutorial will teach you to build a Facebook canvas application using Facebook Applications Template in Visual Studio 2012
Facebook Canvas applications using ASP.NET MVC Facebook Application template
Facebook Application template includes necessary library to build Facebook canvas application. Facebook Application template will ease of writing code for authentication, permissions, and accessing Facebook data. The Facebook Application template also has an extensibility model to build your own storage providers.
Prerequisites to create a Facebook Canvas Application in ASP.NET MVC- Visual Studio 2012 or Visual Studio Express 2012
- ASP.NET and Web Tools 2012.2 update for Visual Studio 2012
- Run Visual Studio 2012 or Visual Studio Express for Web 2012.
- From the File menu, click New Project.
- In the New Project dialog box, expand C# and then click Web under Templates.
- Click ASP.NET MVC 4 Web Application.
- Leave the .NET Framework version set to .NET 4.5 for developing Facebook template requires.
- Enter HelloWorldFacebookApp for the project name, and then click OK.(Figure 1)
- In the New ASP.NET MVC 4 Project dialog box, click Facebook Application, and then click OK.(Figure 2)
Figure 2
Microsoft ASP.NET Web Optimization Framework | ASP.NET
ASP.NET Web Optimization Framework facilitates a new way to bundle css and js files.
In order to utilize the features of ASP.NET Web Optimization Framework in our project, we need to do the following steps.
First, install the package of ASP.NET Web Optimization Framework from nuget by running the below command
Install-Package Microsoft.AspNet.Web.Optimization
Create and configure bundle(s) in App_Start\BundleConfig.cs as below
public class BundleConfig { public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle("~/Scripts/jquery").Include( "~/Scripts/Lib/jquery/jquery-{version}.js", "~/Scripts/Lib/jquery/jquery.*", "~/Scripts/Lib/jquery/jquery-ui-{version}.js") ); bundles.Add(new ScriptBundle("~/Scripts/knockout").Include( "~/Scripts/Lib/knockout/knockout-{version}.js", "~/Scripts/Lib/knockout/knockout-deferred-updates.js") ); } }
Call the RegisterBundles() function from Application_Start() in your global.asax.cs as below
using System.Web.Optimization; protected void Application_Start() { ... BundleConfig.RegisterBundles(BundleTable.Bundles); ... }
Include the Optimization namespace and render the bundle(s) in your view.cshtml as below
@using System.Web.Optimization @Scripts.Render("~/Scripts/jquery") @Styles.Render("~/Content/themes/base/css", "~/Content/css")
Constraints on Type Parameters In Generics | C#
Generics are a template/blueprint of a Classes/Methods/Types were the actual type is defined at Runtime. Parameter types must be defined at the time of creating the instances. A Generic Class can accept any type of parameter. But sometimes it is necessary to implement a generic Class that can be instantiated with only specific types.
Constraints on generics restricts the allowable types while declaring the generic type. A compile-time error will be thrown if you attempt to instantiate a class with a type that is not allowed by a constraint.
Let's walk through with the below class, Circle
public class Circle{ }
Implementing Generic Constraints on Type Paramenters in C#
The Circle class is rewritten by implementing a generic constraints so that Circle class can be instantiated to a Value Type only.
public class Circle where T1 : struct { ... }
Below code shows the Circle class rewritten using generic constraints in such a way that it can be instantiated to a Reference Type only.
public class Circle where T1 : class { ... }
Below code shows the Circle class rewritten using generic constraints in such a way that it can be instantiated with the type argument that must have a public parameterless constructor.
public class Circle where T1 : new() { ... }
Below code shows the Circle class rewritten using generic constraints in such a way that it can be instantiated with the type argument that must be or derive from the specified base class, MyBaseClass here.
public class Circle where T1 : MyBaseClass { ... }
Below code shows the Circle class rewritten using generic constraints in such a way that it can be instantiated with the type argument that must or implement the specified interface, IMyInterface here.
public class Circle where T1 : IMyInterface { ... }
Below code shows the Circle class rewritten using generic constraints in such a way that it can be instantiated with the type argument supplied for T must be or derive from the argument supplied for U.
public class Circle where T : U { ... }
Popular Tutorials
- Creating Cookie in ASP.NET MVC Action | Handling Cookies in ASP.NET MVC | Set Cookie Expiry in ASP.NET MVC | ASP.NET MVC Tutorial
- Generating Multiline TextBox or TextArea with @Html.EditorFor in ASP.NET MVC
- Generating Unique Token in C# | Generating Unique Token that Expires after 24 Hours in C# | C# Tutorial
- Drag & Drop File Upload In ASP.NET MVC Using dropzone js with Fallback Browser Support | ASP.NET MVC Tutorial
- Loading PartialView Via JQuery In ASP.NET MVC | Returning PartialView From ASP.NET MVC Action | ASP.NET MVC Tutorial
- How To Enable Role Manager Feature In ASP.NET MVC? | ASP.NET MVC Interview Question
- How To Add CSS Class And Custom Property in Html.TextBoxFor? | ASP.NET MVC | RAZOR
- Send and Receive SMS and MMS Messages Using Android 4.4 SMS API | Android Video Tutorial
- How to Get Browser Agent from ASP.NET Web API Controller? | ASP.NET Web API Tutorial
- How to Override the Common Route Prefix? | ASP.Net MVC Interview Question