.net core和angular2之前端篇—1

来源:http://www.cnblogs.com/du-blog/archive/2016/10/16/5967719.html
-Advertisement-
Play Games

今天的這篇文章還是一篇“Hello World”,只不過開發環境有所改變——Visual Studio Code+Angular2+Webapck,也算是正式的開篇了。 一、新建一個文件夾作為此次Demo的根目錄,這裡為:“F:\Visual Studio Code\app1”,併在“命令提示符中打 ...


  今天的這篇文章還是一篇“Hello World”,只不過開發環境有所改變——Visual Studio Code+Angular2+Webapck,也算是正式的開篇了。

  一、新建一個文件夾作為此次Demo的根目錄,這裡為:“F:\Visual Studio Code\app1”,併在“命令提示符中打開”,鍵入:dotnet new -t web  如下圖:

  說明:這不是一個空項目,作為一個demo,太羅嗦了!但是還不清楚如何如何創建空項目,如果有知道的,請不吝賜教!,這裡對“Startup.cs”中的帶代碼做如下調整:

 1 // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
 2         public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
 3         {
 4             loggerFactory.AddConsole(Configuration.GetSection("Logging"));
 5             loggerFactory.AddDebug();
 6 
 7             if (env.IsDevelopment())
 8             {
 9                 app.UseDeveloperExceptionPage();
10                 app.UseDatabaseErrorPage();
11                 app.UseBrowserLink();
12             }
13             else
14             {
15                 app.UseExceptionHandler("/Home/Error");
16             }
17             
18             app.Use(async (context, next) =>
19             {
20                 await next();
21 
22                 if (context.Response.StatusCode == 404
23                     && !System.IO.Path.HasExtension(context.Request.Path.Value))
24                 {
25                     context.Request.Path = "/index.html";
26                     await next();
27                 }
28             });
29 
30             app.UseStaticFiles();
31 
32             app.UseIdentity();
33 
34             // Add external authentication middleware below. To configure them please see https://go.microsoft.com/fwlink/?LinkID=532715
35 
36             app.UseMvc();
37         }
Startup.cs

然後在命令行鍵入:dotnet restore  如下圖

  二、修改package.json,代碼如下:

 1 {
 2   "name": "webapplication",
 3   "version": "0.0.0",
 4   "private": true,
 5    "scripts": {
 6     "postinstall": "typings install",
 7     "build": "webpack",
 8     "start": "webpack-dev-server"
 9   },
10   "license": "ISC",
11   "dependencies": {
12     "@angular/common": "2.1.0",
13     "@angular/compiler": "2.1.0",
14     "@angular/core": "2.1.0",
15   
16     "@angular/platform-browser": "2.1.0",
17     "@angular/platform-browser-dynamic": "2.1.0",
18   
19     "reflect-metadata": "^0.1.3",
20     "rxjs": "5.0.0-beta.12",
21     "zone.js": "^0.6.23"
22   },
23   "devDependencies": {
24     "ts-loader": "0.8.2",
25     "typescript": "2.0.3",
26     "typings": "1.3.0",
27     "webpack": "1.13.0",
28     "webpack-dev-server": "1.14.1"
29   }
30 }
package.json

  三、在根目錄下依次新建tsconfig.json、typings.json、webpack.config.js三個文件,代碼如下:

 1 {
 2   "compilerOptions": {
 3     "target": "es5",
 4     "module": "commonjs",
 5     "moduleResolution": "node",
 6     "sourceMap": true,
 7     "emitDecoratorMetadata": true,
 8     "experimentalDecorators": true,
 9     "removeComments": false,
10     "noImplicitAny": false
11   }
12 }
tsconfig.json
1 {
2   "globalDependencies": {
3     "es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#7de6c3dd94feaeb21f20054b9f30d5dabc5efabd"
4   }
5 }
typings.json
 1 var webpack = require("webpack");
 2 
 3 module.exports = {
 4   entry: {
 5     "app": "./typescript/main.ts"
 6   },
 7   output: {
 8     path: __dirname,
 9     filename: "./wwwroot/js/[name].bundle.js"
10   },
11   resolve: {
12     extensions: ['', '.ts', '.js']
13   },
14   devtool: 'source-map',
15   module: {
16     loaders: [
17       {
18         test: /\.ts/,
19         loaders: ['ts-loader'],
20         exclude: /node_modules/
21       }
22     ]
23   },
24   plugins: [
25     new webpack.optimize.CommonsChunkPlugin(/* chunkName= */"app", /* filename= */"./wwwroot/js/app.bundle.js")
26   ]
27 }
webpack.config.js

  四、在根目錄下新建目錄“typescript”(用戶存放ts文件),並依次新建app.component.ts、app.module.ts和main.ts三個文件,代碼如下:

1 import {Component} from '@angular/core';
2 
3 @Component({
4     selector: 'my-app',
5     template: `<h1>My First Angular 2 App</h1>`
6 })
7 
8 export class AppComponent {}
app.component.ts
 1 import {NgModule}      from '@angular/core';
 2 import {BrowserModule} from '@angular/platform-browser';
 3 
 4 import {AppComponent}  from './app.component';
 5 
 6 @NgModule({
 7     imports:        [BrowserModule],
 8     declarations:   [AppComponent],
 9     bootstrap:      [AppComponent]
10 })
11 
12 export class AppModule {}
app.module.ts
1 import 'reflect-metadata';
2 import 'rxjs';
3 import 'zone.js/dist/zone';
4 
5 import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
6 import {AppModule} from './app.module'
7 
8 platformBrowserDynamic().bootstrapModule(AppModule);
main.ts

  五、在命令行中鍵入“npm install”,安裝文件包(安裝了好多),如下圖:

  六、在命令行鍵入webpack 執行webpack任務,如下圖:

  七、在wwwroot目錄下新建index.html,代碼如下:

 1 <html>
 2   <head>
 3     <title>Angular QuickStart</title>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1">
 6      <script src="js/app.bundle.js"></script>
 7   </head>
 8   <body>
 9     <my-app>Loading...</my-app>
10   </body>
11 </html>
index.html

  八、按下“ctrl+shift+b”快捷鍵,按下圖操作

  九、在命令行鍵入dotnet run,如下圖:

 

  十、最後在瀏覽器鍵入:http://localhost:5000/  如下圖:

  至此又一個Hello World結束了,哈哈!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • spring 註解多選擇是好事嘛? Spring 經過十多年的快速發展和更新,以其獨特的創新帶來了大量的擁躉者,在選擇方面還帶來了更多選擇!譬如spring bean的裝配(在XML中進行顯式配置、在Java中進行顯式配置、隱式的bean發現機制和自動裝配),註解的多元化(基本註解、jsr250、j ...
  • Spring介紹: spring 使用基本的 JavaBean 來完成以前只可能由 EJB 完成的事情。然而, Spring的用途不僅限於伺服器端的開發。從簡單性、可測試性和松耦合的角度而言,任何Java 應用都可以從 Spring 中受益。 簡單來說, Spring 是一個輕量級的控制反轉(IoC ...
  • 【Python練習題 016】 猴子吃桃問題:猴子第一天摘下若幹個桃子,當即吃了一半,還不癮,又多吃了一個。第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以後每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。 這題得倒著推。第10天還沒吃,就剩1 ...
  • 淺析設計模式中的策略模式,包含原理解讀和具體案例代碼的實現。僅為個人學習總結分享,希望圍觀者多提意見。 ...
  • 上一次的《微信小程式之小豆瓣圖書》製作了一個圖書的查詢功能,只是簡單地應用到了網路請求,其他大多數小程式應有的知識。而本次的示例是`知乎日報`,功能點比較多,頁面也比上次複雜了許多。在我編寫這個DEMO之前,網上已經有很多網友弄出了相同的DEMO,也是非常不錯的,畢竟這個案例很經典,有比較完整的AP... ...
  • 一、css文本屬性 (1)文本大小{font-size:value;} 單位:pt:9pt=12px;瀏覽器預設字體大小為16px em:1em=16px; 在CSS2.0中 xx-small:9px x-small:11px small:13px medium:16px large:19px x- ...
  • 上一文章是擴展ExtJS自帶的Date組件。在這裡將創建一個評分組件。 ...
  • 字體絕對是每一個設計非常重要的部分,設計者總是希望有最好的免費字體,以保持他們字體庫的更新。所以今天我要向設計師們分享一組用於簡潔網頁設計的光滑英文字體。這些免費的字體是適用於各種類型的設計,除了網頁,還有海報、標誌、印刷廣告等。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...