aspnetcache缓存
❶ 在命令窗口中输入命令 aspnet_regsql -S . -E -ed -d StudentManager -et -t StudentsCacheDep
系统出问题了
❷ c#如何使用缓存提高程序效率
缓存的技术应用应该是非广泛的。而它的作用也是为了提高系统或者网站的执行效率。下面是四种常见的缓存技术:
一.OutputCaching
由于IIS的一些特性,默认情况下OutputCache是打开的,但是要对某些请求进行缓存,还需要开发者进行定制,而且默认情况下,Output Cache 会被缓存到硬盘上,我们可以通过修改DiskCacheable的属性来设置其是否缓存,还可以通过Web config里配置缓存文件的大小。
<%@ OutputCacheDuration="3600" VaryByParam="state" DiskCacheable="true" %>
一般用硬盘缓存是考虑到页面送显的数据比较大,相对内存缓存来说,它的容量大,但是访问速度慢点,如果把周期设太短,使用硬盘缓存的效率就不大好。对于Output Cache的定制,有两种方法,一种是基于底层的API技术,一种是基于高层的@OutputCaching:
1.基于高层的@OutputCaching
A.由参数改变缓存内容:有些时候我们需要根据用户的请求来生成页面,但是用户的请求只有有限的几种组合,这个时候就可以根据用户请求来生成几种缓存页面,来进行缓存。
<%@ OutputCache Duration ="60" VaryByParam = "state" %>
<asp:SqlDataSourceID="SqlDataSource1" runat="server">
<SelectParameters>
<asp:QueryStringParameter Name="state"QueryStringField="state" DefaultValue="CA" />
</SelectParameters>
</asp:SqlDataSource>
B.回调缓存:可以针对每个请求在页面中插入动态的部分,以弥补单独使用静态缓存的不足:
动态的部分用Substitution控件,Substitution控件是一个容器
<asp:SubstitutionID="Substitution1" runat="server" MethodName =""/>
MethodName 里面放入要调用的方法内容。
2. 使用API定制缓存:
通过设置System.Web.HttpCachePolicy属性来进行配置
<%@ OutputCache Duration="60"VaryByParam="none" %>
就可以写成
Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
Response.Cache.SetCacheability(HttpCacheability.Public);
二.FragmentCaching
作为Output的缓存的附加功能,还提供一种缓存技术,专门用于缓存用户控件。在用户控件中设置:
<%@ OutputCache Duration="60"VaryByParam="none" %>
但在引用用户控件的页面不设置缓存。这样的话,页面中除了用户控件是静态的,其他都是动态的。
缓存用户空间同样还可以使用控件作为参数来源。通过指定控件作为缓存控件的数据来源,可以达到缓存控件数据的目的,和上面一样。
三.DataCaching
Asp.net提供了一种非常快捷的方法进行数据库缓存,用户可以非常简单方便的对页面变量进行缓存。并以此提高程序效率。一个页面变量的缓存生命周期与应用程序的缓存生命周期相同
实现是把数据放在Cache中,如:
source = new DataView(ds);
Cache("MyCache") = source;
MyCache这个变量其实就是一个XML文件。
四.SQL Caching
通过配置数据库连接池,只有当数据库数据被改变的时候,缓存才会改变。
开个DOS窗口:
C:\>dir aspnet_regsql.exe/s ——这个文件是专门注册SQL连接池的,它对SQLSever 7.0以上都有专门的支持,我们通过写一些专门的语句来配置这个注册连接池,可以把连接池和本地的应用程序(Asp.net服务器,即IIS)做一个连接。连接池只能监视有限的几个库,不然连接池的负载太大。使用SQL Caching:
先注册,如: aspnet_regsql.exe-S".\SQLExpress"-E-d"pubs"-ed
aspnet_regsql.exe-S".\SQLExpress"-E-d"pubs"-et-t"authors"
其中:- S".\SQLExpress" 表示要使用的SQL Server实例为".\SQLExpress"。-E 表示使用当前windows凭证进行身份验证。-d"pubs"表示用于应用程序服务的数据库名称叫"pubs"。-ed表示为SQL 缓存依赖项启用数据库。-et 表示为SQL 缓存依赖项启用表。-t"authors"表的名称为"authors"。
然后页面上:
<%@ OutputCacheDuration="99999999" VaryByParam="none"SqlDependency="Pubs.Authors" %>
就OK了。
❸ ASP.NET是什么
ASP.NET是.NET FrameWork的一部分,是一项微软公司的技术,是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术,它可以在通过HTTP请求文档时再在Web服务器上动态创建它们。 指 Active Server Pages(动态服务器页面) ,运行于 IIS(Internet Information Server 服务,是Windows开发的Web服务器)之中的程序 。
………………………………………………
如果对aspnet感兴趣,看看一个大专生怎么自学aspnet到找到工作。
先做个自我介绍,我07年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说 出来献丑了。09年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不 到希望,我就退学了。
退学后我也迷茫,大专都没有毕业,我真的不知道我能干什么,我在纠结着我能做什么。所以辍学后 我一段时间,我想去找工作,因为我比较沉默寡言,不是很会说话,我不适合去应聘做业务。我想应聘 做技术的,可是处处碰壁。
一次偶然的机会,我才听到aspnet这个行业。那天我去新华书店,在计算机分类那边想找本书学习 。后来有个女孩子走过来,问我是不是读计算机的,有没有兴趣学习aspnet,然后给我介绍了一下 aspnet现在的火热情况,告诉我学aspnet多么的有前景,给我了一份传单,aspnet培训的广告。听了 她的介绍,我心里痒痒的,确实我很想去学会一门自己的技术,靠自己的双手吃饭。
回家后,我就上网查了下aspnet,确实是当今比较热门的行业,也是比较好找工作的,工资也是相 对比较高。我就下决心想学aspnet了。于是我去找aspnet培训的相关信息,说真的,我也很迷茫,我 不知道培训是否真的能像他们宣传的那样好,所以我就想了解一段时间再做打算。
后来,我在网络知道看到一篇让我很鼓舞的文章是一个aspnet高手介绍没有基础的朋友怎么自学入 门学aspnet,文章写的很好,包含了如何学习,该怎么学习。他提到一个方法就是看视频,因为看书实 在太枯燥和费解的,很多我们也看不懂。这点我真的很认同,我自己看书往往看不了几页。
我在想,为什么别人都能自学成才,我也可以的!我要相信自己,所以我就想自学,如果实在学不会 我再去培训。
主意一定,我就去搜索aspnet的视频,虽然零星找到一些aspnet的视频,但是都不系统,我是想找 一个能够告诉我该怎么学的视频,一套从入门到精通的视频,一个比较完整的资料,最好能有老师教, 不懂可以请教的。
后来我又找到一份很好的视频,是在IT学习联盟推出的一份视频《零基础aspnet就业班》(喜欢《 零基础aspnet就业班》的可以复制 sina.lt/bsjr 粘贴浏览器地址栏按回车键即打开)
下面介绍下我的学习流程,希望对和我一样完全没有基础的朋友有所帮助。
收到他们寄过来的光盘后,我就开始学习了,由于我没有什么基础,我就从最简单的C#语言视频教程 学起,话说简单,其实我还是很多不懂的,只要重复多看几遍,就能看懂。C#语言我差不多学了一个礼 拜,接下来我就学了winform,SQL Server,html/css/javaScript,差不多也就三个礼拜。我每天都在不 停的写一些简单的代码,这样一月后我基本掌握了aspnet的全部基础。
接下来开始学习aspnet高级课程,老师幽默风趣而又轻松的课堂教课,使我发现原来学习aspnet并 不是一件很难的事情。之前我把aspnet基础学得还不错,到了到了aspnet高级部分,我觉不又不是很 难,可能老师太牛了,他能把复杂的问题讲的比较通俗易懂,有些难点的地方我还是连续看了五六次, 把他弄懂。每天下午6点下班后,吃了饭,马上跑回家。看视频,买了几本笔记本。当时,为了编程还花几百元了台二手的台式电脑,配置一般,但编程是足够的。一边看视频,一边记笔记,把重点都记下来,还一边跟着老师敲代码,为了能尽早学会aspnet。每天都坚持学5-6个小时。经常学到晚上一点多才睡觉。星期六,日不用上班,每天7点多起床,学到晚上11,12点。那段时间特别辛苦,特别累。在学习aspnet的三个多月里,除了吃饭睡觉工作,剩余的时间都在学习,因为我知道自己的计算机基础不是很好,也没有学过什么计算机,相对于那些科班的人来说我要比他们付出更多的努力。我只能咬紧牙关,坚持下去,我不能放弃,我要完成我的梦想,我要让我的家人过上好日子。终于三个多月后我把aspnet教程里的内容和项目都学完了,在学项目的过程中我发现项目特别重要,他能把你学过的知识全部联系起来,能更好的理解你所学的知识。还有学习过程中,动手很重要,要经常跟着老师动手敲,动手吧,跟着做,一行一行的跟着敲,再试着加一些自己的功能,按照自己的思路敲一些代码,收获远比干听大的多。 如果遇到暂时对于一些思路不能理解的,动手写,先写代码,慢慢你就会懂了。
于是我就到51job疯狂的投简历,因为我学历的问题,专科没有毕业,说真的,大公司没有人会要我,所以我投的都是民营的小公司,我希望自己的努力有所回报。没有想过几天过后,就有面试了,但是第一次面试我失败了,虽然我自认为笔试很好,因为我之前做了准备,但是他们的要求比较严格,需要有一年的项目经验,所以我没有被选中。
后来陆续面试了几家公司,终于功夫不负有心人。我终于面试上的,是在闵行的一家民营的企业,公司规模比较小,我的职务是aspnet开发程序员,但我也比较满足,开的工资是3500一个月,虽然我知道在上海3500只能过温饱的生活,但是我想我足够了。我至少不用每天都要靠父母养,我自己也能养活自己的。我想只要我继续努力,我工资一定会翻倍的。
把本文写出来,希望能让和我一样的没有基础的朋友有信心,其实我们没有必要自卑,我们不比别人笨,只要我们肯努力,我们一样会成功。
…………………………………………
❹ net开源项目整理
整理一些平时收藏和应用的开源代码,方便自己学习和查阅
1.应用
nopcommerce ,开源电商网站,开发环境asp.net mvc(未支持.net core),使用技术(autofac,ef,页面插件等)
https://github.com/nopSolutions/nopCommerce
OrchardCMS ,内容管理网站
https://github.com/OrchardCMS/Orchard(.net版本)
https://github.com/OrchardCMS/Orchard2(.net core版本)
ABP(aspnetboilerplate) ,提供一系列工具用于web应用创建,支持 ASP.NET Core, ASP.NET MVC & Web API,也提供了web应用的模板
https://github.com/aspnetboilerplate/aspnetboilerplate(.net core 版本,tag分支有支持.net版本的)
IdentityServer ,用户授权网站(支持openid和OAuth 2.0),可用于单点登录和第三方授权等
https://github.com/IdentityServer/IdentityServer3(.net版本)
https://github.com/IdentityServer/IdentityServer4(.net core版本)
eShopOnContainers 微软提供的微服务实例
https://github.com/dotnet-architecture/eShopOnContainers
PetShop 三层架构经典例子,用于新手学习,不过aspx有点过时了
https://github.com/songhhwd01/PetShop
BlogEngine.NET 博客网站,也是aspx
https://github.com/rxtur/BlogEngine.NET
2.组件
Lucene.Net 全文检索开发组件
https://github.com/apache/lucenenet
ServiceStack 半开源,用于创建web服务
https://github.com/ServiceStack/ServiceStack
MassTransit 可用于创建基于消息的服务和应用,依赖于RabbitMQ
https://github.com/MassTransit/MassTransit
stateless 简单的工作流开发组件,不支持在线定制工作流
https://github.com/dotnet-state-machine/stateless
Hangfire 任务调度开发利器
https://github.com/HangfireIO/Hangfire
Jwt.Net 用于生成JWT (JSON Web Token) 和JWT校验
https://github.com/jwt-dotnet/jwt
npoi 支持office文件的读写
https://github.com/tonyqus/npoi
StackExchange.Redis Redis的.net客户端
https://github.com/StackExchange/StackExchange.Redis
CacheManager 用于缓存的管理,支持Redis.Memcached,couchbase等
https://github.com/MichaCo/CacheManager
Autofac Ioc组件,用于依赖注入
https://github.com/autofac/Autofac
LightGBM 用于机器学习
https://github.com/Microsoft/LightGBM
3.框架
asp.net mvc
https://github.com/aspnet/Mvc
Nancy 类似asp.net mvc,web开发框架
https://github.com/NancyFx/Nancy
4.其他
dotnet core 主页 ,提供dotnet core相关知识的索引和例子,方便快速入门
https://github.com/dotnet/core
.net源码
https://github.com/Microsoft/referencesource
❺ cache (C#) 数据库依赖缓存
先得确定你的数据库依赖起作用了,应该先写个简单的代码验证好了再放到实际业务当中
