Can Someone Explain VistaDB Please? - asp.net

I'm seeing it pop up more and more and not really understanding the purpose of it? Can I only use it when I am developing locally on my desktop?
Or can I put a commercial site on a server with say Win2003 thats using VistaDB? Is it faster than using a SQL DB? Is it secure?
Confused...

VistaDB is a .NET alternative to the lightweight database systems offered by Microsoft: Jet (Microsoft Access), MSDE, Sql Server CE or Sql Server Express. You can use it in any .NET application where you need a database and you don't really want the overhead of having a client/server database.
VistaDB is an embedded database (some other embedded databases are SQLite and FireBird). This basically means that your database is totally "invisible" to your end users. They don't need to install a client/server database like SQL Server for instance. Deploying VistaDB is simple. All you need is the database file and a reference to the VistaDB runtime DLL within your application.
A commercial application that uses VistaDB for it's backend is Graffiti CMS.

From what I can make out of their website http://www.vistadb.net/:
You can use it for both development and commercial purposes
It's not a server, it's an assembly for your website/application
My guess is that since it's not a full featured SQL server it should be faster and lighter on the resources
Don't know how secure it is, but they state that you can put it on "medium trust" websites.

You may also want to see this StackOverflow topic about VistaDB.
Nothing is faster than SQL Server for what it does. If you think SQL Server is too slow you are probably doing something wrong. It is incredibly fast. There is no way a 100% managed engine is going to be faster than SQL Server on everything.
Lighter on resources - Yes
Easier to deploy - Yes (xcopy deployment)
Desktop database - Yes, you can use it for desktop development of applications. Some people also use it for multi user applications on a shared drive. Websites are another target where you can't install a service or don't want to pay extra for SQL Server access on the hosting account.
Security - VistaDB runs in-process with your application. There is no concept of user security since you are loading it directly.
Concurrency - Depends on your application. We support multiple processes access the same database, but some operations will still have locking issues you have to work with in your code.

Related

Can I have database without installing SQL Server?

I want to build an ASP.NET website with Entity Framework 5 but I do not have permission to install SQL Server on my system, is it possible? If yes, how? If not, any alternative, like files etc...
If you can't install anything, then I'm afraid you're stuck with embedded databases like SQL Server Compact Edition or Sqlite. (and some NOSQL databases as well, I believe some of them don't require a server)
Just don't forget about one thing - embedded databases usually aren't enough for web environment.
For instance:
https://stackoverflow.com/questions/11591002/how-can-i-use-sqlite-in-a-c-sharp-project
http://www.microsoft.com/en-us/sqlserver/editions/2012-editions/compact.aspx
You could offload the database platform entirely to a remote Azure database; there's lots of info on this online, but this page might be a good starting point.
An alternative would be to host your database on another service like AWS or Microsoft Azure.

Advice required: Creating desktop application with database connectivity

I want to create a desktop application, I normally work on web based applications so have very little knowledge about creating console applications using .Net and visual studio.
So now in this application I'l also be using database connectivity and stored procedures (SQL server). But how should I start doing this as I dont want to install SQL server on my clients system.
thanks in advance..
I think it depends on the goal of your application, the amout and sturcture of the data and the environment. The last point aims to the client system, if the client is part of an enterprise network (e.g. Active Directory) or is a common user at home.
maybe you can use xml or json files to store the data
if you need a database, you can create a setup project for your application which automatically installs a SQL Server express
another way is, if it's applicable for you, your application can consume a webservice which provide the data
you could use SQL Server compact http://msdn.microsoft.com/en-us/library/cc645984(v=sql.100).aspx or SQL Lite to embark your DB in your application without external dependencies.
Otherwise, if offline isn't a requirement, you could go the "cloud" way, with web APIs

Synchronization between Two SQL Server Databases, Online and Offline

We have a local intranet based Project Management tool, we built it in asp.net .net 4.0 and sql server 2008. We cannot access this system online as it is lan based, neither we want its files to be appear online. But most of the cases we and other managers need to post project on it from home, but the issue is we dont wana use this system only on online server but also local intranet should be working, live ip is not prefered in any case because of electricity issues etc. We have an idea in our mind, that if we launch the same published site on online server (dedicated vps), and people use to work on offline system, but we can make some .exe utility which will upload our latest records from offline server to online server using the internet, does sql server provide any built in functionality for this, what is the best way to do this, either with our own custom logic with windows task scheduler or .Net provides any kind of facility for that. The reason of not using this system only as online is, our employees used to upload files in GBs, and the internet is only 4MBps, which will slow down the work, also we dont want internet dependency every time, also there is security issue.
Regards
Atif
Check out Microsoft Sync Framework: http://msdn.microsoft.com/en-us/sync/bb736753

Which database to use for C# ASP.NET website?

I am developing an online internal web portal (like users write tests, provide document links to study, completing a study roadmap, admin user to view ststistics, etc). It caters some 150 users. I have planned to use ASP .NET with c# in Visual Studio 2008 on windows xp. I am implementing using Forms and NOT MVC since I feel at home with forms.
I do not want to use windows authentication since each user will have many attributes related to him and so it will be easy using a database. Security is not an issue since it is being used internally only.
I have only a fair knowledge about ASP and C# and VS 2008.
Now my questions:
Can I use MS SQL server database that is built in in VS 2008?( I cannot ask for external databases)
Can I export the website totally along with the databases to IIS server running in some other computer? How?
Do I need to export databases separately or provide a database creation script like PHP?
(I have more questions. Will update once I start off).
(This is my first .net web app. so can i know where i can find login scripts, pagination, examples, and pretty much all the stuff)
edit: which to use? New website or New Webapplication?
You can pretty much use any database, but it seems from your requirements that you want to look closer towards something like SQLExpress, SQL Server Compact Edition or SQLLite.
Can I export the website totally along
with the databases to IIS server
running in some other computer? How?
Your database will be shipped along with your application if you use one of the database options that I have specified above.
Do I need to export databases
separately or provide a database
creation script like PHP?
See my comment above, the database will exist when you deploy your website to IIS. It's a physical file that will be in your APP_DATA folder.
You can use:
MySQL. The reason: It has no space or memory limit!
SQL Server or SQL CE. These are both alike. They just differ in slite functions, and also the storage!
The SQL CE allows you to have 4GB. But the SQL Server lets you have 10GB.
So it depends on your work!
Also, I wanted to point out one error in a post, that the SQL CE is present in App_Data, Correct! But the SQL Server is placed somewhere like:
C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\here_will_it_be
And yes, you can migrate it to wherever you want to place it. I mean if you want to upload it to a hosting server, you can upload it using Web Deploy! Or what ever service. When downloading you will have to repeat same process!
I hope you are doing good with your first web app! :)

How do I find a ASP.NET hosting company that supports SQL Server with CLR enabled?

So I developed a web application in ASP.NET and SQL Server 2008. Part of the SQL code I implemented as a .NET assembly (instead of t-sql) because it is performing intense calculations that are better written in C#.
Now I am ready to deploy my application, but I am stuck looking for a hosting company that allows this. Scratch out Discount ASP (see this forum post). I tried emailing other hosting companies and I either get no reply or they say they will not support it.
Any recommendations? What's the big deal with having CLR enabled in SQL Server?
it is disabled by default and most shared hosts will be reluctant to enable it because of the potential added security issues. You could post a request to webhostingtalk. Some options:
Amazon EC2 with SQL Server or SQL Server Express Edition, a VPS (1and1 has a pretty good deal right now) running Express Edition, or of course your own dedicated box
On Amazon EC2 you get your own dedicated box, so you are free to enable / install what you see fit. You could configure a vanilla server then install the SQL Enterprise eval if you wanted.
Your own dedicated box with SQL Express may be your best bet.

Resources