asp 订阅
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境,可用来创建动态交互式网页并建立强大的web应用程序。当服务器收到对ASP文件的请求时,它会处理包含在用于构建发送给浏览器的HTML(Hyper Text Markup Language,超文本置标语言)网页文件中的服务器端脚本代码。除服务器端脚本代码外,ASP文件也可以包含文本、HTML(包括相关的客户端脚本)和com组件调用。 [1-2]  ASP简单、易于维护 , 是小型页面应用程序的选择 ,在使用DCOM (Distributed Component Object Model)和 MTS(Microsoft Transaction Server)的情况下, ASP甚至可以实现中等规模的企业应用程序。 [3] 展开全文
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境,可用来创建动态交互式网页并建立强大的web应用程序。当服务器收到对ASP文件的请求时,它会处理包含在用于构建发送给浏览器的HTML(Hyper Text Markup Language,超文本置标语言)网页文件中的服务器端脚本代码。除服务器端脚本代码外,ASP文件也可以包含文本、HTML(包括相关的客户端脚本)和com组件调用。 [1-2]  ASP简单、易于维护 , 是小型页面应用程序的选择 ,在使用DCOM (Distributed Component Object Model)和 MTS(Microsoft Transaction Server)的情况下, ASP甚至可以实现中等规模的企业应用程序。 [3]
信息
外文名
Active Server Pages
开发公司
微软公司
类    型
Web应用框架
中文名
动态服务器页面
英文缩写
ASP
asp发展历史
在Internet风行的早期,浏览器中显示的网页仅是静态的图文组合而已,浏览者可以在网页上阅读信息,但无法进一步地发表意见、查询信息或进行在线购物等商务活动。为此,人们提出了动态网页或交互网页的概念和解决方案。所谓“动态网页”,是指客户端浏览器和Web服务器端可以互动,也就是服务器端可以实时处理浏览器端的请求(Request),然后再将处理的结果作为对浏览器请求的响应(Response)传送给浏览器。由于Web程序开发十分复杂,以至于要制作一个简单的动态页面也需要编写大量的C代码才能完成。于是Microsoft公司于1996年推出一种Web应用开发技术ASP,用于取代对Web服务器进行可编程扩展的CGI标准。 [1]  ASP 1.0作为IIS(Internet Information Server,Internet信息服务器)的附属产品免费发送,不久就在Windows平台上广泛使用。ASP与ADO的结合使开发者很容易地在一个数据库中建立和打开一个记录集。1998年,微软公司又发布了ASP 2.0。ASP 1.0和ASP 2.0主要区别在于外部组件。有了ASP 2.0和IIS 4.0,就可以建立ASP应用了。在微软公司开发的Windows 2000操作系统中就开始带上了IIS 5.0及ASP 3.0。虽然Windows已经发展到比较高的版本,但是开发领域中依然百分之百采用Windows 2000 Server。Windows 2000包括三个不同的版本:Windows 2000 Professional,Windows 2000 Server和Windows 2000 Advanced Server。按照默认设置安装Windows 2000 Server,安装时不用作任何改动,这样就可配置好ASP的运行环境。 [4] 
收起全文
精华内容
参与话题
问答
  • 首先安装如下包 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();
            }
        }
    }
    

    在这里插入图片描述

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

    展开全文
  • Controller 默认是不会通过自带容器来 Resolve&Activate 的,是通过MVC自身管理的。可以通过调用 AddControllersAsServices()方法来让 Controller 使用自带容器。 services.AddControllers()....

    为 Controller 实现伪属性注入

    Controller 默认是不会通过自带容器来 Resolve&Activate 的,是通过MVC自身管理的。可以通过调用 AddControllersAsServices()方法来让 Controller 使用自带容器。

    services.AddControllers().AddControllersAsServices();
    

    AddControllersAsServices源码如下
    在这里插入图片描述
    定义 Controller 基类
    在这里插入图片描述
    Controller 继承基类
    在这里插入图片描述
    改造 Controller 激活器
    在这里插入图片描述
    替换默认 Controller 激活器

    services.AddControllers().AddControllersAsServices();
    services.Replace(ServiceDescriptor.Transient<IControllerActivator, XcServiceBasedControllerActivator>()); //替换默认 Controller 激活器
    

    在这里插入图片描述

    为 Application Service 实现伪属性注入

    只是以 Application Service 来作为讲解,同理可举一反三到其他地方。Application Service 属于领域驱动分层架构中的一层,如不了解,可自行查找资料。
    

    定义应用服务基类接口

    public interface IAppService
    {
        ILogger Logger { get; set; }
    }
    
    public class AppService:IAppService
    {
        public ILogger Logger { get; set; }
    }
    

    定义具体服务,以 User 服务为例

    public interface IUserAppService:IAppService
    {
        void Create();
    }
    
    public class UserAppService : AppService,IUserAppService
    {
        public void Create()
        {
            Logger.LogInformation("来自 Application Service 的日志");
        }
    }
    

    定义特殊的注册服务的方法,以便实现 Resolve 为 Logger 赋值

    public static class ServiceExtensions
    {
        public static IServiceCollection AddApplicationService<TService, TImpl>(this IServiceCollection services) where TService:IAppService where TImpl:AppService
        {
            services.AddApplicationService(typeof(TService), typeof(TImpl));
            return services;
        }
        // 可以反射程序集调用此方法实现批量自动注册应用服务
        public static IServiceCollection AddApplicationService(this IServiceCollection services, Type serviceType,Type implType)
        {
            services.AddTransient(serviceType, sp =>
            {
                //获取服务实现的实例
                var implInstance = ActivatorUtilities.CreateInstance(sp, implType); ;
    
                if (implInstance is AppService obj)
                {
                    //为 Logger 赋值
                    obj.Logger= sp.GetRequiredService<ILoggerFactory>().CreateLogger(implType);
                }
                
                return implInstance;
            });
            return services;
        }
    

    注册测试服务
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 在.Net Core的时代中,框架会帮你自动验证model的state,也就是ModelState。... 基于现有框架的代码编写的话,所以我们不再需要在业务中耦合这样的模型判断代码,系统内部会检查ModelState是否为Valid,如果为InValid会...

    在.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();
            }
        }
    
    展开全文
  • 首先按照如下两个包 Install-Package Serilog.AspNetCore Install-Package Serilog.Sinks.Elasticsearch 封装使用 /// <summary> /// 配置日志 /// </summary>...public static IHostB
  • ASP实战之HTML入门

    千人学习 2018-08-17 09:13:03
    从零基础知识开始讲解HTML的各类基础语法和各类标签元素的知识点,同时我们会讲解和服务器端ASP的数据之间的交互;手把手的讲解每个知识点,剖析每个知识点,然后一行一行敲写代码进行现场实战、演示、讲解;同步...
  • 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();...
  • /// 所谓6大对象,其实就是HttpContext的属性 ...包括自定义的–BasicAuth; 请求信息的解读是asp.net_isapi按照http协议解析出来的 /// Response:响应, Response.Write 各种result扩展就是序列化+r
  • 首先安装包 public void ConfigureServices(IServiceCollection services) { #region 添加跨域 services.AddCors(options => { options.AddPolicy("any", builder => builder.AllowAnyOrigin() ...
  • 使用vs2019创建Worker Service程序 首先nuget安装 Microsoft.Extensions.Hosting.Windows 在Program中添加UseWindowsService() public class Program { public static void Main(string[] args) ...
  • 首先安装包 Install-Package NSwag.AspNetCore public void ConfigureServices(IServiceCollection services) { //swagger services.AddOpenApiDocument(settings => { settings.AddSecurity("身份认证...
  • 实现服务注入和AOP需要安装如下包 Castle.Core.AsyncInterceptor public void ConfigureServices(IServiceCollection services) { #region 自动注入拥有ITransientDependency,IScopeDependency或...
  • #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 ...
  • 首先在程序包包管理器控制台 中执行以下语句安装依赖包 Install-Package MySql.Data.EntityFrameworkCore -Pre Install-Package Pomelo.EntityFrameworkCore.MySql Install-Package Microsoft.EntityFrameworkCore....
  • 使用 namespace CORE.WEBERP { public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } ... public static IHostBuilder CreateHostBuilder(string[] args)...
  • 首先程序包包管理器控制台安装以下包 Install-Package Microsoft.EntityFrameworkCore. Relationl Install-Package Microsoft.EntityFrameworkCore Install-Package Microsoft.EntityFrameworkCore.SqlServer ...
  • ASP.NET管理系统

    千次下载 热门讨论 2013-01-29 17:08:28
    一个简单的asp.net管理系统,有权限分配,控制到按钮级别.采用vs2008开发,数据库附加即可。
  • ASP.NET开发典型模块大全 (修订版) (源代码)

    千次下载 热门讨论 2011-11-15 12:27:58
    ASP.NET开发典型模块大全(修订版)》以关键技术和热点技术为核心,通过27个典型模块和5章热点技术,全面地介绍了如何使用asp.net进行各领域的web项目开发。全书共3篇分为32章,第1篇关键模块篇,覆盖网站开发的...

空空如也

1 2 3 4 5 ... 20
收藏数 407,592
精华内容 163,036
关键字:

asp