SQLServer · 最佳实践 · 开发基于.NET CORE的LINUX版本的数据库应用

简介:

title: SQLServer · 最佳实践 · 开发基于.NET CORE的LINUX版本的数据库应用

author: 石沫

背景

最近有客户在基于.NET CORE的LINUX版本连接数据库的应用程序,在开发中,会遇到一些问题,客户会错误地将原因定位到我们的SQL SERVER,陆续收到一些工单,因此,我们需要有计划增强这个方面的能力,同事正确引导用户使用SQL SERVER。

部署环境

1. 服务器版本:ubuntu 14.04

2. .NET CORE 版本:1.0

3. 安装过程

3.1 增加 dotnet apt-get feed

sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list'
sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893
sudo apt-get update

3.2 安装.NET Core SDK

sudo apt-get install dotnet-dev-1.0.0-preview2-003131  

https://www.microsoft.com/net/core#ubuntu

开发第一个数据库应用程序

1. 创建文件夹

mkdir SqlConnect

2. 创建源码文件及编写内容

使用的是C#语言,连接的数据库是RDS for SQL SERVER 2008 R2,有GITHUB上文章介绍,连接SQL SERVER 2008 R2需要SP3,但实际上是不需要的。这个客户会误解!

touch DbApp.cs
vim DbApp.cs
chmod +755 DbApp.cs
---------------------------------------------------------------------------------------------- 
using System;
using System.Data.Common;
using System.Data.SqlClient;

namespace ConsoleApplication
{
    public class Program
    {
        public static void Main(string[] args)
        {    
           String sqlConnStr="Data Source=myServer,3433;User ID=zhangshan;Password=123;Initial Catalog=master";
        String sqlStr="select spid,waittype  from sys.sysprocesses";
        
        SqlConnection sqlConn= new SqlConnection(sqlConnStr);
        SqlCommand sqlCmd = new SqlCommand(sqlStr,sqlConn);
        try
        {
            string spid=String.Empty;
            string program_name=String.Empty;

            sqlConn.Open();
            SqlDataReader reader = sqlCmd.ExecuteReader();
            while(reader.Read())
            {
                spid=reader[0].ToString();
                program_name=reader[1].ToString();
                Console.WriteLine("spid="+spid+" "+"waittype="+program_name);
            }
            //Console.WriteLine("The server is:"+svrName);
        }
        catch(SqlException e)
        {    
            Console.WriteLine(e.Message);
        }
        finally
        {
            sqlConn.Close();
        }        
        //Console.Read();
        }
    }
}

3. 创建配置文件

默认情况下,system.data.*包是不存在的(.Nuget/package),因此需要添加包的依赖
"System.Data.Common": "4.1.0",
"System.Data.SqlClient" : "4.1.0",
"System.Runtime": "4.1.0"

touch project.json
vim project.json
---------------------------------------------------------------------------------------------- 
{
    "version": "1.0.0-*",
    "buildOptions": {
        "debugType": "portable",
        "emitEntryPoint": true
    },
    "dependencies": {
        "System.Data.Common": "4.1.0",
        "System.Data.SqlClient" :  "4.1.0",
        "System.Runtime": "4.1.0"
    },
  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.0.1"
        }
      },
      "imports": "dnxcore50"
    }
  }
}

4. 还原整个项目的依赖库

找当前目录下的项目文件(project.json),然后利用NuGet库还原整个项目的依赖库,然后遍历每个目录,生成项目文件,继续还原该项目文件中的依赖项。

dotnet restore

restore

5. 编译应用程序

dotnet build

build

6. 运行运用程序

dotnet run 

run

OK,第一个简单的数据库程序就完成了。熟悉C#的同学开发起来非常简单!

目录
相关文章
|
12月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1778 152
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
1205 156
|
12月前
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
896 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
12月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
SQL 人工智能 Linux
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
511 5
|
Ubuntu 安全 小程序
linux|ubuntu.v18.10版本即将发布,linux桌面让您动心
如果你使用闭源系统,那永远也就别想了!有了这样的需求,也许最终将linux带到人类大众通用市场的是我们中国!
505 0
|
Web App开发 Ubuntu Linux
又该换Linux版本了!
如果你经常用谷歌搜索,使用终端输入命令,推荐你使用Fedora而不是Ubuntu。 如果你不是一个技术用户或程序员,仍推荐使用Ubuntu,还不动手去试试,别忘了将你的体验留在评论区哦~
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
671 158
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。

热门文章

最新文章