asp.net 订阅
ASP.NET又称为ASP+,不仅仅是ASP的简单升级,而是微软公司推出的新一代脚本语言。ASP.NET基于.NET Framework的Web开发平台,不但吸收了ASP以前版本的最大优点并参照Java、VB语言的开发优势加入了许多新的特色,同时也修正了以前的ASP版本的运行错误。 [1-2]  ASP.NET具备开发网站应用程序的一切解决方案,包括验证、缓存、状态管理、调试和部署等全部功能。在代码撰写方面特色是将页面逻辑和业务逻辑分开,它分离程序代码与显示的内容,让丰富多彩的网页更容易撰写。同时使程序代码看起来更洁净、更简单。 [2-3] 展开全文
ASP.NET又称为ASP+,不仅仅是ASP的简单升级,而是微软公司推出的新一代脚本语言。ASP.NET基于.NET Framework的Web开发平台,不但吸收了ASP以前版本的最大优点并参照Java、VB语言的开发优势加入了许多新的特色,同时也修正了以前的ASP版本的运行错误。 [1-2]  ASP.NET具备开发网站应用程序的一切解决方案,包括验证、缓存、状态管理、调试和部署等全部功能。在代码撰写方面特色是将页面逻辑和业务逻辑分开,它分离程序代码与显示的内容,让丰富多彩的网页更容易撰写。同时使程序代码看起来更洁净、更简单。 [2-3]
信息
技术名称
ASP.NET
外文名
ASP.NET
名称简称
.NET
研发公司
微软(Microsoft)
技术全称
Active Server Page .NET
asp.net发展历程
1996年,ASP 1.0(Active Server Pages)版本出现了,它引起了Web开发的新革命,降低了动态网页开发的难度。以前开发动态网页需要编写大量繁杂的C代码,编程效率非常低下,而且需要Web网页开发者掌握非常高的编程技巧。而ASP使用简单的脚本语言,能够将代码直接嵌入HTML,使设计Web页面变得更简单。虽然ASP非常简单,但却能够实现非常强大的功能,这一切得益于其组件。特别是ADO组件,使得在网页中访问数据库易如反掌。这一切推动了动态网页的快速发展与建设,同时使ASP得到迅速流行。1998年,微软公司发布了ASP 2.0,它是作为Windows NT 4 Option Pack的一部分提供的。ASP 2.0与ASP 1.0的主要区别是外部的组件可以初始化,使所有的组件都有了独立的内存空间,并且可以进行事务处理。内置的Microsoft Transaction Server(MTS)使制作组件变得更容易。2000年6月,微软公司宣布了自己的.NET框架。.NET框架的基本思想是:把原有的重点从连接到互联网的单一网站或设备转移到计算机、设备和服务群组上,而将互联网本身作为新一代操作系统的基础。这样,用户将能够控制信息的传送方式、时间和内容,从而得到更多的服务。2001年,ASP.NET浮出水面。它最初的名字为ASP+,后来改为ASP.NET。ASP.NET是微软公司开发的一种建立在.NET之上的Web运行环境,它不是ASP的简单升级,而是新一代的Active Server Pages。ASP.NET是微软公司新体系结构Microsoft.NET的一部分,其中全新的技术架构使编程变得更加简单。借助于ASP.NET,可以创造出内容丰富的、动态的、个性化的Web站点。ASP.NET简单易学、功能强大、应用灵活、扩展性好,可以使用任何.NET兼容语言。 [4-5]  2002年微软发布.NET正式版本.NET Framework 1.0,其中的ASP版本就是ASP.NET 1.0,在此以前发布了两个.NET测试版本Betal和Beta2。2003年微软发布了.NET Frameworrk 1.1正式版,其中ASP版本就是ASP.NET 1.1。2005年微软发布.NET Framework 2.0正式版本,也就是ASP.NET 2.0。 [6] 
收起全文
精华内容
参与话题
问答
  • ASP.NET

    千次阅读 热门讨论 2017-07-30 21:51:51
    ASP.NET又称为ASP+,不仅仅是ASP的简单升级,而是微软公司推出的新一代脚本语言。ASP.NET基于.NET Framework的Web开发平台,不但吸收了ASP以前版本的最大优点并参照Java、VB语言的开发优势加入了许多新的特色,同时...
        ASP.NET又称为ASP+,不仅仅是ASP的简单升级,而是微软公司推出的新一代脚本语言。ASP.NET基于.NET Framework的Web开发平台,不但吸收了ASP以前版本的最大优点并参照Java、VB语言的开发优势加入了许多新的特色,同时也修正了以前的ASP版本的运行错误。

    ASP.NET具备开发网站应用程序的一切解决方案,包括验证、缓存、状态管理、调试和部署等全部功能。在代码撰写方面特色是将页面逻辑和业务逻辑分开,它分离程序代码与显示的内容,让丰富多彩的网页更容易撰写。同时使程序代码看起来更洁净、更简单。

    多语言支持
    多语言支持是ASP.NET的重要新特性之一,主要表现在所支持的编程语言种类多和单个语言功能强两个方面。首先,ASP.NET为Web应用提供一种类似于Java编译技术的“二次编译技术”——中间语言MSIL(Microsoft Intermediate Language)执行架构,先将ASP.NET应用编译成MSIL,再将MSIL编译成机器语言执行。这样,只要能被编译成MSIL的编程语言都可以用来编写ASP.NET应用。
    其次,ASP.NET所支持的编程语言是指这种语言的功能全集(而不是子集),所以,ASP.NET中每种编程语言的功能要比ASP中使用的VB script和Java Script更为强大。
    增强的性能
    在ASP.NET中,页面代码是被编译执行的,它利用提前绑定、即时编译、本地优化和缓存服务来提高性能。当第一次请求一个页面时,cLR对页面程序代码和页面自身进行编译,并在高速缓存cache中保存编译结果的副本。当第二次请求该页面时,就直接使用cache中的结果(无需再次编译)。这就大大提高了页面的处理性能。
    类和名空间
    ASP.NET包含一整套有用的类和名空间(Namespaces)。名空间被用做一种有组织的机制——一种表示可用于其他程序和应用的程序组件的方法。名空间包含类。和类库一样,名空间可以使Web应用程序的编写变得更加容易。HtmlAnchor、HtmlContrl以及HtmlForm是ASP.NET中的几个类,它们被包含System.web.UI.HtmlControl空间中。
    服务器控件
    ASP.NET提供了许多功能强大的服务器控件,这大大简化了web页面的创建任务。这些服务器控件提供从显示、日历、表格到用户输入验证等通用功能,它们自动维护其选择状态,并允许服务器端代码访问和调用其属性、方法和事件。因此,服务器控件提供了一个清晰的编程模型,使得Web应用的开发变得简单、容易。
    支持web服务
    ASP.NET提供了强大的、标准化的web服务支持能力,通过使用Internet标准,可以将一个web服务和其他web服务集成在一起。web服务提供了构建分布式web应用的基本模块。ASP.NET允许使用和创建web服务。
    更高的安全性
    与ASP相比,在支持常规windows身份验证方法的基础上,ASP.NET还提供了Passport和cookie两种不同类型的登录和身份验证方法。同时,ASP.NET还采用了基于角色的安全模式,为不同角色的用户指定不同的安全授权。另一方面,ASP.NET还使得创建基于页面的身份验证工作变得更为简单。
    良好的可伸缩性
    在ASP.NET中,允许使用跨服务器会话(Cross - Server Sessions),其会话状态可以被另一台机器或另一个数据库上的其他的进程所维护。随着信息处理和传输流量的增加,可以为系统添加更多的Web服务器。
    无Cookie会话
    即使在浏览器不允许使用cookie的情况下,ASP.NET仍然能够使用户使用会话状态。与带cookie的会话不同,无cookie会话是通过URL将会话标识(SessionID)传递到ASP.NET页面的。
    展开全文
  • 首先安装如下包 Install-Package Caching.CSRedis Install-Package CSRedisCore Install-Package Microsoft.Extensions.Caching.Memory /// <summary> /// 使用缓存 /// </summary>.../return

    首先安装如下包

    Install-Package Caching.CSRedis
    Install-Package CSRedisCore
    Install-Package Microsoft.Extensions.Caching.Memory

    /// <summary>
    /// 使用缓存
    /// </summary>
    /// <param name="hostBuilder">建造者</param>
    /// <returns></returns>
    public static IHostBuilder UseCache(this IHostBuilder hostBuilder)
    {
        hostBuilder.ConfigureServices((buidlerContext, services) =>
        {
            var cacheOption = buidlerContext.Configuration.GetSection("Cache").Get<CacheOption>();
            switch (cacheOption.CacheType)
            {
                case CacheType.Memory: services.AddDistributedMemoryCache(); break;
                case CacheType.Redis:
                    {
                        var csredis = new CSRedisClient(cacheOption.RedisEndpoint);
                        RedisHelper.Initialization(csredis);
                        services.AddSingleton(csredis);
                        services.AddSingleton<IDistributedCache>(new CSRedisCache(RedisHelper.Instance));
                    }; break;
                default: throw new Exception("缓存类型无效");
            }
        });
    
        return hostBuilder;
    }
    
    class CacheOption
    {
        public CacheType CacheType { get; set; }
        public string RedisEndpoint { get; set; }
    }
    
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }
    
        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .UseIdHelper()//分布式自增Id组件
                .UseLog()//使用serilog日志框架
                .UseCache()//使用CSRedisCore缓存
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }
    
    

    使用

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.Extensions.Caching.Distributed;
    using Microsoft.Extensions.Logging;
    
    namespace CORE.WEBERP.Controllers
    {
        [ApiController]
        [Route("[controller]")]
        public class WeatherForecastController : ControllerBase
        {
            private static readonly string[] Summaries = new[]
            {
                "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
            };
    
            private readonly ILogger<WeatherForecastController> _logger;
            readonly IDistributedCache _cache;
    
            public WeatherForecastController(ILogger<WeatherForecastController> logger, IDistributedCache cache)
            {
                _logger = logger;
                _cache = cache;
            }
    
            [HttpGet]
            public IEnumerable<WeatherForecast> Get()
            {
                //缓存
                _cache.SetStringAsync("redis测试", "123456ask");
                //取缓存
                string key=_cache.GetStringAsync("redis测试").ToString();
                var rng = new Random();
                return Enumerable.Range(1, 5).Select(index => new WeatherForecast
                {
                    Date = DateTime.Now.AddDays(index),
                    TemperatureC = rng.Next(-20, 55),
                    Summary = Summaries[rng.Next(Summaries.Length)]
                })
                .ToArray();
            }
        }
    }
    

    在这里插入图片描述

    备注:其他函数请移到类库中去查看,本人博客里都有。

    展开全文
  • .Net Core的时代中,框架会帮你自动验证model的state,也就是ModelState。框架会为你自动注册ModelStateInvalidFilter,这个会运行在OnActionExecuting事件里面。 基于现有框架的代码编写的话,所以我们不再需要在...

    在.Net Core的时代中,框架会帮你自动验证model的state,也就是ModelState。框架会为你自动注册ModelStateInvalidFilter,这个会运行在OnActionExecuting事件里面。

    基于现有框架的代码编写的话,所以我们不再需要在业务中耦合这样的模型判断代码,系统内部会检查ModelState是否为Valid,如果为InValid会直接返回400 BadRequest,这样就没有必要执行后面的代码,提高效率。因此,操作方法中不再需要以下代码:

    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }
    

    第一种方法:.Net Core 禁用模型验证过滤器

    services.Configure<ApiBehaviorOptions>(options => options.SuppressModelStateInvalidFilter = true);
    

    SuppressModelStateInvalidFilter =true时,会关闭默认模型验证过滤器。[ApiController] 默认自带有400模型验证,且优先级比较高,如果需要自定义模型验证,则需要先关闭默认的模型验证。
    第二种方法:自动替换默认模型验证

    //参数验证
    services.Configure<ApiBehaviorOptions>(options =>
    {
        options.InvalidModelStateResponseFactory = (context) =>
        {
            var error = context.ModelState.GetValidationSummary();
            
            return new JsonResult(Result.FromError($"参数验证不通过:{error.ToString()}", ResultCode.InvalidParams));
        };
    });
    
    展开全文
  • public class Startup { public IConfiguration Configuration { get; private set; } public IHostingEnvironment HostingEnvironment { get; private set; } //在构造函数中注入 IHostingEnvironment和...
    public class Startup
        {
            public IConfiguration Configuration { get; private set; }
            public IHostingEnvironment HostingEnvironment { get; private set; }
            //在构造函数中注入 IHostingEnvironment和IConfiguration,配置已经在Program中设置了,注入后就可以获取配置文件的数据
            public Startup(IHostingEnvironment env, IConfiguration config)
            {
                HostingEnvironment = env;
                Configuration = config;
            }
            public void ConfigureServices(IServiceCollection services)
            {
            services.AddMvc();
            //第二种配置 也可以这样加上日志功能,不用下面的注入                    //services.AddLogging(builder =>                     //{                      //    builder.AddConfiguration(Configuration.GetSection("Logging"))                      //        .AddConsole();                    //});
            }
         //注入ILoggerFactory 
            public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
            {
                if (env.IsDevelopment())
                {
                    app.UseDeveloperExceptionPage();
                }       //第三种配置 注入ILogggerFactory,然后配置参数
                //添加控制台输出
                loggerFactory.AddConsole(Configuration.GetSection("Logging"));       //添加调试输出
                loggerFactory.AddDebug();
                app.UseMvc();
            }
        }
    
    展开全文
  • public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { #region 使用静态文件和目录浏览 app.UseStaticFiles(new StaticFileOptions { ...
  • public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { //允许body重用 app.Use(next => context => { context.Request.EnableBuffering();...
  • 使用vs2019创建Worker Service程序 首先nuget安装 Microsoft.Extensions.Hosting.Windows 在Program中添加UseWindowsService() public class Program { public static void Main(string[] args) ...
  • #region 启用IHttpContextAccessor services.AddHttpContextAccessor(); #endregion 访问 public class MyService { public void DoWork() { var context=HttpContext.Current;... // continue with context ...
  • #region 使用NewtonsoftJson替换掉默认的json序列化组件 .AddNewtonsoftJson(options => { ////修改属性名称的序列化方式,首字母小写 //options.SerializerSettings.ContractResolver = new ...
  • ASP.NET管理系统

    千次下载 热门讨论 2013-01-29 17:08:28
    一个简单的asp.net管理系统,有权限分配,控制到按钮级别.采用vs2008开发,数据库附加即可。
  • Asp.net MVC 与 Asp.net Web API 区别

    千次阅读 2019-07-27 17:00:57
    Asp.net MVC 与 Asp.net Web API 区别 Asp.net MVC 与 Asp.net Web API 区别Asp.Net Web API VS Asp.Net MVC 在我们开发一些web应用时,我们一样可以在MVC Framework 中使用JsonResult 来返回JSON数据,同样也可以...
  • C#和.NET的区别/ADO.NET和ASP.NET的区别

    千次阅读 2019-05-05 09:00:20
    ASP.NET是一个网站开发的技术,是.NET框架中的一个应用模型,用于生成基于Web的应用程序的内容丰富的编程框架。 ADO.NET和ASP.NET的区别 ADO.NET只是一种访问数据库的方式; ASP.NET是一种开发技术。...
  • 使用 namespace CORE.WEBERP { public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } ... public static IHostBuilder CreateHostBuilder(string[] args)...
  • Asp.Net

    千次阅读 2012-11-09 09:45:21
    asp.net 求助编辑百科名片 ASP 是一项微软公司的技术,是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术。 指 Active Server Pages(动态服务器页面) ,运行于 IIS 之中的程序 。 ...
  • ASP.NET 网站模板

    千次下载 热门讨论 2010-02-09 01:08:28
    此项目为 美观、功能全面、含网站后台的asp.net网站模板, 是一款面向企业ASP.NET 网站模板。 软件介绍: 系统是基于.Net平台开发的免费商城系统。功能强大,操作方便,设置简便。无需任何设置,上传到支持asp.net...
  • .NET、ADO.NET、ASP.NET名称解析及.NET平台架构组成

    千次阅读 多人点赞 2016-11-21 22:29:12
    名词解释:Winform、ADO.NET、ASP.NET、ADO、.NET平台架构组成
  • 最新的Pro ASP.NET Web API HTTP Web Services in ASP.NET; 英文高清pdf; 2013年新书,学习ASP.NET Web API 现阶段最权威的一本专业教材; 前置技能:C#(掌握) , MVC(掌握或了解) ,数据库(掌握),HTML(掌握)...
  • Pro ASP.NET MVC 5 (英文pdf+源码)

    千次下载 热门讨论 2014-03-30 13:00:00
    Pro ASP.NET MVC 5 APress, 2013 by Adam Freeman 这是第一本出版的 ASP.NET MVC5 英文版书籍 源码太大, 压缩后约 202M. 依章节分成5个各自独立的压缩包上传. Pro ASP.NET MVC 5 (source code)书附源码Part1( 02_...
  • 知识点:理解 ASP.NET 的概念和优势、会创建 ASP.NET Web Form 程序、理解 ASP.NET Web Form 程序的执行阶段、会使用代码内嵌和代码后置两种方式进行编码。 1、网站开发基础了解 1.1 网站开发各环节组成 1.2 ...
  • ASP.NET通用权限管理系统源代码(含文档、数据库)

    千次下载 热门讨论 2013-08-27 11:30:49
    ASP.NET通用权限管理系统源代码(含文档、数据库) 1.菜单导航管理 2.操作按钮 3.角色管理 4.部门管理 5.用户管理(用户权限) 6.用户组管理(设置成员,用户组权限) 7.系统配置(动态配置系统参数) 8.附加属性...
  • .NET 3.0新特性(RSS) .NET C#基础语法(RSS) .NET C#精髓【月儿原创】(RSS) .NET C#算法(RSS) .NET C#正则表达式(RSS) .NET C#字符串处理(RSS) .NET Freamwork/程序集/IL中间语言(RSS) .NET IIS服务器配置(RSS) .NET ...
  • 初级学软件之ASP.NET第三季 ASP.NET控件的使用 视频课程 主讲内容: 第一讲 文本类型控件-Label 第二讲 文件类型控件-TextBox 第三讲 按钮类型-Button 第四讲 按钮类型-LinkButton 第五讲 按钮类型-...
  • 主讲内容: 第一讲课程简介 第二讲开发环境搭建 第三讲 ASP.NET页面语法 第四讲 ASP.NET页面语法2 第五讲 第一个网站创建
  • C# ASP.NET MVC WebSocket

    千次下载 热门讨论 2012-10-20 18:03:30
    ASP.NET MVC C#语言实现WebSocket
  • asp.net 后台管理系统界面

    千次下载 热门讨论 2012-09-24 21:25:32
    后台界面asp.net 有不少套,可以自己挑选。
  • Asp.net夜话之一:asp.net介绍

    万次阅读 热门讨论 2008-09-12 08:36:00
    题外话:去年至今年以来,陆续写过一些原创的文章了,很多是...之所以把这个系列叫做《asp.net夜话》,是有一些原因的,某不厌酒喜茶,酒越喝越糊涂,茶喝多了也仍然能保持清醒。白天很忙,所以每天回到家之后我会沏一
  • ASP.NET Core: 全新的ASP.NET !

    万次阅读 2016-07-08 19:56:12
    ASP.NET Core 1.0 是一个开源跨平台的开发框架,用于构建基于云的现代 Web 应用 。它是从底层开始重新构建来提供性能优良的Web应用开发框架,可以部署在云上或者本地服务器上。另外,它使得 ASP.NET 应用更加精简和...
  • 基于ASP.NET的网盘系统在线文件管理模块开发

    千次下载 热门讨论 2012-08-20 12:14:45
    基于ASP.NET的网盘系统在线文件管理模块开发,是一套完整开发网盘项目的系统,在线文件管理模块特点:1、全静态页面、执行效率高;2、使用AJAX技术,用户体验好;3、界面美观,全新的对话框;4、 操作简便,一个页面...
  • 以销售明细表为例,讲解了常见报表的开发过程,既包含了传统的表格形式的报表、又包含了柱状图(条形图)、饼状图、环形图、南丁格尔图、曲线图、折线图、面积图等,前端使用ajax请求数据,后端使用.net操作数据库并...
  • [Asp.Net]如何安装与部署asp.net网站

    千次阅读 2008-07-25 15:03:00
    如何给Asp.Net 网站项目打包 1、打开你的项目,在中用鼠标右击你的,选择-。 2、对话框中选择-。(注意:的存放路径。) 3、vs.net 的窗口左侧会显示。用鼠标右键选中,选择-,在弹出的中同时选中和。(注意:可根据...

空空如也

1 2 3 4 5 ... 20
收藏数 305,576
精华内容 122,230
关键字:

asp.net