locked
where to find what is diference in these "Windows Universal Blank App", "Windows Classic Desktop Windows Form App" and "WPF" RRS feed

  • Question

  • Found MANY sites with info on each of these.  HAVE NOT FOUND any where what the differences are.  As in one Mainly for dealing with a Web site.  Or for dealing with a company private database, like oracle.

    IS there ANY spot I can study to find out the differences in the below “templates” when I am creating a new project in VS 2017 community?

    Under “New Project”
          Visual Basic   (  .NET Framework 4.6.2 )
                      Windows Universal 
                                Blank App ( Universal Windows )
          Windows Classic Desktop    (  >NET Framework 4.6.2 )
                  Windows Forms App (.NET Framework)
                   WPF App ( .NET Framework )    ( windows presentation form I AM GUESSING )
                   Console App ( .NET Framework )


    Mark J

    Tuesday, September 12, 2017 9:22 AM

Answers

  • Hi there PuzzledByWord, 

    Universal windows apps are apps that can run on all microsoft devices:

    Windows 10 devices – PC, tablet, phone, Xbox, HoloLens, Surface Hub 

    But you can't have the full freedom like you have in wpf or in windows forms. It's more sandbox. The architecture in the uwp is different.

    You write xaml code for the UI 

    https://docs.microsoft.com/en-us/windows/uwp/get-started/whats-a-uwp

    Windows forms are the cassic desktop apps you know. You don't write xaml code for the UI

    https://msdn.microsoft.com/en-us/library/dd492132.aspx

    WPF

    Windows foundation presentation are "modern" desktop applications , you can use xaml code for the UI.Compared to windows forms you can create more complex UI controls and windows. 

    https://www.visualstudio.com/vs/wpf/

    https://docs.microsoft.com/en-us/dotnet/framework/wpf/getting-started/introduction-to-wpf-in-vs

    what's the diffirence between wpf and uwp 

    wpf  exists longer and is more mature then uwp. I think personally if you want to create a decent desktop application wpf is really good . It's still around because alot people like it. UWP is like new kid on the block , it's not mature yet and it's still needs to grow. But if you to want create an app for the windows devices then UWP is excellent and is the way to go. 

    It's still a good idea to learn WPF ,  if you know WPF I personally guarantee you that you can work with UPW. The Xaml will be different and the architecture is also different.

    friendly regards

    Laurens



    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.



    • Edited by laurens vdb Tuesday, September 12, 2017 9:43 AM
    • Marked as answer by PuzzledByWord Saturday, September 30, 2017 2:11 AM
    Tuesday, September 12, 2017 9:40 AM
  • Hi PuzzledByWord,

    When .NET was released in ~2000, you could use WinForms to make desktop applications for Windows. It provides access to 'native' controls (i.e. A Button made in WinForms actually is a Windows Button control from user32.dll) by wrapping the Windows API in managed code. These can run in any version of Windows which has the appropriate .NET framework version installed, including upto Windows 10.
    In 2006, WPF was released which is an alternative to WinForms. WPF uses XAML, which is a language based on XML, to declare the user interface elements. In a simple WPF app, the .xaml file describes the GUI and the code-behind file describes the logic. DirectX is used to draw whatever is described in the .xaml into the window.
    Like Winforms, programs made using WPF can run in any version of Windows which has the appropriate .NET framework version installed, including upto Windows 10. Note that using XAML is completely optional. Whatever user interface elements you describe using XAML can also be made using your .NET language C# or VisualBasic.NET. But using XAML is usually simpler.
    As XAML is simply based on XML, developers and designers are able to share and edit content freely amongst themselves without requiring compilation.
    From ~2012 along with Windows 8, a new kind of app called metro/modern/windows-8/windows-store-apps can be made. These apps are similar to WPF in that they use XAML for describing the GUI. These apps can run only in Windows 8, 8.1 and Windows 10. Windows 8.1 added some improvements and features but remained mostly the same. The same technology was used to make apps for Windows Phone.
    With the release of Windows 10, Microsoft made UWP (Universal Windows Platform) through which you can use the same code base to target differnt kinds of devices (desktop/mobile/xbox/IoT/holographic). These apps made for the UWP are similar to the earlier Windows 8/8.1 apps. Like before, XAML is used to describe the GUI.
    Only for the Windows Store apps, there is no backward compatibility. The timeline goes Windows 8 -> Windows 8.1 -> Windows 10/UWP. An app made in UWP can only run in Windows 10 and an app made in Windows 8.1 can not run in Windows 8.

    For UWP and WPF, the main difference is that UWP apps are more restricted to their API's. With WPF you can integrate more low-level with windows using WIN32 calls, other dll's etc. With UWP your running within the Store API restrictions. WPF typically had some more advanced features that UWP yet doesn't have (things like controlling anti-aliasing etc).
    Basically, pick UWP if you want to deploy to multiple devices and/or sell in the Windows Store. Use WPF if you want to do more of an unrestricted windows desktop app. Be warned though that WPF doesn't seem to be a main focus any longer and most innovations goes into UWP. WPF is probably mainly kept around for all the enterprises who've built their desktop apps with it.

    This is article that you can see their performance.

    https://www.grapecity.com/en/blogs/flexgrid-performance-compare-desktop-platforms/

    Best Regards,

    Cherry


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.




    Wednesday, September 13, 2017 2:55 AM
  • @Cor lightert 

    What do you mean wpf is in fact silverlight? 

    Wpf and silverlight are two diffirent things. 

    Wpf aims idesktop apps and

    silverlight is used for the web apps with a silverlight runtime plugin 

    https://msdn.microsoft.com/en-us/library/ff921107(v=pandp.20).aspx 



    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • Marked as answer by PuzzledByWord Saturday, September 30, 2017 2:25 AM
    Tuesday, September 12, 2017 5:59 PM

All replies

  • Hi there PuzzledByWord, 

    Universal windows apps are apps that can run on all microsoft devices:

    Windows 10 devices – PC, tablet, phone, Xbox, HoloLens, Surface Hub 

    But you can't have the full freedom like you have in wpf or in windows forms. It's more sandbox. The architecture in the uwp is different.

    You write xaml code for the UI 

    https://docs.microsoft.com/en-us/windows/uwp/get-started/whats-a-uwp

    Windows forms are the cassic desktop apps you know. You don't write xaml code for the UI

    https://msdn.microsoft.com/en-us/library/dd492132.aspx

    WPF

    Windows foundation presentation are "modern" desktop applications , you can use xaml code for the UI.Compared to windows forms you can create more complex UI controls and windows. 

    https://www.visualstudio.com/vs/wpf/

    https://docs.microsoft.com/en-us/dotnet/framework/wpf/getting-started/introduction-to-wpf-in-vs

    what's the diffirence between wpf and uwp 

    wpf  exists longer and is more mature then uwp. I think personally if you want to create a decent desktop application wpf is really good . It's still around because alot people like it. UWP is like new kid on the block , it's not mature yet and it's still needs to grow. But if you to want create an app for the windows devices then UWP is excellent and is the way to go. 

    It's still a good idea to learn WPF ,  if you know WPF I personally guarantee you that you can work with UPW. The Xaml will be different and the architecture is also different.

    friendly regards

    Laurens



    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.



    • Edited by laurens vdb Tuesday, September 12, 2017 9:43 AM
    • Marked as answer by PuzzledByWord Saturday, September 30, 2017 2:11 AM
    Tuesday, September 12, 2017 9:40 AM
  • Just 2 notes. 

    WPF is in fact Silverlight. When it started you could not find much documentation for WPF because it was all in Silverlight, now the Silverlight documentation part is removed from MSDM. 

    Silverlight support will end around 2021

    https://en.wikipedia.org/wiki/Microsoft_Silverlight

    The way Windows Forms is stored since .Net is not anymore likewise before that time. (It was a long string of bytes without any relation to each other). Currently all presentation is in classes. Therefore I would not name the current one "Classic"


    Success
    Cor


    • Edited by Cor Ligthert Tuesday, September 12, 2017 5:39 PM
    Tuesday, September 12, 2017 5:36 PM
  • @Cor lightert 

    What do you mean wpf is in fact silverlight? 

    Wpf and silverlight are two diffirent things. 

    Wpf aims idesktop apps and

    silverlight is used for the web apps with a silverlight runtime plugin 

    https://msdn.microsoft.com/en-us/library/ff921107(v=pandp.20).aspx 



    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • Marked as answer by PuzzledByWord Saturday, September 30, 2017 2:25 AM
    Tuesday, September 12, 2017 5:59 PM
  • Laurens,

    That is why I wrote it, it is often misunderstood. XAML was not for WPF. WPF was something as Dany de Vito in the movie Twins. 

    In the MSDN website which was full of it, it is all cleaned up. But Stackoverflow is still loaded with it. 

    https://stackoverflow.com/questions/13038909/how-to-automatically-change-text-in-a-silverlight-textbox



    Success
    Cor

    Tuesday, September 12, 2017 6:44 PM
  • Cor , 

    but the release date of wpf 2006-11 

    and silverlight 4 sep 2007 , 

    so wpf is before silverlight. 

    So how come that xaml was not for wpf?

    from wikipedia : "is a declarative XML-based language developed by Microsoft that is used for initializing structured values and objects. It is available under Microsoft's Open Specification Promise.[4] The acronym originally stood for Extensible Avalon Markup Language - Avalon being the code-name for Windows Presentation Foundation (WPF).[5]"

    https://en.wikipedia.org/wiki/Extensible_Application_Markup_Language

    https://www.codeproject.com/Articles/1035800/WPF-Versions-History-and-Major-Enhancements

    https://www.microsoft.com/getsilverlight/locale/en-us/html/Microsoft%20Silverlight%20Release%20History.htm


    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.


    • Edited by laurens vdb Tuesday, September 12, 2017 9:15 PM
    Tuesday, September 12, 2017 9:13 PM
  • Laurens, 

    The program tools for Silverlight and WPF were given to public with Visual Studio .Net 2008. Microsoft has never released any .Net development tool outside that package. At the same time was Expression released.

    https://en.wikipedia.org/wiki/Microsoft_Expression_Studio

    The focus of Microsoft was with this new product to win back Internet. Therefore all documentation and marketing efforts were focused on SilverLight and in those days you could rarely could find something about WPF. It took endless time to get any documentation about windows.media. 

    As I wrote it did look for me in those days as if it was for Microsoft Marketing something as Danny de Vito in Twins.

    Currently it makes no sense anymore to use Windows Forms for new products, because therefore it is to limited. So the only choose for large desktop solutions is WPF. 

     


    Success
    Cor


    • Edited by Cor Ligthert Tuesday, September 12, 2017 10:37 PM
    Tuesday, September 12, 2017 10:25 PM
  • Hi PuzzledByWord,

    When .NET was released in ~2000, you could use WinForms to make desktop applications for Windows. It provides access to 'native' controls (i.e. A Button made in WinForms actually is a Windows Button control from user32.dll) by wrapping the Windows API in managed code. These can run in any version of Windows which has the appropriate .NET framework version installed, including upto Windows 10.
    In 2006, WPF was released which is an alternative to WinForms. WPF uses XAML, which is a language based on XML, to declare the user interface elements. In a simple WPF app, the .xaml file describes the GUI and the code-behind file describes the logic. DirectX is used to draw whatever is described in the .xaml into the window.
    Like Winforms, programs made using WPF can run in any version of Windows which has the appropriate .NET framework version installed, including upto Windows 10. Note that using XAML is completely optional. Whatever user interface elements you describe using XAML can also be made using your .NET language C# or VisualBasic.NET. But using XAML is usually simpler.
    As XAML is simply based on XML, developers and designers are able to share and edit content freely amongst themselves without requiring compilation.
    From ~2012 along with Windows 8, a new kind of app called metro/modern/windows-8/windows-store-apps can be made. These apps are similar to WPF in that they use XAML for describing the GUI. These apps can run only in Windows 8, 8.1 and Windows 10. Windows 8.1 added some improvements and features but remained mostly the same. The same technology was used to make apps for Windows Phone.
    With the release of Windows 10, Microsoft made UWP (Universal Windows Platform) through which you can use the same code base to target differnt kinds of devices (desktop/mobile/xbox/IoT/holographic). These apps made for the UWP are similar to the earlier Windows 8/8.1 apps. Like before, XAML is used to describe the GUI.
    Only for the Windows Store apps, there is no backward compatibility. The timeline goes Windows 8 -> Windows 8.1 -> Windows 10/UWP. An app made in UWP can only run in Windows 10 and an app made in Windows 8.1 can not run in Windows 8.

    For UWP and WPF, the main difference is that UWP apps are more restricted to their API's. With WPF you can integrate more low-level with windows using WIN32 calls, other dll's etc. With UWP your running within the Store API restrictions. WPF typically had some more advanced features that UWP yet doesn't have (things like controlling anti-aliasing etc).
    Basically, pick UWP if you want to deploy to multiple devices and/or sell in the Windows Store. Use WPF if you want to do more of an unrestricted windows desktop app. Be warned though that WPF doesn't seem to be a main focus any longer and most innovations goes into UWP. WPF is probably mainly kept around for all the enterprises who've built their desktop apps with it.

    This is article that you can see their performance.

    https://www.grapecity.com/en/blogs/flexgrid-performance-compare-desktop-platforms/

    Best Regards,

    Cherry


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.




    Wednesday, September 13, 2017 2:55 AM
  • Thx Cor for the explanation :) , it's always good and fun to hear the history from someone who is older and experienced.

    I never heard about Microsoft expression studio , it was before i started with computer programming. I never witnessed the silverlight era. When I started Microsoft announced that they were going to quit silverlight.

    thx!


    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Wednesday, September 13, 2017 11:04 AM
  • Laurens vdb,

    thanks for the info.

    I do not have words to express how much I appreciate this info.   I am a bit new to Visual studio still.

    I would have responded sooner, except for problems signing on to live.com.  No error msg's on why new password was rejected when it was. seems will NOT take a password longer than 16 characters anymore. did find min 8 chars, and must have 2 UC characters and numbers. BUT could not find anywhere on any Microsoft sites of limit of 16 characters.  I had to use Google to find that info. NO info on what symbols I could use or NOT use.  all these are why took so long to get logged back into this site.

    thanks again for the VERY needed info.

    mark j


    Mark J

    Saturday, September 30, 2017 2:22 AM
  • Cor,

    thanks for the info.

    as always you have been very helpful.

    mark j


    Mark J

    Saturday, September 30, 2017 2:24 AM
  • Cherry Bu,

    thanks for the info.

    very helpful for someone new to Visual Studio.

    your info helps me pick what I need to focus on first.

    mark j


    Mark J

    Saturday, September 30, 2017 2:28 AM