GVKun编程网logo

win32 API和.NET框架之间的select(.net core api框架)

13

本文将带您了解关于win32API和.NET框架之间的select的新内容,同时我们还将为您解释.netcoreapi框架的相关知识,另外,我们还将为您提供关于.net与Java各个框架之间的对应关系

本文将带您了解关于win32 API和.NET框架之间的select的新内容,同时我们还将为您解释.net core api框架的相关知识,另外,我们还将为您提供关于.net与Java 各个框架之间的对应关系、android-.net框架之外的Servicestack客户端,实现?、asp.net – Visual Studio中Web API和Azure API APP之间的区别、asp.net-web-api – 在Azure Service Fabric中,无状态Web API和ASP.NET Core Web API之间的差异是什么?的实用信息。

本文目录一览:

win32 API和.NET框架之间的select(.net core api框架)

win32 API和.NET框架之间的select(.net core api框架)

我必须开发一个Windows应用程序,通过识别手势,通过networking摄像头控制鼠标。 我将使用vc ++ 2008进行开发。 但是我很困惑是否要使用.NET框架或核心的win32 APIs。 性能对于我的应用程序非常重要。 按照Ivor Horton的书“Beginning Visual C ++ 2008”,使用.NET框架有一个小的性能损失。 我想知道惩罚依赖的所有因素,为我的应用程序使用.NET框架将是可行的。

如何在Windows任务栏中创build一个文本框?

无法使用Windows 7或Windows Server 2008(64位)从COM +目录导出32位ServicedComponent

vb 2008 WriteProcessMemory()返回0

.netdebugging打印输出中的“无符号加载”是什么意思?

Windows 7本机查找.NET ListView

如果你熟悉Win32 API,那么去Win32 API。 这是你的情况的自然选择,因为你的大部分源代码将视频捕捉,图像处理,算法,并在Windows中的鼠标接口。 当您对性能感兴趣时,应尽量避免使用像.NET这样的厚层硬件。

我相信.NET是用于复杂的业务应用程序,而不是实时应用程序或设备驱动程序。

除非你是一个非常有经验的C ++程序员,否则C#是一种更高效的语言(作为拥有超过15年C ++经验和2年C#的人员)。

.Net库提供了比标准C ++库更易于使用的丰富的高质量功能。

所以,我会去使用.Net。

我还建议使用C ++ / CLI直接调用复杂的本地库,如果你必须整合它们,而不是P / Invoke。 这对于奇数调用是有好处的,但不能让您轻松访问数据结构或混合本机代码和托管代码。

.NET非常适合图形用户界面,也适用于非性能密集型领域的一般编程。 如果你需要做的不仅仅是一个简单的GUI,我会建议至少用.NET语言编写这个部分。

在你所描述的程序中,识别手势将是唯一的计算密集型部分。 控制鼠标的实际过程是微不足道的。 所以只要手势识别部分能够满足您的需求,程序的其他部分可能就不会成问题了。

第一步,你应该研究什么库是做手势识别或类似的图像处理。 (我希望你不打算从零开始编写这个部分)。如果你发现任何基于.NET的库声称性能足够满足你的需求,那么你可以试试看。 否则,你可能会得到一个基于C或C ++或类似的库。 无论哪种方式,有可能将这样的事情与基于.NET的程序集成在一起。

我认为你应该限制用于GUI构建的.NET使用。最后的作品尝试在Win32中完成。 关于对象识别的剩余问题,有称为OPENCV(开源计算机视觉库)的好库。 这个库包含了你在项目中需要的所有可能的方法。 还有英特尔的硬件专用库IPP,这可以提升Opencv的性能。

一个快速的方法来说:本地API和.Net之间的性能差异可以通过购买更昂贵的处理器来弥补。 你当然会花费1美元到100美元之间,10美元是一个合理的估计。 因此,如果您期望超过一百万用户,请选择本机API。 如果您希望在2-3个演示电脑上使用它,那真的不重要。

.net与Java 各个框架之间的对应关系

.net与Java 各个框架之间的对应关系

本人主要学的是Java方向,发现一篇地方说到.net与Java 各个框架之间的对应关系,顺便转述一下。

 语言:                C# /Java

 开发环境:          Visual Studio 2008 Team Suite /Eclipse Web

框架:                 ASP.NET MVC /Struts

数据访问层框架: LINQ to SQL /Hibernate

android-.net框架之外的Servicestack客户端,实现?

android-.net框架之外的Servicestack客户端,实现?

我计划使用.NET之外的ServiceStack提供的REST服务.我打算为Java和obj-c编写客户端.这应该很容易,因为它是REST服务,但是在文档中似乎暗示了其他方面:

But ServiceStack includes two clients which are optimized for ServiceStack in aspects like exception handling etc.

我将如何使用Android实施ServiceStack客户端?只需遵循正常的REST消耗程序?我应该担心任何异常处理问题吗?

另外,身份验证是否会成为问题(我将使用BasicAuthentication)?

解决方法:

ServiceStack Web服务提供了纯HTTP / REST API,这些API实际上只是在线上的序列化POCO DTO.您可以控制整个HTTP输出,因为ServiceStack不会在序列化的有效负载周围添加任何其他杂项.

期待纯序列化DTO

自以为是的性质来自于ServiceClients,它们假定服务只是返回纯序列化的DTO(即没有附加的残差),它只是将原样反序列化为指定的响应类型. ServiceClient的独特之处在于,它们可以为您提供强大的端到端API,而无需任何代码生成,因为您可以重复使用定义Web服务所用的POCO DTO.

退回到预定义的路线

默认情况下,像Send<TResponse>(dto)这样的API中不包含relativeOrAbsoluteUri的API将默认使用ServiceStack自动提供的pre-defined routes,允许您调用Web服务而无需为其指定任何自定义路由.当然,您可以选择使用自定义路由,而不必遵循IRestClient和IRestClientAsync API,这些API允许您指定要使用的URL.

自动错误处理

C#ServiceStack ServiceClient经过优化,按照惯例,ServiceStack Web服务将在您的Response DTO的ResponseStatus属性中序列化结构化错误响应(仅当它具有一个时).客户端所做的所有服务只是将错误响应反序列化为类型化的C#WebServiceException,这使您的C#客户端可以对结构化错误进行强类型访问,如Validation wikipage中所述.

基本上,ResponseStatus属性只是一个约定(不是一些抗REST的魔术),您仍然可以控制返回的HttpStatus代码和描述.这只是所有REST客户端都可以平等访问的另一个纯DTO属性-这是一个simple JavaScript ss-validation.js例程,该例程提取responseStatus元数据并将错误注入到Twitter Bootstrap HTML表单中.

asp.net – Visual Studio中Web API和Azure API APP之间的区别

asp.net – Visual Studio中Web API和Azure API APP之间的区别

在创建新的ASP.NET Web应用程序以开发我的API并在Azure中托管它时,我有两个选择:

> Web API
> Azure API APP

我可以创建一个Web API APP并将其托管在Azure API APP中吗?那么它们存在的主要原因是什么?

enter image description here

解决方法

根据您的需要,它们只是不同的起点.

Azure API是一个精简的API模板,支持OpenAPI.

ASP.NET Web API是一个完整的ASP.NET MVC应用程序,主要用于支持API.

差异#1:Web API模板中的身份验证支持

ASP.NET Web API

支持身份验证选择(无,个人用户,工作或学校,Windows).

Screenshot showing selection of authentication support

ASP.NET Azure API应用程序

期望客户提供代币(持票人代币或API代币).使用Azure门户配置用户(不是API令牌)的身份验证和授权.使用Azure API Management(或其他服务)来管理API令牌.

Screenshot showing unavailable selector for authentication support

差异#2:Web API模板中的MVC支持

ASP.NET Web API

自动包含MVC以显示帮助页面.这些与OpenAPI(Swagger)自生成文档不同.

Screenshot showing MVC option preselected,non-editable

ASP.NET Azure API应用程序

不会自动包含MVC或帮助页面

Screenshot showing MVC option not selected,editable

差异#3:支持Web API中的UI文件

ASP.NET Web API

包括区域,内容,HomeController,字体,脚本和视图

Screenshot showing Solution Explorer with expanded assets

ASP.NET Azure API应用程序

Screenshot showing Solution Explorer with minimal assets

差异#4:Web API模板中的更多启动配置

ASP.NET Web API

public class WebApiApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        AreaRegistration.RegisterallAreas();
        GlobalConfiguration.Configure(WebApiConfig.Register);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
    }
}

ASP.NET Azure API应用程序

public class WebApiApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        GlobalConfiguration.Configure(WebApiConfig.Register);
    }
}

差异#5:Azure API模板中的OpenAPI(Swagger)支持

ASP.NET Web API

public class ValuesController : ApiController
{
    // GET api/values
    public IEnumerable<string> Get()
    {
        return new string[] { "value1","value2" };
    }

    // GET api/values/5
    public string Get(int id)
    {
        return "value";
    }

    // POST api/values
    public void Post([FromBody]string value)
    {
    }

    // PUT api/values/5
    public void Put(int id,[FromBody]string value)
    {
    }

    // DELETE api/values/5
    public void Delete(int id)
    {
    }
}

ASP.NET Azure API应用程序

默认情况下启用OpenAPI(Swagger). OpenAPI JSON文档位于/ swagger / docs / v1

public class ValuesController : ApiController
{
    // GET api/values
    [SwaggerOperation("GetAll")]
    public IEnumerable<string> Get()
    {
        return new string[] { "value1","value2" };
    }

    // GET api/values/5
    [SwaggerOperation("GetById")]
    [SwaggerResponse(HttpStatusCode.OK)]
    [SwaggerResponse(HttpStatusCode.NotFound)]
    public string Get(int id)
    {
        return "value";
    }

    // POST api/values
    [SwaggerOperation("Create")]
    [SwaggerResponse(HttpStatusCode.Created)]
    public void Post([FromBody]string value)
    {
    }

    // PUT api/values/5
    [SwaggerOperation("Update")]
    [SwaggerResponse(HttpStatusCode.OK)]
    [SwaggerResponse(HttpStatusCode.NotFound)]
    public void Put(int id,[FromBody]string value)
    {
    }

    // DELETE api/values/5
    [SwaggerOperation("Delete")]
    [SwaggerResponse(HttpStatusCode.OK)]
    [SwaggerResponse(HttpStatusCode.NotFound)]
    public void Delete(int id)
    {
    }
}

asp.net-web-api – 在Azure Service Fabric中,无状态Web API和ASP.NET Core Web API之间的差异是什么?

asp.net-web-api – 在Azure Service Fabric中,无状态Web API和ASP.NET Core Web API之间的差异是什么?

我没有挖那么多,但两者的优点和缺点是什么……
似乎它们是多余的,显然核心版本是实验性的,可能不适用于许多核心库,如Odata和Entity Framework

解决方法

tl / dr:无状态Web API是较旧的“经典”Web API. ASP.NET Core是所有新功能的新功能.

更多细节:

无状态Web API模板:

>基于OWIN的“经典”ASP.NET Web API 2.不支持MVC(没有Razor服务器端渲染).
>仅限完整的.NET Framework.
>在Visual Studio 2015中使用“经典”.NET项目类型(.csproj).
>使用Katana作为Web主机,它是在System.Net.HttpListener上构建的,它本身使用Windows HTTP Server API(http.sys).

ASP.NET核心模板:

>新的ASP.NET Core,它结合了MVC和Web API,并提供了Razor服务器端呈现和ASP.NET的大量新功能.
>完整的.NET Framework或.NET Core,但目前Service Fabric中仅支持完整的.NET Framework.
>在Visual Studio 2015中使用新的.NET项目类型(.xproj).在VS 2015中为此项目类型的工具被视为“预览”并将保持不变.工具仅在较新的Visual Studio 2017中被视为“生产”(它已被更改回.csproj).这就是我们目前在VS 2015中同时拥有两个项目模板的原因.
>使用WebListener or Kestrel作为Web主机.

> WebListener也基于http.sys,完全支持.> Kestrel基于完全不同的跨平台库(libuv),在当前状态下,我们不建议将其放在面向Internet的生产应用程序中,而不使用反向代理来提供DoS保护.

我们今天的关于win32 API和.NET框架之间的select.net core api框架的分享已经告一段落,感谢您的关注,如果您想了解更多关于.net与Java 各个框架之间的对应关系、android-.net框架之外的Servicestack客户端,实现?、asp.net – Visual Studio中Web API和Azure API APP之间的区别、asp.net-web-api – 在Azure Service Fabric中,无状态Web API和ASP.NET Core Web API之间的差异是什么?的相关信息,请在本站查询。

本文标签: