.NET MVC
学习MVC记录下来的一些东西,写的太乱了。
Memcache
一种高性能,分布式的内存对象缓存系统,减轻数据库负载来加速动态Web应用程序
- 服务器安装memcache服务
- 下载.NET Memcached lbr
Commons.dll,ICSharpCode.SharpZipLib.dll,log4net.dll,Memcached.ClientLibrary.dll,添加引用到项目中去
- //SockIOPool是Memcached客户端提供的一个套接字连接池,是与Memcached服务器端交换数据的对象。
- //SockIOPool在应用程序启动时初始化一次就可以了,我们可以把这个工作放在 GLOBAL.ASAX.CS的Application_Start方法里。
- try
- {
- MemcachedClient mc = new MemcachedClient();
- mc.EnableCompression = false;
- string[] serverlist = {"127.0.0.1:11211"};
- SockIOPool pool = SockIOPool.GetInstance();
- //初始化
- pool.SetServers(serverlist);
- pool.InitConnections = 3;
- pool.MinConnections = 3;
- pool.MaxConnections = 50;
- pool.SocketConnectTimeout = 1000;
- pool.SocketTimeout = 3000;
- pool.MaintenanceSleep = 30;
- pool.Failover = true;
- pool.Nagle = false;
- pool.Initialize();
- mc.Add("key1","这是第一个数据",0);
- string value= mc.Get("key1") as string;
- Console.WriteLine(value);
- }
- catch (Exception err)
- {
- //这里可以用Log4Net记录Error
- }
- Console.ReadLine();
Bootstrap
基于HTML、CSS和JavaScript的框架,很快的搭建一个还不错的前端框架,分别有table button form 图标,导航,排版布局等,提供优雅的HTML和CSS规范,能够响应式布局(一个网站兼容多个终端),兼容PC端及手机端
<div class="container">
<div class="row“><!--表示另起一行-->
.col-xs- 超小屏幕 手机 (<768px)
.col-sm-* 小屏幕 平板 (≥768px)
.col-md-* 中等屏幕 桌面显示器 (≥992px)
.col-lg-* 大屏幕 大桌面显示器 (≥1200px)
MVC
- Web form 存在的问题在于响应时间(服务器响应请求耗时);带宽消耗(同时可传输多少数据)
- Action是Controller内置的public类型的方法;
ActionResult是抽象类,而ViewResult是ActionResult的多级孩子节点;ViewResult是HTML响应而ContentResult是标准的文本响应,仅返回字符串类型。区别就在于ContentResult是ActionResult的子类。
3.ViewData相当于数据字典,包含Controlle和View之间传递的所有数据
在ViewData中存储Employee 对象。
4: ViewData["Employee"] = emp;
5: return View("MyView");
6. 在View中显示Employee 数据
打开MyView.cshtml。
从ViewData中获取Employee 数据并按照如下代码显示:
1: <div>
2: @{
3: WebApplication1.Models.Employee emp=(WebApplication1.Models.Employee)
4: ViewData["Employee"];
5: }
6:
7: <b>Employee Details </b><br />
8: Employee Name : @emp.FirstName@emp.LastName <br />
9: Employee Salary: @emp.Salary.ToString("C")
10: </div>
7. viewbag:
ViewData |
ViewBag |
它是Key/Value字典集合 |
它是dynamic类型对像 |
从Asp.net MVC 1 就有了 |
ASP.NET MVC3 才有 |
基于Asp.net 3.5 framework |
基于Asp.net 4.0与.net framework |
ViewData比ViewBag快 |
ViewBag比ViewData慢 |
在ViewPage中查询数据时需要转换合适的类型 |
在ViewPage中查询数据时不需要类型转换 |
有一些类型转换代码 |
可读性更好 |
缺点:需在运行时发现问题,编译时无法发现。
- viewmodel:相当于灵活的model
dataset:数据集相当于内存数据库;datatable相当于数据库表,
本地部署:
- iis添加websit,物理路径到web路径,给定端口号
- 本地publish,自定义-》系统文件到制定目录-》release版-》发布
- 远程可将本地文件复制到远程去
问题1. 应用程序池的版本问题,改为v4.0
问题2. 若还有问题,注册iis
1. 运行->cmd
2. cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319
3. aspnet_regiis.exe -i
发布部署:
1.vs发布publish-》设置到本地文件夹
2.iis配置项目。物理路径为项目所在的地址
3.若需要远程发布,则可以在服务器上将本地文件copy到服务器端,并在服务器的iis进行配置完成。
MVC接口、webAPI、webserver区别
1.mvc为建站的一种框架,倾向于返回用户的页面请求,较重量级。继承System.Web.Mvc.Controller;只能部署到IIS,mvc接口可以带参数一个或者2个或者实体类,返回JsonResult
2.webapi基于http协议,倾向于返回用户数据请求,继承的是System.Web.Http.ApiController,寄宿在不同的宿主上(可以在mvc或者其他具体的应用程序)Web Host,Self Host,post不能接2个参数。返回JsonObject3.webserver基于SOAP协议的,数据格式是XML,只能部署在IIS,用参数名paraStu进行赋值。1、很好的跨编程语言和跨操作系统
2、可移植性:传统的WebService只是利用了HTTP通道,进行独立的交互,但是这个交互协议可以移植到其他协议下运作