Thursday, February 5, 2015

Shared project in Visual Studio 2015

Shared project is new feature that was added in Visual Studio 2013 update 2 but in visual studio 2015 it is coming by default. In this post we are going to learn about Shared Project and how it is different from class library.

Shared project in Visual Studio 2015:

Shared project is a new feature that is introduced with Visual Studio 2013 update 2 and it’s comes by default with Visual Studio 2015. So with shared project you can share your common code with any number of applications. You can use that in another project via adding project reference. So let’s see how we can use Shared project in multiple application.

To understand how Shared project works, I have create a blank solution like following.

blank-solution-for-shared-project-visual-studio-2015

Then we are going to add a Shared Project in Customer Model like following.

creating-shared-project-visual-studio

It will create a Shared Project in solution explorer like below.

Shared-project-in-solution-explorer

I have added a Customer Class in solution.
using System;
namespace CustomerModel
{
    public class Customer
    {
        public int CustomerId { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        
    }
}

Now let's add a console app to this solution to use this Shared Project in Console Application.

shared-console-app-visual-studio-2015

And I have added reference of CustomerModel Shared project to console application.

Shared-Project-add-reference

Now, I have added following source code for console application.
using CustomerModel;
using System;

namespace TestConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Customer customer = new Customer
            {
                CustomerId = 1,
                FirstName = "Jalpesh",
                LastName = "Vadgama"
            };

            Console.WriteLine("Firstname : {0}",customer.FirstName);
            Console.WriteLine("Lastname : {0}", customer.LastName);

        }
    }
}
Following is output as expected.

Shared-Console-app-output

Now let’s add a windows forms application and we are going to add reference of Customer Model in that application also.

add-windows-forms-application-shared

Also added Customer Model Shared Project reference.

add-reference-windows-form-application

Now I have added a button in windows forms application to show customer details.

sample-windows-application-shared-project

And I have written a following code for same.
using System;
using System.Windows.Forms;
using CustomerModel;

namespace TestWindowsApplication
{
    public partial class TestWindowsForm : Form
    {
        public TestWindowsForm()
        {
            InitializeComponent();
        }

        private void btnShowCustomer_Click(object sender, EventArgs e)
        {
            Customer customer = new Customer
            {
                CustomerId = 1,
                FirstName = "Jalpesh",
                LastName = "Vadgama"
            };
            MessageBox.Show(string.Format("FirstName:{0} LastName:{1}",
                         customer.FirstName, customer.LastName));
        }
    }
}
Now you run application and click on button. It will show output like below.

windows-application-output

So you can see you can use shared project in multiple application so you don’t have to write code multiple times.

What is Difference between Class Library Project and Shared project:

Now lot’s people will argue that Shared Project provides same functionality as class library what are the differences? But Here are few differences.
  • In class library, when code is compiled assembly(dlls) are generated for each library. But with Shared Project it will not contains any header or information so when you have shared project reference it will be compiled as part of parent application. So when you use application at that time will compiled as part of console application. There will not be separate dlls created for this.

  • In class library you are only allowed to write C# code while shared project can have any thing like C# code files, XAML files or JavaScript files etc.
Hope that will clear your doubt about Shared projects. That’s it.Stay tuned for more!

You can find complete source code this application on Github at -https://github.com/dotnetjalps/SharedProjectVS2015
Share:

3 comments:

  1. Easy to read, thanks for sharing!!

    ReplyDelete
  2. Nice Article sir, Keep Going on... I am really impressed by read this. Thanks for sharing with us. Govt Jobs..

    ReplyDelete

Your feedback is very important to me. Please provide your feedback via putting comments.

Support this blog-Buy me a coffee

Buy me a coffeeBuy me a coffee
Search This Blog
Subscribe to my blog

  

My Mvp Profile
Follow us on facebook
Blog Archive
Total Pageviews