none
Frameworks, Programming for .NET, Display technologies and the like RRS feed

  • General discussion

  • We have to re-ask the same questions a lot from new posters. And with the addition of .NET Core questions are only going to get more complex.

    So my usual deal for discussions:
    Reference to link and factcheck.

    .NET Programmer vs C#/VB.NET/C++.NET programmers

    While this is technically the Visual C# Forum, the exact language does not mater so much.
    Everyone using a .NET Language programms for .NET. What will be compiled will be in MSIL, a format not unlike Java Bytecode. Every .NET Language will result in the same MSIL.
    All Libraries are .NET Libraries. Any .NET Programm can reference and use them.

    .NET defines more about the rules, limitations and useable libraries then the specific language ever could.
    If you look for a 3rd party library, look for a .NET Library, not a [Language Name] Library online.

    native vs .NET:
    With the exception of a few specially designed langauges (like C#), all languages useable for .NET Programming have a "native" equivalent. That one is not compiled into MSIL, but machine code (or something else). They use different sets of compilers.
    It does not have the .NET rules and might allow stuff like Multiple Inheritance or manipulating naked Pointers. Code for one is not likely to work for the other except in rare cases. Even then different behavior has to be expected.

    native C++ and C++ .NET are more different then native C and native C++
    Interop with compiled native code is possible using stuff like COM interop (if supported) or P/Invoke, but it can be quite tricky.

    Target Frameworks:
    There is not exactly one .NET target framework either. And I do not mean different (expanded) versions of the same, but actually syntactic differences.
    You must "target" your application to one of those and that one must be around for it to run.

    The big 3 are:
    .NET Framework (current version 4.6). This is what .NET 1.1 and 2.0 developed into over time. It is massive, containing most of the Display technologies. Unfortunatley it is pretty unwield to upgrade and have a compelte view off. And it is not Platform Independant - it simply grew to big for that.

    Mono is a subset of the .NET Framework. It is a open source project. It is platform independant, but only supports a fraction of the libraries and classes. Programms must be written from the start for mono - there is no simple conversion.
    We can not really offer advice on mono.
    If you need C# answer for the Unitiy game engine (wich might use C# but targets Mono), we can not really help you. Better ask onthe Unity or Mono Forums.

    .NET Core is a new Microsoft development. As I said the basic Framework grew to big to be manageable or platform independant. Core only carries a seleced fraction of the .NET Framework classes and is a independant target Framework.
    It is likely to receive most future attentions.
    It has it's own set/variants of Display technologies.
    It is actually suited to be ported to non-Windows OS, but if that will actually happen this time remains to be seen.
    Do not expecte any class of the .NET Framework to be in core. Even if it is in, expect it to have missing functions. Libraries written against the .NET Framework might work, if they do not require any interface, class or function not also in .NET Core.
    It has it's own documentation.

    Display Technologies - .NET Framework related:
    In .NET you have over half a dozen display technologies, each of them as different from the next as Console and Windows Forms. Answers regarding "how to do X" or even basic programm flow may be totally different between any of them. In .NET you can deal with anything from Console app or windows Service to a dynamic Webpage.
    Each of them should be considered a different area altogether. The general .NET Programmer does not exist. Knowledge in ASP.Net does not apply that widly to Console or vice versa, but everyone might have bit's and peices of knowledge.

    Console As old as DOS it still is quite feasible for writing commandline programms, Services and to test/debug dll or services. It is also a common place to start learning procedural programming (and thus programming at all).

    Windows Forms (I simply call it WinForms for short) The original Way to write Graphical user interfaces.
    It works via partial classes and the Forms Designer. Basically you and the Designer work on different parts of the code/same class but what both of you write get's put together at compile time.
    Windows Forms has a dedicated Subforum for any question regarding display related classes

    WPF While quite nice for it's time, WinForms shows it's age nowadays. A lot of things we take for granted can not be done (or at least not easily) in Windows Forms - just look for true Transparence or Image Buttons. WPF is the new GUI technology, but that is about where the similarities end.
    WPF is split into two parts: The XAML markup that defines the GUI. And the code behind that defines the rules. There is a designer for the XAML part, but for all intents the Programmer and GUI designer can work most independantly of one another.
    While WinForms techniques can be applied to WPF, it is designed for a totally different design patter: MVVM. If you want to learn WPF, you should learn it at the same time.
    WPF has a dedicated subforum. Due to the strong ties with MVVM, asking question there is generally much more adviseable.

    ASP.Net This is the language/technology you use for dynamic webpages. We can not really help with that. ASP.Net has a own dedicated main Forum.:
    http://forums.asp.net/
    Posts can not be moved to said Forum even by moderators, but the same login should be shared by it (and all other MS Services). The most important thing to understand when working with it is the page Lifecycle.
    Questions regarding the MVC pattern usually belong into ASP.Net Forums too, as this pattern is used there a lot (but not exclusively).

    XNA With any of the technologies so far, you can in theory make very simple games. Asuming you stick to Turnbased games with minimal or no animation.
    The XNA Game Framework is there for real 2D and 3D games. It can also be used for other heavy duty drawing (like CAD software), but games are really the thing.
    XNA games run on most older Windows and various versions of the XBox console. While mostly without porting, the Input checks may have to be designed for it.
    As usual it has a dedicated subforum and the programming techniques are utterly different to what we had before. One core issue of games is that they have to immitate Desktop GUI technologies for menu's often using 3rd Party Libraries.

    Display Technologies - .NET Core related:

    Console Core: .NET Core does include a static Console class. As such Console applications targetting .NET should be possible.

    Xamarin: Xamarin.Forms is a GUI technology aimed at being interpretable on Android, iOS and Windows. It comes more or less directly from Mono.

    ASP.Net 5: ASP.Net 1-4 only are avalible if you target the .NET Framework. However ASP.Net 5 appears to have one version being based on the .NET Framework and one being based on .NET Core.

    Universal Widows Platform (UWP) You might have heard that Apps (and Appstores) are a pretty big thing, but they were not a real thing on Windows OS up to 7.
    Microsofts first attempt to get a foothold here was the "Windows Runtime" (WinRT for short) for Windows 8.1. You could maybe call it a UWP beta.
    But stuff like XNA, the Sidebar and Start Menu tiles kind off overlapped with Apps too. Same applied to "ClickOnce Apps", wich are aimed a website delpoyment.

    With Windows 10 and .NET Core, UWP was born. The goal was to have one app that can scale and adapt content depending on the Device it is running on - as long as that device is Windows 10 (wich by design is a lot of devices). They may also run on OS with a ported .NET Core, if that becomes a reality.
    Focus was on scaling GUI and a clear difference between "core" and "optional" features the App might run into the wild.
    Design in UWP is mostly working like WPF - inlcudng the use of XAML - making WPF a good training place. I would asume the MVVM pattern would be viable here too.

    It seem like UWP is inteded to "take over" the games and conventional Deskop Application areas completely, replacing all other Display technologies for .NET Core (with exception of ASP.Net wich has a Core variant). If that strategy will work out remains to be seen.

    The "No Replacement"/"Not going anywhere" problem:

    You might ask if ".NET Core will repalce the .NET Framework".
    And people have asked if "WPF will repalce Windows Forms".
    The answer is: Yes and No or "Depends what you mean with replacing".

    Microsoft in general is very slow to remove anything it ever developed and put into a Windows. They are however known to:
    Stop most work on the older technology (going down to fixes only)
    They may or may not mark it as "Deprecated". They keep it around in either case
    They Focus all energy on the new technology/OS/concept
    They continue this until either: a) the new technology does not pan out/is overturned itself b) the old one is replaced to the point where they can stop supporting it entirely.

    That is what happened to Windows Forms.
    What is still happening to COM with .NET.
    It is likely what will happen to the .NET Framework (and it's display technologies) in favor of .NET Core (and it's dispaly technologies). But how that will turn out is everyones guess.

    • Edited by Christopher84 Sunday, August 28, 2016 7:31 PM Added some CORE related updates
    Tuesday, June 21, 2016 8:11 PM

All replies

  • I think it might make sense to make this sticky. Any moderator around for that? :)
    Friday, July 22, 2016 3:55 PM
  • We have to re-ask the same questions a lot from new posters. And with the addition of .NET Core questions are only going to get more complex.

    Do you think that any new poster is going to read it? They won't even read the 'Where to Post to"  posted topic in this forum.

    Friday, July 22, 2016 4:24 PM
  • We have to re-ask the same questions a lot from new posters. And with the addition of .NET Core questions are only going to get more complex.

    Do you think that any new poster is going to read it? They won't even read the 'Where to Post to"  posted topic in this forum.

    We can never know how many potential posters do read it and are directed to right forum.

    Would not mind it being sticky. If only so others have a easier time finding and linking it. Just because others do not read it instinctively, does not mean they do not read when we point it out.

    On the other hand I do see keeping the sticky list short. As every new sticky devalues everything already up there. And makes the 1st page less useable.

    Saturday, July 23, 2016 5:46 AM
  • We have to re-ask the same questions a lot from new posters. And with the addition of .NET Core questions are only going to get more complex.

    Do you think that any new poster is going to read it? They won't even read the 'Where to Post to"  posted topic in this forum.

    We can never know how many potential posters do read it and are directed to right forum.

    Would not mind it being sticky. If only so others have a easier time finding and linking it. Just because others do not read it instinctively, does not mean they do not read when we point it out.

    On the other hand I do see keeping the sticky list short. As every new sticky devalues everything already up there. And makes the 1st page less useable.

    I am fine with making this a sticky with a few suggestions first, and the suggestions are formatting only e.g. separate paragraphs with spaces, some items should be bulleted list. When done I suggest that all current replies are removed, I can do that if you are okay with this. We can evaluate this say three months down the road to see if we think the thread is worthy of staying a sticky.

    Let me know what you think.


    Please remember to mark the replies as answers if they help and unmark them if they provide no help, this will help others who are looking for solutions to the same or similar problem. Contact via my Twitter (Karen Payne) or Facebook (Karen Payne) via my MSDN profile but will not answer coding question on either.
    VB Forums - moderator
    profile for Karen Payne on Stack Exchange, a network of free, community-driven Q&A sites

    Saturday, July 23, 2016 8:34 AM
    Moderator
  • I made it sticky ... let me know if you ever want to remove it from stickiness.  ;0)

    ~~Bonnie DeWitt [C# MVP]

    http://geek-goddess-bonnie.blogspot.com

    Saturday, July 23, 2016 8:31 PM
    Moderator
  • I think the future of web technology in Microsoft's hands. :))
    Wednesday, November 16, 2016 5:12 PM
  • To make this post sticky is good idea.

    Thanks & Regards, Gaurav Kumar Arora http://gaurav-arora.com http://mynangal.com

    Monday, February 20, 2017 7:39 PM
    Moderator
  • It *is* sticky ...

    ~~Bonnie DeWitt [C# MVP]

    http://geek-goddess-bonnie.blogspot.com

    Monday, February 20, 2017 8:45 PM
    Moderator