我试图让工作的URL是以下风格的网址:http://somedomain.com/api/people/staff.33311(就像网站一样,LAST.FM允许在他们的RESTFul和WebPage网址中添加所有类型的标记例如," http://www.last.fm/artist/psy'aviah "是LAST.FM的有效网址.
以下方案有效: - http://somedomain.com/api/people/ - 返回所有人 - http://somedomain.com/api/people/staff33311 - 也可以,但不是我的意思在我希望网址接受"点"后,就像下面的示例 - http://somedomain.com/api/people/staff.33311 - 但这给了我一个
HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
Run Code Online (Sandbox Code Playgroud)
我已经设置了以下内容:
控制器"PeopleController"
public IEnumerable<Person> GetAllPeople()
{
return _people;
}
public IHttpActionResult GetPerson(string id)
{
var person = _people.FirstOrDefault(p => p.Id.ToLower().Equals(id.ToLower()));
if (person == null)
return NotFound();
return Ok(person);
}
Run Code Online (Sandbox Code Playgroud)WebApiConfig.cs
public static void Register(HttpConfiguration config)
{
// …Run Code Online (Sandbox Code Playgroud)c# asp.net-mvc-routing asp.net-mvc-4 asp.net-web-api asp.net-web-api2
我正在尝试创建一个强类型Id类,它现在在内部保存“long”。下面实现。我在实体中使用它的问题是实体框架给了我一条消息,表明属性Id已经映射到它上面。IEntityTypeConfiguration下面看我的。
注意:我的目标不是严格的 DDD 实现。所以请在评论或回答时记住这一点。类型化背后的整个 idId是供开发人员使用的,他们被强类型化为在所有实体中使用 Id 的项目,当然翻译为long(或BIGINT) - 但对于其他人来说很清楚。
在类和配置下面,这是行不通的。该存储库可以在https://github.com/KodeFoxx/Kf.CleanArchitectureTemplate.NetCore31找到,
Id类(现已注释掉):https : //github.com/KodeFoxx/Kf.CleanArchitectureTemplate.NetCore31/blob/master/Source/Common/Kf.CANetCore31/DomainDrivenDesign/Id.csEntity和ValueObject类(其中Entity属性Id的类型为Id.cs(上图):https : //github.com/KodeFoxx/Kf.CleanArchitectureTemplate.NetCore31/tree/master/Source/Common/Kf.CANetCore31/DomainDrivenDesignId类实现(现在标记为过时,因为在找到解决方案之前我放弃了这个想法)
namespace Kf.CANetCore31.DomainDrivenDesign
{
[DebuggerDisplay("{DebuggerDisplayString,nq}")]
[Obsolete]
public sealed class Id : ValueObject
{
public static implicit operator Id(long value)
=> new Id(value);
public static implicit operator long(Id …Run Code Online (Sandbox Code Playgroud) c# domain-driven-design entity-framework entity-framework-core .net-core
编辑1 2017年1月29日 -目前,我们的选择已经到电子结合EdgeJS和所有的力量的NodeJS上NPM那里包/资源.还有就是我们没有更好的选择,以创建跨平台的应用程序的所有三个plyers(macOS,linux和windows).感谢大家的投入.
ORIGINAL问题:
TL; DR - 用C#(.Net/Mono)编写的后端代码.编写需要对系统进行低级访问的桌面应用程序(跨平台OSX,Linux,Windows 7到10).寻找一站式跨平台UI工具/框架,可以通过轮询/消息传递或调用后端代码的代码来与后端代码的状态进行交互.这个"后端"包括例如扫描和列出过程信息,截取屏幕截图等.发送网络信息(访问了哪些网站等).这实际上是学生在进行在线考试时的考试监控器.教室.**
我们正在探索的选项:
Eto.Forms是我们现在使用的,但它限制了它的UI功能 - 因为有时它仍然在不同的平台上呈现不同的(窗口大小).它还具有与用户平台相关的不同外观和感觉 - 这是一个很好的功能,但它使得难以制作专用控件来可视化状态,这在html/css中会更容易.
另一种途径是Eto.Forms(或其他)之间的混合,用于引导本机UI,该UI在其窗口中托管浏览器,该窗口跨平台而不依赖于本地安装的浏览器,例如Awesomium.这仍然需要Eto.Forms或任何其他引导程序来启动应用程序,但所有其他导航将通过Awesomium呈现的html.
谢谢,伊夫
编辑 #1:似乎我有一个有效的配置,但欢迎提出所有改进建议。见答案:https : //stackoverflow.com/a/42269408/1155847
原问题:
我目前正在尝试设置我的环境,以便使用我package.json的devDependencies打字稿版本。什么是一些我们的最佳实践,所以它是“编辑不知道”,最好可以用作NPM脚本,如:npm run tscompile?
需要明确的是 - 我可以在使用时让一切正常npm install typescript -g- 但是我依赖于全局安装版本,这不是我想要的 - 因为我们希望在一个团队中工作并为每个版本设置特定的打字稿版本升级之前的会员,所以我们都在同一页面上。
我目前正在尝试像这样设置它 - 但是npm然后抱怨它无法将“node_modules”识别为内部或外部命令......我想我也必须将 tsconfig.json 传递给 tsc,或者在至少给它一个“工作目录”——但我什至无法从我本地下载的 npm 缓存中启动 tsc。
包.json
{
"name": "tswithnodejsgettingstarted",
"version": "1.0.0",
"description": "",
"main": "app/index.js",
"scripts": {
"start": "node app/index.js",
"tscompile": "node_modules/typescript/tsc"
},
"author": "",
"license": "ISC",
"devDependencies": {
"typescript": "2.1.6"
}
}
Run Code Online (Sandbox Code Playgroud)
配置文件
{
"compileOnSave": true,
"compilerOptions": {
"module": "commonjs",
"noImplicitAny": true,
"sourceMap": true,
"outDir": …Run Code Online (Sandbox Code Playgroud) 我试过的事情:
我有以下错误日志:
[0A48:124C][2016-09-16T13:28:19]i300: Apply begin
[0A48:124C][2016-09-16T13:28:19]i010: Launching elevated engine process.
[0A48:124C][2016-09-16T13:28:19]i011: Launched elevated engine process.
[0A48:124C][2016-09-16T13:28:20]i012: Connected to elevated engine.
[0D94:0270][2016-09-16T13:28:20]i358: Pausing automatic updates.
[0D94:0270][2016-09-16T13:28:20]i359: Paused automatic updates.
[0D94:0270][2016-09-16T13:28:20]i360: Creating a system restore point.
[0D94:0270][2016-09-16T13:28:20]i362: System restore disabled, system restore point not created.
[0D94:0270][2016-09-16T13:28:20]i371: Updating session, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{e39e00c9-09be-48bb-b175-01a07b3f7538}, resume: Active, restart initiated: No, disable resume: No
[0D94:08CC][2016-09-16T13:28:20]i304: Verified existing payload: AspNetCoreModule_x64 at path: C:\ProgramData\Package Cache\{4ADC4F4A-2D55-442A-8655-FBF619F94A69}v1.0.1967\packages\aspnetcoremodule_x64_en_rc2_39.msi.
[0D94:0270][2016-09-16T13:28:20]i301: Applying execute package: AspNetCoreModule_x64, action: Repair, path: C:\ProgramData\Package Cache\{4ADC4F4A-2D55-442A-8655-FBF619F94A69}v1.0.1967\packages\aspnetcoremodule_x64_en_rc2_39.msi, …Run Code Online (Sandbox Code Playgroud) 我正在使用TypeScript和React.我已经定义了我的AppContainer.tsx组件,将其导出为默认值.我在文件app.ts中使用ReactDOM它来生存它以将其呈现给目标dom元素.但我收到以下错误(见图).有关更多信息和GitHub repo的链接,请阅读以下内容.
问题:我在做什么或者解释是什么?从所有代码示例我看到这应该工作 - 但也许(显然)我错过了一些东西.以下是更多信息和完整GitHub仓库的链接.
/// <reference path="../../../typings/index.d.ts" />
// Top level application component
/*------------------------------------------------------------------------------------*/
/** IMPORTS **/
import * as React from 'react';
import { Component } from 'react';
/*------------------------------------------------------------------------------------*/
/*///*/
/*------------------------------------------------------------------------------------*/
/** COMPONENT **/
export default class AppContainer extends React.Component<{}, {}> {
render() {
return ( <div /> );
}
}
/*------------------------------------------------------------------------------------*/
/*///*/ …Run Code Online (Sandbox Code Playgroud) 编辑: 在给我模式选项等之前,请参见下面有关C#8.0中Null立场的更新。
原始问题
我正尝试使用C#8.0 <Nullable>enable</Nullable>标志将基本库升级为“空启用” 。
当尝试使用抽象以及特定的泛型时,我遇到了一些问题。考虑以下代码片段,该代码片段采用Action并将其转换为Func<TResult>。这是pre-nullable-enable:
public static Func<TResult> ToFunc<TResult>(this Action action)
=> () => { action(); return default; }
;
Run Code Online (Sandbox Code Playgroud)
但是post-nullable-enable我似乎很挣扎,因为我不能使TResult可TResult?为null(或),因为机智将要求where TResult: classor 的约束where TResult: struct。我无法组合这两个约束来让编译器知道TResult可以是类或值类型。目前我感到烦恼的是-因为无论类还是结构都应该能够表达出来,所以它将是可空的(无论以前的.NET初始化设计如何)。
因此,post-nullable-enable我似乎只有一个选择,那就是代码复制,下面是示例:
public static Func<TResult?> ToFuncClass<TResult>(this Action action)
where TResult : class
=> () => { action(); return null; }
;
public static Func<TResult?> ToFuncStruct<TResult>(this Action action)
where TResult : struct
=> …Run Code Online (Sandbox Code Playgroud) 我试图排除一些项目在天蓝色管道中构建。
我尝试了以下选项...
- script: dotnet build **/Core/*.csproj --configuration $(buildConfiguration)
Run Code Online (Sandbox Code Playgroud)
和
- script: dotnet build **/Core/**/*.csproj --configuration $(buildConfiguration)
Run Code Online (Sandbox Code Playgroud)
但找不到好的例子。
我想要构建的项目位于不同的子文件夹下,如../../Core/Domain/Domain.csproj 和 ../../Core/Presentation/Presentation.csproj
有什么我想念的吗,有可能吗?或者我只是做错了什么。
yaml azure azure-devops azure-pipelines azure-pipelines-yaml
我正在尝试在代码中创建NSButton和NSLabel.我能够创建它,但我不知道应该在哪里添加它然后连接它以进行连接.
我不想使用XCode(w/Interface Builder),因为这些控件需要动态实例化.
有人能指出我在MonoMac/C#中动态创建和连接对象的正确方向吗?
谢谢,Yves
我目前正在制作一个在后端共享代码的应用程序.作为表示层,我使用的是WinForms,Cocoa(MonoMac)和GTK#(Linux).
我正在寻找一种以抽象方式描述我的用户界面的方法,因此具体的UI实现(Cocoa,WinForms,GTK#)只需要担心显示和绘图.
这样我就可以 - 从具体视图中连接事件(按钮点击,数据输入)并将它们绑定到控制器/或抽象视图处理程序中的函数. - 让控制器/抽象视图/模型更新视图..?
所以基本上我试图得到一种IView,IController和IModel设置......或者Model-View-Presenter,或MVVM,那里有任何示例应用程序......?因为有很多理论,但没有具体的例子.
对于那些想在LINUX/WINDOWS和MAC上制作桌面跨平台应用程序的人,我建议也考虑一下Electron(electron.atom.io).它基本上是Chromium + NodeJS - 这意味着一个浏览器的UI设计具有Node(和npm包)的强大功能.您还可以通过EdgeJS挂钩.NET代码.