一、前言
最近經常聽說“人生苦短,我選python”這句話,為什么python擁有如此多的粉絲,她和c#、java靜態語言有哪些區別和優略呢?本篇將對python、c#主流的web框架Django和Asp.Net Core做一些分析,帶給大家更多的技術認知。
什么是Django
Django是使用python語言開發的一套web框架,主要用於網站后台和Api開發。由於python語言簡潔的特性,使用Django框架開發網站是十分輕松的事,其中很多開發風格與Node Js相似,也是僅次於Spring boot、NodeJs的熱門后端框架。Django出現至今已經十多年了,但是真正流行還是依靠近幾年Python的迅速崛起。
什么是Asp.Net Core
Asp.Net Core是由微軟支持並開發的一套web框架,主要用於網站后台、企業級后台系統、微服務開發。Asp.Net Core基於C#開發,其最大的特點就是語法優雅、面向對象、安全等,在應對復雜的業務和高性能的系統中有很強的優勢。Asp.Net Core的誕生只有幾年,但是她的“前生“就是Asp.Net,基於.net framework,使用過Windows的人相信無不知曉了。借助微軟的東風和Azure的強力支持,Asp.Net Core在web框架中也是十分流行。
二、如何使用Django
Django經過十多年的發展,其社區和和工具庫已經十分完善,創建一個Django框架只需要幾行cli即可。
創建Django
Step1:安裝python
在python官網選擇最新版本進行安裝:https://www.python.org/
安裝完成后在cmd中查看是否安裝成功:
python --version
安裝成功輸入如下:
Python 3.8.0
Step2:安裝Virtualenv:
我們需要使用pip(Python軟件包的工具)來安裝virtualenv
在cmd中輸入以下命令:
pip install virtualenv
到目前為止所有的安裝都是系統級的,下面所有的安裝包括Django都將在虛擬環境中。
Step3:在虛擬環境中安裝Django
創建用於安裝Django 的文件夾:
mkdir myproject
cd myproject
在myproject文件夾中創建虛擬環境並激活:
virtualenv venv
venv\Scripts\activate
在虛擬環境中安裝Django:
pip install django
安裝一個新單Django項目:
django-admin startproject myproject
安裝后項目結構如下:
啟動Django項目:
python manage.py runserver
到這里一個Django項目就創建完成了,有關Django的視圖、模型和路由操作后面再詳細介紹。
三、如何使用Asp.Net Core
Asp.Net Core誕生時間雖然不長,但是她幾乎繼承了所有Asp.Net的優點:簡單、快速、安全、強大IDE支持。如果你使用過.net或是Visual Studio,那么構建一個Asp.Net Core項目將十分容易。
創建Asp.Net Core
Step1:安裝.net core
在微軟官網選擇最新.net core SDK安裝:https://dotnet.microsoft.com/download
cli查看是否安裝成功:
dotnet --version
Step2:安裝Visual Studio2019
在微軟官網選擇最新Visual Studio安裝:https://visualstudio.microsoft.com/zh-hans/vs/
Step3:創建一個新的Asp.Net Core應用程序
打開Visual Studio選擇創建新的項目:
選擇Asp.Net Core Web應用程序並創建
Visual Studio為我們提供了很多選擇,這里選擇Web應用程序:
創建完成后項目結構如下:
在Visual Studio中按Ctrl+F5啟動Asp.Net Core項目:
Visual Studio已經自動添加的SSL證書,所以可以使用https訪問。
以上就是Asp.Net Core項目創建過程,有關Asp.Net Core中的視圖、模型、路由、REST Api、架構等等后面再作介紹。
四、Django和Asp.Net Core
作為后端框架,Django和Asp.Net Core都有着各自的優勢,下面就分別介紹一下Django和Asp.Net Core的優勢。
Django優勢
- 基於Python,Django基於Python開發,傳承者Python的所有特點,python作為動態腳本語言最大的優勢就是語法簡潔、快速入門,如果學過JavaScript或者是C#、Java等語言,上手python將會十分輕松。
- 豐富的代碼庫,目前python包已經有數十萬之多,可能你想要實現的,在這些包中已經有更好的實現。
- 流行、使用廣,使用Django的代表大廠是Instagram、豆瓣、知乎等。
Asp.Net Core優勢
- 基於C#,Asp.Net Core基於C#,有着C#的所有優勢,c#作為以OOP、安全、語法優雅著稱的語言深受許多開發者的喜愛,微軟還提供了十分完善的文檔供開發者學習,如果你想學習C#將會是件十分輕松的事。
- 強大豐富的標准庫,相對於Django,Asp.Net Core社區的代碼庫並不豐富,但是微軟提供的標准庫卻十分強大,多數情況下並不需要社區的代碼庫,這也是其代碼庫不豐富的原因之一。
- 微軟、Azure強力支持,如果你需要一個跨平台、Azure上的應用程序,Asp.Net Core將會是最好的選擇。
- 強大IDE,Visual Studio一直以宇宙最強IDE著稱,其強大、智能一直深受開發者喜愛。Visual Studio提供強大的代碼提示、異常警告、調試等功能,一旦使用往往叫人欲罷不能,如果你想提高效率、節省開發時間Visual Studio是最好的選擇。
五、如何選擇
上面分別介紹了Django和Asp.Net Core 的優勢,但這兩大web框架似乎各有千秋難以選擇,在這里筆者結合自己的經驗和學習總結給大家一些建議,希望大家能做出最合適的選擇。
語言選擇
沒有最好的語言,只有最合適的語言。在語言選擇上很多人往往存在門戶偏見,網上也經常聽到”某某是世界上最好的語言“,其實語言的設計之初並不是為了打敗其他語言,而是為了最適合某一場景,比如Javascript是最適合web前端,c最適合計算機底層等等。所以我們在技術選型的時候一定要結合公司的業務和未來發展方向,如果公司的主要業務是人工智能、數據挖掘、機器學習,那么python肯定是最合適的選擇,如果公司需要的是安全穩定的后台服務、微服務、業務系統、基於雲端,那么Asp.Net Core會更加合適。
python一直是人工智能、機器學習、數據挖掘領域的傑出代表,c#的最大特點是OOP、安全,所以在企業后台、服務端有着很大的優勢。
框架選擇
在框架大行其道的今天,我們往往不需要糾結於某一語言的選擇,因為現在的大部分框架都是REST風格,所以在一個高端的系統中從來都不止一種語言、一種框架。對於絕大部分的中小企業來說,選擇一種框架也足夠了,這兩個框架均開源免費,所以不需要為收費的問題糾結。Django代碼庫豐富,但標准庫卻遠遠不夠,許多功能都是借助於第三方代碼庫,這些代碼庫可能收費、可能免費、可能高效、可能低效,所以選擇Django往往會糾結於第三方庫的選擇。如果是門戶網站、博客類網站、快速上線的系統,使用Django開發會事半功倍。Asp.Net Core標准庫非常強大而且安全,對於企業級的后台系統、平台系統、雲端系統、微服務十分適合,c#語法中的linq、lamdba、Task、async、await等特性可以從容的應對復雜的業務和高性能的系統。使用DDD架構搭建Asp.Net Core應用程序可以輕松的拆分、解耦業務,對於大型業務系統如:ERP、CRM、WMS等來說不僅提高效率,更加可以靈活的控制業務打造平台級產品。
六、總結
本篇文章介紹了Django和Asp.Net Core如何上手和選擇,以上對比和選擇建議均是本人經驗和學習總結,如有不足還請指出。引用亮劍的一句話”不謀萬世者,不足謀一時;不謀全局者,不足謀一域“,想要為企業做出最適合的選擇,不僅對業務要十分精湛,還要對技術有足夠的認知。