TFS 2012 - Continuous integration with a website - tfs

I have a solution with multiple C# projects linked to a Website (File => New => Web Site).
I can use the continuous integration for all the C# project for now.
I would like to try the website from a different solution just for testing:
I would like to know if the modification of an aspx or aspx.cs file will
rebuild all the solution/project or just push the file which was
modified on Azure.
It seams that the website will be rebuild, or will try to rebuild.
Here is my website test solution
and my Build Definition file :
So my question is, is it possible to integrate a website to a continuous integration system ? (TFS 2012)
If it's possible, What did I miss on the basic configuration ?(I didn't need any specific configuration for a WebApp project or a C# project)
I might need to build some files on the website (App_Code folder), But I would keep the possibility to deploy only the modified files (aspx, aspx.cs) without rebuild all the website and push everything on the server.
Let me know if you need any further information

There is an article here Continuous Deployment di Asp.Net web sites con TFS Build. It is in italian, but I think you may get the core using Bing/Google translator.

Related

Publish ASP.Net MVC Site (created in Visual Studio) to Azure using Azure Cmdlets

I have a ASP.Net MVC Project in a solution which contains multiple other Class library projects (which are dependencies of MVC project).
Now I want to automate the process of creating multiple DEV AzureWebsites and publish the MVC project (along with its dependencies) through Azure PowerShell Cmdlets.
I know how to create AzureWebsite and other Cmdlets, but I am not sure about how to publish VS MVC Project, take that folder and deploy it in AzureWebsite. Please let me know my options.
PS - I do not want to Visual Studio -> Right Click publish option, because I need to create multiple instances of Dev AzureWebsites.
Good news. The script to do this is already written for you. In Visual Studio, take a look in the PublishScripts folder of your solution. There you will find the scripts and parameter file for your solution. You can use these to publish to other Web Apps (formerly Websites).
The dependencies will be included in the package file that is generated so no additional steps are needed for that.

TFS 2013 Team Build/WIX/ASP.NET MVC Project

I'm trying to design a WIX setup project that needs to harvest the output of an ASP.NET MVC Web site.
There are several problems.
Building the ASP.NET project does not output the same content as a web publish would.
So it seems that I need to harvest the output of the published web site, meaning it should be done in a temporary location.
It should work on team build continuous integration (and in Visual Studio).
Every sample I've found so far uses temporary directories and command line steps before building the setup project.
Am I wrong ?
Is there another solution ?
Thanks in advance.
You would need to run those commands as part of your build so that you have that output to then package with WIX.

Best Practices for TFS and MVC projects - deploying changes only

I have several websites that I manage for a company and they want me to transition to TFS. As part of their policy, I can only deploy files that have changed since the last deployment. I.e. if a view has changed then it gets deployed, if it has not changed then it not part of the deployment package. They use automated tools for the deployments.
Currently I use a custom tool I wrote that hooks into my local source provider (Vault Pro) and finds all the changes from a given date and copies those files to a zip file.
How can I accomplish something similar with Team Foundation Server?
TFS provides you with an SDK that you could use to query it from code. Here's the documentation of the client API.

What should I store/ Not store in TFS and how?

I'm trying to set up a TFS server for our small dev team, and since this is fairly new to me I have a couple of questions.
1) We are developing ASP.Net websites for internal use (intranet etc), these websites currently are not saved with visual studio solutions, they get saved basically as they are on the server and we just update them using Visual Studio by doing file > open website.
So my first question is should I save these as solutions in TFS? What would the benefit of this be?
Im coming from a background of developing WPF applications and have always seen everything saved with a solution in TFS.
2) What should we store in our TFS repository (and what should we exclude)?
At the moment I am storing source code & Documentation but is it really appropriate to store things like installers for VS plugins / small applications or should this kind of thing all be placed on a server someplace?
So my first question is should I save these as solutions in TFS? What
Yes, you could create a solution containing the different ASP.NET web applications.
would the benefit of this be?
Your source code will be version controlled
What should we store in our TFS repository
Source code, third party assemblies that your ASP.NET applications might require, script files, basically everything that allow to get your site up and running. Documentation should also be stored along with the project. Same stands for installers (the source code only, not the MSI) if those installers allow to deploy the ASP.NET application on the live servers.
and what should we exclude
Compiled assemblies, but they are automatically excluded by TFS anyway.

WebDeploy to deploy multiple web sites

We're using this process to use WebDeploy to deploy and compile two web sites that are a part of the solution. The approach we took was found here:
http://vishaljoshi.blogspot.com/2010/11/team-build-web-deployment-web-deploy-vs.html
But it's only deploying one of the web sites; is there a way to tell it to publish both?
Thanks.
Web Packages created based on the above walkthrough (i.e. via VS 2010 and its derivatives like TFS etc) can only contain one web project. Unfortunately VS generated Web Packages will be limited from this sense. If you use Web Deploy (MSDeploy) EXE or API directly and then you can package more than one web site within IIS etc. I believe you are trying to accomplish this via Team Build so that is not really an option.
Although, in Team Build you can create more than one build definitions to cause multiple packages to be created. You can also set properties in your .csproj or .vbproj file (same properties mentioned in Step10 of the walkthrough). If more than one project have properties DeployOnBuild set to be true then from within single solution build within TFS you can have multiple web packages generated. You will still have to deploy each web independently.
Hope this helps

Resources