Skip to main content

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

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
  3. Nice article, thanks for the information. It's very complete information. I will bookmark for next reference
    jaring futsal | jaring golf | jaring pengaman proyek |
    jaring pengaman bangunan | jaring pengaman gedung

    ReplyDelete

Post a Comment

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

Popular posts from this blog

How to create Rest API(Web API) with ASP.NET Core 1.0

Recently Microsoft has released ASP.NET Core 1.0 RC2, I am getting lots of request from readers that about creating Web API. So I thought it will be a good idea to write a blog post about how to create Rest API(Web API) with ASP.NET Core 1.0.

So let’s get started via creating an ASP.NET Core 1.0 Web Application like following.



Once you click on ASP.NET Web Application, It will ask whether you need to create Web Application or Web API application. We are going to Web API so I am going to select Web API Application like following. Please note that in ASP.NET Core 1.0 there is no separate libraries or DLLs required for creating web APIs. This is just a project template.



Now once you click on OK It will create a Web API application with default values controller and program.cs.  As you know Program.cs is now starting point for the ASP.NET Core 1.0 application so It contains all the required configuration and startup items. Following is a code for that.
using System.IO; using Microsoft.Asp…

How to use migration with Entity Framework Core

Entity framework core is  the lightweight, extensible and cross-platform version of Entity Framework. Before some time, Microsoft has Released a new version of Entity Framework RC2. I have written a couple of blog post about Entity framework code first migration earlier for Entity framework 6.0. So there was a couple of request coming for writing a blog post about Entity Framework Core RC2 migration. So I thought it will be a good idea to give an overview how database migration works in Entity Framework Core RC2. This post will cover a basic scenario where we are going to create the database with existing ASP.NET Identity migration and then we are going to create a new model and have that migration applied in the database.

How to use Entity Framework Migrations: Let’s get started, To demonstrate entity framework core migrations, I am going to create a sample asp.net core web application like following.



Once we select asp.net core application it will appear the following dialog.



Now w…

Solution: gulp is not recognized as internal or external command- Visual Studio

Recently, After Upgrading to the newer version of Gulp, I was getting this error.  After doing lots of  finding online and in my system I was able to figure out that Modules like Gulp does not installed to the path. So when you try to run it from the command line it was showing below error.
gulp is not recognized as internal or external command How to solve : gulp is not recognized as internal or external command To solve this error we just need to create a new environment variable and set the NPM modules path there.

To create an environment variable,  Right click My Computer/ This Pc and click on properties.  It will open following windows.



Go to Advance System Settings and it will open system properties windows like below.



Click on Environment Variables it will open an environment and system variables windows like below.



Click on new System variable and put NODE_PATH in system variable name and %AppData%\npm\node_modules into the variable value like below.



Click on Ok. That’s it. N…