Change jQuery Slider Speed

Image Slider with Repeater

Image Slider with Repeater

Introduction

We have already talked about integrating a jQuery Slider Plugin to ASP.NET Repeater control. Now in this blog, we will change the default speed of the slider.

Background

The blog I was talking about is – ASP.NET Repeater with jQuery Slider. I explained some simple steps to integrate the jQuery Elastiside Plugin with the Repeater. This blog was a success and I received many comments as well as questions. In this blog, I will explain one of the questions, which I was asked. I am quoting that below.

Hi taditdash,

I have problem with speed. 500 is set by default. I wan to increase but no effect. I changed the value in jquery.elastislide.js (speed : 50) and also tried to change in function _validate : function() { this.options.speed = 500; value but no effect. Can you help me to fix this? Please help.

Thanks

Really very thought-provoking question.

Started my Research

I straight away opened the jQuery Plugin file and tried to see if there are any options to do this. I just searched the word “speed” and found a very interesting code block, which is given below.

$.Elastislide.defaults = {
    // orientation 'horizontal' || 'vertical'
    orientation : 'horizontal',
    // sliding speed
    speed : 500,
    // sliding easing
    easing : 'ease-in-out',
    // the minimum number of items to show. 
    // when we resize the window, this will make sure minItems are always shown 
    // (unless of course minItems is higher than the total number of elements)
    minItems : 3,
    // index of the current item (left most item of the carousel)
    start : 0,
    // click item callback
    onClick : function( el, position, evt ) { return false; },
    onReady : function() { return false; },
    onBeforeSlide : function() { return false; },
    onAfterSlide : function() { return false; }
};

Can you guess what this code block does actually? As the name $.Elastislide.defaults suggests, when we initiate the elastislide by $('#carousel').elastislide();, it sets these properties by default. So, speed is 500 ms by default.

Solution

To change the speed, we need to tell the plugin that we want a different speed and not the default one. For that, we need to pass the speed parameter to the elastislide() while initiating the elastiside. Let me code that to clarify what I mean to say.

$('#carousel').elastislide({ speed: 50 });

Now, the slider will slide speedily. If you change it to 5000, it will slide slowly.

$('#carousel').elastislide({ speed: 5000 });

Conclusion

If you have not started on jQuery Slider, then refer the blog I have already written. Any problems or suggestions, please comment below.

Thanks for reading. Have a nice day. :)

Addition of two Numbers in AngularJS

AngularJS


Recently, I have started learning AngularJS. AngularJS is a JavaScript Framework, which helps you to declare more HTML Tag Attributes with very powerful functionality.

Let’s Code Something

The first thing, which I tried to do, is to add two numbers and show the result in a TextBox. I coded like below…

<div ng-app="">
    <p>First Number:
        <input type="text" ng-model="a" />
    </p>
    <p>Second Number:
        <input type="text" ng-model="b" />
    </p>
    <p>Sum: {{ a + b }}</p>
</div>

Couple of Notes

  • The ng-model directive binds the value of the input field to the application variable name. So, the variable "a" will contain first TextBox Value and "b" will contain second TextBox value.
  • {{ expression }} is used to dynamically bind the result of the expression. Thus, while typing on the TextBoxes, this place will populate with the result of the expression, which is our expected summation.

Alright, Let’s See What Happened Next

The following screenshot would tell you what happened after that.

Sum of Two Numbers using TextBoxes

Sum of Two Numbers using TextBoxes


It is actually not adding, but concatenating the numbers. Why this happened? That is because the values inside the TextBoxes are always string. They are not numbers. Thus, “+” operator would help them concatenate.

Looking for Solutions !!!

Now, I researched and found two solutions.

Solution 1 – Using Double Negation

Very beautiful hack. Code as…

<div ng-app="">
    <h3>Using Double Negation</h3>

    <p>First Number:
        <input type="text" ng-model="a" />
    </p>
    <p>Second Number:
        <input type="text" ng-model="b" />
    </p>
    <p>Sum: {{ a -- b }}</p>
</div>

Solution 2 – Using HTML5 Input Type Number

This is the most preferable way of achieving this task as it uses HTML5 Input Type Number. So, when we use this Number Type, then “+” operator will work because the values are numbers by default.

<div ng-app="">
    <h3>Using Input Type Number</h3>

    <p>First Number:
        <input type="number" ng-model="c" />
    </p>
    <p>Second Number:
        <input type="number" ng-model="d" />
    </p>
    <p>Sum: {{ c + d }}</p>
</div>
Sum of Two Numbers in AngularJS

Sum of Two Numbers in AngularJS

Demo

jsfiddle link – Sum of two Numbers using AngularJS

Going Forward

I hope you liked the Blog. Thanks for reading. As I progress and find more interesting stuff, I will share on my future Blog posts. Happy coding. :)

South Asia MVP Open Day 2015

South Asia MVP Open Day Highlights

South Asia MVP Open Day Highlights

Let me tell you one of the most mysterious thing about the MVP Open Day, which was the venue. We all tried very hard to find out the exact location of the resort. Some of us even tricked the cabby to get the information, but the organizers were way cleverer than we thought.

Just for a quick introduction on MVP Open Day…

It is is an annual regional MVP gathering to learn, connect and share experiences. We, all MVPs from South Asia, unite at one place to celebrate the “Joy of Sharing“.

So, after some time, we reached our so called “secret venue”, which was “Royal Orchid Resort at Yelahanka“. We quickly checked in and freshened up, because there were many interesting stuff already lined up for us, as you can imagine from the agenda given below.

South Asia MVP Open Day Agenda

South Asia MVP Open Day Agenda

Not getting anything from the Agenda, right !!! The same happened with us too. Keep reading, you will get know everything.

Agenda was beautifully designed, which is a combination of Technical as well as Non-Technical Sessions along with different activities and games.

Day 1 …

… started with the Introduction to MVP Program and its benefits, delivered by Mayumi Suzuki, Allen Li, Biplab Paul and Gandharv Rawat, who are our MVP Community Leads and Managers. They answered all our queries by giving us the real insight and flavour of this Program.

MVP Program Overview

MVP Program Overview

The next presenter was Dr. Nitin Paranjape, who demonstrated Office 365. We discovered many cool, useful and productive features, which we don’t really use.

One of the best quotes he made is…

“While working with any Product or Software, think whether you are helping it or that is helping you.”

This is a very powerful sentence indeed. The software is designed with all features to make our job fast and perfect, but most of the time, we try to do in our own way, ignoring all the features of the software.

Office 365 by Dr Nitin Paranjape

Office 365 by Dr Nitin Paranjape

The day then followed by sessions on Visual Studio, Office Tools and Azure by fellow MVP, Microsoft Program Managers and Experts. These sessions were informative as they addressed our daily life issues, we face with the Microsoft Products and Platforms.

How about some Game after so much of tech discussion?

Yes, you heard that right. “Paint Ball” and “Archery” were the next big things in the agenda. We formed teams among us and played the game so passionately.

MVPs playing Paintball and Archery

MVPs playing Paintball and Archery

Finally, we had a party with dinner in the evening. All the us appeared with traditional attire, which fill the place with tranquility. This was the time, when we get to know each other, chit chatted on different tech and non-tech things.

MVP Open Day Party

MVP Open Day Party

Pottery was a worth sight during the party. You can see how Mayumi is trying to build something.

On the whole, the setup mimicked “India’s Village“, where we were the Villagers. Very innovative and unique.

Mayumi with her Pottery work

Mayumi with her Pottery work

Day 2 …

… started with Yoga classes by MVP Vijay Agarwal.

Yoga Instructed by MVP Vijay Agarwal

Yoga Instructed by MVP Vijay Agarwal

Yoga, seriously !!!!

Yes, this was totally unpredicted. We were just told that to come to the lawn at 6 AM in the morning. Our Yoga Guru taught us some simple exercises, which we should work out everyday in order to stay fit in this world of technology.

Everyone was feeling so energetic after the Yoga class that eventually kept us attentive the whole day.

The first session of the day was very influential. As MVPs, we should lead the community by influencing people to work together with collaboration. We should take steps towards building those qualities by implementing the strategies explained by Mr. Sumit Arora, Director, Microsoft India IGTSC, in his presentation.

Being An Effective Influencer by Mr Sumit Arora

Being An Effective Influencer by Mr Sumit Arora

Who had imagined, that the next few hours to follow after this, would make us so involved and engaged? Pramila Matthew took the session on building leadership qualities, thereby inspiring us, not to think about the past or future, but to always live in the present with 100% concentration on the work we do.

Leadership Qualities by Pramila Matthew

Leadership Qualities by Pramila Matthew

She assigned some excellent activities to us, which we performed in groups. One of them was “Human Machine“.

Well, you can imagine the level of enjoyment we had, from the pictures below. MVPs turned into Watch, Washing Machine, Toaster etc.

Human Machine Activity

Human Machine Activity

Below one is the activity of presenting a model, which would help Microsoft to stay ahead of the curve. Many hidden, innovative and interesting ideas were projected on the floor. I hope, Microsoft would implement those in near future.

How Microsoft Will be Ahead of the Curve Presentation

How Microsoft Will be Ahead of the Curve Presentation

Then, we were all set for some tech discussions on Web Application Performance by Tulika, which is followed by Troubleshooting Azure Websites by Puneet and Security Measures in Windows 10 by Pradeep.

Designing is the most important part of a Application, because that is what user would see and create impression about it. We explored some of the Best-practices of Application Design, which was delivered by Mr. Amar from Microsoft Hyderabad.

Who can forget the late night talk on Xamarin by MVP Mayur and MVP Nishant. The talk was really very crisp and to the point, which explained us the features of Xamarin.

Sessions Collage

Sessions Collage

It was around 1 AM at that time, when everything finished. Next day around 10 AM, we checked out of the Resort and returned back to our places. But, the memories we carried from the Open Day Event is precious and will stay forever.

We are just going away for few months, before the next Open Day.

I would like to thank Mr. Biplab Paul (Community Program Manager), Mr. Gandharv Rawat (Community Support Lead) for designing such a captivating agenda, which included tech, non-tech activities and games. The communications they made before the event about the Agenda, Venue, Sessions and Goodies excited us to be a part of those two unforgettable days of this year.

MVP Open Day Goodies

MVP Open Day Goodies

Want to see all Pictures? See our Facebook Album.

South Asia MVP Team

South Asia MVP Team

Two Important Notes On RegisterStartupScript

In this Blog, we will explore some interesting stuff related to the RegisterStartupScript Method.

Showing one Alert Box

string script = "alert('Hello World !!!')";

ClientScript.RegisterStartupScript(this.GetType(), "script1", script, true);

If you write this code in code behind, it will show one Alert Box on the page. Let’s see how the script is added to the page dynamically. Below is the FireBug Script View.

Example 1 Rendered Script for Alert with RegisterStartupScript

Example 1 Rendered Script for Alert with RegisterStartupScript

Showing two Alert Boxes

Now, let’s write some more codes to run another script.

string script = "alert('Hello World !!!')";
string script1 = "alert('Hello World Again !!!')";

ClientScript.RegisterStartupScript(this.GetType(), "script", script, true);
ClientScript.RegisterStartupScript(this.GetType(), "script", script1, true);

Will this work !!! Let’s try in browser and see. Only, one Alert showing on browser instead of two.

Alert Box on Browser

Alert Box on Browser

This is how it looks in script Tab of FireBug…

Example 2 Rendered Script for Alert with RegisterStartupScript

Example 2 Rendered Script for Alert with RegisterStartupScript

So, the question here is where is the next Alert? Why it did not work? Why it did not get rendered on browser?

What happened to the second Alert Box?

So, after this, I dug more into the code, after getting a coffee and try to see carefully what I have written. The second parameter of the Method is actually a key.

A startup script is uniquely identified by its key and its type. Scripts with the same key and type are considered duplicates. Only one script with a given type and key pair can be registered with the page. Attempting to register a script that is already registered does not create a duplicate of the script.

Call the IsStartupScriptRegistered method to determine whether a startup script with a given key and type pair is already registered and avoid unnecessarily attempting to add the script.

The very first line clears everything. There is also one method to check whether the script is already registered or not.

We should have Unique Keys for every Script we register

So, without further delay, I quickly changed the key. So, the code will look like…

string script = "alert('Hello World !!!')";
string script1 = "alert('Hello World Again !!!')";

ClientScript.RegisterStartupScript(this.GetType(), "script", script, true);
ClientScript.RegisterStartupScript(this.GetType(), "script1", script1, true);

Now, question is, will it work? Yes/No !!! Let’s test.

Still Not Working !!!

Oops !!! Nothing worked. Rendered script is as follows.

Example 3 Rendered Script for Alert with RegisterStartupScript

Example 3 Rendered Script for Alert with RegisterStartupScript

Can you see, what is the issue? If not, then the following image of Console will clarify all our doubts.

Example 3 Console Error

Example 3 Console Error

Head bang, we are missing Semicolons !!!

So, we are actually missing a semicolon (;) after the first line of code. In JavaScript, semicolons are optional, provided the code lines are separated by new line character. But here, RegisterStartupScript adds the scripts in one line, which bugs the page eventually. Let’s modify our code again to include semicolons after the Alert statements.

string script = "alert('Hello World !!!');";
string script1 = "alert('Hello World Again !!!');";

ClientScript.RegisterStartupScript(this.GetType(), "script", script, true);
ClientScript.RegisterStartupScript(this.GetType(), "script1", script1, true);

Now, it perfectly works, showing two Alert Boxes one after the other.

Conclusion

We explored the following points.

  • Key in the RegisterStartupScript method should be unique.
  • Each statement of JavaScript should have a semicolon at last, so that it will treat the next JavaScript statement as code.

I hope you enjoyed reading the Blog. Feel free to comment on the Blog. If you liked, please share among your friends.

DZone Most Valuable Blogger

MVB Logo

MVB Logo

Yes, you heard that right. I am now a MVB (Most valuable Blogger) of DZone. Yesterday I got the mail from Ryan Spain (Content Curator, DZone) saying…

DZone MVB Mail

DZone MVB Mail

What is the MVB Program?

Here is what DZone describes about this program:

DZone’s Most Valuable Blogger program brings together a group of highly talented bloggers, authors, and technologists actively writing about topics of interest to the developer community. These people are recognized in the industry for their contributions and deep technical knowledge on subjects ranging from software design and architecture to programming on a range of platforms including Java, .NET, Ruby and others.

Refer – About Most Valuable Blogger (MVB) Program to explore more.
My DZone profile – http://dotnet.dzone.com/users/taditdash looks really cool.

DZone MVB Profile

DZone MVB Profile

It all started…

…Way back in January, when Code Project awarded me as a Most Valuable Professional. I was contributing mostly on Forums and Social Sites. After I got the award, I started this Blog. Blogging gave me the platform to explain my day to day problems with my friends and followers.

Then, during my birthday month (April 2014), Microsoft recognized all my had work and awarded me as a Most Valuable Professional. Thanks to Mr. Biplab Paul, my MVP Lead and my fellow MVPs.

I was surprized when my CEO Mr. Chinmoy Panda wrote about me on Mindfire Solutions Blog. Let me quote couple of lines here…

His story inspires me. Coming from the small town of Nayagarh, Tadit joined Mindfire at Bhubaneswar 3 years back. After proving his worth at work, his voluntary energy led to responsibility for “extra non-work stuff”, and subsequent awards, at Mindfire. He moved ahead to receive a CodeProject MVP award few months back, and now he has received the Microsoft MVP recognition. That’s not all.

He is not only Mindfire’s first Microsoft MVP, but also the first Microsoft MVP from Bhubaneswar, a city with 10,000 software engineers! Wonderful.

Be awesome. Be Tadit.

The Blog really meant a lot me. Mindfire Solutions always encouraged my activities and motivated me to do more and more. I did not look back after that. I am also getting good response from the readers. So, I am enjoying.

Again, I would like to dedicate this to my…

Grand Father (Ganeswar Tripathy). He is always with me and guiding me towards every step I take.

What’s Next?

It’s another tag that has been added to my profile. By becoming a DZone MVB, I gave DZone permission to publish some of my blog articles on their site. This will give me chance to reach out to maximum people.

I have started speaking on Events. If you are doing any Event or know someone who is organizing, do connect them with me. I would love to speak about my Experience or about the Technology I am working on.

Following are my Social Profiles to connect with me.
Facebook – https://www.facebook.com/taditdash
Twitter – http://www.twitter.com/taditdash
LinkedIn – https://www.linkedin.com/in/taditdash
Google+ – https://plus.google.com/u/0/+TaditDash/

Also, if you have not followed my Blog, just register your mail id in the box at right side saying “Follow Blog Via Email“. All my new Blogs will be directly delivered to your inbox.

Thank you everyone for following my blog. Please don’t forget to share your feedback about my articles. This will help me to write much better contents in future.

Cascading DropDownList on GridView

Cascading DropDownLists on GridView

Cascading DropDownLists on GridView


In this Blog, we will learn how to get the current Row of GridView inside the SelectedIndexChanged Event of a DropDownList present on the GridView itself and then find the other DropDownList and bind that.

Background

The requirement came up in one of my projects to Bind one DropDownList present on a Column based on the selection of DropDownList present on another Column. So, it was like the Cascading DropDownLists, where both the DropDownLists are present on the same GridView.

So, steps to get the solution would be like…

  1. Attach the SelectedIndexChanged Event for the first DropDownList on GridView
  2. Inside the Event, first get the GridView Row, from which the first DropDownList is selected
  3. Then from the current GridView Row, find the second DropDownList and bind it with a DataTable or something

The step which is bold is very important. Let’s go step by step.

GridView Markup

In the Markup, you can see that I have two DropDownLists Declared inside the GridView. One is for Country and another one for City. Just for demo purpose, I have hard coded the Items for Country. You can dynamically populate that using code.

Note: According to Step – 1, I have attached the OnSelectedIndexChanged Event to the Country DropDownList.
Goal: Our goal is to populate the City DropDownList for the particular row, when Country is selected in that row.

<asp:GridView ID="gvWithCascadingDropDownList" runat="server" AutoGenerateColumns="false">
	<Columns>
		<asp:BoundField DataField="RowNumber" />
		<asp:TemplateField HeaderText="Country">
			<ItemTemplate>
				<asp:DropDownList 
                        ID="ddlCountry" runat="server" 
                        AutoPostBack="true" 
                        OnSelectedIndexChanged="ddlCountry_SelectedIndexChanged">
					<asp:ListItem Text="-1">Select Country</asp:ListItem>
					<asp:ListItem Text="India">India</asp:ListItem>
					<asp:ListItem Text="Nepal">Nepal</asp:ListItem>
					<asp:ListItem Text="Bangladesh">Bangladesh</asp:ListItem>
					<asp:ListItem Text="Sri lanka">Sri lanka</asp:ListItem>
				</asp:DropDownList>
			</ItemTemplate>
		</asp:TemplateField>
		<asp:TemplateField HeaderText="City">
			<ItemTemplate>
				<asp:DropDownList ID="ddlCity" runat="server">
				</asp:DropDownList>
			</ItemTemplate>
		</asp:TemplateField>
	</Columns>
</asp:GridView>

What’s Next?

Let’s write code inside the Country Change Event and populate the City DropDownList.
So, according to the Step – 2

Inside the Event, first get the GridView Row, from which the first DropDownList is selected

For the above, we have to get the current Country DropDownList first, which we can easily get by.

// Get the Country DropDownList first.
DropDownList ddlCountry = (DropDownList)sender;

Now the important Step – 3.

Then from the current GridView Row, find the second DropDownList and bind it with a DataTable or something

In order to get the Containing Row for the DropDownList, we have to use the Control.NamingContainer Property.

The naming container for a given control is the parent control above it in the hierarchy that implements the INamingContainer interface. A server control that implements this interface creates a unique namespace for the ID property values of its child server controls. You can use the NamingContainer property of a naming container’s child control to get a reference to its parent container.

So, after getting the current GridView Row, now it is just a matter of finding the City DropDownList on that particular row and bind that with appropriate Data.

Below is the full code. I have used one Service to get the Cities Data. To use the Service, add Service Reference to your Project by right clicking on the Project in Visual Studio.

Service Reference Dialog

Service Reference Dialog


Service URL is – http://www.webservicex.net/globalweather.asmx?WSDL

protected void ddlCountry_SelectedIndexChanged(object sender, EventArgs e)
{
	// Get the Country DropDownList first.
	DropDownList ddlCountry = (DropDownList)sender;

	// Get the current GridView Row, from which the DropDownList is selected.
	GridViewRow currentRow = (GridViewRow)ddlCountry.NamingContainer;

	// Now let's find the City DropDownList on the same GridView Row.
	DropDownList ddlCity = (DropDownList)currentRow.FindControl("ddlCity");

	if (ddlCountry != null && ddlCountry.SelectedIndex > 0 && ddlCity != null)
	{
		string selectedCountry = ddlCountry.SelectedValue;

		// Get the Cities from the Service.
		string xmlCities = GetCitiesByCountry(selectedCountry);

		// Let's parse the XML into DataTable.
		XmlTextReader citiesReader = new XmlTextReader(new System.IO.StringReader(xmlCities));
		DataSet dsCities = new DataSet();
		dsCities.ReadXml(citiesReader);

		// Bind the City DropDownList.
		if (dsCities != null && dsCities.Tables.Count > 0 && dsCities.Tables[0].Rows.Count > 0)
		{
			ddlCity.DataSource = dsCities.Tables[0];
			ddlCity.DataTextField = "City";
			ddlCity.DataValueField = "City";
			ddlCity.DataBind();
		}
	}
	else if (ddlCity != null)
	{
		ddlCity.Items.Clear();
	}
}

private string GetCitiesByCountry(string selectedCountry)
{
	GlobalWeatherServiceReference.GlobalWeatherSoapClient client = new GlobalWeatherSoapClient();
	return client.GetCitiesByCountry(selectedCountry);
}

Hope You Enjoyed Reading

If you have any queries, please comment below. I will come back to you. Feel free to Like and Share the Blog in Social Sites.

Thanks for reading. :)

Top Features of ASP.NET vNext

Of course, as the name suggests, it is the upcoming version of ASP.NET.

At a Glance…

The next version of ASP.NET has been redesigned from the ground up. It has been designed to provide you with a lean and composable .NET stack for building modern cloud-based apps. The Applications will be faster as well as modular and consume less memory. .NET vNext is the next major release of .NET Framework. .NET vNext will have a cloud optimized mode, which will have a smaller clone of the Framework as compared to the full .NET Framework. ASP.NET vNext will build on .NET vNext.

Overview of ASP.NET vNext

Overview of ASP.NET vNext


Let’s explore some of the features of ASP.NET vNext.

No more System.Web !!!

Could you imagine ASP.NET without System.Web.dll !!! Yes, it’s happening now in the new Version. This dll makes the .NET applications slower and also consumes higher memory. Therefore, there’s no Web Forms in vNext, but Web Form development will continue to be supported in Visual Studio. MVC, Web API and Web Pages have been merged into one framework, called MVC 6. This will follow common programming approach between all these three i.e. a single programming model for Web sites and services. ASP.NET vNext includes new cloud-optimized versions of MVC, Web API, Web Pages, SignalR, and Entity Framework.

First Class Citizen is NuGet

Microsoft’s new strategy is…

“mobile-first, cloud-first”

As a result, the vNext Apps can use a cloud-optimized runtime and subset of the .NET Framework. You will be astonished by the fact, this subset of the framework is about 11 megabytes in size compared to 200 megabytes for the full framework. This is because the .NET Framework is composed of NuGet Packages.
Can you guess what I am going to write next? Yes / no !!! Okay, let me tell you. As the Cloud Optimized Framework is just a composition of NuGet packages, so control is with you. You can select and add the NuGet package, that is necessary for your Application. No need to have the whole Framework added to the App, while you are not even using 10% of it. No unnecessary memory, disk space, loading time, etc. For instance, if your App implements Dependency Injection, then include it, otherwise not.

New Development Experience

Time Elapsed Shown on the Go

Now, in Visual Studio, you can see how much time a particular method or code line takes to execute.

Time Elapsed in Visual Studio

Time Elapsed in Visual Studio

Save and Refresh, no Build

Change code files, don’t build again. Go to browser and refresh. Will it work? Answer is Yes, with vNext. This is a very interesting and time saving feature. As a developer, we know the pain of building the App again and again for any simple change. Now, in vNext, we don’t have to. This is the power of new Open Source Roslyn compiler, which compiles code dynamically. You can even use Notepad or any Text Editor to directly edit the files and just save to see the change. That means we can now build ASP.NET Web Apps without Visual Studio. But Visual Studio provides the best development experience. See the video below to see how this works.

Even, you can now edit code on the go using Visual Studio Online (“Monaco”).

Update Code in vNext

Update Code in vNext

Open Source, Cross Platform

As I mentioned that, we can build projects without Visual Studio, this implies that .NET vNext is open source and cross platform. It can run on Mono, on Mac and Linux. Everything is available at .NET Foundation and Github. You can Follow and Contribute.

vNext Cross Platform

vNext Cross Platform

Dependency Injection

Dependency Injection is built into vNext. All of the vNext components like MVC, Web API, SignalR, Entity Framework and Identity will use the same Dependency Injection.

Side by Side Deployment

Framework is with you, so forget System Admin !!!

For upgrading your App to the latest Framework, you always request your System Administrator or Network guy to install the new Framework, so that you can consume that. In the next generation of .NET world, no need to do that. Framework itself comes as NuGet Package and gets included to the project you create. Microsoft would deliver updates for the package and your App can directly get the latest Framework changes. That also means, you can have multiples Apps on a Server, running different .NET Frameworks. Isn’t it interesting !!!

Application is insulated from Server’s Framework Changes

Application on the Production Server would not have any deployment issues further, as it won’t be affected by Server’s Framework patch level. That is because, the Application itself has the NuGet Package of certain Framework level attached with it. Even if the Framework on Server changes, it cannot affect the Applications.

But where to start?

There are many more life changing things coming in this new version. Below are the resources you can refer to explore more.

Join Hands with the Team

If you have any questions, suggestions, then you can directly work with the team. Below are the platforms you can use to use.