Can you suggest a complete web publish tool except MS Web Deploy? [closed] - sql

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I need a web publish tool which can do these.
Publish web codes to destination
Sql Schema and data compare and save table list which compared.
Restart Services With New Codes
Thanks For Your Help.

Our current deployment process consists of three things
Source Control (Visual Studio Online in our case)
TeamCity which is used to build our .NET web apps
Octopus Deploy which is used to deploy the built packages from TeamCity
The process is very simple and the majority of the work is automated.
Once code is checked into the master branch, TeamCity will detect the changes and begin our build process which consists of the following steps:
Restore NPM packages
Run gulp scripts to compile SASS files and minify and bundle JavaScript
Build the web app with MSBuild in the release configuration
Create a release in Octopus Deploy
This is also done without any work on the developer's side.
The way most of our web apps are setup in Octopus Deploy is the following:
Retrieve the packages built from TeamCity(in the form of a nuget package)
Deploy the web application performing any Web.config transformations in the process.
Deploy any Windows Services using Topshelf which also performs the needed App.config transformations
When a release is created Octopus Deploy will automatically deploy it to our internal development server so once again no work is required to begin testing the new code. Once everyone is happy we press one more button and it's deployed to all our production servers.
Octopus Deploy has the capability to deploy database schema changes etc too which is covered in this article, we went with the change-script-driven approach in our case.

Related

How can I create and run both an angular and react app in asp.net core 2.1 app? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 4 years ago.
Improve this question
This page talks about creating an angular app in the ClientApp folder. I want to create a react app which can be accessed through another asp.net MVC route.
What changes I have to make in the asp.net core application created by the Visual Studio 2017 to have both the SPAs running.
Visual Studio has most of the templates available at the release time of 2.1. I'm not sure if VS 2017 didn't include it for a reason, or if they are catching up to the ASP.NET Core team, but you can scaffold a new react app by simply opening a command line and typing
dotnet new react
The dotnet new templates are the same exact templates that VS 2017 creates for you, except for some reason the React one is missing from the UI at the moment.
Personally, I would not not tie my Angular or React project to the UI except in the case of a relatively simple app. However, if you have two separate UI components for the same API, I would consider that a complex scenario and start to separate my concerns.
I would build 3 separate projects.
Api/
AngularApp/
ReactApp/
There are many reasons to do this.
Angular has different dependencies than React, if try to force them in the same project you will probably get some dependency version conflicts.
Separation of concerns. Never a bad thing.
Angular has it's own CLI to scaffold the app, modules and components. I would use it to it's full capability, because that's what it was designed for.
Easier to develop. Each has a development server with file watchers to rebuild your project after you make changes to your file and hit save. .NET Core has dotnet watch, Angular has ng serve, node webpack and some others for react.
Deployment would be a breeze if you Dockerized your project. One docker-compose file could launch all 3 of the development servers.

How to create own MSI package with Open Source Software? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
does anyone know an Open Source Software for creating own MSI packages?
I wanna create an MSI file for installing a 3rd party Software. Currently it's installed via different commands (bat-file) and with different configuration files.
Is there a free Open Source software for recording an installation so that i get a MSI package as a result?
WiX is open source and is one of the best way to create MSI file. Some other tools (mostly commercial). Please check this answer for more information: WiX Quick Start Suggestions and links (has grown too much, maybe focus on first sections - including "Hello World & Hello WiX").
The linked answer contains links to descriptions of how WiX compares to other deployment software - both commercial and free as well as download links and "get started" recommendations.
I would recommend packaging with WiX, but if you want to capture the install as an MSI file you can check the discussion here: Capturing all changes during an application install on Windows.
You might want to try ISWix - a simple GUI front end for Wix that allows you to quickly throw together an installer by inspecting the config files and recreating the actions in Wix.
Finally you could download a trial version of Installshield AdminStudio - capture your install as an MSI using the built in capture tool. Then you can decompile the MSI with the tool dark.exe from Wix and recompile it as a Wix MSI to get around any trial restrictions in the Installshield capture.
You could even use the method suggested here: Tracking file and registry changes. As this answer mentions you could try to locate the old version of WININSTALL LE on a Windows 2000 Server CD in \VALUEADD\3RDPARTY\MGMT\WINSTLE.
Advanced Installer Architect allows capture, but I am not sure you can export a proper MSI file with the trial version.
There are several solutions, for example:
Wix Toolset
Nullsoft Scriptable Install System
There is also this free one, (from comment: although it's not open sorce) also open source:
Inno Setup Source available at github

How to setup Umbraco 6.1.2 in Visual Studio 2012 with MVC enabled to use in TFS? [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 9 years ago.
Improve this question
What I want is a development environment in Visual Studio 2012 for Umbraco version 6.1.2 (latest stable version at the moment) with MVC as rendering engine so I can use Razor and integrate a MVC project in Umbraco.
I also want to be able to use a Team Foundation Sever to share and store the code.
The problem lies here: When I just download the Umbraco files from Umbraco or use WebMatrix to install an Umbraco site, I do not have access to the core files or a way to properly debug my install in Visual Studio.
So I need a way to build and debug/run Umbraco from Visual Studio.
I looked at a lot of posts, articles etc. (also on StackOverflow) but none seemed to address the latest Umbraco version (most about 4.5.x) and only a few about MVC. Old references, non existing project templates or templates to old versions of VS made me have to dig further.
When I then found a solution, I thought about 2 things:
- 1 I need to check this solution
- 2 I should share this solution to a wider audience then it is getting now
Both two reasons are what made me post it here (clarification as asked)
Actually, all you need to do is create an empty MVC4 project and add the Umbraco NuGet package, as this will also add the Core binaries package and set the dependencies for you.
I found http://www.ben-morris.com/using-umbraco-6-to-create-an-asp-net-mvc-4-web-applicatio, which is the lastest article about the subject I could find (the download link in the article is to the old repository and not the current download page of Umbraco, though).
This setup worked really well for me (Umbraco version 6.1.2)
Firstly, start an empty MVC 4 project in Visual Studio – make sure
it is an empty project as you will not need any of the baggage that
comes with other project templates.
Add the NuGet Umbraco Cms Core Binaries package which will manage the various dependencies and
references that Umbraco 6 requires for you.
Copy all the files from
the Umbraco installation ZIP archive directly into your project in
Visual Studio except the App_Code and Bin folders – you won’t need
the binaries as they are managed by NuGet and the App_Code folder is not used in a web application project.
If you want Umbraco to play nice to MVC and be able to use Razor views, you should change the default rendering engine to MVC in Config\UmbracoSettings.config like so:
<templates>
<useAspNetMasterPages>true</useAspNetMasterPages>
<defaultRenderingEngine>Mvc</defaultRenderingEngine>
</templates>
One problem you will have is ensuring all necessary files are checked in when modifying your umbraco site locally.
For example if you add a media image using the umbraco backend. Visual studio won't automatically add it to the project and therefore source control for you so a check in will miss it. You have to include the files in the project manually which can become tricky when big changes are made.
I'd like to know if anyone else has a better way of managing it.

Recommendations for turning multiple solutions/projects into a single msdeploy package?

Our main website is a collection of 10 separate ASP.NET projects and applications. At the moment, to do a complete deployment onto a fresh server involves running ten separate msdeploy jobs; each application is built, configured (using config transforms) and packaged, but we don't have any solution for deploying all the packages as a single operation.
I can see several possibilities that might work in this scenario, but would love to hear from anybody who has succeeded - or failed - in setting up something similar:
A folder full of packages and deploy.cmd scripts, with a "master script" that will call each individual app script in turn and deploy that app to the target server.
Using a staging server where we deploy the latest build of each package from TeamCity using the production configuration, but then use msdeploy to capture that server into a single enormous msdeploy ZIP package, which is then deployed onto each production server as a single msdeploy step.
Creating a single, enormous Visual Studio solution that references EVERY project in our codebase (perhaps via svn:externals?), compiles and cross-references them ALL, and hence supports using a single msbuild job to create a huge monolithic package containing our entire codebase, built from the latest revision in source control and configured for the target environment.
I've studied Troy Hunt's excellent "You're Deploying it Wrong" series, and Scott Hanselman's "Web Deployment Made Awesome" article, but I think I'm looking for something a step beyond either of these approaches that incorporates multiple projects and applications without necessarily building them from source in a single step - any ideas?
We had a very similar scenario in our company, and we created an installation package using WIX. Our config transform happens at installation time, so now we create a single build, then deploy that to each server via an MSI install package. WIX is very flexible, but also has a steep learning curve. We modify our configs using our own custom action, but it could be done other ways.
We use Team Foundation Server and MSBuild to do our builds. This is pretty straight forward, but did take some work to set up correctly with as many projects and solutions as we had.
Other options we looked into, and even tried were:
InstallShield - Not flexible enough.
Writing our own C# Install - WIX already thought of everything we
were trying to accomplish so why reinvent the wheel?
Just saying to heck with it all and installing things manually - 2 or
3 months of development time in WIX and MSBuild have easily paid for
the hours we would have spent of the last year doing things manually.
I think the deployment tools built into Visual Studio were designed for a single application with just a few deployments. It sounds like you need external tools, and development effort, to get your deployments quicker, and eliminate the need for doing things manually. That's why we invested in the above solution, and it has really paid off.
I'll pick Installshield.
Installshield latest versions support creating webdeploy packages.
You can define the IIS configurations for all apps in a single project and create releases if you want to create packages by separate or one single release for all web apps.
Installshield project has an object model where you can automate basically every task from build scripts, also the projects are simple xml files that you can also modify in automation scripts if required
Developers can modify update WixXML projects by separate and you can add those projects builds as merge modules to your installshield projects through your build scripts with some little tweaks to the installshield project xml (at least in 2011 version, this part is not supported by installshield but can be done)
You don't even need to modify Visual Studio Projects for groups of web apps that follow a same pattern, neither manually modify your installshield project to add new web apps for these cases, you can create packages for new web apps without intervention setting one time your build scripts for the installshield project automation task based on the root VS build output

Anybody out there using MsBuild to do Installs?

I've noticed projects such as Msbuild Extension Pack and MsBuild Community Tasks give msbuild the power to install assemblies, sql, and setup IIS. These features seem to be oriented to doing installs and not builds.
So I was wondering how many people out there are using msbuild, perhaps in conjunction with Cruise Control.Net to do installs on staging environments?
I use MsBuild to build, and part of the build process runs Wix to create an installer(MSI) which is used to deploy to production.
I wrote up a little sample of templating configurations for different target environments with msbuild: http://blog.privosoft.com/2010/10/msbuild-environment-sandboxing.html
We use CC.NET & MSBuild to build and then also to publish to our dev and stage environments, however we do not have the push live on CruiseControl.NET, we run that MSBuild by hand. We just thought it would be way to tempting with a button to publish live ;) It took probably 2 or 3 revisions to get our MSBuild set up right. But now everything is in one file, and everything is based on Targets and Properties to do all the work. About 6 months ago, was what should be the last update and that was a multi-server push so we are ready for scaling up. We can now push any combination of parts to any combination of servers. So if we want 5 database servers, 3 contenet servers, and 2 web servers we have that ability. No need to use anything else. MSBuild can do it.
I created a deployment system where a central coordinator can:
- identify the right target server for a given component (e.g Windows service goes to a given server, web services go to another, etc.)
- perform a PsExec of a deployment MSBuild script on the target server
- the deployment MSBuild script is responsible for:
a) downloading the right component package (in my case a .zip)
b) backing up previous versions of the component
c) extracting the package to the right place
d) tailoring the installation steps to the type of component to deploy (e.g. needs to perform an Exec task of installutil.exe on a Windows service )
e) logging the result of the deployment
This system is built using a mix of:
- core MSBuild tasks
- [Tigris MSBuild community tasks][1]
- [MS SDC tasks][2]
- and custom tasks
The system allows us to perform consistent deployment of complex apps across partitioned environments (e.g. DEV, QA, UAT, etc) made of virtual servers.
I use MSBuild to build a fairly large client/server application. I use InstallShield 2008 to create a separate client and server install set.
By adding a custom target into the build process you can combine the creation of the installers into the build.
I would recommend that you create and test the build and the installer separately, before attempting to integrate the two.
I know this is an old question... but...
I am currently using MSBuild with MSBuild Extension Pack (http://msbuildextensionpack.codeplex.com) to do my entire deployment. The database portion is handled with the VS database command-line tool (vsdbcmd.exe - http://msdn.microsoft.com/en-us/library/dd193283.aspx). That Extension Pack is pretty amazing, and is letting me build web sites, app pools, Windows services, update config, and much more.
I've also put Team City agents on the test servers, so I can deploy as part of a build chain (introduced in version 7 of Team City). And running my deploy MSBuild script is super easy from Team City.
I used to use MSBuild, now I'm using PowerShell. MSBuild is a build language. It is painful to script in. There is a lot I wanted to do in it that were difficult and sometimes impossible.
Over the past year, I've created an PowerShell module somewhat equivalent to MSBuild Extension Pack called Carbon.
I strongly, strongly encourage everyone out there to learn and use PowerShell.