威尼斯网址开户网站.Net Core(一)环境搭建与基本使用

使用git的基本操作

新建项目后,使用NuGet安装包:

.Net Core(一)环境搭建与基本使用

.Net Core V1.0 创建MVC项目

在.net core 下的wcf
和framework下的wcf使用方式有点不太一样。在core下用wc,需要安装VS扩展Visual
Studio WCF Connected
Service,目前这个插件不是特别的稳定,经常会出现莫名其妙的错误,前段时间最高支持到.net
standard 1.6,可是我用的是.net core 2.0 于是,在同事的提醒下,我先将
.net standard 降为1.6
调用完wcf服务后,再升级为2.0。不会出现任何错误。最近好了,升级到2.0了,直接可以在
standard
2.0下调用wcf服务了。不过插件依旧是不稳定。解决方法是,多添加几次,别怕麻烦,只要你发布的wcf服务配置没有错误。多试几次,就行了。

1.Git的克隆

Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools

 

创建MVC项目有两种方式:

方法的问题:在.net core
环境中用WCF全是异步的,自动会将你的wcf服务提供的同步方法变为异步方法,具体为什么这么做,原因我还不是清楚。Framework
中则不会出现这种情况,如果是同步的,那么调用的wcf服务也是同步的,异步的还是异步的,不会进行转化。

git clone https://XXXXXXXXXXXXXXXXXXXXX

 

一、系统配置

一.创建Web项目:(有太多没用的东西要去删太麻烦)

类型的问题:现在.net core 2.0 可以直接用Framework的包
,我在这里举个例子。

2.拉取

接下来使用命令,根据数据库创建实体

a) Linux下如果想要打开类似任务管理器,可以使用top命令,在控制台会动态刷新CPU和内存占用、进程等信息。vmstat和free命令可以分别只显示CPU和内存的使用情况。磁盘占用在Ubuntu下可以通过磁盘分析器查看。

 威尼斯网址开户网站 1

///这代表一个公用的类
namespace CNblogs.job.A
{
   public class a
  {
       public string Name{get;set;}
   }
}
//这代表WCF的服务
namespace CNBlogs.Job.WcfHost
{
   using CNBlogs.job.A;
   public class  wcfService
   {
      //这代表WCF服务中的一个测试方法
      public a Test(string name)
      {
          return new a(){Name=name};
      }
   }
}
git pull
Scaffold-DbContext "Server=.;Database=EFCore;Trusted_Connection=True;User ID=你的连接数据库的用户;Password=你的连接数据库的密码;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir 要存放实体的文件夹名称

另外如果要火狐支持html5视频播放,要在设置中的Content项中勾选DRM。

2.项目目录结构:

 假设我们已经把这个服务发布在了IIS上,或者说这个服务已经跑起来了。
我们在Core中的项目已经加入这个WCF服务的引用,名称为:WcfTestService。

3.查询状态

 

在vi界面按ctrl+z会挂起vi回到命令行,这时可以输入fg返回。

威尼斯网址开户网站 2

namespace CNBlogs.job.Core.WcfTest
{
    using CNBlogs.Job.A
    public class C 
    {
        public a GetWcfService()
        {
          var name="test"; 
          var WcfClient=new WcfTestService.WcfTestServiceClient();
          //在这里我将异步方法转化为了同步的方法
          var result=WcfClient.TestAsync(name).Result;
          //如果这时返回Result 会报错 ;无法将WcfTestService.a的类型转化为CNBlogs.Job.A.a的类型
          //我们需要用到AutoMapper进行一个类型的转化,这样才不会报错
          AutoMapper.Mapper.Initialize(c=>c.CreateMap<WcfTestService.a,,CNBlogs.Job.A.a>());
          return AutoMapper.Mapper.Map<CNBlogs.Job.A.a>(result);
        }
    }
}
git status

输入ls
-a可以查看被隐藏的文件。

此种方法要注意的是,会创建好多个json文件,下面就简单的介绍:

 希望能够帮助到和我一样的小菜们。

4.添加

在vi中,在命令模式下按yy可以复制整行,然后在原位置按p可以复制到下一行。

launchSettings.json//启动配置文件;

git add .

 

appsettings.json //配置文件,如framework下的webconfig文件;

5.提交

b) 配置ssh

bower.json //存放文件的引用,例如:jquery等文件;

git commit -m '备注内容'

所安装的ssh包的名称为openssh-server,执行sudo
apt-get install openssh-server安装后,可以使用netstat
-tlp确认ssh是否启动。可以单独执行sudo /etc/init.d/ssh
start来启动或执行sudo /etc/init.d/ssh
restart来重启。ssh默认端口为22,也可在
etc/ssh/sshd_config修改Port。然后在windows下就可以使用Putty等工具连接linux了。

bundleconfig.json //自动压缩可关联文件;

6.推送

c) 安装mysql

 

git push

Mysql包的名称为mysql-server,mysql-client没有安装还没发现问题。登录方式为
mysql -u用户名
-p密码,然后就进入mysql界面,这里可以输入sql语句,使用quit可退出。远程管理可以使用免费的navicat-lite,虽然目前lite版本不在维护了。要使用远程连接,还需要一系列配置,默认只能本地,执行sudo
vi
/etc/mysql/mysql.conf.d/mysql.cnf用管理员权限打开mysql的配置文件,注释bind-address
#,执行restart重启mysql后,登入mysql执行语句:

二.创建空Web项目:(简单清晰)

7.查询分支

grant all privileges on *.* to root@”<IP>” identified by
“<密码>” with grant option,然后执行flush
privileges;以刷新权限配置。

1.创建.net core web项目:

git branch

d) 安装ftp

威尼斯网址开户网站 3

8.切换分支

通过ftp可将程序包上载到linux服务器。可以选择安装vsftpd包,在客户机可以使用filezilla。但默认只允许下载无法上传。执行sudo
vi
/etc/vsftpd.conf以管理员权限打开配置文件,取消对“允许写入”配置的注释,重启就可以上传了。一般要上传的文件要先打包压缩,tar是简单的打包,可以压缩为zip格式,然后在linux上使用unzip解压。

2.选择空项目:

git checkout 

二、.Net Core

威尼斯网址开户网站 4

8.查看配置信息

a) .net设计之初就是考虑像Java一样跨平台的,大部分类可以移植到linux下,但后来的发展不尽如人意。Xamarin、unity3D就是使用.net开发的跨平台技术。此次.Net
Core基于.net standard,保证了可以在不同平台通用。.net
framework则有不少windows下特有的类。

2.创建完之后,项目目录结构如下:

git config -l 

b) .net framework中的类.net core中大部分还有,但有细微不同比如:

威尼斯网址开户网站 5

9.修改email和name

Core取消了DateTable和DateSet,只能使用DataReader了;

3.手动创建MVC的文件夹:

git config --global user.name '***'
git config --global user.email '***@***.com'

取消了AppDomain、WinForm、WPF;

控制器文件夹:Controllers

10.强制提交

取消了二进制序列化;

视图文件夹:Views

git push origin master -f 

取消了System.Net.Mail,可以使用第三方包如MailKit;

实体文件夹:Models(有需要创建,反之)

11.查看提交记录

取消了串口通讯;

创建完之后项目目录图如下:

git log

SqlConnection降级成为普通的nuget包;

威尼斯网址开户网站 6

12.版本回退

反射的使用发生了变化,大部分方法挪到了System.Reflections命名空间,作为Type类型的扩展方法;

4.创建控制器:(注意自动生成的ScaffoldingReadMe.txt文件,这个文件是提示怎么配置mvc的)

git log --prety=oneline 
git reset --hard head~n
head~ 上一个版本
head~~上两个版本
head~n 上n版本
git reset --hard 版本号

不支持HttpWebRequest、WebClient了,必须用异步的HttpClient;

威尼斯网址开户网站 7

13.查看版本

ILSpy、reflector目前无法反编译core程序,可以使用JustCompiler

威尼斯网址开户网站 8

git --version

关于dotnet命令,使用dotnet
new
console\classlib\sln等可以创建对应的内容,各种操作方式可以查阅官方文档。编译好的dll可以直接用dotnet
+dll名来运行。

5.接下来就是配置了,重点;

 

c) 使用脚本创建项目

我接下来的配置都是参考ScaffoldingReadMe.txt配置步骤;

创建三层项目的脚本如下:

 在项目文件中配置此节点:

mkdir $1

   <ItemGroup>
        <DotNetCliToolReference
Include=”Microsoft.VisualStudio.Web.CodeGeneration.Tools”
Version=”1.0.1″ />
    </ItemGroup>

cd $1

如图:

dotnet new mvc -o $1.web

威尼斯网址开户网站 9

dotnet new classlib -o $1.model

 

dotnet new classlib -o $1.dal

记得保存哦

dotnet new classlib -o $1.bll

6.配置startup.cs文件:(如有重复的还是可以删除,或者修改即可)

dotnet new sln

第一步:

dotnet sln $1.sln add $1.web/$1.web.csproj

 

dotnet sln $1.sln add $1.model/$1.model.csproj

       //Add a constructor:
        public IConfigurationRoot Configuration { get; }

        public Startup(IHostingEnvironment env)
        {
            var builder = new ConfigurationBuilder()
                .SetBasePath(env.ContentRootPath)
                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
                .AddEnvironmentVariables();
            Configuration = builder.Build();
        }

dotnet sln $1.sln add $1.dal/$1.dal.csproj

第二步:

dotnet sln $1.sln add $1.bal/$1.bll.csproj

       //Add MVC services:
        public void ConfigureServices(IServiceCollection services)
        {
            // Add framework services.
            services.AddMvc();
       }

dotnet add $1.dal/$1.dal.csproj reference $1.model/$1.model.csproj

第三步:

dotnet add $1.bll/$1.bll.csproj reference $1.model/$1.model.csproj

      //Configure web app to use use Configuration and use MVC routing:

        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            loggerFactory.AddConsole(Configuration.GetSection("Logging"));
            loggerFactory.AddDebug();

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }

            app.UseStaticFiles();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });
        }

dotnet add $1.bll/$1.bll.csproj reference $1.dal/$1.dal.csproj

7.由于第一次创建控制器的时候,没有创建出来,只是生成了配置mvc的文件,接下来是真正的创建控制器啦:

dotnet add $1.web/$1.web.csproj reference $1.bll/$1.bll.csproj

接下来就和net framework下创建mvc一样;

dotnet add $1.web/$1.web.csproj reference $1.model/$1.model.csproj

 

dotnet restore

如配置还是搞不定,那么就创建非空mvc项目吧,然后去删除不需要的即可;

脚本文件的后缀为.sh,输入bash
<路径/文件名>.sh 项目名就可以批量执行了。

 

 

学习资料:如鹏网.net提高班

 

 

相关文章