从.NET开始 – ASP.NET,WPF,Silverlight或命令行C#?
如果有人开始使用.NET框架,那么最可行的模板是什么? 可行性我指的是学习曲线最低,收益最高的那个。
从…开始:
我不想过多地关注某个特定的域,而是要学习.NET Framework 4.0中的所有内容。 以哪种顺序学习.NET会更好?
控制台应用程序显然是起点:用户界面是一个巨大的森林,在你开发出在荒野中寻找小径的能力之前,尝试通过它是没有意义的。 此外,没有什么可以学习做的控制台应用程序,这些应用程序不适用于您在C#中执行的所有操作。
之后的下一步是学习如何构建用户界面。 我会对那些暗示你选择WinForms的人提出异议:是的,那里有很多关于如何使用它的信息,并且有很多工具,最简单的是它很容易理解。 但是WinForms存在两个问题。
首先,WinForms很容易实现的很多东西实际上是非常糟糕的编程实践。 在同一个类中混合业务和表示逻辑是WinForms编程中的常态,并且需要花费大量精力来打破这种习惯,特别是因为数据绑定 – 将数据模型与表示分离的关键工具 – 在WinForms,虽然它是WPF架构的核心。 WPF还有很多东西需要学习 – 还有更多 – 但你最终会编写更好的程序。
其次,WinForms即将结束。 你不会看到微软投入更多资源来改进它。 他们完成了。 这并不意味着它不会对未来有用 – 它是 – 但它现在在软件开发生态系统中的整体渗透程度与它将来一样大。
使用WPF的另一个原因是,你学习使用WPF的大部分内容也适用于Silverlight,它打开了一扇永远关闭WinForms的大门。
就ASP.NET而言,这是您在需要之前不想学习的东西。
命令提示符可能是最容易的,因为你可以忽略消息和类似的东西,但你当然非常有限。 接下来是WinForms,这很容易,因为你可以很容易地跟踪状态。
但它可能取决于您当前的经验,如果您已经拥有一些Web体验,WebForms可能比WinForms更有意义,例如
您是否有需要或想要开发的应用程序?
如果你有,尝试定义一些细节,然后你将有一套你需要实现的目标。
一旦你有了这些目标,你就可以找出解决问题的最佳技术。
例如,如果你有一个相当静态的用户界面,WinForms可能会没问题,但是如果你想要整合动画和其他视觉效果,你应该看看WPF / Silverlight。
command line / console
应用程序开始。
为什么?
首先,您的面向对象概念的实现是基础,但没有涉及Web应用程序/ Windows应用程序/服务的复杂性或者什么。
使用Console application
模板进行编程将使您远离不必要的复杂性,并且您可以专注于框架和function的内部工作。
完成后并探索了诸如System.Collections等function/库之后,您应该根据您的兴趣和以前的开发经验从大量开发域中进行选择。
即Web应用程序开发/桌面开发或其他。
这将帮助您确定与您的兴趣并行的进一步细读的技术。 比如,如果您对Web应用程序开发感兴趣,可以使用Asp.Net WebForms / Asp.Net MVC
等,并且不需要浪费时间在Windows Forms or WPF
希望这可以帮助
如果我在教新人(编程全新),那么我将从控制台应用程序开始。 这将使您有机会教授基本的OO编程概念,而不会增加GUI开发的复杂性或ASP.Net页面生命周期的潜在复杂性。
然后我将进入WinForms开发并从事事件驱动编程和GUI。
您已经了解哪些编程环境?
我将从一个标准的Windows应用程序(winforms)开始,因为您可以轻松地将可视组件拖放到窗口上,并且可以非常快速和轻松地创建一些交互。
虽然大多数项目都可以轻松创建并直接运行,但Web应用程序需要更多的基础结构和有关Web的知识。
“而且最好的意思是那个学习曲线最低,收益最高的那个。我不想过多地关注一个特定的领域,而是在.NET Framework 4.0中学到一些东西。 “
如果你已经在.NET中编程了一段时间,你知道如果我见过一个LOL,上面的两个句子是矛盾的。
上次我检查.NET包含:程序集y = 15.1x + 17.3 108
命名空间y = 51.6x + 51 361
类型y = 2249.3x + 626.9 14123
成员y = 21343x + 7951.3 136009
因此,即使您已经使用.NET全程编程一段时间,您也几乎不会刮擦表面! 你甚至没有提到你是否精通C#但是如果没有你可以阅读Petzold免费电子书以加快速度,因为这是最常用于Silverlight,ASP,WinForms编程的语言。 如果命令行感到厌烦,那么我就建议使用“Head First C#”一书 ,它将为您提供一个温和的C#介绍以及.NET的function。
对于最初的步骤,我建议使用命令行应用程序。
对于其他一切,请跟进WinForm应用程序。 他们在turorials等广泛的网络覆盖,并提供涵盖基本和高级C#function的广泛的问题和解决方案。
ASP.NET,Silverlight和WPF是这些基础知识(控制台和Winforms)的进一步扩展,它实际上添加了另一组框架库。 这些是您在管理基础知识后可以解决的锦上添花。
不要误解我的意思,你也可以学习Silverlight或WPF应用程序的基础知识。 但几乎所有使用C#开发过的人都知道WinForm,所以你更有可能找到你在网上(在SO或其他地方)遇到的难题的好答案。 这里有很多人比我更了解,他们可以帮助您探索.NET框架的深度
一旦你掌握了这些部分,随时可以探索新领域 – 很快你就会回答我关于WPF的问题,我对此一无所知;-)
以下是我根据您指定的标准进行的评估:
当你准备从命令行gradle(可能会在一周之内),你是否选择WPF或Silverlight并不重要。 WPF稍微容易部署,技能转移得很好,所以我可能会从那里开始。
首先创建一个简单的WPF应用程序,该应用程序具有一个带有Button,ListBox和TextBox的单个窗口。 在UserControl中创建属性并绑定它们。 然后开始玩。 有许多演练可以帮助您入门。 我发现Adam Nathan的书“WPF Unleashed”对于初学者来说是一个很棒的资源。
如果可以的话,获取Expression Blend的副本。 您可以下载30天的试用版。 它非常有助于玩WPF的UI方面并了解它们的工作方式,尤其是资源,模板和动画。
最后一个提示:如果您发现包含此类代码的书籍或博客,请为您的生活而奔波:
for(int i=0; i<10; i++) { Button b = new Button(); ... panel.Add(b); }
(当然,除非作者仅使用这样的代码向您展示不该做的事情。)
我建议构建简单的命令行程序,以获得语言+ .NET框架的感觉。 然而,在UI驱动的世界中,这可能有点不令人满意。 许多基于UI的技术将向您介绍与外部框架集成的概念,这本身就是一项关键体验。 通常这是非常有益的,因为其他人已经完成了艰苦的工作,你可以只是玩得开心。
我个人最后会推荐ASP.NET – 这有点奇怪,你会养成坏习惯。
根据该建议,我会建议接下来使用WinForms,它会教你更多有关事件和UI交互的内容,但仍然没有严格的编码模式。 在我早期,我写了一些令人震惊的WinForms代码。 你有很多权力,但很少有指导。
我已经看到了WPF的一些很好的工作,但它需要大量的阅读。 至少作为一个起点,你通常可以用很少的代码制作一些高级设计 – 不会出错,你可以成长。
在使用控制台应用程序之后,我的第一个UI建议是ASP.NET MVC框架。 它易于编码,具有相当严格的设计模式,因此您不会出错,并且您可以在相对较短的时间内构建相当不错的网站。 与其他技术相比,我个人非常快速地选择了它,但发现可扩展性点对我很感兴趣。
上述就是C#学习教程:从.NET开始 – ASP.NET,WPF,Silverlight或命令行C#?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/961326.html