小编ydo*_*oow的帖子

将Web窗体迁移到ASP.NET Core MVC的最佳实践

我正在尝试将项目从经典的ASP.Net Web窗体迁移到ASP.NET MVC.

我读过http://www.codeproject.com/Articles/38778/ASP-NET-WebForms-and-ASP-NET-MVC-in-Harmony.我对如何完成代码结构,库和路由有一个基本的想法.

为了您的信息,我现有项目的范围大约是400页和300个表.

在我的头脑中,我有两种方法:

  1. 从拉伸开始,重写整个系统 - 显然这需要大量的工作并需要很长时间.对现有系统进行的任何更改都需要对新系统进行重复更改.
  2. 每个页面迁移一次 - 我仍然重建整个核心库(用于访问数据库),并逐个迁移页面.为此,我假设有两个核心库(新旧)同时运行,不同的页面连接到其中一个.

有没有人有类似的经验,并建议一个正确的方式开始?

对于这个完整的改进,我也可以针对最新的技术 - .NET Core和MVC6,通过采取这些我会有额外的优势,或者我需要处理的一些障碍?

任何建议和意见表示赞赏.干杯.

asp.net migration asp.net-mvc webforms

11
推荐指数
1
解决办法
4714
查看次数

将嵌套的JSON转换为CSV

我正在将一个超过10级的嵌套JSON对象转换为C#.NET中的CSV文件.

我一直在使用JavaScriptSerializer().Deserialize<ObjectA>(json)XmlNode xml = (XmlDocument)JsonConvert.DeserializeXmlNode(json)打破对象.使用这些对象,我可以进一步写入CSV文件.但是现在JSON对象进一步扩展.大多数数据并没有真正使用,所以我更喜欢原始数据转储.

是否更简单的方法我可以将数据转储为csv格式而不声明结构?

示例JSON

{
"F1":1,
"F2":2,
"F3":[
    {
        "E1":3,
        "E2":4
    },
    {
        "E1":5,
        "E2":6
    },  
    {
        "E1":7,
        "E2":8,
        "E3":[
            {
                "D1":9,
                "D2":10
            }
        ]
    },      
]
}   
Run Code Online (Sandbox Code Playgroud)

我期望的CSV输出是

F1,F2,E1,E2,D1,D2
1,2
1,2,3,4
1,2,5,6
1,2,7,8,9,10
Run Code Online (Sandbox Code Playgroud)

c# csv json

9
推荐指数
1
解决办法
7685
查看次数

限制密码套件的编程方式

我的 C# 程序正在使用 TLS 1.2 调用外部 API。

这是我将其限制为 TLS 1.2 的方法

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
Run Code Online (Sandbox Code Playgroud)

此外,API 进一步将密码套件限制为以下内容

密码套件

TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

我做了进一步的研究,发现这可以通过更改运行机器上的网络配置来实现。

https://www.c-sharpcorner.com/forums/change-cipher-suitetlsecdheecdsawithaes256gcmsha384

但是我的机器有多个程序调用不同的 API(在不同的外部方),我想避免机器级别的全局更改。有什么方法可以以编程方式限制密码列表吗?

.net c# encryption ssl

4
推荐指数
1
解决办法
6678
查看次数

查找位于每个城市SQL的所有公司

在此输入图像描述

问题:假设公司可能位于多个城市.查找位于"小银行公司"所在的每个城市的所有公司.

答案:

Select S.company_name
from company S
where not exists
  (select city
  from company 
  where company_name = 'Small Bank Corporation'
  except
    (select city
    from company T
    where S.company_name = T.company_name
    )
 )
Run Code Online (Sandbox Code Playgroud)

我如何阅读: 选择所有不存在"小银行公司"城市但不在表S和T中的公司.

但是,S.company_name总是= T.company_name因为它们是同一个表的副本?

我正在寻求帮助来理解解决方案.

任何解释赞赏!

sql

3
推荐指数
1
解决办法
487
查看次数

使用html2canvas打印页面

我正在使用构建网页打印功能html2canvas

function printthispage() {

    html2canvas($("#mydiv"), {
        onrendered: function (canvas) {
            var myImage = canvas.toDataURL("image/png");
            var printWindow = window.open(myImage);                        
            printWindow.document.close();
            printWindow.focus();
            printWindow.print();
            printWindow.close();
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

但是,窗户立即打开和关闭。我试过删除close(),图像显示在新窗口上,但未触发打印功能。有什么不对?

html javascript html2canvas

2
推荐指数
1
解决办法
1万
查看次数

SQL Server附近的语法不正确')'

我收到此错误:

消息102,级别15,状态1,过程Add_Student,第6行
')'附近的语法不正确.

尝试运行此SQL查询时:

CREATE proc [Add_Student](
    @stud_id varchar(5),
    @fname varchar(25),
    @lname varchar(25),
    @balance decimal = 0
)       
AS
BEGIN
    BEGIN TRANSACTION
        INSERT INTO MyStudent(Student_ID, Fname, Lname, Acct_Bal)
        VAULES (@stud_id, @fname, @lname, @balance)

        IF @@ERROR <> 0
        BEGIN
            Rollback Transaction
            Raiserror ('Unable to insert record.',16,1)
            return -1
        END
        ELSE
        BEGIN
            Commit Transaction
            Print 'Record Added Successfully!'
        END
    END
Run Code Online (Sandbox Code Playgroud)

sql database sql-server

0
推荐指数
1
解决办法
997
查看次数