New Project : MySQL or SQL 2005 Express - mysql

I am starting a new client/server project at work and I want to start using some of the newer technologies I've been reading about, LINQ and Generics being the main ones. Up until now I have been developing these types of applications with MySQL as clients were unwilling to pay the large licence costs for MSSQL.
I have played around a small amount with the express versions but have never actually developed anything with them. The new application will not have more than 5 concurrent connections but will be needed for daily reporting.
Can MSSQL 2005 express still be downloaded? I cant seem to find it on the microsoft site. I would be hesitant to use MSSQL 2008 on a project so soon after its release.
Are the express version adequate for my needs, I'm sure loads of people reading this have used them. Did you encounter any problems?

The answer to the question on any project in regards to what platform/technologies to use is: What does everyone know best?
Yes express can still be downloaded.
Will it fit your requirements? That depends on your requirements, of course. I have deployed MSSQL2005 Express on several enterprise level projects which I knew had a fixed database size that would never be exceeded (Express has a limit of each database of 4Gb). Also keep in mind there are other hardware constraints such as a 1 cpu limit.
Another thing to consider is if you need the Enterprise level tools that come with a paid edition of SQL Server. If you are moving a lot of flat data around you are stuck writing your own Bulk Copy Procs, which rule the house, but its an extra step, no doubt.

Note sure about #2 but you can download SQL Server Express 2005 here.

Sql express has more features, and is a lot more powerful, but will only run on windows boxes. If you ever need to scale Sql express can be switched easily to a commercial variant.
MySql doesn't support half the features, but does have most of the basic ones you actually need, and will run on windows or *nix boxes. It's also not throttled in the same way as Sql express is.
In my opinion (having used both extensively, but not touched MySql for a few years) Sql express is a far better DB system. If you're building .Net applications the Linq support is a deal clincher.
If you aren't going for pure Sql server support, I wouldn't go for pure MySql support instead. Use a DBFactory design pattern to load your data layer or use simple SQL:92 syntax that's a lowest common denominator.

Why not go to Sql server express 2008?

I'm mostly going to advocate MS SQL Server because of .NET integration. Linq To Sql is pretty much my favorite way to do deal with databases these days: anonymous functions make everything better! My current place of work has also used MSSQL Express for real projects, so you have at least two of us confirming that the restrictions aren't too harsh.

I have about 50 web sites running perl/apache/mysql and about 10 running C#/ASP.Net/SQL Server (Lite) and other (large) applications running on SQL Server (Heavy). I never have problems with SQL Server - it just works. I often have problems with MySQL.
My advice would be to go for the SQL Server based option even if you had to pay for it.

Related

Relational database management system, not for server but client-side

I am making a relational database for a friend who is not tech savvy. I am looking for something that she can upload the correctly formatted excel files into and be able to see the relationships clearly.
(<1>[John Smith]<2>[Sam Jones] rather than <1><6><2><244>, etc.)
I know I can make my own web-based system but I was not sure if there was an open source (or freely available) system already available, either desktop-based or web-based. I tried googling it but I am afraid that I am using the wrong keywords. (I only got server-side systems)
Any thoughts?
It's ugly and expensive, but MS/Access does this well. It's good for beginners and Excel integrates very well. If she has Office Professional she already has it. It also supports ODBC so it can use other database engines.
As far as desktop DBMS goes, as Peter Wooster pointed out (+1) MS Access is the most user friendly for people who are used to Office (e.g. especially Excel).
If you are thinking of building something with a web GUI (i.e. with ASP.NET) then you can get SQL Server Express for free and it can be deployed on a client PC.
There are other typically server-based RDBMS systems with workstation-friendly editions, such as MySQL and even Oracle (although there is nothing friendly about Oracle, workstation or otherwise).

Best Database for Windows Server 2008 R2 with SQL 2005

I'm writing the entire database system for a factory, this includes inventory, payroll, incoming and outgoing shipments, job-data, customers, etc. The database will be stored offsite on a server running Windows 2008 R2 with SQL 2005. The guy who runs the server sent me this too:
"We also have quickbooks installed on the server and we have Exchange 2010 running. The terminal server is also ws 2008 R2.
There is plenty of horsepower on the primary exchange/file server. Let me know if you have any other questions.".
I know my boss uses Quickbooks to look at reports and stuff like that. I'm not sure how relevant exchange 2010 is, nor what the significance of "terminal server is also ws 2008 r2" is. My boss wants me to write the entire system in ms access 2010, but I feel like this will be a lot more work than simply writing it in MySQL. Will my boss still be able to look at his reports in quickbooks if we change the database to MySQL? What would be a good database technology to use? I feel the most comfortable writing it in a scripting language using MySQL, but would still be happy if I could write it in something like C/C++. I've been trying to learn access, and it seems that setting up a front-end and back-end database in access would be a pain in the ass. There are going to be several sectors in the factory that will be using the client-side software to run queries and insertions into the database(I think around 5-6).
If I can write this thing in MySQL, I think I could do the whole thing fairly pain free, but I fear that I can't because it will be incompatible with Quickbooks and the previous database(Although I hear converting is fairly easy). Mostly just Quickbook compatibility is my problem.
How horrible would it be to write this thing in Ruby?
Thank you, any help is greatly appreciated.
I don't mean to be a spoil sport but there is a tremendous amount of naivety expressed in this question. It's hard to imagine that you will be successful in designing and implementing such a large system without a basic knowledge of the technologies involved.
A few thoughts:
Quickbooks already covers most of the features you say you will be responsible for implementing. Are you supplementing the existing Quickbooks system, replacing it, or what?
Quickbooks uses its own (extraordinarily slow) database engine. It isn't "compatible" with SQL Server, MySQL, or Access.
SQL Server 2005 is a database. You don't use a database with it, you use it as your database. A Microsoft-centric organization such as the one you describe is not likely to be interested in installing yet another database server like MySQL.
MS Access encompasses both a database "engine" (called JET) and a desktop development environment. The engine can be used with other development environments and the development environment can attach to other database engines (most often SQL Server, but others work too). When you say the boss wants to write the system in MS Access you need to be clear whether he means the engine, the development environment or both. (My guess is they want to use Access as the front-end development platform and SQL Server as the data store).
You will not write a system of this complexity in a month. You probably won't even design it in that time.
Quickbooks can use MySQL as a datasource (or just about anything else), but you'll need to make your database conform to the Quickbooks way of doing things: i.e., your tables will need to match the QB table structures. It sounds like you just need a front end (data entry forms and reports) and a custom back-end. Access can quickly turn into a nightmare if you don't put in some up-front design thought, but it does give you forms & reports & web pages free in a neat little package. Make sure you use an Access Data Project (adp) that's connected to a SQL Server back end. Access does have its own native database, but everything gets stored in one local file and it's not good for applications that will be accessed by multiple people in multiple locations. It also gets complicated when you need to make a change and roll it out to all of your users.
Another option is to look into a customizable web platform, like SalesForce or MS Dynamics. That will also let you create your own tables, forms, and reports, and updates are immediate for all users, but you'll have ongoing monthly user fees. They look great on a resume, though!

What components to use when connecting to a mySQL Database on a webserver

I, want to develop an application that can access my database on my website. I want to know what components can I use to access, insert and update records in my database. Im using a mySQL database on a unix server. The application will be running in windows.
Without understanding well what you mean by what components you need (other than TDataset et all), all I can do is to refer you to this article:
How to set up the dbGo (ADO) ConnectionString for mySQL database
If you have some cash available, I heartily recommend you get the AnyDAC components. I've heard that the DevArt components are also good, but I have no experience with them.
I would highly recommend http://www.devart.com/unidac/ very easy to setup and it supports multiple databases.
We've been using them for over 2 years and we're very comfortable with it.
AnyDac is the best and it's definitely worth buying. I've had plenty of experience with multiple components (AnyDac,UniDAC,SQLDirect,SDAC) and AnyDac has proved its value.
In comparison Anydac is faster, you have the ability to scale up your application to N-tier, supports more systems, has Free Pascal support.

Using LINQ with databases other than SQL Server Express 2005

I'm just starting to look into using LINQ for my database (and XML, and data object!) needs, but need to decide on which database to go with. I've been reading Pro LINQ, and it says that currently, LINQ in .NET 3.5 only supports SQL Server. I have done some googling, and have found references to using LINQ with MySQL and PostgreSQL (my other two DB options), but they are refer to DLinq, which I understand to be the predecessor of LINQ to DB.
I've read interesting and informative comparisons of the three databases here and here, but am still torn. I do not have any in-depth database experience, so it's important to be able to get the software installed and configured easily, or at least be easy to figure out how to compile a list of steps to configure it. I definitely want to have transactional support as well. But most importantly -- I want to use LINQ.
I'd like to hear what everyone here is using, whether it's SQL Server because LINQ supports it natively, or the other two with some additional component for LINQ support that I haven't yet found.
We use devart's dotConnect provider for Linq-to-Oracle and have been very pleased. They try and make the functionality match Linq-to-SQL as close as possible, which seems to be what you're looking for.
They have providers for:
Oracle
MySQL
PostgreSQL
SQLite
SQL Server
From a cost perspective, it's an excellent deal I'd say, just pay for developer seats, no server licensing.

Micro-ISV License Costs - .NET Or Open-Source?

I've started developing a website in ASP.NET MVC and have taken part in the BizSpark program. The only part that concerns me is the licensing cost of SQL Server Enterprise after the three year period is up.
Given this cost, and the potential outcome that this product may not 'take off'; should I rewrite the application in a 'free' platform such as Ruby on Rails or Java?
You can use SQL Server Express even in production IIRC. Alternatively, use ASP.NET MVC but with a free database such as Postgres or Mysql.
You're not forced to choose between "everything Microsoft" and "nothing Microsoft".
Why rewriting the app if the problem is SQL server?
You can connect to MySQL from .NET.
Check out this question as well: Why is microsoft stack said to be costly?
Aside from the cost of the Windows Server (which would include IIS) to host, and the cost of SQL Server for the database, .NET itself is essentially free.
The .NET Framework can be downloaded for free, and you can get the Visual Web Developer Express version of the VS development tools also for free.
Also, there's no reason why you have to use SQL Server as the back-end database. MySQL will happily run on top of Windows, and there's ADO.NET providers for it also.
If your database needs aren't huge (ie. you can happily live with a 4GB database size limit), you can even use SQL Server Express freely.
If you're a start-up that meets several conditions (most notably, less than $1 million in revenue) then you probably qualify for the BizSpark program, which basically eliminates the .Net licensing costs.
Any alleged pros and cons of .Net vs Ruby in a general sense are highly subjective. You might find one more suitable to a particular task than another but there is no general "better" or "best".
And obviously startups can (and do) use .Net. Case in point: Stackoverflow.
Microsoft licensing is expensive. And most of the time, I can't even find which license I actually need on the massive, confusing labyrinth that is the Microsoft web site.
Having said that, In my opinion the .NET Framework is a great platform (robust, easy to learn, good dev tools), and I've found the .NET developer community is very supportive.
As some others here have already suggested, you can run Windows Server/IIS and MySQL in conjunction, to get the best of both worlds.
If you are ok with using mysql as a database there is really no need for SQL server...
And if you want to eliminate licensing costs for Windows Server 2008 as well, it should be possible to run asp.net on apache (google it for more info)....