Multiple MVC 4 Web Applications in the same Windows 2008 R2 Server - sql-server

Can I have multiple environments of the same MVC4 Web application in the same Windows 2008 R2 Web Edition server?
I would like to have:
QA (Quality/Pre-production) environment - SQL-Server Database with QA MDF file
Production environment - SQL-Server Database with PRD MDF file
Demonstration environment - SQL-Server Database with DEMO MDF file
Is it safe and reliable publishing from Visual Studio to each one?
Thanks.

Yes, you can deploy multiple instances of the app to the server. I would measure "safe" and "reliable" as aspects of the deployment process, not where the application is deployed to.
I try to keep my production and non-production environments separate, just in case anything goes wrong in testing I know it won't impact production. this separation can be physical (different hardware) or logical (same hardware, different configuration).
There are multiple factors to consider when deciding where to host production vs non-production. The main thing to consider is you don't want non-production environments competing for resources with the production application.
some other factors to consider are:
size the application
# of users
nature of the app (is the app critical to the success of the business, or a nice to have)
public vs. private application, etc.

Related

Octopus Deploy tentacles and 2 Nuget packages?

I'm learning about the environments and machines of Octopus. I have a Web project that is packaged into a Nuget package and deployed to Azure Websites, and I also have a DB project that is packaged into a separate Nuget package to SQL Azure. When Octo picks them up and deploys, is it better to have two separate machines have tentacles for each in the same environment, or should they be on one machine (in the case that the website deployment passes and the DB doesn't)?
If you're deploying to Azure, it doesn't really matter - 1 tentacle is enough for ALL environments (regardless of project type). We do this all the time for our Azure projects. You can think of the tentacle being a PowerShell script runner against Azure; nothing really happens on the actual server itself.
You can have multiple Octopus "environments" using the same tentacle (especially for Azure) - as you can reuse the same tentacle. This will allow you to use different scopes for your variables to apply the appropriate values per each logical environment, all the while targeting just one server which does runs scripts against Azure.

Use own MSSQL Instace for TFS

We have a single MS Server 2012 for hosting our MSSQL 2014.
On the Server we already installed two instances of MSSQL 2014.
One for the productive Business-Applications and one instance for the development Databases.
Beside the MSSQL 2014 installation we need to setup the TFS2013.
My question is if it is a good thought to make an own instance for the TFS or if we should just use one of the existing instances (Probably the dev) to store the databases.
We would love to use another instance because we would like to isolate the TFS Databases (so a restart of the TFS SQL Service should not affect the prod dbs) from the rest. We know that the administration needed for three instances is bigger than for two but we can neglect that.
Will there be a big loose in performance with a third instance, or isnt it that dramatic?
To avoid some anwsers, there is no possibility to implement the TFS or MSSQL on an other server(Because we just don't have any free resources).
The Server is from the hardware POV suitable and because we're a small company there won't be that much connections to the DB's (40 Employees to the Prod Instance, 3-5 Developers connecting to the DEV and TFS Instances).
The data tier of your TFS installation does not require any restarts. It's just a database that's created on your SQL Server.
The application tier of TFS is where the real work happens. This is where your users connect to and where the Windows Service and IIS websites are running.
It is no problem to use a shared SQL Server instance for installing Team Foundation Server.
If you want more information on how to install TFS checkout the ALM Rangers documentation. We have just released a new version of the guide that can be found here.
I would install also on a separate instance because the development or the production databases may require an SQL Server services restart which will cause a TFS unavailability.
Also you don't want to give permissions to the developers on TFS databases (usually developers are requiring higher permissions on their development databases, e.g. sysadmin for backup/restore)

Choosing between SQL Server Express and SQL Lite

I have a project requirement to choose a light database for the application.
It's required to choose between SQL Server Express Edition or SQLLite. Which one would be efficient and reliable. I am supposed to run it under Windows 7/Windows 2008 R2. I am newbie in the database programming. It would be helpful if you can share some information in terms of
Reliability
Stability
Size Limits
Memory consumption
Performance
SQL Server Express and SQLite aren't really comparable database systems.
SQL Server Express is the free version of Microsofts full SQL Server product, a standalone database server (often run on a dedicated machine) that client applications connect to. It is designed for things like web applications where many users will be using the database at the same time and there is a requirement for high availability.
SQLite is a compact in-process database that is often used in applications that benefit from having access to a SQL based database system however it isn't feasible to install a full standalone database alongside the application. For example Firefox uses SQLite to store bookmarks and Adobe Lightroom uses it to store its photos catalog, there are also several mobile (e.g. iPhone) applications that use SQLite.
The Microsoft equivalent to SQLite would be SQL Server compact edition (CE) which is free to distribute and use. SQL Server CE is very similar to SQLite in most respects.
Similarly the non-Micrososft equivalent of SQL Server (both the Express edition and the full edition) would probably be MySQL.
Although there are crossovers (you might build a small web application that uses SQLite, or a large desktop application that requires users to install SQL Express) typically the choice between the two "types" of database system (in-process vs standalone database server) is down to the type of application being developed.
You might find more details in the following article: http://erikej.blogspot.com/2011/01/comparison-of-sql-server-compact-4-and.html

SQL Server install with Silverlight 4.0 OOB

I have a Silverlight app which needs to talk to a local SQL database, we plan on deploying this Silverlight app to Azure. Users will navigate to the app and install the app using the Out-of browser feature.
How should we plan on installing the SQL database on the local user’s machine in such cases? This app runs in offline mode for the most part except when synchronizing with the remote server, so a local SQL database is required.
You won't be able to use anything like SQL Express or similar on the machine from an OOB application (unless you are running elevated) as you will still be constrained by the sandbox and the libraries available to you in Silverlight are limited.
Instead consider using a compact database that can be stored in Isolated Storage, something like Siaqodb, vistadb, or silverdb.
One other thing to look at is the forthcoming Sync framework for Silverlight, which is designed to offer offline support for data from SQL or SQL Azure. See this webcast: Building Offline Web Apps using Microsoft Sync Framework.
If you are running elevated, then you can use COM to interact with the local system, so you would be able to access a full-fledged database that way. However, making sure the prerequisites were in place and dealing with managing the database would be a lot of work. I wouldn't recommend it for your scenario.

What hardware (config) and software (os version/app version) is recommended for developing for ASP.NET/ColdFusion and MS SQL Server?

We are a small company and would like to know the best possible (and affordable) hardware and software configuration we ought to be using for our development environment. At this moment we are a team of four people who work remotely from different locations and each one of us uses a laptop and ADSL connection to work on our projects.
This question should help us identify a path towards optimizing our hardware and software so as to make the most of these development environments. Do we need to run everything locally on the laptops or some sort of distributed solution is possible? Which software versions do you recommend given that both Windows 2008 and SQL Server 2008 are available options? Do we use a central server or run these locally on our laptops?
We're a young team so any help would be welcome and much appreciated! Thanks!
Ym
For a team, I would suggest that you set up the local environments (laptops) as development environments, with a local DB copy and running CF developer version. Version control (VSS, Subversion, Git, etc.) is pretty much mandatory.
Have a testing/staging/QA server with the same configuration as the live version (as much as this is possible). It should have its own CF license to follow the licensing agreement. You should put checked-in code here for everyone to test and to check integration. Several version control systems offer ways to automate this, or you could do this manually.
Production, obviously, should be its own thing. I would suggest that you separate the database and app/web server on two separate boxes.
I know this might be a little more/less than you were asking, so feel free to ask for clarification.
For either ASP.NET or ColdFusion, You'll want to have the developers set up with their own local development environments on their Laptops. With ColdFusion, this probably means ColdFusion 8 Developer Edition (Free) and either MySQL (Free) or MS SQL Express Edition 2008 (also Free). For the actual development, you'll want Visual Studio 2008 ($170 -> $1400) for ASP.NET development, or Eclipse with CFEclipse plugin (Free) for ColdFusion Development.
You will almost certainly need a testing/QA string of servers, with ColdFusion 8 ($1300) you can run Linux, MacOS X, or Windows Server. ASP.NET pretty much requires Windows Server 2003, but if you're feeling adventurous, you could probably use Linux or MacOSX with Mono (Free) For your database engine, you can use MySQL (Free), PostgreSQL(Free), MS SQL ($6000), or one of many others.
Your production environment should be basically the same as your testing/QA environment, though depending on your traffic, you may end up with some esoteric load-balancing solutions. If you reach the point where this is necessary, you'll be able to afford to hire someone to answer this question for you :)
MS SQL Server 2008 Express, it's free.
http://www.microsoft.com/downloads/details.aspx?familyid=B5D1B8C3-FDA5-4508-B0D0-1311D670E336&displaylang=en
Windows XP (prof. edition) is stable and use less resources than Vista.
For asp.net I suggest using Dev Studio 2008 Pro.
For the computer itself, you want lots of memory (2-4 GB). A fast dual-core CPU. And you will see a difference using a faster HD (on a laptop, 5400 RPM HD are fast and 4500 RPM are the standard)
I recommend working locally and update all on a central location (with source control as Ben wrote).
I would use whatever server hardware you can afford 1/2/3 machines with plenty of ram and disk space and use Virtual server, or vmware server. That way you can simulate a ntier architecture. You can VPN/rdp/sslvpn etc to the virtual machines for your QA environment.
My QA environment has 7 machines, I have 3 physical servers, the biggest server runs SQL 2005 ent on the physical machine, it hosts 2 virtual machines one being the domain controller that all machines use for authentication. the 2 other server each host a virtual machine each.
That way i have a 3 tier architecture for QA and a separate 3 tier architecture for UAT.
Virtual machines are easy to spin up/ copy etc.

Resources