本人是作JAVA開發的,由於前兩天看了一篇文章,知道了.net core的存在,很感興趣,因此作了一下嘗試。java
打開visual studio 2017,新建一個.net coremysql
點擊運行,你能夠看到一個網站模板。linux
打開Program.cs,你看到的是這樣的:spring
這個文件是應用的啓動文件,sql
UseKestrel()表示啓用了內置的一箇中間件"Kestrel",就和eclipse的GlassFish是一個意思,但聽說性能比iis高出不少倍。數據庫
UseStartup<Startup>() 泛型指定了啓動時的項目運行時配置文件,就是Startup.cs文件。json
mvc相信你們都已經很熟悉了,就很少說了,咱們鏈接一下數據庫,由於我本機安裝有mysql因此就天然想去鏈接,mvc
因此就去NuGet找相關的模塊,但都沒法安裝,後來看了一個文檔,說是.net core的鏈接庫沒在nuget標準庫裏。app
最後去nuget官網找到了:框架
http://www.nuget.org/packages/MySql.Data.EntityFrameworkCore/
在nuget控制檯下執行這個命令就能夠了:Install-Package MySql.Data.EntityFrameworkCore -Pre
而後在項目下新建一個Modles文件夾,用來存放entity
在modles下新建一個類:
public class User { [Key] public int ID { get; set; } public string Name { get; set; } public string Email { get; set; } public string Bio { get; set; } }
在同一個文件中新建一個ef上下文:
public class EFDbContext : DbContext { public EFDbContext(DbContextOptions<EFDbContext> options) : base(options) { } public DbSet<User> User { get; set; } }
將Stratup.cs文件作以下修改
public void ConfigureServices(IServiceCollection services) { services.AddDbContext<EFDbContext>(options => options.UseMySQL(Configuration.GetConnectionString("MySQL"))); // Add framework services. services.AddMvc(); }
這裏有一個問題,就是
options.UseMySQL
這裏會報錯,說UseMySQL方法不存在,這是由於這個方法是在擴展包裏的,因此要引入MySQL.Data.EntityFrameworkCore.Extensions命名空間。
這裏有個
Configuration.GetConnectionString("MySQL")
的鏈接配置文件,那咱們打開appsettings.json文件,作以下修改:
{ "ConnectionStrings": { "MySQL": "server=localhost;database=template;uid=root;pwd=;charset=utf8;sslmode=none" }, "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Warning" } } }
在mysql裏建一個新庫template ,對照着User.cs文件,新建一張表,寫點測試數據在裏面。
打開Controllers下的HomeControll.cs文件:
public IList<User> UserList() { var list = _context.User.ToList(); return list; }
點擊運行,
在地址欄裏追加地址:/Home/UserList
以上就是對於此次體驗的大概過程,感受相對於java目前最火的框架springmvc,從完整性和模塊獨立上來講,二者的差距已經愈來愈小了,據說2.0版本今年7月左右發佈,頗有可能會超越後者,另外 .net core相較於.net framework的最大變化,就是能跨平臺了,下次再說說怎麼把項目發到linux上執行。