New Feature in Visual Studio 2015 RC

Introduction

In this Visual Studio 2015 RC have major changes ever, an integrated suite of developer productivity tools, cloud services, and extensions that enable you and your team to create great apps and games for the web, for Windows Store, for the desktop, for Android, and for iOS. This article highlights some of the most important features in visual studio IDE.
New Feature in Visual Studio 2015 RC 



Description

 1)    Sign In across multiple accounts

You can work with multiple user accounts in Visual Studio by adding them as you go or through the new Account Manager. Then, you can switch between those accounts on the fly when connecting to services or accessing online resources. Visual Studio remembers the accounts you add so you can use them from any instance of Visual Studio or Blend.
 


Figure1: You can add multiple accounts in visual studio by clicking on Add an account link

2)    Choose your target platform(s)
 Visual Studio 2015 supports cross-platform mobile device development. You can write apps and games that target iOS, Android, and Windows and share a common code base, all from within the Visual Studio IDE. You’ll see all these new project types in the File, New Project dialog.
And also support for classic desktop applications is better than ever, with lots of improvements to languages, libraries, and tools. Below are different platform.
•    Cross-platform mobile apps in C# with Xamarin for Visual Studio
•    Cross-platform mobile apps in HTML/CSS/JavaScript with Apache Cordova
•    Cross-platform mobile games in C# with Unity
•    Classic desktop and Windows Store
•    Cross-platform mobile games in C# with Unity
•     Cross-platform apps and libraries for native C++
•    Web
ASP.NET 5 is a major update to MVC, Web API and SignalR, and runs on Windows, Mac, and Linux. ASP.NET 5 has been designed from the ground up to provide you with a lean and composable .NET stack for building modern cloud-based apps. The Visual Studio 2015 RC tooling is more closely integrated with popular web development tools such as Bower and Grunt

3)    Live code analysis (Light Bulbs)
 In Visual Studio 2015 RC, light bulbs display in the left margin (when using the keyboard) or a tool tip (when hovering over an error with the mouse). The light bulb tells in real time that the compiler (possibly using a custom rule set) has detected an issue in your code and also has a suggestion for how to fix the issue. When you see a light bulb, click on it for actionable suggestions
 


Figure-2 Live code analysis - image reference from MSDN site
4)    Design your UI
The Blend experience for designing XAML user interfaces has been significantly enhanced. Blend has been completely redesigned to provide a more intuitive UI, more powerful XAML editing capabilities, and better integration with Visual Studio.

5)    Diagnose Issue
•    Advance Breakpoints
Breakpoints in the debugger are significantly more configurable, and the UI for interacting with breakpoints is consolidated into a peek window so that you never have to leave the code editor


Figure 3- Breakpoints with expression condition -Image reference from MSDN site
•    Performance Tips
Performance tips display the execution time of methods during debugging, enabling you to quickly spot bottlenecks without having to invoke the profiler


Figure 4- Elapsed time -Image reference from MSDN site
•    Error List
The error List now supports filtering on any column. It is also scalable enough to show a live view of errors, warnings, and code analysis across your entire C# or Visual Basic solution as you type, even when a code change produces thousands of warnings. The new Error List is back-compatible with existing usage.
•    GPU Usage Tool
The GPU Usage Tool helps you collect and analyze GPU usage data in DirectX apps and games and troubleshoot whether performance bottlenecks are originating in the CPU or GPU.
6)    Connect To Service
Add Connected Service wizard also integrates with the new Account Manager to make it easy to work with multiple user accounts and subscriptions. In Visual Studio 2015 RC, support for the following services is provided out of the box (assuming that you have an account):
•    Azure Mobile Services
•    Azure Storage
•    Office 365 (mail, contacts, calendars, files, users & groups)
•    Salesforce


Figure-5 Add Connected Service- Image reference from MSDN site
7)    Synchronized Settings (Roaming Settings)
Visual Studio 2015 improves on this experience by synchronizing more of your settings and synchronizing settings across Visual Studio family of applications like Professional, Enterprise, Express SKUs, and Blend. Setting includes Settings for some of the most commonly configured settings such as Text Editor, Key bindings, Theme & Fonts & Colors, Startup, and Environment Aliases
8)    High Resolution Images and Touch Support
The Visual Studio IDE now has true high resolution images on denser displays (in areas like menus, context menus, tool window command bars, and in some projects in Solution Explorer). And on a touch-screen in the Visual Studio code editor window, you can now use gestures such as touch and hold, pinch, tap and so on to zoom, scroll, select text, and invoke context menus.
9)    Title Case Menu
Visual Studio menus are once again title-case by default. However if you happen to like the ALL CAPS style, you can set it on start up or in the Tools > Options > General property page:


Figure-6 Title Case Menu- Image reference from MSDN site
10)    Custom Layouts
You can create store and roam custom window layouts. For example, you can define one preferred layout for use on your desktop machine, and different layout for use on a laptop or small screen device. Or you may prefer one layout for a UI project and another for a database project. Key bindings enable you to rapidly switch between layouts. These layouts are available on any instance of Visual Studio when you are signed in.


Figure-7 Custom Layout- Image reference from MSDN site
11)    Notification Hub
The UI for the notification hub has been streamlined to make it easier to scan quickly. Additional kinds of notifications have been added including performance issues, rendering issues, and crashes, and you can now tell Visual Studio to stop showing a notification.


Figure-8 Notification Hub- Image reference from MSDN site
12)    Code Lens: Find what happened to your code (Enterprise and Professional editions only)
You can review changes and other history for work items, bugs, code reviews, and so on for code that’s stored in Visual Studio Online (VSO) or in Team Foundation Server (TFS).
In Visual Studio Enterprise and Visual Studio Professional, you can now:
•    Get history for an entire code file in the Visual Studio editor.


Figure-9 Code Lens- Image reference from MSDN site
•    See a graph that shows the people who changed your code. This can help you find patterns in your team's changes and assess their impact.


Figure-10 Code Lens- Image reference from MSDN site
•    Easily see when your code was last changed.
•    Find changes in other branches that affect your code.
Reference
Main Reference: MSDN library https://msdn.microsoft.com  for image reference also
Conclusion
This article covers almost all new general features of Visual Studio 2015 RC IDE. Visual Studio by default provides support for C#, C and C++, JavaScript, F#, and Visual Basic. Third parties as well as Microsoft offer extensions to support many other languages, including Python, Unity for Game and Apache Cordova. Hope you enjoy this article.

JUICE UI - ASP.NET Web Forms with jQuery UI

Introduction

JUICE UI is open source ASP.NET Web Forms components for jQuery Widgets. We use all jQuery UI components like ASPX Server side control. Here we learn and use JUICE UI control in Aspx Web Form. JUICE UI Control also available for ASP.NET MVC Control also as helper method.

Description


Juice UI requires .NET 4.0. Please ensure the proper version of .NET is installed before attempting to integrate Juice UI Controls. Juice UI can be installed through the NuGet Package Manager:
PM> Install-Package Juice UI

Note: While use JUICE UI Control TargetControl attribute is required to set with ASPX Control ID. Before Use JUICE UI Control Add ScriptManager in Page.
All jQuery Widget and JUICE UI Control have same attribute

Date Picker Control

<asp:TextBox runat="server" ID="txtDate" />
<juice:datepicker runat="server" targetcontrolid="txtDate" mindate="-20" maxdate="+1M +10D" />
Juice UI Date Picker control support all attribute which is supported by JQuery UI Date Picker

Autocomplete Control


<asp:TextBox runat="server" ID="txtLanguage" placeholder="Type Word" />

<asp:TextBox runat="server" ID="txtLanguagerFromWebAPI" placeholder="Type Word" />

<juice:Autocomplete ID="_Autocomplete" runat="server" TargetControlID="txtLanguage" Source="ActionScript, AppleScript, Asp, BASIC, C, C++, Clojure, COBOL, ColdFusion, Erlang, Fortran, Groovy, Haskell, Java, JavaScript, Lisp, Perl, PHP, Python, Ruby, Scala, Scheme" />

<juice:Autocomplete ID="_Autocomplete1" runat="server" TargetControlID="txtLanguagerFromWebAPI" SourceUrl="/API/Service/GetLanguage" />

To implement auto complete control with JUICE UI Auto Complete, it requires source to bind data (Array data or key value pair) as auto complete. In this demo I have use both static as well as dynamic Ajax or Web API based source to bind with JUICE UI Autocomplete.

Dialog Control


<asp:TextBox runat="server" ID="txtDate" />
<juice:datepicker runat="server" targetcontrolid="txtDate" mindate="-20" maxdate="+1M +10D" />
To open dialog it requires adding JavaScript function to trigger dialog to open.
<script type="text/javascript">
    // Click Link to open Dialog
    $("#lnkDialog").click(function(e) {
        e.preventDefault();
        // Open the dialog    
        $("#_Default").dialog("open");
    });

</script>

Slider Control


    <asp:Literal runat="server" ID="currentValue" />
</div>
<juice:Slider ID="slider2" runat="server" Max="150" />
<p>Two Value Slider</p>
<div><span id="slider2Value"></span>
</div>
<juice:Slider ID="_Range" runat="server" Range="true" Min="0" Max="500" Values="75, 300" />
Slider Control work same as jQuery UI Slider and all property also supported in JUICE UI Slider Control

Menu Control



<juice:Menu ID="_Menu" runat="server">
    <juice:MenuItem ID="Menuitem1" runat="server">
        <Content><a href="#">Item 1</a>
        </Content>
    </juice:MenuItem>
    <juice:MenuItem ID="Menuitem2" runat="server">
        <Content><a href="#">Item 2</a>
        </Content>
    </juice:MenuItem>
    <juice:MenuItem ID="Menuitem3" runat="server">
        <Content><a href="#">Item 3</a>
        </Content>
        <Items>
            <juice:MenuItem ID="Menuitem4" runat="server">
                <Content><a href="#">Item 3-1</a>
                </Content>
            </juice:MenuItem>
            <juice:MenuItem ID="Menuitem5" runat="server">
                <Content><a href="#">Item 3-2</a>
                </Content>
            </juice:MenuItem>
            <juice:MenuItem ID="Menuitem6" runat="server">
                <Content><a href="#">Item 3-3</a>
                </Content>
            </juice:MenuItem>
            <juice:MenuItem ID="Menuitem7" runat="server">
                <Content><a href="#">Item 3-4</a>
                </Content>
            </juice:MenuItem>
            <juice:MenuItem ID="Menuitem8" runat="server">
                <Content><a href="#">Item 3-5</a>
                </Content>
            </juice:MenuItem>
        </Items>
    </juice:MenuItem>
    <juice:MenuItem ID="Menuitem9" runat="server">
        <Content><a href="#">Item 4</a>
        </Content>
    </juice:MenuItem>
    <juice:MenuItem ID="Menuitem10" runat="server">
        <Content><a href="#">Item 5</a>
        </Content>
    </juice:MenuItem>
</juice:Menu>

In this menu control I have provided nested menu example also

Tab Control


<juice:Tabs ID="_Tabs" runat="server" PanelTemplate="<div>!</div>" AutoPostBack="true">
    <juice:TabPage Title="Tab 1" ID="Tab1">
        <TabContent>
            <p>This should display on tab 1.</p>
            <asp:TextBox ID="_Textbox" runat="server" /> </TabContent>
    </juice:TabPage>
    <juice:TabPage Title="Tab 2" ID="Tab2">
        <TabContent>
            <p>This should display on tab 2.</p>
        </TabContent>
    </juice:TabPage>
</juice:Tabs>

Accordion Control


<juice:Accordion ID="_Accordion" runat="server">
    <juice:AccordionPanel Title="Panel 1">
        <PanelContent> First Panel content.
            <asp:TextBox runat="server" ID="dob1" ClientIDMode="Static" />
            <juice:Datepicker ID="Datepicker1" runat="server" TargetControlID="dob1" /> </PanelContent>
    </juice:AccordionPanel>
    <juice:AccordionPanel Title="Panel 2">
        <PanelContent> Second Panel content. </PanelContent>
    </juice:AccordionPanel>
</juice:Accordion>

This control create Accordion like jQuery UI

Reference


1.    https://github.com/appendto/juiceui
Note: I have use demo from JUICE UI Open Source GitHub Repository as above.

Conclusion


In this article we learned new way to use jQuery UI Control using Server Side Control JUICE UI Library. We have seen Most used JUICE UI control like Date Picker, Accordion, Auto complete etc. Hope you enjoy this article.

Common Asp.Net Tips and Tricks


Introduction

This article is useful for all developer who faces this type of exception in their software development time. Article also provides tips for common error. I will provide you solution of common exception and issue facing during development.

Tips and Tricks


1) 500 Error occurs while publishing website in IIS. Most configuration error occurs because of this.
 Solution
Figure1: Configuration Steps related to publish website in IIS
Step 1: Choose appropriate application pool and if target framework is missing  in application pool then follow below steps as per your pc.
  • Open command Prompt using Run as administrator 
  • Change the directory path for proper framework in command prompt
CD C:\Windows\Microsoft.NET\Framework64\v4.0.30319
After changing directory path hit enter "aspnet_regiis i" this command register aspnet_regiis is available into directory.
Step 2: Select proper publish code 

Step 3: Check the Physical path is accessible for current user or IUSR by verify using “Test Settings”
2) If you have publish your website to live server and you want to change some minor code behind file and want to upload to live server what is best way?
Solution: Instead of publish whole site,
Step 1: Just build the project without error and go to project bin folder find "projectname.dll" and "projectname.pdb" (If available)

Step 2:Then put this two file to live project's bin folder and just replace it. Now Website runs with latest change. Because all our .cs file(code behind file) is converted to DLL and our page searches method reference from DLL file.

3) How to resolve "Maximum request length exceeded" Exception while working with web service or JSON data.
 Solution: The 4MB default is set in machine.config, but you can override it in you web.config. For instance, to expand the upload limit to 20MB, add below code to web.config:
     
IIS7(and later version) has a built-in request scanning which imposes an upload file cap which defaults to 30MB. To increase it, you also need to add the lines below
    
        
             
    
4)  The request filtering module is configured to deny a request that

exceeds the request content length (IIS 7)

Solution: You have to add below configuration to web.config file



    
        
             
    


5)  The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler.If the file should be downloaded,add a MIME map(For Json file)

Solution:  You have to add below configuration to web.config file


    
         

    

6)     When I integrating WebAPI2 in existing MVC web application some dependency error occurs.

Solution:

I have reinstall "system.web.http.webhost" package using Nuget and add WebApiConfig file. In ”appstart” folder  and register  to global.asax file before RouteConfig. If routeconfig added before webapiconfig then WebApi not working properly.

WebApiConfig.cs

public static void Register(HttpConfiguration config)   
{  
// Web API routes
    config.MapHttpAttributeRoutes();  

    config.Routes.MapHttpRoute(  
    name: "DefaultApi",  
    routeTemplate: "api/{controller}/{id}",  
    defaults: new
    {  
        id = RouteParameter.Optional  
    });  
//To return json format data
    config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));  
}
In global.asax file
AreaRegistration.RegisterAllAreas();  
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);  
//added before RouteConfig
GlobalConfiguration.Configure(WebApiConfig.Register);  
RouteConfig.RegisterRoutes(RouteTable.Routes);  
BundleConfig.RegisterBundles(BundleTable.Bundles); 

7)   How to speedup page request in asp.net

Solution:  Just add below configuration to web.config file and it will take care automatically.

    
        
        
            
            
            
            
        
        
            
            
            
            
        
    
    



Conclusion:

In this article we learn basic configuration tips as well as common exception and its solution which is common while developing web application. I will update this article with other useful tips

Dynamic Query in LINQ using Predicate Builder

Introduction This tutorial explains how to create a dynamic query using LINQ, Using Predicate Builder  LINQ to SQL dynamic query an...

Learn More