Sunday, December 19, 2010

FTP-Server on Windows Azure from scratch

Using the new Windows Azure 1.3 SDK and the RDP support, you can create your own FTP server in the cloud within less than 30 minutes! Here is a little guide how to do so:

The three major steps are to open the necessary FTP ports to the virtual server, enable RDP on the virtual server and configure the FTP server role on the virtual server.

  1. Download and install the Windows Azure 1.3 SDK
  2. Create a new Windows Azure Project in Visual Studio 2010 and add a Role to that project. In fact it doesn’t matter what kind of role you add to the project. I started by adding a ASP.NET Web Role.
  3. In the Solution Explorer, right click on the WebRole and choose Properties image
  4. In the Endpoints tab on the Properties page add a second endpoint that uses the public port 21 (which is the default port for FTP)image
  5. Now right click on the Cloud Project in the Solution Explorer and choose Publishimage
  6. In the publishing dialog select the option “Deploy your Windows Azure project to Windows Azure” and select the credentials, the deployment environment and the storage account you want to use for the deployment. Then click on “Configure Remote Desktop connections…”
    image
  7. Check the option “Enable connections for all roles”, select or create a certificate that will be used for the RDP connection and provide a user name and password. This user name and password will grant you administrative rights via remote desktop on the server.
    image
  8. Close the dialog and publish your Windows Azure project to the cloud.
  9. After the publishing visit the Windows Azure Management Portal, select the server instance of your Windows Azure project and click on the Remote Desktop Connect button.
    image
    You can either open the .rdp file directly or save it to your computer for later use without having to go to the Management Portal again.
  10. Login to the server with the user name and password you provided in step #7.
    Hint: use “\<yourUserNameHere>” to remove domain information for the login
    image
  11. On the server you first need to remove the binding to port 21 from the IIS default website. Go to: Start > Administrative Tools > Internet Information Services (IIS) Manager, navigate to the only web site in the tree on the left and click on the “Bindings…” link in the Actions pane on the right.
    image
  12. Remove the binding to port 21.
    image
  13. Close the bindings window and close the IIS Manager
  14. Go to: Start > Administrative Tools > Server Manager
    Navigate to the Web Server (IIS) Role in the tree on the left and click on “Add Role Services” in the right part of the window.
    image
  15. Select the role service “FTP Publishing Service”. This should select the services “FTP Server” and “FTP Management Console” automatically, too. If not, select all three manually.
    If necessary, add required role services pointed out by the wizard.
    image
  16. Click “Next” and then “Install”.
  17. Go to: Start > Administrative Tools > Internet Information Services (IIS) 6.0 Manager
    This tool is used to manage FTP on the server.
  18. Expand the tree on the left to the “Default FTP Site”, right click the Default site and
  19. Start the FTP Default Site
    image
    When the IIS6 Manager asks you if it should start the FTP Publishing Service, click “Yes”.
  20. To check if your FTP server is working, open a Command Shell (either on the server or on your local machine) and connect to your server. Use the same credentials for the FTP connection as for the RDP login.
    You can find the address of your FTP server in the title bar of the RDP window.
    image
    image 

Issues:

  • For using passive FTP functionality you need to open up more FTP related ports.
  • When the cloud fabric decides to shut down your server, reboot it or move it to another physical machine, all changes you made via RDP are lost!
    You might solve this by creating startup scripts or upload a pre-configured server image.
  • When your server is restarted or moved all locally stored files are deleted, too. So you need to store the FTP uploads somewhere persistently.

Thursday, December 2, 2010

Win $500 at Azure app contest

Microsoft and Perficient run a Windows Azure app contest. If you submit any application that uses some part of Windows Azure by 11:00 PM ET on December 25, 2010, you can win up to $500.
More information on the contest can be found here. So start coding today ;)

Tuesday, November 30, 2010

Advent Calendar for Windows Azure

While searching for a Advent Calendar for my girlfriend who resides in Austria for her studies, the idea of a cloud advent calendar came into my mind. Ten hours later http://adventcalendar.cloudapp.net was born: A scalable calendar using Windows Azure Blob Storage and Silverlight technologies.

This advent calendar is not only for my girlfriend but everyone can create his own one there. I admit usability and design suffered a little bit from the pressure of time (Dec 1st is tomorrow!") but it really works! Give it a try: Go to http://adventcalendar.cloudapp.net, click the “New Calendar” button and build your own windows azure cloud advent calendar.

Here is a screenshot:calendar

 

 

 

 

 

 

 

 

Use the Management-Link to add images, music and text to the calendar and its items.
Give the Calendar-Link to those who should get the calendar.

I’ll post the code here, soon.

Monday, November 1, 2010

PDC 2010: Windows Azure Storage Deep Dive

The first session that caught my attention is a talk from Jai Haridas on Windows Azure Storage. He gives a great overview of the current state and functionality of Blob Storage, Table Storage, Queue Storage and Cloud Drives. This session has a focus on the scalability of Windows Azure Storage using partitioning and load balancing. A MUST for everyone who creates “real” applications for the cloud.

A nice give-away is the part on best practices with Windows Azure Storage. Jai shows how to

  • support scalability by avoiding the common “append-only” pattern
  • optimize queries to the Table Storage
  • use continuation tokens
    (e.g. request more than 1000 rows from Table Storage)
  • deal with poisoned queue messages

Check out his full speech at http://bit.ly/bfu1iw.

Saturday, October 30, 2010

Catching Up on Microsoft PDC 2010

The annual Microsoft “newsflash” took place over the last two days. It’s a long way from Stuttgart, Germany to Redmond, USA and far too expensive for a student like me. So the next few days I’m going to catch up on the new things presented there and watch the recorded sessions on http://microsoftpdc.com.
Of course, I’ll let you know about all interesting stuff about Windows Azure & Co that can be found there!

Saturday, October 2, 2010

Microsoft MVP Award

Yesterday, I was awarded with the Microsoft MVP Award for my contribution to technical communities on Windows Azure. My gratitude to the ones responsible for the MVP awards in Germany who chose me as a MVP. I am trying to use all advantages of my status as a MVP to stay up to date on Windows Azure topics and enlarge my activities in Microsoft’s communities.

Nico (now MVP)

Saturday, September 18, 2010

Customized Web Roles: Hosted Web Core in Windows Azure

Web roles in Windows Azure strictly limit to a developer what he may and what he may not do. And you may only run one web role per cloud project. On his blog, Steve Marx presents a possibility to use a worker role to behave like a web role by using a Hosted Web Core process. This is similar to what Windows Azure does, when you start up a web role but gives you more power to your web application. Be careful: you also have to take responsibility for the stuff you do!

Read the full article here on Steve Marx’ blog and download the code.

Monday, August 2, 2010

How to check if a BlobContainer or a Blob exists

Earlier versions of the Windows Azure SDK provided two methods DoesContainerExist() and DoesBlobExist() to determine whether a given BlobContainer or Blob already exists. In the current release of the SDK those methods have been omitted, because they seduced developers to write inefficient code.

Using DoesContainerExist() and DoesBlobExist() meant more roundtrips to the storage server as necessary. In order to check the existence of Blobs or Containers it’s recommended now to check if its attributes can be retrieved. If the Blob or Container does not exist, this operation fails and throws an exception. To implement this, use the following code which needs only one roundtrip to the server (though it’s not a great style…):

var container = blobClient.GetContainerReference(path);
try
{
    container.FetchAttributes();
    // the container exists if no exception is thrown 

}
catch (StorageClientException ex)
{
    // the container does not exist
}

The same works for Blobs.

Tuesday, July 27, 2010

Friday, July 23, 2010

Cloud Cover Video series on Channel9

Today I stumbled over a great video series on Windows Azure: Ryan Dunn and Steve Marx have been leading through the Windows Azure platform in over 18 episodes now! Those episodes can be viewed on channel9.

Let’s see if I can provide a full list of topics they covered after having watched the series myself!

Here is the link to the channel9 show: http://channel9.msdn.com/shows/Cloud+Cover/

Thursday, July 22, 2010

Put Your App in the Cloud in only 5 Minutes!

Hello again. In early February 2009 I did release the first round of Azure How-do-I-videos. Since launch a lot has changed. In particular the Migration to the Cloud has been a lot smoother. Today you can take a ASP.NET Application upload the database to SQL Azure, change the connection string and you are almost done.

See the 5-Minute Migration Videos and run your own app in the cloud using the free Windows Azure Test-Accounts available in Germany by simply writing an email to azurenow@microsoft.com

Also I highly recommend the Trainings provided in German that outline Migration of ASP.NET, Silverlight, Java, PHP Apps and discuss Security, SQL Azure, AppFabric
and ADFS in detail.
imageSource: http://msdn.microsoft.com/de-de/windowsazure/ff770837.aspx

Windows Azure: Cloud App talks to local SAP System

I wanted to highlight a stunning example of how a Cloud Application can talk to a local SAP System using the Windows Azure AppFabric.

Tim Fischer from Microsoft has expanded his Cool Blue Time Tracker Sample for Silverlight (which uses a modified version of my change tracking T4 Template for SL3) to run in the cloud and talk to a local SAP System.

image

You can see the full demo and get the source code here
http://www.microsoft.com/germany/net/WindowsAzure/EventPlayer.aspx 
(Bottom right corner of Trainingsmap):

Silverlight & Azure Tips&Tricks: WCF Data Services Relative Path, Default Button, Tooltips

While using Silverlight 4, WCF Data Services and Windows Azure I wanted to share some of the tricks I needed to apply:

1) To make WCF Data Services Tick correctly on Windows Azure you need to add a “/” after the path to the WCF Data Service in the Client due to the load-balancer.

image

2) If you need tooltips in Silverlight try this How do I video:
http://www.microsoft.com/germany/msdn/solve/codeclips/library.aspx?id=msdn_de_40503 [German]

3) If you need a default button in Silverlight try this How do I video:http://www.microsoft.com/germany/msdn/solve/codeclips/library.aspx?id=msdn_de_39850

Wednesday, July 21, 2010

SQL Azure Administration Console “Houston” CTP1

Project Code Named “Houston” provides a mySQL like Admin Console for SQL Azure. It is currently deployed in North US Data Center so it is only quick if your DB also sits there.

You can use it using this URL, if your SQL Azure firewall allows access from Windows Azure.

https://manage.sqlazurelabs.com/. (Login with your SQL Azure Login)

image

You can change the database tables using the design view

image

And you can also change the content of the databaseimage

Tuesday, July 20, 2010

How to use ToolTips in Silverlight applications

Another Silverlight CodeClip deals with ToolTips. It demonstrates how to use them in a simple, advanced and professional way.

  • In the simplest case, ToolTips display some informative text to the user hovering over a control:
    image 
  • But ToolTips can be more powerful:
    image
  • Or even contain dynamic data:
    image

 

 

 

Watch the CodeClip here [German]: http://www.microsoft.com/germany/msdn/solve/codeclips/library.aspx?id=msdn_de_40503

Get the How-To-Guide [German]: http://www.microsoft.com/germany/msdn/solve/knowhow/howto/webentwicklung/WieKannIchToolTipsInSilverlightVerwenden.mspx

Windows Azure SDK (June 2010)

If you want to host .NET 4 based services in Windows Azure, you need to download the newest release of the Windows Azure Software Development Kit. This Update also enables Support for IntelliTrace, which allows you to debug Windows Azure services.

Go to the download page here:
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=21910585-8693-4185-826e-e658535940aa

Wednesday, July 14, 2010

Architecture of a Windows Azure Business App

When you really put a Business Application into the Cloud you will get several requirements from your customers. I will show you in this post how to address these requirements:

a) Single-Sign-On: Can be achieved using ADFS and WIF

b) ERP-System Integration can be accomblished using Windows Azure AppFabric
Services Bus to connect both.

c) Storing relational data can be done in SQL Azure

d) Security of ASP.NET can be implemented via Single-Sign-On and IPFilters (see codeplex for a sample)

e) Session Management: You need to make sure that session data is persisted to SQL Azure by using the SQL Session Provider for ASP.NET

image

Monday, July 12, 2010

Free Windows Azure test accounts

If you’re tired of running your Windows Azure applications in your development fabric only and would like to see how it’s doing in “the real world”, request one of Microsoft’s free Windows Azure test accounts.

Those accounts only run for 14 days but provide full functionality!
Just write an email to azurenow@microsoft.com.

Saturday, July 10, 2010

Webcast on Running Java & PHP on Windows Azure

Holger Sirtl has posted a Video that shows how to run Java and PHP on Windows Azure.

In addition I want to note that there are great tools for Eclipse that PHP and Java developers can use to directly develop from inside Eclipse.

Video [German]
http://blogs.msdn.com/b/hsirtl/archive/2010/06/18/webcast-zur-interoperabilit-228-t-mit-windows-azure.aspx

PHP07 image

Windows Azure Platform Training Kit

For all developers who are new to the Windows Azure platform or those who want to get even more insight to Windows azure – there is a new training kit available on Microsoft’s download center.

The June update consists of presentations, hands-on labs and even videos and demos designed to help developers understand Windows Azure and to learn using the Windows Azure platform. The current release includes updated resources for Visual Studio 2010.

Here is one of the basic videos of the training kit that answers the fundamental question “What is Windows Azure?”:

Get Microsoft Silverlight

For a deep dive into Windows Azure get the Training kit:
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=413e88f8-5966-4a83-b309-53b7b77edf78

Thursday, July 8, 2010

Free(!) Windows Azure Book

Windows Azure team blog announced a free Book about Windows Azure written by developers for developers. “Windows Azure Platform: Articles from the Trenches Volume 1” can be downloaded as PDF for free.

Visit http://bit.ly/downloadazurebookvol1 and download it!

The book is also available on slideshare.net:

And for those who like to read books the traditional way: buy a hardcopy from lulu.com.

What does Azure provide and how fast are servers?

I get typically three questions, I want to provide answers on:

a) Why Azure – how does it make my life easier?
Here is the answer http://msdn.microsoft.com/de-de/ff728566(en-us).aspx 

b) What is the expected performance?
Here are a set of benchmarks that help you estimate the performance of the infrastructure provided by azure
http://azurescope.cloudapp.net/BenchmarkTestCases.aspx 

c) What is the data transfer to and from my computer and Azure?

Microsoft Research has released a throughput analyser that shows you the upload/download performance
http://research.microsoft.com/en-us/downloads/5c8189b9-53aa-4d6a-a086-013d927e15a7/default.aspx

Thursday, June 3, 2010

The best Windows Azure Apps

Windows Azure has now 10.000 customers and you might think ok but do I really need to build an application myself or isn’t there some app available I just download the application package for an run it in the cloud? Yes, there is!

Microsoft Germany puts together a list of applications and tools a new Azure Gallery:
http://www.microsoft.com/germany/net/WindowsAzure/Gallery.aspx 

I have reviewed the apps and tools listed there and even added a few
of my own favorite ones:

a) Use Windows Azure Storage as an encrypted network drive with Gladient Cloud Tools
     http://gladinet.blogspot.com/2010/01/map-drive-and-backup-to-windows-azure.html 
     http://gladinet.blogspot.com/2010/03/secure-backup-to-windows-azure-blob.html

b) Run Wordpress on Azure
    http://wordpress.visitmix.com/

c) Get a Cash-Register for your business or home-business
    http://rentapos.com/ 

d) Use Windows Azure based MonitorGrid Solution to monitor your home server
   http://monitorgrid.com/

e) Use a Collaboration Software in the Cloud
    http://www.dreamfactory.com/

f) Search E-Books on Windows Azure
    http://docjax.cloudapp.net/home/index.shtml

g) Mapping Solution for Windows Azure
   http://visualfusion.cloudapp.net/

h) Find Friends via Bluehoo Mobile App
   http://bluehoo.cloudapp.net/

According to Microsoft also Umbraco now runs on Azure. I am waiting to get the download.

Wednesday, June 2, 2010

Using Default-Buttons in Silverlight

My today’s msdn-solve CodeClip is about porting a standard behavior of applications to Silverlight 4. When filling out a form (either in the web or in a .NET application or elsewhere) users tend to hit the <Return> key and hopefully the application deals with the data entries as intended. But how to implement this in a Silverlight environment?

The key is to use triggers from the Microsoft Expression SDK and automation peers. Triggers can be added to any elements in the XAML markup and listen to a given event. In the CodeClip a trigger is added to the “KeyDown” event of a TextBox. When the event occurs some code is triggered that checks if the pressed key is the <Return> key. If so, an automation peer simulates a click on a given button.
VoilĂ : default button behavior – at your service!

CodeClip [German]: http://www.microsoft.com/germany/msdn/solve/codeclips/library.aspx?id=msdn_de_39850

How-To-Guide [German]: http://www.microsoft.com/germany/msdn/solve/knowhow/howto/webentwicklung/WieKannIchInSilverlightInDialogenEinenDefaultButtonFestlegen.mspx

Tuesday, May 25, 2010

Mastering the Master-Detail View with WCF Data Services in Silverlight 4

In this show how do I Video I discuss several uses of WCF Data Services to realize Master-Detail Views over OData Providers and how to master the client change tracking,

image

How to realize Master-Detail Views with Silverlight 4 on top of WCF Data Service
http://www.microsoft.com/germany/msdn/solve/codeclips/library.aspx?id=msdn_de_39769 [German Video]

Wednesday, May 12, 2010

Consuming WCF Data Services in .NET 4

Based on popular request here is also a how do I video showing how to access WCF Data Services from within a .NET 4 Application.

image

Video: Consume WCF Data Services in .NET 4
http://www.microsoft.com/germany/msdn/solve/codeclips/library.aspx?id=msdn_de_39672 [German]

Wednesday, May 5, 2010

Using WCF Data Services in Silverlight 4

ADO.NET Data Services has been renamed to WCF Data Services in Silverlight 4 and .NET 4. The protocol that is talked between Client and Server has also been renamed and is now known as OData Protocoll. You can get a variety of clients and providers that speak “OData” from http://Odata.org.

OData and WCF Data Services is my favorite technology for data transfer for 3-Tier Architectures because it allows me to retrieve, change and update data on the client without requiring me to write additional server side code that handles queries and the like. In addition Silverlight 4 now supports change tracking on the client which makes my T4 Templates I wrote for Silverlight 3 kind of non-any longer needed.

Here is a how do I video that shows you how to expose an existing Database via OData and access it from Silverlight

Video: Expose Database via WCF Data Services
http://www.microsoft.com/germany/msdn/solve/codeclips/library.aspx?id=msdn_de_39621 [German]

Video: Consume WCF Data Service in Silverlight 4
http://www.microsoft.com/germany/msdn/solve/codeclips/library.aspx?id=msdn_de_39672 [German]