What do the ASP.NET Universal Providers enable that the default sql providers don't? - asp.net-membership

Inside the readme file of the ASP.NET Universal providers NuGet package is this quote
The SqlMembershipProvider, SqlRoleProvider, SqlProfileProvider classes that shipped in ASP.NET through version 4 support only Microsoft SQL Server and Microsoft SQL Server Express. They do not support newer offerings such as Microsoft SQL Azure and Microsoft SQL Server Compact.
However, when I run the custom aspnet_regsql scripts for Sql Azure http://support.microsoft.com/kb/2006191 and then point my web.config to the SQL Azure database, ASP.NET membership seems to work correctly.
Can anyone tell me what exactly doesn't work with SQL Azure, that the universal providers enable?

The main difference, as far as I can tell, is that when you connect to Sql Azure you need to implement retry logic. The original providers won't retry when a connection error occurs and this will happen from time to time with SQL Azure.
Also, the original providers don't raise exceptions containing the full SQL error codes so if your database is being throttled you won't know which throttling rule is being applied. At least this is what the SQL Azure support team tell me - I'm currently in the process of upgrading for this reason.
A note of caution: the Universal Providers seem to use a different database schema to the original providers, so you will need to migrate membership data. If you are starting a new project it will be much easier to change these providers before you go live with real users!

the universal providers enable you to use asp.net membership system on sqlazure and also make the implementation sql agnostic. you can take the same app using universal providers and change the datasource to be sql server/sqlexpress/sqlce/localdb etc

Related

From Sql Database to Azure Storage Emulator

I have a Sql database and I have to put it in my Azure Storage Emulator (In Storage > Development > Tables); how can I do it? In Visual Studio I don't find any possibility to import, for example, a .bacpac file.
UPDATE:
I discovered that the database should not be put in there, but then how do I properly simulate Azure storage and my Sql database as well?
Just to clarify: Azure Storage (Tables, Blobs, Queues) is completely different from SQL Azure databases.
If you use the latest version of SQL Express it's very very similar to SQL Azure and fine for most development needs.
There isn't a SQL Azure simulator that I know of - but it's really easy to get a FREE 30 day Azure account and I would strongly suggest you do some development and testing against that: SQL Azure has far more connection issues (no connection, handshake problems, lags) than a database that is local to the app, and you need to be prepared for this (investigate Transient Fault Handling strategies).
You can work locally and connect to your SQL Azure instance = a 'real' SQL Azure simulation.
When developing locally for Azure SQL Database, please use SQL Server Express - it is the relational database equivalent for Azure Storage Emulator (Azure Blob, Queue, and Table).

MS Synch Framework - Synch 2 branches to central branch

I'm trying to create a Synch Module using MS Synch Framework wherein records from 2 branches will be synched into a central branch database. I wanted to achieve this with MS Sql Server 2008 R2. I can't seem to figure out the Synch Framework components I need for this project. Our goal is to be able to synch the records over the cloud.
if you look at the documentation, there is a walkthrough on how to do it.
see: Tutorial: Synchronizing SQL Server and SQL Express
don't mind that it says SQL Express, the walkthrough will work with SQL Express, LocalDB, SQL Server and Azure SQL Database as they all use the same SqlSyncProvider.
if the central database is an Azure SQL Database, have a look at these as well: How to: Configure and Execute Synchronization with SQL Azure and Walkthrough of Windows Azure Sync Service Sample

Create an ETL with SQL Server 2008 R2 Express

I've recently installed the latest version of SQL Server (2008 R2 x64) and I'm now trying get my first steps to create an ETL.
Is it possible to create an ETL with SQL Server 2008 R2 Express, and if not is there some tool that provides that for free?
What I plan to do is collect data from multiple sources like a web services, rss feeds, a parsed url request, a file or maybe other database engine. Transform this collected data for an understandable schema (for my purposes) and store this in my SQL Server database.
If you are looking for a rather simple, yet very flexible and more code-based approach as an alternative to the SSIS (Integration Services), I'd recommend you have a good look at the Rhino ETL code library by Ayende Rahien.
Check out these resources:
Rhino ETL 2.0
Object-oriented ETL using Rhino ETL
Write ETL jobs in pure C#
Rhino ETL is a code-based, programmer-oriented approach - it gives you nice, usable base classes, from which you can inherit and do just about anything - with very little effort.
Integration Services, which is the product of SQLSERVER for this kind of tasks is not supported by the Express Edition.
Although, you can take the long way of making the integrations using plain TSQL and features of Express Edition like linked server (for other databases, access and excel), sqlcmd (for file system) and XML support(for web services).

Does Reporting Services embedded in WinForm need SQL Server?

I am starting to learn Reporting Services and I read that it uses SQL Server to store the meta data. I am planning to use it in a WinForm app. Does SSRS require SQL Server to be used in a WinForm app? Can it be self contained like Crystal?
You can use LocalReport in order to make reports but you should give it directly the datasource. More over the ReportViewer Redistribuable Package should be installed !

How do I fix a broken connection to DB2 from a web application?

I support some old web applications, VBScript-based ASP for the UI and VB6 COM modules for the business and data access layers. Last weekend, I installed DB2 Connect Enterprise Edition v8 fixpack 14 on several Windows 2000 servers, and one of the web apps errors out on null data when it calls the built in VBScript function FormatNumber. This numeric data is retrieved by a SQL Server query, but the only way the SQL Server column is populated is with the calculated results returned from a DB2 query earlier in a progression through several pages.
When I installed DB2 Connect EE, one of the components loaded was MDAC 2.7. I followed corporate instructions and had the installation save an ODBC System Data Source, which reported a good connection when I tested it after the install.
For what it's worth, the project references in the production VB6 modules pointed to MDAC 2.5. I have tried recompiling and deploying to COM on my test server new versions of the VB6 modules referencing MDAC 2.7. My development environment is Windows XP Pro, with MDAC 2.8 and DB2 Connect EE v9.5 installed. When I deployed the updated VB6 dlls, the CreateObject fails to instantiate the classes with the error message that "The class does not support automation or the requested interface".
I've rolled the DB2 Connect install back and have reinstall v8 of the DB2 runtime client, which was the previous environment. The problem, however, persists.
I don't really get the picture for how things are connected together - where is the SQL Server and where is the DB2.
There are forums on IBM's site for helping out specifically with DB2 Connect EE, wwhich I think is a pretty pricey product (not sure tho).
One way I have seen people do it is configure a SQL server as the data gateway. You can define DB2 as a linked server, and then perform SQL queries through the SQL server in order to get to DB2. Apps need only to be able to connect to SQL Server, not directly to DB2. They get to DB2 indirectly. Depending on the load on the system this may or may not be feasible for you. You can even do joins across data stored separately in DB2 and SQL with this approach.
It's one more option in the toolbox, along with replication, data federation, and so on. I found that it reduces the variability in connectivity.

Resources