使用MVS 2010和Uhuru PaaS部署您的第一个.NET数据库应用程序

我希望我的上一篇文章能提起你对这篇文章的兴致!

不久之前,我和一个朋友正在讨论云计算,SaaS,IaaS和PaaS。

我们都有一个共同的重要因素,那就是我们在IT行业中是一起开始的职业生涯,并在后来成为了我们所对应领域的IT架构师/解决方案架构师。

所以他问了我一个关于我对PaaS的想法,以及它会在实际中如何影响传统的软件开发/部署的问题。

我的脑海中灵光一现,然后我想到的是微软Azure,Cloud Foundry。顺便说一下,那时我已经开始接触到了UhuruCloud Trial PaaS。

然后我向他提起了UhuruCloud。

他首先问了我一个问题,它是否仅适用于.NET应用程序?我的回答则是否,它针对的是托管MSSQL和MySQL数据库平台+ NoSQL数据库的基于Windows和Linux的应用程序,如MongoDB和Redis等

他沉默了一会儿。然后继续,

尔后他提到,Uhuru是否还是测试版本?

我说是的,他是对的,我也重复了他提到的我在这个过程中最初陷入的一些错误。

作为架构师,我们接下来得出的结论是,世界上没有任何软件是完美无缺的。

image.png。

最后,他说他正打算去看看Azure。

然后我告诉他尝试Azure是没有问题的,但在Uhuru PaaS上部署.NET应用的时间比Azure少了很多。

然后他想让我展示一下将.NET DB应用程序移植到云端到底有多容易。

当我写这篇博客的时候,我告诉他,我会在我们演讲的时候为你演示。

他非常期待。

现在回到正题

我的读者们,根据我上一篇文章,我已经提到了我们将一起学习如何将使用.NET数据库的应用程序部署到Uhuru PaaS!

【注意:如果您想以原始尺寸查看图像,只需单击即可查看大图】

系统要求

基于Windows 7开发工作站的Visual Studio 2010 Professional或更高版本

从Uhuru软件网站上下载取决于您的操作系统架构的x86 / x64MMC插件

取决于您的Visual Studio版本的x86 / x64Visual Studio插件

名称为dotNETTestApp-withDB的示例应用程序

最后且最重要的您需要单击下方链接获得一个Uhuru PaaS试用帐户

http://www.surveygizmo.com/s3/796977/Uhuru-beta-registration

上面工具的下载链接如下

安装好后就让我们开始吧!

在继续之前,我想了解Uhuru的公共PaaS和私人PaaS的架构是如何设计的。

下面是Uhuru的公共PaaS设计

下面是Uhuru私人PaaS设计

【下一步】

将示例应用程序解压缩到您选择的文件夹

1)打开dotNETTestApp-withDB文件夹 并双击DatabaseTestApp Visual C#项目

2)现在在Visual Studio 2010中,您应该看到如下图所示的App和Web.config文件

3)为了保证我们已经设置好了Cloud Manager - 点击View - >Cloud Manager

4)现在我们要创建一个新的服务以使我们的示例应用程序连接到Uhuru PaaS

在我们开始之前,我想给大家看一下示例应用程序中用于创建数据库表的示例代码

//这将创建一个名为test的表,并分别包含一系列20行的随机GUID。这个应用程序将有一个用来显示数据和包含一个按钮的GridView。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;
using System.Web.Configuration;

namespace DatabaseTestApp
{
    public partial class _default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            string connString = WebConfigurationManager.AppSettings["dbConnectionString"];
            string tableName = “test” + Guid.NewGuid().ToString().Replace(“-”, “”);
            SqlConnection conn = new SqlConnection(connString);
            conn.Open();
            try
            {
                SqlCommand command = conn.CreateCommand();
                command.CommandText = “Create table ” + tableName + ” (id smallint, description varchar(50))”;
                command.ExecuteNonQuery();
                for (int i = 0; i < 20; i++)
                {
                    command.CommandText = “insert into ” + tableName + ” (id, description) values (” + i + “, \’” + Guid.NewGuid().ToString() + “\’)”;
                    command.ExecuteNonQuery();
                }

                command.CommandText = “select * from ” + tableName;
                SqlDataReader reader = command.ExecuteReader();
                GridView1.DataSource = reader;
                GridView1.DataBind();
            }
            catch (Exception ex)
            {
                Response.Write(“oops, something went terribly wrong:” + ex.ToString());
            }
            finally
            {
                conn.Close();
            }
        }
    }
}

现在让我们来看一下Web.config文件

<?xml version=”1.0″?>

<!–
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  –>

<configuration>
    <system.web>
        <compilation debug=”true” targetFramework=”4.0″ />
    </system.web>
  <appSettings>
    <add key=”dbConnectionString” value=”{mssql-2008#databaseTestAppDb}”/>
  </appSettings>
</configuration>

<add key>部分是非常重要的,因为它定义了我们即将部署到Uhuru PaaS的应用程序的服务名称。

确保您使用相同的名称,否则应用程序将无法成功部署。

现在是时候来点有趣的东西了!

【在Cloud Manager中定义您的Uhuru Cloud凭据】

1)在Visual Studio中 - >Cloud Manager Window - >点击Connect to Target

2)添加由Uhuru发送给您的Uhuru试用PaaS凭据

3)点击Add即可

4)你现在应该可以看到你的Uhuru证书添加完毕了

5)点击云管理器上的连接按钮,并确保当前状态为Current Target: your Uhuru credentials

6)单击服务按钮 - >右键单击并选择添加新服务

7)现在为了简单起见,我将选择在Web.config文件中定义的相同服务名称。对于服务类型 - >选择MSSQL并单击创建

8)现在你就可以看到创建好的服务了

9)现在我们需要做一些验证然后再继续部署

如屏幕截图所示,我们需要确保在部署之前已经设置好了Web应用程序的以下属性

1)Deployable : True

2)Services:mssql#DatabaseTestApp

3)URL:anilapp.uhurucloud.net <your custom URL.uhurucloud.net>

最后在解决方案资源管理器 - >右键单击该项目,然后选择生成

验证其是否成功。

现在是时候把App推送到Uhuru PaaS上了

右键单击项目,然后选择“ 生成并推送”

现在让Uhuru Cloud Manager自己去完成吧

已经成功了!Woot!

现在点击Cloud Manager中的后退按钮

你可以看到我们的应用程序已经部署成功但没有启动

要启动应用程序 - >右键单击AppName,然后选择Start selected apps

现在你就可以看到应用程序已经启动成功了

现在让我们点击网址,在您钟爱的网页浏览器中查看应用程序

真棒!

现在让我们点击按钮插入示例数据

祝贺!

毫无悬念,我们刚刚在Uhuru PaaS上部署了一个启用数据库的程序!

一旦你完成了以上步骤,你也可以通过右键单击所选的应用程序,并选择Stop selected apps来停止应用程序,

【结论】

请注意这仍然在测试版!我已经遇到了一些错误,但如果你严格按照这篇博客的步骤应该是没有任何问题的!

Uhuru PaaS适用于在什么样的场景下?

适用的场景

不适用的场景

希望从Windows和Linux构建和部署跨平台应用程序到云的应用程序开发人员

仅用于.NET和SQL Server的商店

需要在生产服务器上使用最少的配置和更少的IT管理对应用程序进行测试、配置的测试和开发环境

通过指定需要部署的实例的数量,可以部署在具有自动故障转移和虚拟机/自我修复功能的高度可扩展环境中。

适合公共和私有云计划

本文的版权归 EldestBard 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏微信终端开发团队的专栏

Android拆分与加载Dex的多种方案对比

对于Android大型程序来说,64k方法数与线性内存的限制都是必须要考虑的问题。对于它们的原理与分析,可参考下面这篇文章:http://ingramchen...

3588
来自专栏CSDN技术头条

OpenStack Neutron之持续测试

一、OpenStack持续测试概述 众所周知,OpenStack作为一个特大型软件开发项目,有着数千人的开发人员,每天要处理千计提交的代码,几千条Gerrit...

2878
来自专栏技术博客

aehyok.com的成长之路三——框架结构

aehyok.com的成长之路一——开篇 中主要阐述了自己为什么建立自己的网站,以及个人网站的大致方向。

624
来自专栏walterlv - 吕毅的博客

通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇)

发布于 2018-08-15 07:42 更新于 2018-08...

401
来自专栏ASP.NETCore

.NET Core使用NLog通过Kafka实现日志收集

NET Core越来越受欢迎,因为它具有在多个平台上运行的原始.NET Framework的强大功能。Kafka正迅速成为软件行业的标准消息传递技术。这篇文章简...

565
来自专栏aoho求索

Spring Cloud Bus中的事件的订阅与发布(二)

在之前的文章Spring Cloud Bus中的事件的订阅与发布(一)介绍了消息总线的相关事件。本文主要介绍消息总线的事件监听器以及消息的订阅与发布。 事件监听...

3387
来自专栏程序你好

HTTP/2:背景、性能和实现

591
来自专栏张戈的专栏

为WordPress开启Nginx缩略图功能,七牛从此陌路

张戈博客曾分享过不少关于云存储的一些经验技巧,对七牛感兴趣或者遇到相关问题的朋友可以看一看以前的相关文章: 七牛&又拍云 CDN 云存储节省 GET 次数的小...

3275
来自专栏BeJavaGod

nginx + fastDFS - 单机图片服务器解决方案

最近经常有人问图片上传怎么做,有哪些方案做比较好,也看到过有关于上传图片的做法,但是都不是最好的 ? 今天再这里简单讲一下上传图片以及图片服务器的大致理念(正式...

3916
来自专栏Web 开发

用PHP来执行定时任务

上个月有个需求,用PHP写了一个接口给SDK使用,原始数据使用MySQL进行记录。热数据用Redis进行+1的原子操作。每隔一定时间,由一个PHP脚本(姑且就命...

680

扫码关注云+社区