We are developing a multi-user desktop application with C# 3.5, windows forms and sql 2008.
There are various things I want to test -
1) performance - how application behaves when multiple users are accessing the database?
2) How to simulate a conflict, and test how application is helping out the user.
How can I test the above scenarios?
Any other scenarios you can think of?
thanks
We need to see how the application communicates with DB layer
Web Services or stored procedure calls
For Stored proceduress I would suggest using SQLQueryStress - sql server query performance testing tool
Alternatively if it through web services I would suggest testing using VSTT
VSTT has good information and articles on web testing, load testing
Visual Studio Performance Testing Quick Reference Guide (Version 2.0) Published http://blogs.msdn.com/b/edglas/archive/2010/04/13/visual-studio-performance-testing-quick-reference-guide-version-2-0-published.aspx
One more alternate option is
SQL 2008 has data services - Exposing Stored procedures as Web Services
You can exposre core procedures and load test them as web services in VSTT
Related
I recently heard about two SQL tests that IBM ProveIt platform offers - SQL Test for Client Server Applications and SQL Test for Desktop Applications.
I am wondering if there any differences in SQL for client server applications and SQL for Desktop applications in general ?
Also, please let me know what to expect in these tests.
I took the test - SQL for Desktop Applications, it's all related to testing your knowledge on SQL statements - DDL/DML/Joins/Keywords. Nothing beyond SQL.
I have on scenario which I have to call a web service from SQL Server. Is there any way to accomplish this task?
As GSerg mentioned in comments, this is something you can do within a SQL CLR procedure. This link will walk you through a proof of concept scenario, but the principles are there.
http://blogs.msdn.com/b/spike/archive/2010/11/25/how-to-consume-a-web-service-from-within-sql-server-using-sql-clr.aspx
Depending on what you need to do with it, you can also build an SSIS package. It has an out-of-the-box task for web services.
https://msdn.microsoft.com/en-us/library/ms140114.aspx
I would use SQL Server Data Tools for Business Inteligence (SQL2012+) or Business Inteligence Development Studio (SQL2008[R2]) to create an Integration Services project including Web Service Task:
Is it possible to handling handling external inserts/updates to Azure SQL Database from Azure Mobile Services (INSERT, UPDATE, directly to db and etc.)
I know about scripting. All tables working fine, and visible from Mobile Service manage center.
I need to handle events like direct SQL requests to DB from DB management portal or Azure Web sites, without direct requests to Mobile Service (REST API, and etc.)
Is the question how to execute SQL commands from a mobile device directly against the database (SQL Database) without first going through the REST API and scripting layer Mobile Services provides?
If so, then the answer is essentially no. The mobile device needs some way to communicate with the database, it uses the API and scripting layer to do this. Of course, you could build your own web service layer that then works with the database. But, this layer is what Mobile Services is providing for you out-of-the-box.
However, if the question is can you issue SQL commands against the database using tools like SQL Server Management Studio or even other web sites, then the answer is yes. The SQL Database which Mobile Services provides is a regular SQL Database. You have full control over it. You can connect to it and issue commands just like you would with SQL Database (via an ORM or direct SQL statements).
A developer on my current project has used Microsoft.SqlServer.Management.Smo within the code of our development to build tables programmatically.
To me this seems like a bad idea.
Is it?
I thing being or not being a bad idea for that matter depends on the environment under which the application will be run or deployed or what the application is required to do.
SMO makes it easy to perform database administration operations in .NET code. While all of those admin tasks can be performed with T-SQL directly on a database or through the SQL Server Management Studio, being able to use SMO offers broad flexibility to include these types of operations in .NET applications.
In fact, SQL Server Management Studio relies on SMO for most of its management tasks.
I did find an article demonstrating what can be done with SMO here http://msdn.microsoft.com/en-us/magazine/cc163409.aspx
So I am currently doing some research for creating iPhone and Mac applications for my company and perhaphs other small businesses. I have found god knows loads and loads of books on cocoa and iOS development, but on the side of SQL server things get a little more shady. I have seen all kinds of products online who claim to be the best SQL driver and to be the simplest and performance enhanced way of adding a relational database to your cocoa app. I have currently been and still create desktop applications under windows and we extensively use our databases for almost all applications and reports we build. We have iPads and iPhone all around our company and I could really bring some innovative apps to our table if we could have some of our workflows or reports on the iPhone or iPad. I cannot seem to find a viable SQL driver like using visual studio under widows. Is there a obvious solution that I have missed or do developers just not deal with enterprise projects with relational databases? We as a company have the capabilities to create what ever web or server needed to get such a project underway but before I do I want to make sure I can work with our existing database as I could with visual studio, any ideas or suggestions are welcomed.
I guess this is one of reasons why is there sooo little enterprise-class software on Macs... As a first candidate I would consider FreeTDS to access SQL Servers. It has headers and libraries that can be linked in XCode as far as I know.
As you mentioned in your post and comments, you do have great design in your mind. For having an application to compatible with any mobile device, the best application design would be to have your application running on as cloud service connected to specific cloud DB while application is talking to it over any exposed interface.
With Windows Azure your application can run as Cloud Service while using SQL database. In your cloud service you can have WCF endpoint exposed which can serve connection to your SQL Database and provide specific data you are looking for. This way your cloud application will be able to serve any mobile device as long as you can make connection to secure WCF endpoint and get back the data. In WCF you not only get XML data, you can pass much more complex results and process in the device as if needed.