精进不休 .NET 4.0 (2) - asp.net 4.0 新特性之url路由, 自定义CacheProvider, 新增的表达式<%: expression %>, QueryExtender控件, 其它新特性

挑战第七天:Llamaindex RAG 实践 安装python 依赖包,并安装 Llamaindex和相关包以及Sentence Transformer 模型。进入开发机后,创建新的conda环境,命名为。镜像,然后在资源配置中,使用。的选项,然后立即创建开发机器。后,点击 选择镜像 使用。然后安装相关基础依赖。 阅读详情
[源码下载]


精进不休 .NET 4.0 (2) - asp.net 4.0 新特性之url路由, 自定义CacheProvider, 新增的表达式<%: expression %>, QueryExtender控件, 其它新特性


作者: webabcd


介绍
asp.net 4.0 的新增功能
  • 在 web form 中做 url 路由 
  • 通过实现自定义的 CacheProvider ,来实现自定义的页面缓存逻辑 
  • 新增的表达式 <%: expression %> 相当于 <%= HttpUtility.HtmlEncode(expression) %> 
  • 控件 QueryExtender,对数据源控件获得的数据做再检索 
  • 其它新特性


示例
1、web form 中的 url 路由的 demo
Global.asax.cs
代码
using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;
using  System.Web.Security;
using  System.Web.SessionState;

using  System.Web.Routing;

namespace  AspDotNet
{
    
public   class  Global : System.Web.HttpApplication
    {
        
protected   void  Application_Start( object  sender, EventArgs e)
        {
            
//  关于 Routing 可以参考以前写的  http://www.cnblogs.com/webabcd/archive/2009/04/21/1440149.html
            
//  其中 PageRouteHandler 类的作用是将 URL 路由的功能集成到 Web Form 中
            RouteTable.Routes.Add( " myRoute " ,  new  Route( " user/{userName}/{age} " ,  new  PageRouteHandler( " ~/UrlRouting/Default.aspx " )));

            
/*  对应的配置如下,在 machine.config 中
            <system.web>
               <httpmodule>
                    <add name="RoutingModule" type="System.Web.Routing.UrlRoutingModule"/> 
               </httpmodule>
            <system.web>
             
*/
        }
    }
}
 
UrlRouting/Default.aspx
代码
<% @ Page Title = ""  Language = " C# "  MasterPageFile = " ~/Site.Master "  AutoEventWireup = " true "
    CodeBehind
= " Default.aspx.cs "  Inherits = " AspDotNet.UrlRouting.Default "   %>

< asp:Content  ID ="Content1"  ContentPlaceHolderID ="head"  runat ="server" >
</ asp:Content >
< asp:Content  ID ="Content2"  ContentPlaceHolderID ="ContentPlaceHolder1"  runat ="server" >
    
<!--
        在页面上获取 url 路由而来的数据的方法
        配合以下逻辑的路由规则是:"user/{userName}/{age}"
    
-->
    
< asp:Literal  runat ="server"  Text ="<%$ RouteValue:userName%>"   />
    
< br  />
    
< asp:Literal  runat ="server"  Text ="<%$ RouteValue:age%>"   />

    
<!--
        另外,对于数据源控件来说,也多了一种参数类型 RouteParameter 
    
-->
</ asp:Content >
<% --
对应的配置如下,在 machine.config 中
< system.web >
   
< compilation debug = " true "  targetFrameworkMoniker = " .NETFramework,Version=v4.0 " >
      
< expressionBuilders >
         
< add expressionPrefix = " RouteValue "  type = " System.Web.Compilation.RouteValueExpressionBuilder "   />
      
</ expressionBuilders >
   
</ compilation >
< system.web >
-- %>

UrlRouting/Default.aspx.cs
代码
using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;
using  System.Web.UI;
using  System.Web.UI.WebControls;

namespace  AspDotNet.UrlRouting
{
    
public   partial   class  Default : System.Web.UI.Page
    {
        
protected   void  Page_Load( object  sender, EventArgs e)
        {
            
//  获取 url 路由而来的数据
            
//  配合以下逻辑的路由规则是:"user/{userName}/{age}"
            Response.Write( " userName:  "   +  RouteData.Values[ " userName " ].ToString());
            Response.Write(
" <br /> " );
            Response.Write(
" age:  "   +  RouteData.Values[ " age " ].ToString());
        }
    }
}

UrlRouting/RouteUrlExpressionBuilderDemo.aspx
代码
<% @ Page Title = ""  Language = " C# "  MasterPageFile = " ~/Site.Master "  AutoEventWireup = " true "
    CodeBehind
= " RouteUrlExpressionBuilderDemo.aspx.cs "  Inherits = " AspDotNet.UrlRouting.RouteUrlExpressionBuilderDemo "   %>

< asp:Content  ID ="Content1"  ContentPlaceHolderID ="head"  runat ="server" >
</ asp:Content >
< asp:Content  ID ="Content2"  ContentPlaceHolderID ="ContentPlaceHolder1"  runat ="server" >
    
<!--
        在页面上构造 url 路由的方式
    
-->
    
< asp:HyperLink  ID ="lnk1"  runat ="server"  NavigateUrl ="<%$ RouteUrl:RouteName=myRoute, userName=webabcd, age=30 %>"
        Text
="goto"   />
    
< br  />< br  />
    
< asp:HyperLink  ID ="lnk2"  runat ="server"  Text ="goto"   />
</ asp:Content >
<% --
对应的配置如下,在 machine.config 中
< system.web >
   
< compilation debug = " true "  targetFrameworkMoniker = " .NETFramework,Version=v4.0 " >
      
< expressionBuilders >
         
< add expressionPrefix = " RouteUrl "  type = " System.Web.Compilation.RouteUrlExpressionBuilder " />
      
</ expressionBuilders >
   
</ compilation >
< system.web >
-- %>

UrlRouting/RouteUrlExpressionBuilderDemo.aspx.cs
代码
using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;
using  System.Web.UI;
using  System.Web.UI.WebControls;

using  System.Web.Compilation;

namespace  AspDotNet.UrlRouting
{
    
public   partial   class  RouteUrlExpressionBuilderDemo : System.Web.UI.Page
    {
        
protected   void  Page_Load( object  sender, EventArgs e)
        {
            
//  在代码中构造 url 路由的方式
             string  expression  =  String.Format( " RouteName={0}, userName={1}, age={2} " ,  " myRoute " ,  " webabcd " ,  " 30 " );
            lnk2.NavigateUrl 
=  RouteUrlExpressionBuilder.GetRouteUrl( this , expression);
        }
    }
}


2、自定义 CacheProvider
CachingEnhancement.aspx
代码
<% --  OutputCache 目前不支持直接设置 providerName 属性  -- %>
<% @ OutputCache Duration = " 30 "  VaryByParam = " None "   %>

<% @ Page Title = ""  Language = " C# "  MasterPageFile = " ~/Site.Master "  AutoEventWireup = " true "
    CodeBehind
= " CachingEnhancement.aspx.cs "  Inherits = " AspDotNet.CachingEnhancement "   %>

< asp:Content  ID ="Content1"  ContentPlaceHolderID ="head"  runat ="server" >
</ asp:Content >
< asp:Content  ID ="Content2"  ContentPlaceHolderID ="ContentPlaceHolder1"  runat ="server" >
    
<% =  DateTime.Now.ToString()  %>
</ asp:Content >

CachingEnhancement.aspx.cs
代码
using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;
using  System.Web.UI;
using  System.Web.UI.WebControls;

using  System.Web.Caching;
using  System.Security.Cryptography;
using  System.Text;
using  System.IO;
using  System.Runtime.Serialization.Formatters.Binary;

namespace  AspDotNet
{
    
public   partial   class  CachingEnhancement : System.Web.UI.Page
    {
        
protected   void  Page_Load( object  sender, EventArgs e)
        {
            
        }
    }

    
//  重写 OutputCacheProvider 抽象类,以实现自定义的缓存实现(需要重写的方法是 Add, Get, Remove, Set)
    
//  本 Demo 演示了,如何开发一个自定义的 CacheProvider,来实现将数据缓存到硬盘的功能
     public   class  FileCacheProvider : OutputCacheProvider
    {
        
private   string  _cachePathPrefix  =   @" c:/ " ;

        
private   string  MD5( string  s)
        {
            var provider 
=   new  MD5CryptoServiceProvider();
            var bytes 
=  Encoding.UTF8.GetBytes(s);
            var builder 
=   new  StringBuilder();

            bytes 
=  provider.ComputeHash(bytes);

            
foreach  (var b  in  bytes)
                builder.Append(b.ToString(
" x2 " ).ToLower());

            
return  builder.ToString();
        }

        
///   <summary>
        
///  将指定的 key ,做md5 加密后,拼出一个路径,做为保存此 key 对应的对象的文件(此例只做演示用)
        
///   </summary>
        
///   <param name="key"> 缓存 key </param>
        
///   <returns></returns>
         private   string  GetPathFromKey( string  key)
        {
            
return  _cachePathPrefix  +  MD5(key)  +   " .txt " ;
        }

        
///   <summary>
        
///  将对象放入自定义的缓存中
        
///   </summary>
        
///   <param name="key"> 缓存 key </param>
        
///   <param name="entry"> 缓存对象 </param>
        
///   <param name="utcExpiry"> 缓存的过期时间 </param>
        
///   <returns></returns>
         public   override   object  Add( string  key,  object  entry, DateTime utcExpiry)
        {
            var path 
=  GetPathFromKey(key);

            
//  指定的 key 已被缓存了,则不做任何处理
             if  (File.Exists(path))
                
return  entry;

            
//  将对象缓存到硬盘上的指定文件
             using  (var file  =  File.OpenWrite(path))
            {
                var item 
=   new  CacheItem { Expires  =  utcExpiry, Item  =  entry };
                var formatter 
=   new  BinaryFormatter();
                formatter.Serialize(file, item);
            }

            
return  entry;
        }

        
///   <summary>
        
///  在缓存中,根据指定的 key 获取缓存对象
        
///   </summary>
        
///   <param name="key"> 缓存 key </param>
        
///   <returns></returns>
         public   override   object  Get( string  key)
        {
            var path 
=  GetPathFromKey(key);

            
//  未找到缓存
             if  ( ! File.Exists(path))
                
return   null ;

            CacheItem item 
=   null ;

            
//  如果有缓存的话,则取出缓存对象
             using  (var file  =  File.OpenRead(path))
            {
                var formatter 
=   new  BinaryFormatter();
                item 
=  (CacheItem)formatter.Deserialize(file);
            }

            
//  缓存过期或缓存中无数据,则删除此缓存所对应的硬盘上的物理文件
             if  (item  ==   null   ||  item.Expires  <=  DateTime.Now.ToUniversalTime())
            {
                Remove(key);
                
return   null ;
            }

            
return  item.Item;
        }

        
///   <summary>
        
///  根据指定的 key 删除缓存对象
        
///   </summary>
        
///   <param name="key"> 缓存 key </param>
         public   override   void  Remove( string  key)
        {
            var path 
=  GetPathFromKey(key);

            
if  (File.Exists(path))
                File.Delete(path);
        }

        
///   <summary>
        
///  更新缓存
        
///   </summary>
        
///   <param name="key"> 缓存 key </param>
        
///   <param name="entry"> 缓存对象 </param>
        
///   <param name="utcExpiry"> 缓存的过期时间 </param>
         public   override   void  Set( string  key,  object  entry, DateTime utcExpiry)
        {
            var item 
=   new  CacheItem { Expires  =  utcExpiry, Item  =  entry };
            var path 
=  GetPathFromKey(key);

            
using  (var file  =  File.OpenWrite(path))
            {
                var formatter 
=   new  BinaryFormatter();
                formatter.Serialize(file, item);
            }
        }

        
///   <summary>
        
///  封装了需要被缓存的对象的一个可序列化的对象
        
///   </summary>
        [Serializable]
        
internal   class  CacheItem
        {
            
///   <summary>
            
///  缓存对象
            
///   </summary>
             public   object  Item;
            
            
///   <summary>
            
///  缓存对象的过期时间
            
///   </summary>
             public  DateTime Expires;
        }
    }
}

Web.config
代码
<!-- 缓存配置 -->
< caching >
    
<!-- 默认的缓存实现是 AspNetInternalProvider(即 asp.net 自带的基于内存的缓存实现方式) -->
    
< outputCache  defaultProvider ="AspNetInternalProvider" >
        
< providers >
            
<!--
                新增一个缓存的 provider 配置
                具体实现见 CachingEnhancement.aspx.cs
            
-->
            
< add  name ="FileCache"  type ="AspDotNet.FileCacheProvider, AspDotNet" />
        
</ providers >
    
</ outputCache >
</ caching >

Global.asax.cs
代码
using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;
using  System.Web.Security;
using  System.Web.SessionState;

using  System.Web.Routing;

namespace  AspDotNet
{
    
public   class  Global : System.Web.HttpApplication
    {
        
//  根据 HttpContext 的不同,可以为其指定不同的 CacheProvider
         public   override   string  GetOutputCacheProviderName(HttpContext context)
        {
            
//  符合此条件的,则缓存的实现使用自定义的 FileCacheProvider
            
//  自定义缓存实现见 CachingEnhancement.aspx.cs
            
//  CacheProvider 的配置见 web.config
            
//  页面的缓存时间见 CachingEnhancement.aspx
             if  (context.Request.Path.ToLower().EndsWith( " cachingenhancement.aspx " ))
                
return   " FileCache " ;
            
else
                
return   base .GetOutputCacheProviderName(context);
        }
    }
}


3、表达式 <%: expression %> 的 demo
HtmlEncodedCodeExpressions.aspx
代码
<% @ Page Title = ""  Language = " C# "  MasterPageFile = " ~/Site.Master "  AutoEventWireup = " true "
    CodeBehind
= " HtmlEncodedCodeExpressions.aspx.cs "  Inherits = " AspDotNet.HtmlEncodedCodeExpressions "   %>

< asp:Content  ID ="Content1"  ContentPlaceHolderID ="head"  runat ="server" >
</ asp:Content >
< asp:Content  ID ="Content2"  ContentPlaceHolderID ="ContentPlaceHolder1"  runat ="server" >
    
    
<% --
        新增的一个表达式 
< %: expression  %>  相当于  <% =  HttpUtility.HtmlEncode(expression)  %>
    --%>

    
<% =   " <strong>strong</strong> "   %>
    
< br  />
    
<% :  " <strong>strong</strong> "   %>
    
< br  />
    
<% =  HttpUtility.HtmlEncode( " <strong>strong</strong> " )  %>

</ asp:Content >


4、QueryExtender 控件的 demo
QueryExtenderDemo.aspx
代码
<% @ Page Title = ""  Language = " C# "  MasterPageFile = " ~/Site.Master "  AutoEventWireup = " true "
    CodeBehind
= " QueryExtenderDemo.aspx.cs "  Inherits = " AspDotNet.QueryExtenderDemo "   %>

< asp:Content  ID ="Content1"  ContentPlaceHolderID ="head"  runat ="server" >
</ asp:Content >
< asp:Content  ID ="Content2"  ContentPlaceHolderID ="ContentPlaceHolder1"  runat ="server" >
    
< asp:GridView  ID ="GridView1"  runat ="server"  AutoGenerateColumns ="False"  DataSourceID ="LinqDataSource1" >
        
< Columns >
            
< asp:BoundField  DataField ="ProductId"  HeaderText ="ProductId"  SortExpression ="ProductId"   />
            
< asp:BoundField  DataField ="ProductName"  HeaderText ="ProductName"  SortExpression ="ProductName"   />
            
< asp:BoundField  DataField ="ProductPrice"  HeaderText ="ProductPrice"  SortExpression ="ProductPrice"   />
        
</ Columns >
    
</ asp:GridView >
    
< asp:LinqDataSource  ID ="LinqDataSource1"  runat ="server"  ContextTypeName ="AspDotNet.QueryExtenderDemo"
        EntityTypeName
="AspDotNet.Product"  TableName ="Data" >
    
</ asp:LinqDataSource >

    
<!--
        QueryExtender - 和数据源控件结合使用,以对数据源控件中检索到的数据做再次检索
            SearchExpression - 根据指定的字段查找指定的数据
            RangeExpression - 在指定字段中查找指定范围的数据
            PropertyExpression - 查找某字段的值为某指定的值的数据
            OrderByExpression - 用于排序数据
            CustomExpression - 自定义查询表达式
    
-->
    
< asp:QueryExtender  ID ="QueryExtender1"  runat ="server"  TargetControlID ="LinqDataSource1" >
        
< asp:SearchExpression  DataFields ="ProductName"  SearchType ="EndsWith" >
            
< asp:Parameter  Type ="String"  DefaultValue ="0"   />
        
</ asp:SearchExpression >
    
</ asp:QueryExtender >
</ asp:Content >

QueryExtenderDemo.aspx.cs
代码
using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;
using  System.Web.UI;
using  System.Web.UI.WebControls;

namespace  AspDotNet
{
    
public   partial   class  QueryExtenderDemo : System.Web.UI.Page
    {
        
protected   void  Page_Load( object  sender, EventArgs e)
        {

        }

        
//  为 GridView 提供数据
         public  List < Product >  Data
        {
            
get
            {
                Random random 
=   new  Random();

                List
< Product >  products  =   new  List < Product > ();
                
for  ( int  i  =   0 ; i  <   100 ; i ++ )
                {
                    products.Add(
new  Product { ProductId  =  i  +   1 , ProductName  =   " 名称 "   +  i.ToString().PadLeft( 2 ,  ' 0 ' ), ProductPrice  =  random.NextDouble() });
                }

                
return  products;
            }
        }

        
//  为 GridView 提供数据的实体类
         public   class  Product
        {
            
public   int  ProductId {  get ;  set ; }
            
public   string  ProductName {  get ;  set ; }
            
public   double  ProductPrice {  get ;  set ; }
        }
    }
}


5、其他新特性的简单说明
Others.aspx
代码
<% @ Page Title = " 其它,一笔带过 "  Language = " C# "  MasterPageFile = " ~/Site.Master "  AutoEventWireup = " true "
    CodeBehind
= " Others.aspx.cs "  Inherits = " AspDotNet.Others "   %>

< asp:Content  ID ="Content1"  ContentPlaceHolderID ="head"  runat ="server" >
    
< style >
        body
        
{
            font-size
:  12px ;
        
}
        textarea
        
{
            width
:  99% ;
        
}
    
</ style >
</ asp:Content >
< asp:Content  ID ="Content2"  ContentPlaceHolderID ="ContentPlaceHolder1"  runat ="server" >
    
< p >
        1、Permanent Redirect - 可以实现 301 跳转
        
< ul >
            
< li > Response.RedirectPermanent() - 永久性重定向(http 301)。 </ li >
            
< li > Response.Redirect() - 临时性重定向(http 302)。 </ li >
        
</ ul >
    
</ p >
    
< p >
        2、Session 压缩(设置 sessionState 节点的 compressionEnabled 属性)
        
< br  />
        对于使用进程外会话状态服务器的会话状态提供程序,或者将会话状态保存在 sqlserver 数据库中的会话状态提供程序,现在为提高其效率新增了压缩 Session 数据的功能(使用System.IO.Compression.GZipStream来压缩数据),像如下这样的配置
        
< br  />
        
< textarea  rows ="6" >
            
< sessionState
              
mode ="SqlServer"
              sqlConnectionString
="data source=dbserver;Initial Catalog=aspnetstate"
              allowCustomSqlDatabase
="true"
              compressionEnabled
="true"
            
/>
        
</ textarea >
    
</ p >
    
< p >
        3、httpRuntime 节点的新增配置
        
< ul >
            
< li > maxRequestPathLength - url 路径的最大长度(基于NTFS文件路径的最大长度就是 260) </ li >
            
< li > maxQueryStringLength - url 的最大长度 </ li >
            
< li > requestPathInvalidChars - 指定 url 路径的无效字符 </ li >
            
< li > requestValidationType - 继承 System.Web.Util.RequestValidator 抽象类,重写其 IsValidRequestString() 方法,以实现自定义的请求验证。在 requestValidationType 可以指定使用这个自定义的类 </ li >
            
< li > encoderType - 重写 System.Web.Util.HttpEncoder,可以实现自定义的 html编码, url编码, http header编码。在 encoderType 指定这个自定义编码的类后,程序中所用到的 System.Web.HttpUtility 或 System.Web.HttpServerUtility 的相关方法将会使用自定义的编码实现 </ li >
        
</ ul >
        
< br  />
        
< textarea  rows ="2" >
            
< httpRuntime  maxRequestPathLength ="260"  maxQueryStringLength ="2048"  requestPathInvalidChars ="&lt;,&gt;,*,%,&amp;,:,/,?"  requestValidationType ="Samples.MyValidator, Samples"  encoderType ="Samples.MyEncoder, Samples"   />
        
</ textarea >
    
</ p >
    
< p >
        4、compilation 节点新增 targetFramework 属性,用于指定程序运行的目标框架
        
< br  />
        
< textarea >
            
< compilation  targetFramework ="4.0"   />
        
</ textarea >
    
</ p >
    
< p >
        5、asp.net 4.0 结合 iis 7.5 可使 web 应用程序自动启动
        
< br  />
        在 web 程序中实现 System.Web.Hosting.IProcessHostPreloadClient 接口,用于被 iis 启动
    
</ p >
    
< p >
        6、Page 类中新增了两个属性,分别是 MetaDescription 和 MetaKeywords
    
</ p >
    
< p >
        7、以前每个可显示的控件都有 Enabled 属性(如果 Enabled="false" 则对应的 HTML 为 disabled="disabled"),但是 HTML 4.01 的标准是只有 input 才能有 disabled 属性
        
< ul >
            
< li >
                在 pages 节点中设置 controlRenderingCompatibilityVersion="3.5",则所有可显示控件都会输出 disabled="disabled"
            
</ li >
            
< li >
                在 pages 节点中设置 controlRenderingCompatibilityVersion="4.0",则只有 input 元素才会输出 disabled="disabled",非 input 元素将会自动标记一个名为 aspnetdisabled 的 css 类
            
</ li >
        
</ ul >
    
</ p >
    
< p >
        8、web form 需要在页面上写入隐藏域(如为了保存 ViewState 的隐藏域),在 asp.net 4.0 中系统将在这类的隐藏域外的 div 上标记一个名为 aspNetHidden 的 css 类,以方便样式控制
    
</ p >
</ asp:Content >


OK
[源码下载]
matlab 点云可视化(1)——pcshow()函数可视化单个点云 matlab可视化单个点云常用方法汇总。 阅读详情

相关推荐

NCBI|叶绿体基因组数据上传

叶绿体基因组NCBI上传 小编最近在NCBI上传了好几次数据…想着可以把具体的上传步骤写下来,供大家参考。以下是叶绿体基因组的上传示例,大家可以瞅瞅 图片 准备工作 1.登录NCBI官网:https://www.ncbi.nlm.nih.gov/, 依次点击“sign in to NCBI”——“See more 3rd party sign in options”——搜索“Microsoft live.com”。 ”sign in to NCBI“ ”See more 3rd party sign i

weifanbio的博客 3900

Dot Net FrameWork 4.0 学习笔记(2)

这两天太忙了,没有时间继续更新这学习笔记了,每天都要熬到10点钟才下班,现在我已经就在打哈欠了...还是赶紧写完眯觉觉吧...这一章照旧就是webform的更新变化来说的,,废话不说,,let'sgo1,在webform中做url路由2,通过实现自定义的CacheProvider,来实现自定义的页面缓存逻辑3,新增的...

weixin_34405332的博客 161

AltiumDesigner相同模块复用操作

AltiumDesigner相同模块复用操作框选已布局好的A电路,作为复用模块创建Room同样的操作,框选C电路,然后也创建Room查看A电路的Chanel Offset显示设置复制Channel Offset查看B电路的Channel Offset复制A电路的Channel Offset到C电路Room格式的复制 框选已布局好的A电路,作为复用模块 创建Room 同样的操作,框选C电路,然后也创建Room 查看A电路的Chanel Offset 框选A模块的,然后点右下角的菜单——PCB——PCB

weixin_41947101的博客 5959

基于.Net Framework 4.0 Web API开发(2):ASP.NET Web APIs 参数传递方式详解

概述:   ASP.NET Web API 的好用使用过的都知道,没有复杂的配置文件,一个简单的ApiController加上需要的Action就能工作。调用API过程中参数的传递是必须的,本节就来谈谈API使用过程中参数的传递方式。 各种参数传递方式的实现: ASP.NET Web API参数有两种传递方式,一种是请求时携带QueryString,Action中没有...

ddufftimz66781829的博客 510

极化码自适应CA-SCL译码(极化码译码)

我们知道最初极化码提出来是运用SC译码,但短码和中等长度其译码性(误码率)能不如LDPC码码,,为了提升有限长度极化码的译码性能,我们主要从译码器的性能和极化码的纠错性能来考虑。 SCL:在增加复杂度的情况下,大幅度增加极化码纠错性能,在高信噪比下,与最优ML性能相同(L=32) CA-SCL:改善最小汉明距离(最小汉明距离增大),增加其纠错性能。把CRC和极化码极联。 自适应CA-SCL:CA-SCL译码虽然提升几乎没的纠错性能,但是导致复杂度大幅度增加,为了降低其复杂度,让L自适应,从而降低其复杂度

m0_52610504的博客 3294

【机器学习入门】1.4 吃透这些基本术语,才算真正入门

本文通过"挑西瓜"的生活案例,形象解释了机器学习的基本术语。样本对应单个西瓜,特征如色泽、根蒂等是观察维度,特征值是其具体表现,标签是西瓜的好坏判断。数据集是样本集合,特征向量是样本的数学表达,特征空间是所有可能的样本组合。文章强调数据集需划分为训练集、验证集和测试集,以评估模型的泛化能力。最后整理了术语对照表,并解答了常见问题。这些基础概念是理解机器学习的关键,建议读者重点掌握。

国科大硕士在读,分享Python/GEE/Matlab/R专业代码实践,涵盖数据分析、算法开发与应用技巧等,以代码会友。 653

HttpHelper.cs类

/// /// 类说明:HttpHelper类,用来实现Http访问,Post或者Get方式的,直接访问,带Cookie的,带证书的等方式,可以设置代理 /// 重要提示:请不要自行修改本类,如果因为你自己修改后将无法升级到新版本。如果确实有什么问题请到官方网站提建议, /// 我们一定会及时修改 /// 编码日期:2011-09-20 /// 编 码 人:苏飞 /// 联系方式:3619836

OuErHuiLaiKanKan的博客 1007

YOLO11改进策略【独家融合改进】| RCSOSA + SPD + WFU

SPD-Conv是一种新的 CNN 构建模块,用于替代传统 CNN 架构中使用的步长卷积(strided convolution)和池化(pooling)层,它由空间到深度(Space-to-depth,SPD)层和非步长卷积(non - strided convolution)层组成。WFU模块通过小波变换的频率分解与跨尺度融合机制,解决了传统上采样过程中的混叠和细节丢失问题,实现了高效、高保真的面部细节重建。

Limiiiing的博客 448

netframework 4.0内置处理JSON对象

前言 必须的是 .netframewoke 4.0的项目才能使用。   内容 1.项目添加System.Runtime.Serialization引用。 2.JsonHelper通用类的代码如下: using System; using System.Text; //--------------------------using using System.Runtime....

weixin_34343308的博客 219

热力学仿真软件:Fluent_(8).材料属性设置

在 Fluent 中,材料属性主要包括密度、比热容、导热系数、黏度等物理性质。这些属性在不同的仿真场景中有着不同的作用,例如在流体仿真中,密度和黏度是必不可少的;在传热仿真中,导热系数和比热容是主要考虑的因素。如果所需的材料不在材料库中,或者需要对现有材料进行修改,用户可以自定义材料属性。在主菜单中选择Materials。点击打开材料编辑器。在材料编辑器中,点击Create按钮,输入新的材料名称。选择材料类型(如FluidSolid等)。在属性栏中填写所需的材料属性。

kkchenjj的博客 1492

利用pytorch长短期记忆网络LSTM实现股票预测分析

长短时记忆网络(Long Short Term Memory Network, LSTM),是一种改进之后的循环神经网络,可以解决RNN无法处理长距离的依赖的问题,目前比较流行。LSTM主要就是加入了三个门控:第一个开关遗忘门:负责控制继续保存长期状态c;第二个开关输入门:负责控制把即时状态输入到长期状态c;第三个开关输出门:负责控制是否把长期状态c作为当前的LSTM的输出。

优快云 精品推荐 1万+

C#动态属性(.NET Framework4.5支持)

获取方法: /* 使用方法: 1. 在web.config 的&lt;configSections> 节点中添加 &lt;section name="customConfigs" type="FortuneLab.Core.Configurations.CustomConfigsSection,FortuneLab.Core"/> ...

weixin_30731287的博客 369

YOLOv11【第六章:模型压缩与极致优化篇·第4节】Lamp 剪枝算法:无需超参的自动化剪枝策略!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 1210

精进不休 .NET 4.0 (2) - asp.net 4.0 新特性之url路由, 自定义CacheProvider, 新增的表达式<%: expression %>, QueryExtender控

介绍 asp.net 4.0 的新增功能 在 web form 中做 url 路由 通过实现自定义的 CacheProvider ,来实现自定义的页面缓存逻辑 新增的表达式 相当于  控件 QueryExtender,对数据源控件获得的数据做再检索 其它新特性 示例 1、web form 中的 url 路由的 demo Global.asax.cs 代码

天外有天,人外有人。 专注品质 不断创新 让精益求精成为习惯 961

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Expression查询语法

A:Expression查询语法 1:Expression.eq: 对应sql(fidld=value):Expression.eq("name","zhengjigang") 2:Expression.allEq:参数为一个Map对象。相当于多个Expression.eq关系的叠加 3:Expression.gt:对应sql(field>value) ...

weixin_30394333的博客 256

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

SpringBoot自学笔记6--自定义配置

一、配置为开发模式 当我们进行修改后,需要重新启动才能看到修改结果。 加入以下依赖,代码做了修改,不用重新运行 &lt;dependency> &lt;groupId>org.springframework&lt;/groupId> &lt;artifactId>springloaded&lt;/artifactId&...

QilanAllen的博客 232

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Hibernate中的查询(Criteria Query)

A:Expression查询语法  1:Expression.eq: 对应sql(fidld=value):Expression.eq("name&quot;,"zhengjigang")  2:Expression.allEq:参数为一个Map对象。相当于多个Expression.eq关系的叠加  3:Expression.gt:对应sql(field&gt;value)  4:Expression.ge...

zhengjigang的专栏 327

[翻译]ASP.NET 2.0中的健康监测系统(Health Monitoring)(2) - 通过Email发送监测信息

原文地址:http://aspnet.4guysfromrolla.com/articles/032107-1.aspx[原文源码下载][译者改后源码下载][翻译]ASP.NET 2.0中的健康监测系统(Health Monitoring)(2) - 通过Email发送监测信息原文发布日期:2007.03.21作者:Scott Mitchell翻译:webabcd介绍ASP.NET 2.0

webabcd的专栏 1423

精进不休 .NET 4.0 (3) - asp.net 4.0 新特性之动态数据(Dynamic Data)增强, AJAX增强; IDE之Visual Studio 2010增强

[源码下载]精进不休 .NET 4.0 (3) - asp.net 4.0 新特性之动态数据(Dynamic Data)增强, AJAX增强; IDE之Visual Studio 2010增强作者:webabcd介绍asp.net 4.0 的新增功能 EnableDynamicData - 启用 Dynamic Data 的功能  D

webabcd的专栏 1347

[翻译]ASP.NET 2.0中的健康监测系统(Health Monitoring)(1) - 基本应用

原文地址:http://aspnet.4guysfromrolla.com/articles/031407-1.aspx[原文源码下载][译者改后源码下载][翻译]ASP.NET 2.0中的健康监测系统(Health Monitoring)(1) - 基本应用原文发布日期:2007.03.14作者:Scott Mitchell翻译:webabcd介绍在程序部署之前,要经历许多软件工程中定义

webabcd的专栏 1158

精进不休 .NET 4.0 系列文章索引

[源码下载]<br /><br /><br />精进不休 .NET 4.0 系列文章索引<br /><br /> 作者:webabcd<br /><br /><br /> 介绍<br /> 精进不休 .NET 4.0 系列文章索引:asp.net 4.0 新特性, c# 4.0 新特性, ADO.NET Data Services 1.5 新特性, ADO.NET Entity Framework 4.0 新特性<br /><br /><br /> 1、精进不休 .NET 4.0 (1) - asp

webabcd的专栏 872

温故知新ASP.NET 2.0(C#)(5) - Localization(本地化,多语言)

[索引页][源码下载]温故知新ASP.NET 2.0(C#)(5) - Localization(本地化,多语言)作者:webabcd介绍声明性资源表达式可使您的应用程序使用多种语言,而不必手动编写代码来检索资源并在页中进行替换。您只需使用 ASP.NET 2.0 中新提供的表达式语法即可对资源替换进行定义。ASP.NET 2.0 支持标准的 resx

webabcd的专栏 787

[翻译]ASP.NET 2.0中的健康监测系统(Health Monitoring)(3) - 触发自定义事件

原文地址:http://aspnet.4guysfromrolla.com/articles/062707-1.aspx[原文源码下载][译者改后源码下载][翻译]ASP.NET 2.0中的健康监测系统(Health Monitoring)(3) - 触发自定义事件原文发布日期:2007.06.27作者:Scott Mitchell翻译:webabcd介绍在之前的文章中(译者注:ASP.N

webabcd的专栏 724

精进不休 .NET 4.0 (1) - asp.net 4.0 新特性之web.config的改进, ViewStateMode, ClientIDMode, EnablePersistedSelection, 控件的其它一些改进

[源码下载]精进不休 .NET 4.0 (1) - asp.net 4.0 新特性之web.config的改进, ViewStateMode, ClientIDMode, EnablePersistedSelection, 控件的其它一些改进作者:webabcd介绍asp.net 4.0 的新增功能简洁的 web.config 文件控件的新属性 ViewStateMode - 控件的视图状

webabcd的专栏 722

温故知新ASP.NET 2.0(C#)(1) - MasterPage(母版页)

[索引页][源码下载]温故知新ASP.NET 2.0(C#)(1) - MasterPage(母版页)作者:webabcd介绍母版页(MasterPage)就相当于模板页,挺简单的,没什么好说的。基于母版页的常用的功能有:母版页和内容页之间信息的传递,在内容页中用FindControl方法找到内容页中的控件等。另外,母版页是可以嵌套的。关键

webabcd的专栏 662

温故知新ASP.NET 2.0(C#)(3) - SiteMap(站点地图)

[索引页][源码下载]温故知新ASP.NET 2.0(C#)(3) - SiteMap(站点地图)作者:webabcd介绍ASP.NET 2.0 中的站点导航提供程序向应用程序中的页公开导航信息,使您可以独立于页的实际物理布局定义站点的结构。默认站点导航提供程序基于XML,但通过为站点地图编写自定义提供程序,也可以从任意后端公开此信息。关键

webabcd的专栏 618
上一篇: 精进不休 .NET 4.0 (1) - asp.net 4.0 新特性之web.config的改进, ViewStateMode, ClientIDMode, EnablePersistedSelection, 控件的其它一些改进
下一篇: 精进不休 .NET 4.0 (3) - asp.net 4.0 新特性之动态数据(Dynamic Data)增强, AJAX增强; IDE之Visual Studio 2010增强
webabcd
博客等级 码龄17年 28粉丝 911原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值