一步一步教你实现一个简单的云服务

准备工作:

    Windows Azure只能运行在Windows 7, Windows Server 2008 和Windows Vista 上。暂不支持Windows 2003和XP。昨天安装了Win7,打算尝试写一个Azure小程序,程序很简单,实现图片的简单上传和搜索功能,我顺便研究一下微软的Azure平台,下面是我的软件环境。

    操作系统:Windows 7

    开发工具:Visual Studio2010 RC,Windows Azure SDK ,Windows Azure Tools

第一步:安装Windows Azure SDK 

    首先确定你的操作系统满足要求,Visual Studio可以是Visual Studio2008或者Visual Studio2010。到下面网址下载Windows Azure SDK :

    http://www.microsoft.com/downloads/details.aspx?FamilyID=772990da-8926-4db0-958f-95c1da572c84&displaylang=en 

一旦你安装成功,你的电脑上会多出Windows Azure SDK v1.1 ,如下图:

启动Development Fabric和Development Stroage

显示配置界面:

Development Fabric:

Development Storage:

以上证明你安装成功。

第二步:安装Windows Azure Tools for Microsoft Visual Studio

地址:http://www.microsoft.com/downloads/details.aspx?FamilyID=5664019e-6860-4c33-9843-4eb40b297ab6&displaylang=en

安装之后,Visual Studio会有如下模版:


第三步:新建一个云服务命名为BlobStorage,如下图:

   

使用简单的ASP.NET Web Role,并更名为BlobWebRole,如下图:

得到如下结构的项目:

第四步:修改代码,我们实现一个简单的图片上传和搜索的功能:

1、添加一个connectionstring,如下图

2、将WebRole的代码修改成如下所示:

09124638_OqwX.gif 代码
  public   class  WebRole : RoleEntryPoint
    {
        
public   override   bool  OnStart()
        {
            DiagnosticMonitor.Start(
" BlobConnectionString " );

            CloudStorageAccount.SetConfigurationSettingPublisher((configName, configSetter) 
=>
            {
                configSetter(RoleEnvironment.GetConfigurationSettingValue(configName));
            });

            
//  get the blob connection string
            CloudStorageAccount objStorage  =  CloudStorageAccount.FromConfigurationSetting( " BlobConnectionString " );

            
//  get the client reference
            CloudBlobClient objClient  =   new  CloudBlobClient(objStorage.BlobEndpoint, objStorage.Credentials);

            
//  Get the reference to container
            CloudBlobContainer objContainer  =  objClient.GetContainerReference( " mycontainer " );

            
//  Create the container if it does not exist
            objContainer.CreateIfNotExist();

          RoleEnvironment.Changing 
+=  RoleEnvironmentChanging;

          
return   base .OnStart();
        
        }

        
private   void  RoleEnvironmentChanging( object  sender, RoleEnvironmentChangingEventArgs e)
        {
            
//  If a configuration setting is changing
             if  (e.Changes.Any(change  =>  change  is  RoleEnvironmentConfigurationSettingChange))
            {
                
//  Set e.Cancel to true to restart this role instance
                e.Cancel  =   true ;
            }
        }
    }

3、在页面上拖放几个控件,简单地布局如下:

4、后台代码如下:

09124638_OqwX.gif 代码
     protected   void  Button1_Click( object  sender, EventArgs e)
        {
   
       

            
//  Get the storage account reference
            CloudStorageAccount objStorage  =  CloudStorageAccount.FromConfigurationSetting( " BlobConnectionString " );
            
//  get the Client reference using storage blobend point
            CloudBlobClient objClient  =   new  CloudBlobClient(objStorage.BlobEndpoint, objStorage.Credentials);
            
//  Get Container reference
            CloudBlobContainer objContainer  =  objClient.GetContainerReference( " mycontainer " );
      
            
//  Get blob reference
            CloudBlob obj  =  objContainer.GetBlobReference(FileUpload1.FileName.ToString());

            
//  Set meta values
            obj.Metadata[ " MetaName " =   " meta " ;
            
//  Open a stream using the cloud object
            BlobStream blobstream  =  obj.OpenWrite();
            
//  Write the stream to the blob database
            blobstream.Write(FileUpload1.FileBytes,  , FileUpload1.FileBytes.Count());
            blobstream.Close();

            
//  Browse through blob list from the container
            IEnumerable < IListBlobItem >  objBlobList  =  objContainer.ListBlobs();
            
foreach  (IListBlobItem objItem  in  objBlobList)
            {
                Response.Write(objItem.Uri 
+   " <br> " );
            }

        }

        
protected   void  Button2_Click( object  sender, EventArgs e)
        {
            
//  Get the storage account reference
            CloudStorageAccount objStorage  =  CloudStorageAccount.FromConfigurationSetting( " BlobConnectionString " );
            
//  get the Client reference using storage blobend point
            CloudBlobClient objClient  =   new  CloudBlobClient(objStorage.BlobEndpoint, objStorage.Credentials);
            
//  Get Container reference
            CloudBlobContainer objContainer  =  objClient.GetContainerReference( " mycontainer " );
            
//  Get the blob reference using the blob name provided in the search
            CloudBlob obj  =  objContainer.GetBlobReference(txtSearch.Text);
            BlobStream blobstream 
=  obj.OpenRead();
            
//  Create the image object and display the same on the browser response
            System.Drawing.Image objimg  =   null ;
            objimg 
=  System.Drawing.Image.FromStream(blobstream,  true );
            Response.Clear();
            Response.ContentType 
=   " image/gif " ;
            objimg.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
        }

运行效果:

上传:

搜索:搜出一张美女图片

代码:/Files/zhuqil/BlobStorage.zip

 


原文链接: http://www.cnblogs.com/zhuqil/archive/2010/03/06/MyFirstAzure.html

转载于:https://my.oschina.net/chen106106/blog/43181

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,我会尽量用通俗易懂的语言来回答你的问题。 首先,你需要确定你的图书馆选座网站的功能和目标。是否需要用户登录?是否需要在线预约座位?是否需要支付功能?还是只是提供实时的座位使用情况?在确定了这些之后,你就可以开始设计你的网站的功能模块和界面布局。 其次,你需要选择合适的编程语言和开发工具实现你的网站。一些常用的编程语言包括 HTML、CSS、JavaScript、Python、PHP 等,这些语言都可以用来开发网站。你还需要选择一个适合你的网站的开发框架,比如 Django、Flask 等,这些框架可以帮助你快速开发网站。 接下来,你需要编写你的网站的前端代码,也就是界面展示部分。你可以使用 HTML、CSS 和 JavaScript 来设计网站的布局和样式,使界面看起来更加美观。 最后,你需要编写你的网站的后端代码,也就是数据存储和处理部分。你可以使用 Python 或其他编程语言来编写后端代码,并使用数据库存储用户信息 ### 回答2: 要一步一步实现一个图书馆选座的网站,可以按照以下步骤进行。 1. 需求分析:首先确定网站的目标和功能需求。包括用户可以预约座位的流程、座位信息的展示和管理、用户登录注册、后台管理等。 2. 技术选型:选择适合开发网站的技术栈,包括前端开发技术(如HTML、CSS、JavaScript)、后端开发技术(如Python、Java等)、数据库系统等。 3. 界面设计:设计网站的用户界面,包括首页、座位预约页面、用户登录注册页面等。设计简洁明了的界面,方便用户使用。 4. 数据库设计:设计适合存储座位信息和用户信息的数据库结构。确定数据库字段、表和关系,建立数据库。 5. 前端开发:使用HTML、CSS和JavaScript等前端开发技术,实现网站的前端页面功能,包括用户预约座位、座位信息的展示等。 6. 后端开发:根据需求,使用后端开发技术,如Python或Java等,实现用户登录注册、座位信息的存储和管理等功能。 7. 网站测试和调试:对已完成的网站进行测试和调试,确保各项功能正常运行,不存在漏洞和错误。 8. 部署上线:将已经测试通过的网站部署到服务器上,使其可以通过互联网访问。 9. 运维和后期优化:定期对网站进行维护和优化,修复bug,提高性能,增加新功能,满足用户需求。 以上就是一步一步实现图书馆选座网站的大致流程。具体的实现过程中,需要根据项目需求和实际情况进行具体操作和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值