开始使用 .NET - ASP.NET、WPF、Silverlight 还是命令行 C#?

2024-03-30

如果有人开始使用 .NET 框架,最可行的模板是什么?我所说的可行是指具有最低学习曲线和最高收益的方法。

从...开始:

  • 命令提示符应用程序 在 C# 中?
  • 使用 ASP.NET 的 Web 应用程序?
  • XAML/C# 中的 Silverlight 应用程序?
  • WPF/Winforms 桌面应用程序?

目前我不想过多关注某个特定领域,而是学习一点 .NET Framework 4.0 中的所有内容。按什么顺序学习 .NET 比较好?


控制台应用程序显然是起点:用户界面是一片广阔的森林,除非您具备在荒野中寻找踪迹的能力,否则尝试穿过它是没有意义的。此外,您在控制台应用程序中学到的所有内容都适用于您在 C# 中所做的所有其他操作。

之后的下一步是学习如何构建用户界面。我对那些建议您选择 WinForms 的人持异议:是的,有很多关于如何使用它的信息,并且有很多工具,而且最简单的是,它非常容易理解。但 WinForms 有两个问题。

首先,WinForms 使许多事情变得如此简单,实际上是非常糟糕的编程实践。在同一个类中混合业务和表示逻辑是 WinForms 编程中的常态,并且需要付出相当大的努力才能打破这种习惯,特别是因为数据绑定(将数据模型与表示解耦的关键工具)在 WinForms 编程中相当边缘化。 WinForms,虽然它是 WPF 架构的核心。 WPF 还有很多东西需要学习 -lot更多 - 但你最终会编写出更好的程序。

其次,WinForms 的生命周期已接近尾声。你不会看到微软投入更多资源来改进它。他们完成了。这并不意味着它在未来不会有用——它确实如此——但它在软件开发生态系统中的整体渗透率目前已经达到了前所未有的程度。

使用 WPF 的另一个原因是,您在 WPF 中学到的大部分知识也适用于 Silverlight,这打开了一扇永远向 WinForms 关闭的大门。

就 ASP.NET 而言,除非需要,否则您不想学习它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

开始使用 .NET - ASP.NET、WPF、Silverlight 还是命令行 C#? 的相关文章

  • C++ 子字符串返回错误结果

    我有这个字符串 std string date 20121020 我正在做 std cout lt lt Date lt lt date lt lt n std cout lt lt Year lt lt date substr 0 4 l
  • 当 contains() 工作正常时,xpath 函数ends-with() 工作时出现问题

    我正在尝试获取具有以特定 id 结尾的属性的标签 like span 我想获取 id 以 国家 地区 结尾的跨度我尝试以下xpath span ends with id Country 但我得到以下异常 需要命名空间管理器或 XsltCon
  • C - 找到极限之间的所有友好数字

    首先是定义 一对友好的数字由两个不同的整数组成 其中 第一个整数的除数之和等于第二个整数 并且 第二个整数的除数之和等于第一个整数 完美数是等于其自身约数之和的数 我想做的是制作一个程序 询问用户一个下限和一个上限 然后向他 她提供这两个限
  • C 预处理器库

    我的任务是开发源分析工具C程序 并且我需要在分析本身之前预处理代码 我想知道什么是最好的图书馆 我需要一些重量轻 便于携带的东西 与其推出自己的 为什么不使用cpp这是的一部分gcc suite http gcc gnu org onlin
  • 使用 asp.net 发送 20,000 多封电子邮件

    我正在编写一个应用程序 需要向从我们的数据库中选择的学生发送大量电子邮件 每封电子邮件都将进行个性化 包括他们的姓名 学习课程等 因此需要一次发送一个 我可以在 SmtpClient 上循环执行此操作 但我担心我尝试发送的数字最终会遇到超时
  • WPF TabControl,用C#代码更改TabItem的背景颜色

    嗨 我认为这是一个初学者的问题 我搜索了所有相关问题 但所有这些都由 xaml 回答 但是 我需要的是后台代码 我有一个 TabControl 我需要设置其项目的背景颜色 我需要在选择 取消选择和悬停时为项目设置不同的颜色 非常感谢你的帮助
  • 指针减法混乱

    当我们从另一个指针中减去一个指针时 差值不等于它们相距多少字节 而是等于它们相距多少个整数 如果指向整数 为什么这样 这个想法是你指向内存块 06 07 08 09 10 11 mem 18 24 17 53 7 14 data 如果你有i
  • 如何返回 json 结果并将 unicode 字符转义为 \u1234

    我正在实现一个返回 json 结果的方法 例如 public JsonResult MethodName Guid key var result ApiHelper GetData key Data is stored in db as v
  • 从路径中获取文件夹名称

    我有一些路c server folderName1 another name something another folder 我如何从那里提取最后一个文件夹名称 我尝试了几件事 但没有成功 我只是不想寻找最后的 然后就去休息了 Thank
  • 如何衡量两个字符串之间的相似度? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定两个字符串text1 and text2 public SOMEUSABLERETURNTYPE Compare string t
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 实体框架 4 DB 优先依赖注入?

    我更喜欢创建自己的数据库 设置索引 唯一约束等 使用 edmx 实体框架设计器 从数据库生成域模型是轻而易举的事 现在我有兴趣使用依赖注入来设置一些存储库 我查看了 StackOverflow 上的一些文章和帖子 似乎重点关注代码优先方法
  • 自定义错误页面未显示

    由于某种原因 当我收到 ASP NET 运行时错误时 它不会加载我的自定义错误页面
  • 如何让Gtk+窗口背景透明?

    我想让 Gtk 窗口的背景透明 以便只有窗口中的小部件可见 我找到了一些教程 http mikehearn wordpress com 2006 03 26 gtk windows with alpha channels https web
  • C - 直接从键盘缓冲区读取

    这是C语言中的一个问题 如何直接读取键盘缓冲区中的数据 我想直接访问数据并将其存储在变量中 变量应该是什么数据类型 我需要它用于我们研究所目前正在开发的操作系统 它被称为 ICS OS 我不太清楚具体细节 它在 x86 32 位机器上运行
  • mysql-connector-c++ - “get_driver_instance”不是“sql::mysql”的成员

    我是 C 的初学者 我认为学习的唯一方法就是接触一些代码 我正在尝试构建一个连接到 mysql 数据库的程序 我在 Linux 上使用 g 没有想法 我运行 make 这是我的错误 hello cpp 38 error get driver
  • ASP.NET MVC 6 (ASP.NET 5) 中的 Application_PreSendRequestHeaders 和 Application_BeginRequest

    如何在 ASP NET 5 MVC6 中使用这些方法 在 MVC5 中 我在 Global asax 中使用了它 现在呢 也许是入门班 protected void Application PreSendRequestHeaders obj
  • C 中的异或运算符

    在进行按位操作时 我在确定何时使用 XOR 运算符时遇到一些困难 按位与和或非常简单 当您想要屏蔽位时 请使用按位 AND 常见用例是 IP 寻址和子网掩码 当您想要打开位时 请使用包含或 然而 XOR 总是让我明白 我觉得如果在面试中被问
  • 防止索引超出范围错误

    我想编写对某些条件的检查 而不必使用 try catch 并且我想避免出现 Index Out of Range 错误的可能性 if array Element 0 Object Length gt 0 array Element 1 Ob
  • 恢复上传文件控制

    我确实阅读了以下帖子 C 暂停 恢复上传 https stackoverflow com questions 1048330 pause resume upload in c 使用 HTTP 恢复上传 https stackoverflow

随机推荐

  • 在Python 3.x中继承Python的对象是否有必要或者有用? [复制]

    这个问题在这里已经有答案了 在较旧的 Python 版本中 当您创建类时 它可以继承自object据我所知 这是一个特殊的内置Python元素 它允许你的类成为一个新样式的类 新版本 gt 3 0 和 2 6 怎么样 我用谷歌搜索了obje
  • Angular2 + webpack 不显示图像

    我已遵循Angular2 webpack 教程 https angular io docs ts latest guide webpack html 但似乎该应用程序无法加载任何图像 这是我的应用程序的目录结构 dist src asset
  • 根据放大/缩小时的可见区域在框的表面显示文本

    I have a sample 3D application built by taking reference from the Javafx sample 3DViewer which has a table created by la
  • RPostgreSQL - 将数据帧导入表中

    我想将完整的数据帧导出到已在数据库 postgresql 中创建并包含类似数据的表中 我发现一些关于 dbwrite 表的问题 overwrite TRUE 我不想覆盖表中已经存在的数据 我只想使用 r 控制台中的数据框更新我的表 有人可以
  • Angular 2 ngFor - 使用索引逆序输出

    尝试学习一些有关 Angular 2 中的过滤和排序的知识 我似乎找不到任何像样的资源 并且我陷入了如何使用索引以相反的顺序排序 ngFor 输出的问题 我写了下面的管道 它一直给我错误 数组切片不是函数 Pipe name reverse
  • 无尽重复滚动背景

    我遇到了 AS3 和 AIR 的问题 我正在为带有飞机的智能手机开发一款横向卷轴游戏 我使用不同的背景作为图层 首先 我使用 GPU 并且仅使用位图 质量设置为低 因此 性能设置均适合智能手机使用 我使用绘图 API 将它们放入一个矩形中
  • 如何针对 gtk 3 库运行 javaFx 应用程序?

    如何强制 javaFx 应用程序使用 gtk3 库 我知道SWT允许设置SWT GTK3 1用于此目的的环境变量 javaFx 是否有类似的可能性 解决方法 新功能 8087516 对 Linux 上的 GTK 3 有条件支持 https
  • 使用 HTML 和 CSS 的复选框仅适用于 Outlook Web(不适用于桌面应用程序)

    在 Outlook Windows 桌面应用程序中 不支持复选框 因为它使用 MS Word 作为其渲染引擎 但是 在网络应用程序中 复选框可以工作并且我可以通过电子邮件发送网站吗 https www caniemail com searc
  • Node.js:如何限制HTTP请求大小和上传文件大小?

    我正在使用 Node js 和 Express 我想限制 HTTP 请求的大小 比方说 如果有人向我发送超过 2 MB 的 HTTP 请求 那么我会立即停止该请求 我看了代码 我想如果我改变核心 我可以做到 但是 有没有办法设置max re
  • 如何在 Silverlight BackgroundWorker 中运行批量 WCF 服务调用

    是否有任何现有的管道可以在 a 中批量运行 WCF 调用后台工作者 http msdn microsoft com en us library system componentmodel backgroundworker VS 95 asp
  • 哪个 Cassandra 分区器更好:Random 或 Murmur3(就吞吐量而言),它们之间有什么区别?

    分区器的选择会给我的 Cassandra 吞吐量和延迟带来什么差异 我已经检查了所有三个分区 我注意到的一件事是ByteOrdered分区器有开销 所以我不使用它 现在我有点分裂Random and Murmur3分区器 两者之间的主要区别
  • 我的 iOS 程序将自己宣传为什么 HTTP 用户代理?

    我为我的播客编写了一个应用程序 御宅族的播客 http otakunopodcast com 在应用程序的各个部分 我使用NSURLConnection 获取 RSS 源 UIWebView 显示网站内容 AVPlayer 从我们的 CDN
  • 包含图像的 div 底部的空间[重复]

    这个问题在这里已经有答案了 对于这个小提琴 为什么底部有一个空格div imageDiv JSFiddle http jsfiddle net 7Knyx 1 div div div img src http upload wikimedi
  • 如何使用 Python 识别 PDF 文件中的删除文本

    我想从 pdf 文件中仅提取删除线文本 我已经尝试过下面的代码 它正在使用我拥有的示例 pdf 文件 但它不适用于另一个我认为是扫描文件的 pdf 文件 有没有任何标准方法可以使用 python 从 pdf 文件中仅提取删除文本 任何帮助将
  • 如何防止浏览器在返回 Django 时重新填充表单数据

    我有一个 Django 表单 可以将数据提交到数据库 成功填写表单并提交数据后 表单将重定向到另一个页面 但是 当用户点击浏览器上的后退按钮时 数据就会返回 有没有办法防止数据返回 将其添加到您的 HTML 中 它将不会缓存 如果你想要 D
  • Dynamic_cast 是如何工作的?

    如果您有以下情况 class Animal class Bird public Animal class Dog public Animal class Penguin public Bird class Poodle public Dog
  • LinkedIn API 字段选择器

    我最近开始阅读和测试 LinkedIn 的 API 但在使用时遇到问题field selectors 我的目标是使用 API 获取有关人员的信息 例如名字 姓氏 当前公司和头衔 默认情况下 人员搜索 https developer link
  • 如何像alert()一样聚焦窗口/选项卡?

    如果在我的某些选项卡中执行了alert 那么该选项卡将立即被选中 问题是 这个alert 框很丑 我已经用我的设计和所有内容创建了 但是当我调用它时 选项卡未被选择 聚焦 窗口 焦点 不起作用 有任何想法吗 您无法可靠地强制窗口或选项卡获取
  • 使用 openpyxl 用颜色填充单元格?

    我目前正在使用 openpyxl v2 2 2 for Python 2 7 我想为单元格设置颜色 我使用了以下进口 import openpyxl from openpyxl import Workbook from openpyxl s
  • 开始使用 .NET - ASP.NET、WPF、Silverlight 还是命令行 C#?

    如果有人开始使用 NET 框架 最可行的模板是什么 我所说的可行是指具有最低学习曲线和最高收益的方法 从 开始 命令提示符应用程序 在 C 中 使用 ASP NET 的 Web 应用程序 XAML C 中的 Silverlight 应用程序