.NET MVC

学习MVC记录下来的一些东西,写的太乱了。

Memcache

一种高性能,分布式的内存对象缓存系统,减轻数据库负载来加速动态Web应用程序

  1. 服务器安装memcache服务
  2. 下载.NET Memcached lbr

Commons.dll,ICSharpCode.SharpZipLib.dll,log4net.dll,Memcached.ClientLibrary.dll,添加引用到项目中去

  1.  
  2. //SockIOPool是Memcached客户端提供的一个套接字连接池,是与Memcached服务器端交换数据的对象。
  3.             //SockIOPool在应用程序启动时初始化一次就可以了,我们可以把这个工作放在 GLOBAL.ASAX.CS的Application_Start方法里。
  4.             try
  5.             {
  6.                 MemcachedClient mc = new MemcachedClient();
  7.                 mc.EnableCompression = false;
  8. string[] serverlist = {"127.0.0.1:11211"};
  9. SockIOPool pool = SockIOPool.GetInstance();
  10. //初始化
  11. pool.SetServers(serverlist);
  12. pool.InitConnections = 3;
  13. pool.MinConnections = 3;
  14. pool.MaxConnections = 50;
  15. pool.SocketConnectTimeout = 1000;
  16. pool.SocketTimeout = 3000;
  17. pool.MaintenanceSleep = 30;
  18. pool.Failover = true;
  19. pool.Nagle = false;
  20. pool.Initialize();
  21. mc.Add("key1","这是第一个数据",0);
  22. string value= mc.Get("key1") as string;
  23.              Console.WriteLine(value);
  24. }
  25. catch (Exception err)
  26. {
  27. //这里可以用Log4Net记录Error
  28. }
  29.             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

  1. Web form 存在的问题在于响应时间(服务器响应请求耗时);带宽消耗(同时可传输多少数据)
  2. 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中查询数据时不需要类型转换

有一些类型转换代码

可读性更好

 

缺点:需在运行时发现问题,编译时无法发现。

  1. viewmodel:相当于灵活的model

 

dataset:数据集相当于内存数据库;datatable相当于数据库表,

 

本地部署:

  1. iis添加websit,物理路径到web路径,给定端口号
  2. 本地publish,自定义-》系统文件到制定目录-》release版-》发布
  3. 远程可将本地文件复制到远程去

问题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通道,进行独立的交互,但是这个交互协议可以移植到其他协议下运作

 

posted @ 2020-01-20 10:48  lovebear  阅读(158)  评论(0编辑  收藏  举报