Presentation is loading. Please wait.

Presentation is loading. Please wait.

Data Persistence In A Web Hosted World

Similar presentations


Presentation on theme: "Data Persistence In A Web Hosted World"— Presentation transcript:

1 Data Persistence In A Web Hosted World

2 Jeff Ammons The Atlanta Journal-Constitution GGMUG.com
Developer/DBA GGMUG.com President Gwinnett, Georgia, Microsoft User Group 2nd Thursday, 6:30 PM Gwinnett Tech Blog:

3 Agenda Define Hosted Environment Explore Data Persistence Options
DBA Tasks With Hosted SQL Server Data Access With LINQ and Entity Framework

4 What Is Hosted Environment?
Web Shared Server Managed By Hosting Company

5 What’s Included? Web Server File Storage Database Bandwidth

6 Examples GoDaddy Hostgator DiscountASP.net Bizhostnet.com

7 Who Is This Environment For?
Start-ups Non-profit organizations Personal use

8 Why Choose A Hosted Env? Lost cost ($5-$20/month) Quick Start
Fewer People Required No hardware to buy No hardware to maintain No server room

9 Challenges Server Access Server Options Server Load
Dude, Where’s My Data? Dude, Who Can See My Data?

10 Microsoft vs FOSS: The FOSS Advantage
Lots of FOSS based sites (LAMP) Lots of FOSS sample code Zero start-up cost MS stack seen as ugly and corporate-looking

11 Microsoft vs FOSS: The Empire Strikes Back
Asp.Net MVC JQuery supported OFFICIALLY Visual Studio Express Edition BizSpark WebsiteSpark You CAN achieve zero start-up cost You CAN make good looking sites

12 Asp.Net Options SharePoint WebForms MVC ASP.NET

13 Data Persistence Options
MySQL SQL Server File Based XML JSON

14 Why Not MySQL? .Net naturally works better with SQL Server
LINQ To SQL works ONLY with SQL Server Entity Framework support for MySQL is dodgy This is NOT MySQL Saturday…

15 SQL Server $15/month = Unlimited 200 MB DBs
Good basic set of functionality Choice of access methods LINQ To SQL Entity Framework ADO Etc.

16 SQL Server and MySQL

17 What’s Missing? Missing In Action Alternative Agent Wish You Had Agent
SSIS SSRS SSAS Wish You Had Agent Stored Procs ASP App Perhaps With Silverlight, why not? None

18 Types Of Access Direct Access Web Admin SQL Server Management Studio
Expose YOUR database directly to the Internet Web Admin Primitive tools CYDB

19 Typical DBA Tasks Set Up Backups/Restores Imports/Exports Schemas
Tables Indexes Views Stored Procedures Backups/Restores Imports/Exports

20 Demo Time

21 Developer/DBA Developers vs DBAs Objects vs Relational Data ORM

22 What Is LINQ? Language INtegrated Query
SQL-like language construct for .Net Joins Tables Objects Both Aggregation Selection

23 Example LINQ Query var orderedModuleList = from module in itemList.getList() orderby module.Name select module;

24 LINQ To Lots Of Stuff LINQ To Entities LINQ To SQL LINQ To Objects
LINQ To XML

25 File System Options POCO (Built-in .Net Serialization) XML

26 Why? Why? Why? Not ALL apps need relational databases SMALL datasets
Burn the heretic!!! SMALL datasets Lots of Readers/Few Publishers Blog Informational site Personal site Excessive DB Traffic

27 Example Custom ASP.Net Membership Provider Basic log-on info
Works great with 10-30,000 users Total DOG with 500,000 users No calls to DB server Most start-ups would KILL to get 10,000 users

28 Demo Time

29 Goals For Your Project Website itself Web app others can use

30 Strategy 1: SQL Server Your hosting plan gives you all the DBs you need Latency of calling DB server is acceptable Don’t kill yourself by calling DB too much Cache, Cache, Cache

31 Strategy 2: File System Now, SQL Server Later
Repository Pattern LINQ lets you query object collections Switch to SQL Server if you grow Not as big a deal as it once was SQL Server now pretty cheap

32 Helpful Links MSDN: Dynamic Management Views and Functions
SQLServerCentral SQLBlog

33 Helpful Queries SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition') select top 100 * from sys.dm_tran_locks select login_name, count(1) from sys.dm_exec_sessions group by login_name order by count(1) desc SELECT creation_time ,cursor_id ,name ,c.session_id ,login_name FROM sys.dm_exec_cursors(0) AS c JOIN sys.dm_exec_sessions AS s ON c.session_id = s.session_id WHERE DATEDIFF(mi, c.creation_time, GETDATE()) > 5;


Download ppt "Data Persistence In A Web Hosted World"

Similar presentations


Ads by Google