65.9K
CodeProject 正在变化。 阅读更多。
Home

Hello World Angular 2+ 数据示例 使用 JavaScriptServices .Net Core 和 PrimeNG

starIconstarIconstarIconstarIconstarIcon

5.00/5 (6投票s)

2017年3月14日

CPOL

6分钟阅读

viewsIcon

26959

您可以使用 JavaScriptServices 和 PrimeNG 创建由数据库驱动的 .Net Core 应用程序。

image

您可以使用 .Net Core JavaScriptServices PrimeNg 创建由数据库驱动的应用程序。

实时示例

您可以在 Microsoft Azure 上实时查看运行中的应用程序: http://helloworlddata.azurewebsites.net

YouTube 视频

image

您可以在此处观看涵盖本文所有内容的 YouTube 视频: https://www.youtube.com/watch?v=i6ke21P-fgA

必备组件

如果您还没有安装,请安装以下先决条件

创建 JavaScriptServices 项目

image

在您的 Microsoft Windows 计算机上创建一个 文件夹(本教程使用 Windows 10 创建)。

注意:文件夹名称中不要包含任何特殊字符。例如,感叹号 (!) 会破坏 JavaScript 代码。

image

您可以输入 CMD 并按 Enter 切换到命令行(仍然在该目录下)。

image

如果您还没有安装 JavaScriptServices,请通过输入(然后按 Enter)来安装

dotnet --install Microsoft.AspNetCore.SpaTemplates::*

image

屏幕将显示可用的模板。

image

通过输入(然后按 Enter)创建 ASP.NET Core JavaScriptServices 应用程序

dotnet new angular

image

应用程序将被创建。

双击 *.csproj 文件以在 Visual Studio 2017 中打开它。

image

它将开始恢复 .Net 依赖项和 node_modules(您可以查看 ../node_modules 目录以查看填充的项目)。

(注意:这可能需要 3-10 分钟或更长时间)

image

Visual Studio 将指示何时完成所有操作。

image

Ctrl+F5 无调试启动

image

应用程序将 生成

image

应用程序将显示。

暂时关闭 Web 浏览器。

添加 PrimeNG

image

现在我们将安装免费的开源 PrimeNG Angular 2 组件。

这将演示如何将大多数 Angular 2+ 库与 JavaScriptServices 集成。

image

打开 package.json 文件并添加

"font-awesome": "^4.7.0",
"primeng": "^2.0.0"

保存文件。

image

打开 webpack.config.vendor.js 文件并添加

  
         'font-awesome/css/font-awesome.css',
         'primeng/primeng',
         'primeng/resources/themes/omega/theme.css',
         'primeng/resources/primeng.min.css', 
         

image

同样,在rules/test 中,添加

    |gif

保存文件。

image

此时,PrimeNg 不支持 服务器端预渲染,因此在 ..\Views\Home\Index.cshtml 中,更改

     <app asp-prerender-module="ClientApp/dist/main-server">Loading...</app>

to

     <app>Loading...</app>

保存文件。

image

我们修改了 webpack.config.vendor.js 文件(添加 PrimeNgFont Awesome),但它不会被正常生成过程更新。每次修改它时,我们都必须手动运行其配置。
在项目根目录的命令提示符下,运行

webpack --config webpack.config.vendor.js

(注意:如果您还没有安装 webpack 工具(例如,运行上述代码时收到错误),您需要先运行:“npm install -g webpack”)

image

components 文件夹中创建一个名为prime 的文件夹,并将以下代码添加到 ..\ClientApp\app\components\prime\prime.component.html

<H1>计数器</H1>
<p>这是一个简单的 Angular 2 组件示例。</p>
<p>当前计数:<strong>{{ currentCount }}</strong></p>
<p-growl [value]="msgs"></p-growl>
<button pButton
type="button"
(click)="incrementCounter()"
label="增加"
icon="fa-check"
class="ui-button-info">
</button>

 

image

创建文件并将以下代码添加到 ..\ClientApp\app\components\prime\prime.component.ts

import { Component } from '@angular/core';
import {
    ButtonModule,
    GrowlModule,
    Message
} from 'primeng/primeng';

@Component({
    selector: 'counter',
    templateUrl: './prime.component.html'
})
export class PrimeComponent {
    public currentCount = 0;
    public msgs: Message[] = [];

    public incrementCounter() {
        this.currentCount++;
        this.msgs.push(
            {
                severity: 'info',
                summary: 'Info Message',
                detail: this.currentCount.toString()
            });
    }
}

image

修改文件:..\ClientApp\app\app.module.ts 以添加

import { FormsModule } from '@angular/forms';
import { PrimeComponent } from './components/prime/prime.component';
import { ButtonModule, GrowlModule } from 'primeng/primeng';

@NgModule({
    declarations: [ 
        ...
        PrimeComponent
    ],
    imports: [
        RouterModule.forRoot([
            ...
            { path: 'prime', component: PrimeComponent },
            ...
        ]),
        FormsModule,
        ButtonModule,
        GrowlModule
    ]
})
...

image

将以下代码添加到 ..\ClientApp\app\components\navmenu\navmenu.component.html

 <li [routerLinkActive]="['link-active']">
	<a [routerLink]="['/prime']">
		<span class='glyphicon glyphicon-th-list'></span> Prime
	</a>
</li>

image

Ctrl+F5 无调试启动

image

当您点击菜单中的 Prime 链接时,您将看到一个使用 PrimeNg 组件的页面。

添加数据库

image

右键单击项目节点,选择 添加,然后选择 新建脚手架项…

image

选择 完整依赖项,然后单击 添加

image

脚手架将运行。

image

关闭打开的 ScaffoldingReadMe.txt 文件。

image

右键单击项目节点并选择 编辑 HelloWorldData.csproj

image

Add

<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0" />

保存关闭文件。

image

Visual Studio 的菜单中,选择 工具,然后选择 连接到数据库…

image

  • 确保 数据源已选择 Microsoft SQL Server 数据库文件 (SqlClient)(如果未选择,请使用 更改按钮)
  • 输入 HelloData.mdf 作为数据库名称,并指示它位于项目根目录下的Data 文件夹中(该文件尚不存在,它将由 Visual Studio 创建)
  • 单击确定

image

单击 创建数据库。

image

Visual Studio服务器资源管理器窗口中(您可以通过 Visual Studio 菜单 视图 -> 服务器资源管理器 访问它),将显示数据库。

展开它,右键单击 节点并选择 添加新表

image

输入以下脚本并单击 更新按钮

	CREATE TABLE [dbo].[WeatherForecast] (
	    [Id]            INT           IDENTITY (1, 1) NOT NULL,
	    [DateFormatted] NVARCHAR (50) NOT NULL,
	    [TemperatureC]  INT           NOT NULL,
	    [TemperatureF] INT NOT NULL, 
	    [Summary] NVARCHAR(50) NOT NULL, 
	    PRIMARY KEY CLUSTERED ([Id] ASC)
	);

image

单击 更新数据库

image

数据工具操作窗口将指示更新何时完成。

image

服务器资源管理器窗口中,右键单击数据库并选择 刷新

image

将显示 WeatherForecast 表。

右键单击表并选择 显示表数据

image

在网格中输入示例数据。

image

完成数据库操作后,务必关闭数据库连接,以防止锁定。

image

解决方案资源管理器中,右键单击项目节点并选择 管理 NuGet 程序包

image

搜索并安装:Microsoft.EntityFrameworkCore.Tools

image

打开 NuGet 程序包管理器控制台

image

Enter

Scaffold-DbContext "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\TEMP\HelloWorldData\Data\HelloData.mdf;Integrated Security=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

然后按 Enter

(更新上面的连接字符串以指向项目中的 .mdf 文件位置)

image

脚手架化的文件将出现在 Models 目录中。

注意:如果您遇到 DBContext 无法找到的错误(Visual Studio 文本编辑器中出现红色波浪线),只需关闭 Visual Studio 并重新打开它。

image

重命名 DataContext 文件和类为 HelloDataContext

image

接下来,我们遵循此链接上的说明: ASP.NET Core - 现有数据库

我们删除OnConfiguring 方法。

我们将以下构造函数添加到类中

    public HelloDataContext(DbContextOptions<HelloDataContext> options) :  base(options) { }

image

我们将以下 using 语句添加到 Startup.cs

	using HelloWorldData.Models;
	using Microsoft.EntityFrameworkCore;

image

我们将以下代码添加到 ConfigureServices 部分

 services.AddDbContext<HelloDataContext>(options => options.UseSqlServer(
Configuration.GetConnectionString("HelloWorldDataDatabase")));

image

将以下设置添加到 appsettings.json 文件

"ConnectionStrings": {
   "HelloWorldDataDatabase": "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=
   C:\\TEMP\\HelloWorldData\\Data\\HelloData.mdf;Integrated Security=True;"
},

(注意:HelloWorldDataDatabase 值需要放在单行上 – 请参阅源代码以获取确切的设置)

image

右键单击 Controllers 文件夹并选择 添加,然后选择 新建脚手架项…

image

选择 API,然后选择 API 控制器(带操作,使用 Entity Framework),然后单击 添加

image

选择以上选项并单击 添加

image

将创建一个从数据库检索数据的 API 控制器。

image

现在我们将 Angular 页面指向新的 API 控制器。

打开 ..\ClientApp\app\components\fetchdata\fetchdata.component.ts 文件,并将 .get 地址更改为

     '/api/WeatherForecasts'

image

当我们运行应用程序并单击 Fetch data 链接时,数据现在将从数据库中检索。

链接 LightSwitchHelpWebsite

Hello World! 使用 Visual Studio 2015 和 ASP.NET 4 的 Angular 2

使用 OData 4 在 Angular 2 中实现 ASP.NET 4 MVC 应用程序安全性

教程:使用 MVC 5 和 OData 4 创建 Angular 2 CRUD 应用程序

教程:使用 MVC 5 和 OData 4 的端到端 Angular 2 应用程序

Angular 2+ Web 应用程序配置向导

具有 CRUD 功能的 Angular 2 Tree

链接 其他

使用 JavaScriptServices 在 ASP.NET Core 上构建单页应用程序/a>

Visual Studio 2017

Node.js

EntityFramework 反向 POCO 生成器

ASP.NET Core - 新数据库

ASP.NET Core - 现有数据库

使用 IIS 发布和运行 ASP.NET Core 应用程序

下载

源文件太大,无法附加到文章,因此项目可在 http://lightswitchhelpwebsite.com/Downloads.aspx 找到

您必须安装 Visual Studio 2017(或更高版本)才能运行代码。

您需要修改 appsettings.json 文件,以指向 .mdf 文件在计算机上的确切位置,具体取决于您将项目解压缩到的位置。

Hello World Angular 2+ 数据示例 使用 JavaScriptServices .Net Core 和 PrimeNG - CodeProject - 代码之家
© . All rights reserved.