Using SQL Server for web applications - sql-server

As far as I understand, due to license reqirements all web applications, which use MS SQL Server, use SQL Server Express (free) or SQL Server web edition (processor license).
Is it so?
What are other specific features of SQL Server usage for web app?

Essentially. You use a SQL Server Processor license when you don't want to have to buy Client Access Licenses.
A complete breakdown of the SQL Server Licensing schemes is here:
http://download.microsoft.com/download/1/e/6/1e68f92c-f334-4517-b610-e4dee946ef91/2008%20SQL%20Licensing%20overview%20final.docx

SQL server allows you to use CALs only when you have identifiable users. When your connections are initiated from a public website where users don't log in, but browse anonymously, you're required to license SQL Server by processor, not by user.

You can use any edition for web development.
You can start with 100% free express edition. Then upgrade to next level. The licensing is very flexible and the most you will need for web development is Standard edition.

Related

Change AWS windows machine

Currently I have got an AWS EC2 windows server machine along with SQL Server Web Edition.
In order to reduce costs, I want to get rid of SQL server web edition and put express edition on the same machine.
Can I do it? I was thinking of uninstalling web edition and then installing express edition on the same server. Will this suffice?
Any insights would be highly appreciated.
P.S. I do not have support plan with AWS, and that is why I am writing here on Stackoverflow.
Thanks.
No.
The price for the instance is determined by the AMI that was used when launching the instance. Even if you uninstall SQL Server, you will still be charged the same hourly charge.
You will need to launch a new instance with the desired version. You'll also need to migrate the data and any other software you have installed on the instance.
It's probably a good time to consider using Amazon RDS, which is a fully-managed database service that can keep the database separate from your other sofware.

Which one is Azure SQL Server for production?

As the graph shows above. Which type of sql server edition is for the production? I know the "Developer" version is for the development. Also I already got the Azure VM and have the "Developer SQL Server" on my VM, how can I install the production SQL Server in my VM? Is this free?
My purpose is to make a production SQL Server database. Is there two options for me? One is install a production SQL Server in my VM, another is to create a new Azure SQL database. Which one would be the best way to do this?
As the graph shows above. Which type of sql server edition is for the
Production? I know the "Developer" version is for the development.
Also I already got the Azure VM and have the "Developer SQl server" on
my VM, how can I install the production sql server on my VM? Is this
free?
Developer is not licenced for production - you aren't allowed to use it for production purposes.
Express is licenced for production but if your database gets bigger that 10Gb then it is unsuitable for your use
My purpose is to make a production sql server database. Is there two
options for me? One is install a production sql server on my VM,
another is to create a new Azure SQL database. Which one would be the
best way to do this?
"Best" doesn't mean anything. What are your constraints? Are you creating a brand new database? What tools will be connecting to and using the database? Does it need to be accessible from the internet?
If this is a brand new application / database, and you have limited capability for maintaining a VM then I definitely recommend using SQL Azure instead of a VM
Most importantly, and based on you other question, make sure you understand the term "Production"
Can Azure SQL Server on VM be the production database?
For example, you usually don't provision a 'production' environment without also provisioning at least a dev environment.
It would also help to give us some background on "My purpose is to make a production sql server database". It sounds like this is a request someone has given you but maybe you don't fully understand the term 'production'
None of them are sql azure. They are all sql server on premise on a virtual machine on azure.
If you want to add a sql server azure, you go on your main azure portal page, then on the left panel at the top "create a resource", then chose "SQL Database" on the popular column. Then follow instructions.
If you want as less pain as possible, clearly choose sql azure instead of a sql server on premise on a virtual server on azure. It is by very far the only reasonable choice if you work on azure: cheap, strong, backup automatically done, disaster recovery extremely easily applicable without any prior setup, extremely easy to up size its capacity in case of overload, perfectly secured without any prior setup either.
The only problem of this is the security: it can be accessed only by recognized IP addresses that you mention on the azure portal. So typically, you mention the IP address of you development computer. If your website is on your azure subscription as well, you don't need to worry, it will go through the azure firewall with no setup.
If you reeeeeeally want to use a sql server on premise, well, don't use the developer edition. If you want to avoid performance and load issues, don't use express. The entreprise is very complete, but not useful in most of cases for simple application (like web applications).
If you want most of features, go for the Standard edition, if you want to keep focused on the database engine for your web application, go for the Web edition.
Finaly, if you wanna have a licence free edition on a virtual server, the express is free of charges, but not powerful and extremely limited. The developer edition is free of charges as well and contains every possible and impossible features of sql server. The only pb of this edition is that you are not allowed to use it in production. Only for tests and developments.
As you are already having Azure VM with Developer edition installed you can go for either of the below options.
If you are comfortable to manage the Azure VM yourself, go for IAAS(Infrastructure as a Service) approach: Install SQL Server Standard Edition or SQL Server Enterprise Edition (based on your application needs). Read the capability difference between them. If SQL Server Express edition would be suitable for your needs, then install the same. It does have limited features and many constraints. See the scalability support for different editions in the same link above.
If you want to offload the database server management, go for PAAS(Platform as a Service) approach: Create a Azure SQL database and point your application to it. Azure SQL database is more like SQL Server Enterprise Edition with some limitations like CLR not being supported. Read Azure SQL database differences with SQL Server editions

MICROSOFT SQL SERVER LICENSE TERMS

I developed software which requires the MSSQL database in the backend. So I need to include the Microsoft sql setup within my application setup file. But when referring the license terms and the Microsoft’s knowledge base article, found conflicts as bellow.
In the license terms under the ‘Scope of License’ there mentioned “You may not publish the software for others to copy”.
But in the knowledge base “https://technet.microsoft.com/en-us/library/dd981032(v=sql.100).aspx” I found “Microsoft SQL Server 2008 Express is a robust, freely distributable relational database management system”.
So by seeing these 2 statements I am confused whether I can include sql server setup in my application or not. Please any help would be appreciated.
Edit:
Sql server used is MSSQL server 2008 (since it supports windows XP)
Redistribution of SQL Server Express is available for free.
Register for SQL Server Express redistribution
SQL Server comes with different editions like Express, Devloper, Standard..etc.
Among all these editions, Express edition is free for learning and developing small applications.
Reference:
http://www.quackit.com/sql_server/sql_server_2008/tutorial/sql_server_editions.cfm
https://msdn.microsoft.com/en-us/library/ms144275(v=sql.100).aspx

Strategy for Data Access Layer development that escalates from sqlite to SQL Azure

I want to start a rather big project (in the end). My tool of choice is basically ASP.NET MVC/WEB Api.
I would like to develop this in the beginning by using SQLite or SQL Developer edition.
Then when i go live i would plan to go to a shared hosting by using SQL Server 2012/2014 instance.
My target is that if everything is ok to convert to cloud and Azure.
So my plan that i would like to enhance/verify is:
Frontend:
Since my knowledge of AngularJS/Knockout e.t.c is lomited. I will start by using the normal Jquery/web API approach and gradually i will conver tot latest best practices and standards.
Backend:
Program to an Interface. I will have an interface for my DAL
Implement different interface for my different cases (sqlite/sql server/azure e.t.c)
In order to get a fast start to building it i would start with a good domain class design and then head to SQLite in combination of a light ORM (Dapper) in order to have my logic up and running fast.
This post: SQl Azure offline , suggests that i could start developing for sql azure right away, but i don't know if i can afford from the beginning to go to azure.
Sql Azure is basically the same as Sql Server 2014. If you start with the free SQL Server Express edition then you will have very few problems moving to SQL Azure later, especially if you use a tool like the SQL Server Migration Wizard and pehaps setup a free Azure trial account so you can test as you go?
You can just use your local Sql edition as mentioned by #Neil Thompson, If you are using SQL Server Database Project, there is an option to target your deployment to SQL Azure database instead of full version of Sql Server,
I have been using above option without much problem.
Sql Federation in Azure which is I think the only major non-supported feature in on-premise/local Sql edition that you would need Sql Azure for day-to-day development/testing.

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

Resources