Last week, I did a presentation on Windows Azure at HOWEST, University College West Flanders. As promised, my hands-on-labs of this session.
1. A file archive application to upload/download files into a database in the cloud. This application consists out of a webpage (UploadFile.aspx) to upload files into a SQL Azure database, and a REST service to dowload your files as a stream. You can dowload the sources at : CodeArchiveService.zip
To get you up and running in the develoment fabric, first create a local database in SQL Server and add a table called CodeArchive. Modify the config files to point to your database.
CREATE TABLE [dbo].[ZipArchive](
[CodeName] [varchar](200) PRIMARY KEY CLUSTERED NOT NULL,
[CodeBlob] [varbinary](max) NULL)
Next, to deploy into the cloud: create a database in SQL Azure, create a login and grant access to your database and create a table called CodeArchive (same as above). Now, change the config files to point to this database.
-- On the master database:
CREATE LOGIN <login> WITH password='<password>'
-- On your database:
CREATE USER <user> FROM LOGIN <login>
EXEC sp_addrolemember 'db_owner', '<user>'
2. A photo browser application :
-
Contains a synchronous Upload.aspx (storage right into SQL Azure) and an asynchronous UploadAsync.aspx (blob storage to store the image temporarily + queued messaging to send a message to a background workerrole)
-
Contains a workerrole for thumbnailing the image and saving both the image and the thumbnail in SQL Azure
-
Contains a Silverlight photo browser app which talks to a WCF service to retrieve it's data (no rocket science here to be focused on Azure stuff as much as possible)
You can dowload the sources at : PhotoBookService.zip
Tables needed (both locally and in SQL Azure):
CREATE TABLE [Photo](
[PhotoID] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
[ThumbNailPhoto] [varbinary](max) NULL,
[LargePhoto] [varbinary](max) NULL)
CREATE TABLE [Comment](
[PhotoID] [int] NOT NULL,
[CommentID] [int] IDENTITY(1,1) NOT NULL,
[Comments] [varchar](1000) NULL,
CONSTRAINT [PK_Comment_PhotoID_CommentID] PRIMARY KEY CLUSTERED
(
[PhotoID] ASC,
[CommentID] ASC
))
ALTER TABLE [dbo].[Comment] WITH CHECK ADD CONSTRAINT [FK_Photo_Comment] FOREIGN KEY([PhotoID])
REFERENCES [dbo].[Photo] ([PhotoID])
ALTER TABLE [dbo].[Comment] CHECK CONSTRAINT [FK_Photo_Comment]