zoukankan      html  css  js  c++  java
  • 不使用Visual Studio开发ASP.NET MVC应用(上篇)

         入行十多年,工作闲暇,还是对信息技术比较关注,经常测试一些新的技术,感受一下科技发展给大家带来的便利。Visual Studio接触也有年头了,对它总感觉乎近乎远的,既熟悉又陌生,一直没有像用别的工具一样发自内心的喜欢。想想还是因为微软求大求全的策略,而且还在自己工具上绑定一堆用不着的功能所造成的。近两年一直接触Linux,深深的被它的设计思想、理念感染了,导致现在我是能不用微软的东西就不用,能在Linux平台实现的绝不考虑Windows。

         首先说下起因:没有外界因素我是不会考虑Windows的。年前阿里云打折只要几块钱就能用一年云虚拟主机,就买了一个试用了下,先开始选择的CentOS系统,想在上面用NodeJS开发个小站点,后来发现这个虚拟主机不支持NodeJS开发,只能用PHP,PHP我不熟悉(网上说“PHP是最好的编程语言”,其实是个梗),也不想现学。就把系统换成Windows Server了,起码还能用.NET,这个看起来没那么讨厌。说到这还要吐槽一下,阿里云的.NET目前不支持.NET Core只能用传统ASP.NET开发。虽说以后肯定会支持NodeJS和.NET Core,但现在不行,阿里云也算是搞技术的,没有最新的、好玩的东西,怎么能让开发者喜欢?。

         其次,我这人向来喜欢用最新版的软件,最新的技术(处女座还是强迫症?),不想为玩代码,安装一套Visual Studio,因为它太大了,真的是太大了,离线安装文件27G,安装ASP.NET Web开发工具要4个多G,我需求这么简单,装那么大的IDE干嘛?微软究竟懂不懂开发者?

    (上面都是牢骚,正文开始)

    ================

    参考:http://stackoverflow.com/questions/6783378/how-to-develop-a-simple-asp-net-mvc-project-without-visual-studio

    我的实现和stackoverflow有点不一样,并且加入了对Entity Framework的支持

    需要安装的软件

    1. ASP.NET MVC3 with Tools
    https://www.asp.net/downloads/previous

    如果不想安装这个,或因为版本旧找不到,可以直接从这里这里下载

    2. .NET Framework(with csc.exe tool),这个自己百度,找Microsoft官网下载,最新版.NET 4.6或4.7都可以

    安装好上面两个必备工具后,接着下面步骤:

    第一步:随便找个空文件夹,我们叫它项目根目录“/”,在根目录/下建立文件HomeController.cs文件,输入以下代码:

     1 using System.Web.Mvc;
     2 
     3 namespace MyApplication
     4 {
     5     public class HomeController : Controller
     6     {
     7         public ActionResult Index()
     8         {
     9             return View();
    10         }
    11     }
    12 }

       第二步,在根目录/下,建立Global.asax文件,输入下面代码:

    1 <%@ Application Codebehind="Global.asax.cs" Inherits="MyApplication.MvcApplication" Language="C#" %>

      第三步,在根目录/下,建立Global.asax.cs文件,输入代码:

     1 using System.Web.Mvc;
     2 using System.Web.Routing;
     3 
     4 namespace MyApplication
     5 {
     6     public class MvcApplication : System.Web.HttpApplication
     7     {
     8         protected void Application_Start()
     9         {
    10             RouteConfig.RegisterRoutes(RouteTable.Routes);
    11         }
    12     }
    13 }

       第四步,在目录/App_Start下建立RouteConfig.cs文件,输入代码:

     1 using System.Web.Mvc;
     2 using System.Web.Routing;
     3 
     4 namespace MyApplication
     5 {
     6     public class RouteConfig
     7     {
     8         public static void RegisterRoutes(RouteCollection routes)
     9         {
    10             routes.MapRoute(
    11                 name: "Default",
    12                 url: "{controller}/{action}/{id}",
    13                 defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    14             );
    15         }
    16     }
    17 }

       第五步,在/Views/Home目录下建立Index.cshtml,输入代码:

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4     <meta charset="utf-8" />
     5     <title>Home</title>
     6 </head>
     7 
     8 <body>
     9     <h1>Home Page.</h1>
    10 </body>
    11 </html>

       第六步,在/Views目录下建立web.config文件,输入代码:

    <?xml version="1.0"?>
    
    <configuration>
      <configSections>
        <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
          <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
          <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
        </sectionGroup>
      </configSections>
    
      <system.web.webPages.razor>
        <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <pages pageBaseType="System.Web.Mvc.WebViewPage">
         <namespaces>
            <add namespace="System.Web.Mvc" />
            <add namespace="System.Web.Mvc.Ajax" />
            <add namespace="System.Web.Mvc.Html" />
            <add namespace="System.Web.Routing" />
            <add namespace="MyApplication" />
          </namespaces>
        </pages>
      </system.web.webPages.razor>
    
      <appSettings>
        <add key="webpages:Enabled" value="false" />
      </appSettings>
    
    </configuration>

       第七步,在根目录/下建立web.config文件,输入代码:

     1 <?xml version="1.0"?>
     2 <configuration>
     3 
     4   <appSettings>
     5     <add key="webpages:Enabled" value="false"/>
     6   </appSettings>
     7 
     8   <system.web>
     9     <compilation targetFramework="4.5">
    10       <assemblies>
    11         <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    12         <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    13       </assemblies>
    14     </compilation>
    15 
    16     <customErrors mode="Off"/>
    17   </system.web>
    18 
    19 
    20 </configuration>

       第八步,在根目录/下建立bin文件夹,为方便编译,将文件C:Program Files (x86)Microsoft ASP.NETASP.NET MVC 3AssembliesSystem.Web.Mvc.dll拷贝进去,打开命令提示符,执行以下命令,将源代码编译为dll:

    C:WindowsMicrosoft.NETFramework64v4.0.30319csc.exe /t:library /out:binMyApplication.dll /r:"binSystem.Web.Mvc.dll" ControllersHomeController.cs Global.asax.cs App_StartRouteConfig.cs

    没有任何错误的话,bin目录下应该已经生成了MyApplication.dll文件。

    编译完后,可以将下列文件发布到阿里云或任意一个装了IIS且支持ASP.NET的Windows服务器,打开浏览器,应该可以看到期待的结果了。

    binMyApplication.dll
    Views*
    Global.asax
    web.config

    注:按照ASP.NET的目录结构规范,可以把上面HomeController.cs放到Controllers文件夹里更合适,同时记得修改编译命令里对应路径。

    如果你在测试的时候遇到任何问题,欢迎留言。下一篇我将介绍如何在这个ASP.NET MVC项目里加入Entity Framework和Mater Page的支持。

  • 相关阅读:
    Linux命令应用大词典-第11章 Shell编程
    Kubernetes 学习12 kubernetes 存储卷
    linux dd命令
    Kubernetes 学习11 kubernetes ingress及ingress controller
    Kubernetes 学习10 Service资源
    Kubernetes 学习9 Pod控制器
    Kubernetes 学习8 Pod控制器
    Kubernetes 学习7 Pod控制器应用进阶2
    Kubernetes 学习6 Pod控制器应用进阶
    Kubernetes 学习5 kubernetes资源清单定义入门
  • 原文地址:https://www.cnblogs.com/andy65007/p/6867417.html
Copyright © 2011-2022 走看看