Asp.net Deployment (web installer) - asp.net

I need to implement a web site installer for my asp.net application. The installer will be handling following features -
Deploy the .net web application on to the IIS server
Setting up the Sql database connection to run the DB scripts.
Execute all the DB scripts.
Run another exe for the license management.
If some thing goes wrong, need to rollback everything.
I have heard about wix and install shield and wondering what would be the best technology suitable for this particular case.
Thanks Thurein

MSDeploy does all this and more. Find it over on www.iis.net.
-Oisin

WIX has the advantage of being very flexible and free. It also has a somewhat steep learning curve. If you are going to be doing something like this frequently however, it is certainly worth the investment.
After that, there are any number of commercial options to choose from, i.e InstallShield.

Related

Which memory profiler should I use for ASP.NET Core REST API

I have a project which is an ASP.NET CORE REST API and the UI is hosted using Http.sys
IIS doesn't come anywhere in picture here. There are multiple backend services created as windows service which include many API calls.
I am looking for a memory profiler tool to monitor the performance. Any suggestions will be helpful. I have tried using .NET memory profiler but due to absence of IIS, things are difficult to manage in it.
Can anyone please suggest me a better tool?
Have you tried MiniProfiler
https://miniprofiler.com/dotnet/AspDotNetCore
MiniProfiler https://www.youtube.com/watch?v=7ThPz-9XM54
NewRelic also has a profiler (if you are using for development purpose only)
https://newrelic.com/lp/dotnet-monitoring?utm_campaign=Supported-Languages-IND&utm_medium=cpc&utm_source=google&utm_content=SLNT_LP&fiscal_year=FY21&quarter=Q4&gtm=DEV&program=OBSV&ad_type=TXT&geo=APJ&utm_term=%2B.net%20%2Bprofiler&utm_device=c&_bt=501298407481&_bm=b&_bn=g&gclid=CjwKCAjwtJ2FBhAuEiwAIKu19lvqygIsvrOLzUxuZmnd9IcaFRnX5xaMKVEGes5rnV5vhOTWbjb06RoCW0sQAvD_BwE
There is one from JetBrains as well (dotTrace)
https://www.jetbrains.com/help/profiler/Profile_.NET_Core_Application.html

What are the things missing in Owin/Katana which is available in ASP.NET?

I am looking to build a small ASP.NET application using WebAPI and a html front-end, on .NET 4.0. I need to support authentication, authorization, data access (EF), logging / tracing. It can be an intranet/internet application, so it should support load balancing / clustering.
I am sure if I just go with ASP.NET and IIS I will get all these features. However I like OWINs idea of independent async modules and its goal of being high performance hosting environment. But how much of OWIN/ KATANA is matured and what functionalities are still missing/buggy?
The whole idea of Owin/Katana is to build a light weight server with only the function we need. Your question is better to be "What are things missing in Owin/Katana, which is available in IIS?"
The short answer is, IIS is a full-blown server. Many of the websites we developed only requires a small fraction of all its functions. It is like shipping a bag of grocery using an 18 wheeler.
If you look at Katana, all functions are modular. Say, if I need WebAPI, I can add in that function. When CORS is needed, I will extend appBuilder to the related functions. So in a sense, we have a fully customizable server. Since all functions can be added in, I would say nothing is missing.
Another thing to mention is that an installation of IIS would require you to run a Windows Server. If you are on a Mac or not a server version of Windows, you can host your website on Katana or any other OWIN implementation.

What's this with the Microsoft Web Plaform

Sorry. I'm just bitten (or bit. Go figure with this left-to-right language :-)
I've invested a huge amount of effort studying NANT and learning how to build a command line CI environment. My goal was to solve the build issue once and for all so I'll be able to develop a few projects (web sites) and have them deployed "at the press of a button". So cool...
Then, trying to see the difference between Web Sites and Web Application (been there, done that, can never remember the difference) I stumble today upon Microsoft's Web Deployment tool MSDeploy, and now the Microsoft Web Platform.
So my question - Is this something completely new changing the rules of the development/deployment game, or is this just Microsotian Marketing Wrapper for ASP.Net etc. and I should stick with nAnt process and just integrate a different final step?
No. MSDEPLOY is a very rich deployment technology they've been working on for some time. It's available in VS2010 beta 1, I believe. I allows the deployment of the web application, including any databases it uses. It permits different versions of web.config to be used in a Debug deployment vs. a Release deployment, and much more.
The Microsoft Web Platform Installer is simply a packaging of a bunch of their server technologies. The idea was to have a single installer that installs everything.
I had not seen that Microsoft Web Platform site before. It looks like a packaging of the marketing around this stuff!

ASP.Net portable server

I'm trying to start on a new project to help enrich my asp.net knowledge, since I'm not completely satisfied with what my class is teaching me. From my (very little) experience with Rails, I recall every application containing its own development web server. Say I were trying to create a local-only application, but I want it to run in a web browser (Therefore ASP.Net). Are there any options in terms of being able to distribute an application and have it launch its own, or just not require IIS/VS/Apache-mono?
You may want to look into aspNETserve. It sounds like it would fit your needs. I haven't worked on it recently, so it probably has some rough edges.
On the plus side its all open source, and if you are just getting started with ASP.NET it would be a real eye opener on how the internals of the ASP.NET lifecycle operate.
The simple answer is that you need a web server to run the application. It cannot run without one.
If we're talking demo purposes or you don't require that many features of a web server there are redistributable web-servers that you can include with your setup package.
Like Alex mentioned the most popular one seems to be Cassini.
I'm assuming that you want to run the site on the same machine you are developing it on.
Visual Studio 2005 and up allows you to run the site from VS itself if you want to view it locally on your development machine.
To my understanding Visual Web Developer allows you to do the same as well.
Visual Web Developer
You can use the cassini web server. Please note that those are different redistributable:
http://www.asp.net/Downloads/archived/cassini/
http://ultidev.com/products/Cassini/
I'm not really certain why you would want to develop a web application (with all the difficulties it entails, due to the fact that you are dealing with a stateless connection to an unknown client machine), but then run the entire thing on the client machine.
Surely it makes more sense to develop a WinForms application?
Follow this guide to setup IIS on your PC to run ASP.NET apps:
http://www.geekpedia.com/tutorial25_Setting-up-your-ASPNET-server-IIS.html

What is the best way to rollout web applications?

I'm trying to create a standard way of rolling out web applications for our company. Currently we do it with zip files, vbscript/javascript, and manual some steps.
For thick client installs we generate MSI installers using Wise/Wix. We don't create installers currently for websites as in general they are just xcopy deploy. However we have some config files that need to be changed, verify that certain handlers are registered in IIS... The list goes on.
Do most people use MSI installers for web applications as well, or some other tool/scripting language?
I recently spent a few days working on automating deployments at my company.
We use a combination of CruiseControl, NAnt, MSBuild to generate a release version of the app. Then a separate script uses MSDeploy and XCopy to backup the live site and transfer the new files over.
Our solution is briefly described in an answer to this question Automate Deployment for Web Applications?
Do consider MSDeploy, that is the direction Microsoft will be investing in the future for deployment of web applications...
Know more about the future direction at Overview Post for Web Deployment in VS 2010
We have been using FinalBuilder (www.finalbuilder.com) for this purpose for long time and for some time also using InstallAce (www.Installace.com) for build deployment on the Web Farm.
You may want to look at:
How do I get a deployable output from a build script with ASP.NET
Step by Step ASP.NET Automated Build/Deploy
We use MSI to create basic installers for our web projects too, often using the Web Setup Projects in VS and sometimes completely custom installers. You may also want to look at MSDeploy.
We're moving to an MSI for our installs, so far with mixed results. I'm a control freak so I would personally prefer a series of scripts that I had more direct control over. I've used ANT in the past with good results.
Have you checked out NAnt and CruiseControl?
Combined, they can provide an easy and automated way to build and deploy your web apps.
I work for a state agency and we do all our deployments using a product called RepliWeb.
It works good because as dev's we have no control over the webservers. But we can deploy to a deployment area and run the RepliWeb job to do the deployment. Not sure on pricing though...

Resources