Which language to learn for starting Windows phone 8 development? [closed] - silverlight

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am currently a Web Developer / Designer. I am currently moving towards mobile development. Though I use and like Android I think Windows phone 8 has a really good future and would like to start developing for it.
I heard that it is possible to develop applications using HTML5, CSS and Javascript which was really exciting for me as it means I can get started really easily as I am really good in these. But I am a little doubtful whether it is really possible to access all the available features of the API using Javascript.
Will javascript based applications get really restricted like the current ones which run from the browser ? Or are they as powerful as the ones we are able to develop using .NET or Silverlight ?
Please remember that I am talking about developing for Mobile phones and Tablets based on Win 8 and not desktops.

But I am a little doubtful whether it is really possible to access all the available features of the API using Javascript. Will javascript based applications get really restricted like the current ones which run from the browser ? Or are they as powerful as the ones we are able to develop using .NET or Silverlight ?
With respect to Windows 8, JavaScript Metro apps get access to WinRT APIs, excepting XAML-related stuff (as you're supposed to be using HTML5/CSS3 for UI rather than XAML) and other APIs that duplicate functionality that is already standardized as part of HTML5. So, yes, they are as powerful.
No-one can tell you about any future version of Windows Phone, because there hasn't been any official information publicly released on that.

Right now, there is no (final) information regarding which development languages Windows Phone 8 will support.
Windows Phone 7 supported development in Silverlight and XNA, so XAML is what we currently have.
Windows 8 uses XAML and HTML5 + CSS + Javascript for development; probably, Windows Phone 8 will support the same, but right now this is just speculation!

Related

Differences between Metro and Windows Forms development [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Maybe is a senseless question (it is?):
it is possible to convert a Metro app in Windows Forms? What are pros and cons that should I consider?
And also: what are the differences between the two ways, in term of technologies/languages used for developing? Developing for Metro instead of Windows Forms is better only because I can run my software in a bigger number of dispositives?
Note that the answer below is from 2013. Since Windows Store was renamed Microsoft Store and Windows Runtime (WinRT) is now branded as Universal Windows Platform (UWP) - Windows Store Apps are now also more commonly known as UWP Apps (UWAs) or just Windows Apps.
Metro is a design language. What was formerly known as Metro Style Apps is now called Windows Store Apps.
The Windows Store Apps are written using Windows Runtime or WinRT for short, while Windows Forms is based on WinAPI. WinRT is more modern and has lots of improvements especially in the asynchronous APIs that make it work better for the new and upcoming solutions - especially mobile, tablet etc. Also in how languages can be mixed together and more.
WinRT apps can be written using a variety of languages and APIs - C#/VB.NET/C++ with WinRT-XAML, C++ with DirectX or HTML+JS+CSS with WinJS and also some combinations of these.
Windows Store Apps give you an easy way to make money on the apps you write.
Windows Store Apps out of the box support the Metro design language (akhem, Microsoft design language), while Windows Forms apps look dated unless you highly customize the controls or use third party components.
Windows Forms apps are written in .NET languages while Windows Store Apps can be written in C++ or JavaScript.
If you come from Windows Forms+C#/VB world your natural next step would be to learn how to use WinRT-XAML+C#/VB unless you would like to pick up a different language. WinRT-XAML derives from WPF and Silverlight which were created as successors to Windows Forms.
Developing Windows.Forms applications and Windows Store Apps is like developing in two different worlds. I would not use Windows.Forms for desktop apps by the way. Use WPF. Its more modern and the UI design language (XAML) is the same as in Windows Store Apps. Although you can exchange most of the UI code between WPF and Windows Store Apps you still work with different libraries (full .NET in WPF and Windows Runtime in Windows Store Apps).
Windows Store Apps are cool and modern. They run on PCs, on tablets and phones. WPF applications only run on PCs. But Windows Store Apps are fairly limited in what they can do. Many people think that for business applications WPF is much better suited.
Hence it depends on what you want to develop. If you want to build a consumer app possibly Windows Store Apps would be better suited. If you build a business application WPF would possibly the better tool. Sad thing for newbies is though that they have to learn two very different libraries.

Difference between winforms,WPF and metro? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
How is Metro different from WPF and WinForms?
Are only metro style apps allowed to be sold on the Windows App Store?
Metro Apps are applications that are specifically written for Windows 8 using all the advantages that Windows 8 has to offer. They can be put on the Windows 8 app store. http://devcomponents.com/blog/?p=1061
WinForms is the old Windows format that was somewhat replaced by WPF. WPF is much more optimized and contains for example vector graphics. WPF provides much better performance when compared to WinForms applications. It provides a much richer UI experience. It uses XAML for development purposes (XML description of your UI). WinForms and WPF give you the existing Windows Look & Feel.
Metro Apps look much more like Windows Phone 7 applications but with much more functionality (but I think in the future both will converge). They are mainly addressed for the tablet market and touch screens (and hybrid devices in the future). Metro apps can be compared to IPad apps but much richer and with the full power of the Windows operation system.
If you want to write standard Windows applications that use a mouse interface and that work like current Windows application I recommend using WPF.
If you want to specifically address the Windows 8 market and create applications that are touch friendly you have to use Metro application.
I would not recommend using WinForms for new projects anymore. Only for old existing projects where the migration to WPF is too expensive in time and money.
You can look into this architecture guide published by MS patterns & practices for WPF and WinForms architectures for further advice (it doesn't contain Metro Apps yet). http://apparchguide.codeplex.com/
Hope that helps.

Local storage of structured data in Win8 Metro-style apps [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
In a desktop .NET application, the standard option for implementing a local relational database is to use SQL Server Compact Edition, and then of course there is the possibility to use SQLite and other third-party engines.
What are the options available to a .NET Metro-style application? SQL CE seems to be unavailable - any replacement? In fact, the entire System.Data namespace seems to be gone - so no LINQ to SQL or Entity Framework, either?
What about HTML5 IndexedDB that seems to be available to Metro HTML/JS apps - can that be used from .NET somehow?
Apparently, the Extensible Storage Engine Win32 API (aka "JET Blue") is still available in Metro apps. C++ ones can use it directly via #include <esent.h>. .NET apps would have to use P/Invoke. This does not give SQL or any other sort of high-level relational querying constructs, but it does provide for key lookup, transactions, multiple indices per table, and multi-field indices.
Let's be clear: SQL CE exists in Windows 8. It exists not only in Program Files but in Windows\System32 to seem even more embedded than before. Windows7 doesn't have sqlcecompact40.dll in system32 so this is definitely new. System.Data and System.Data.Linq both live in C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.
You can add references to those dlls manually but getting the app to compile is hit or miss. It seems that if you first open your project and do nothing, you can add a reference to those dlls anywhere and compile the app. If you remove the dlls and try to add them back you're hit with a "A reference to '<4.5 framework directory>' could not be added. If by some chance you can't add them via Visual Studio you can easily just add the HintPath manually.
My app now compiles but I also ran into an issue where linking the AppX wasn't working correctly and it gave a cryptic "Payload cannot contain 2 of the same dll" type messages. Like it was trying to include both 32 bit (the one I linked) and 64bit at the last minute. It included DLLs I wasn't touching manually like System.Data.OracleClient or System.Transactions so it was definitely some artifact from the build process I've yet to see again.
The main issue I'm dealing with right now is how to generate a proper connection string since it won't initialize properly without one. SQL CE is likely still looking for hardcoded C:\ references so the ApplicationData samples may not work as desired. I may try to make SQL CE 4 databases in Win7, transfer to Win8 and simply reference them locally but I'm kind of in the same boat there too. This | | close!
Please feel free to comment regarding any issues you run into and I'm definitely down for some offline collaboration if anyone would like to pool resources. This is definitely a thick forest of beasts and going it alone is proving a lot more challenging.

What do you use as WPF alternative for Win32 Delphi? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
If you are sticking with Delphi for Win32, what do you use as GUI framework, in order to approach the versatility and performance of the WPF framework on .NET?
There are some alternatives out there, such as DXScene, but it appears to have a problem with font clarity. Graphics32 and AGG are excellent low-level libraries, but lack a high-level design environment or IDE-plugin.
What do you use to implement a modern vector-based GUI?
Last year, I would have answered about DXScene - see also this question.
But now, wait some weeks, and try FireMonkey, which is DXScene bought and integrated into XE2 by Embarcadero!
Just one huge point: WPF is Windows only, whereas FireMonkey is cross-platform - it will run under Mac OS X and even iOS. And in the next XE3 version, it should also be able to create desktop Linux application (just as DXScene did). It uses Direct X under Windows, and Open GL on other platforms (even iOS).
It's not VCL-based not "native control" based, but draws its own vectorial controls using a "all-is-container" modular approach. Thanks to an internal "theming" engine, it is able to render controls as native under Windows or Mac OS X. It won't use a XAML language, both some controls on standard IDE forms, or runtime-created controls, if needed.
The Delphi VCL still works just fine for me, and without WPF's infamous "learning cliff".
I use VCL and DevExpress for all my GUI needs. DevExpress also have a Skin Library if you need a more fancy UI.
Actually there are no libs which will allow you to use WFP directly in Delphi.
I would suggest you to try and use AGG and build your own lib for such tasks or use AGG's commercial descendant.
Sorry Domus, but WPF is not known as a "performance" framework also isn't hardware accelerated. WPF is a layer over windows 3.1 common controls.
In the other hand Direct2d is hardware-accelerated 2-D graphics API that provides high performance and high-quality rendering for 2-D geometry, bitmaps, and text. And is available in Delphi 2010.
http://msdn.microsoft.com/en-us/magazine/dd861344.aspx

Will Windows Forms be deprecated in favor of WPF? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
Locked. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions.
We're starting a new project and are trying to decide to use either Windows Forms or WPF.
I've read some of the other Stack Overflow posts, and realize that WPF has some advantages in the data-binding and appearance areas, but also has a steep learning curve and fairly immature tools and controls.
We would like to better understand if Microsoft is planning on stopping new development of the Windows Forms technology and forcing all new development to eventually go to WPF, or if both technologies will be maintained and improved. (Or are they just going to wait and see how it goes before making up their mind?)
Currently, it seems like WPF is not necessarily the best way to go for line of business applications that don't need extra bells and whistles in the UI. However, it would be good to know if WPF is something we'll need to embrace sooner or later.
This is partially a reasoned argument, and partially a heart-felt rant....
WinForms is based on the user32/GDI technology that has existed since the dawn of modern Windows. It is not going to go anywhere, in all senses of the phrase: it won't get new features; it won't get support dropped.
Or maybe it yet will. The charting API in .NET 4.0 is new and written for GDI, not WPF.
In general, Microsoft has a history with new technologies that looks like the following:
Invent new API.
Innovate with that API for 2 or 3 product cycles.
Realize that continuing to innovate means making unreasonable concessions to backwards compatibility or having realizations that the technology didn't originally address.
Invent new API by wrapping or leaving the existing API around. The existing API doesn't disappear, but new stuff doesn't use it, either.
RDO -> DAO -> ADO -> ADO.NET -> LINQ to SQL -> Entity Framework, toss in some ODBC ... there is a treasure trove of "dead" and wrapped technologies that are still usable and still exist today. These are data access technologies, but the same idea applies; UI frameworks last a little longer because they are the most visible areas of applications.
If I put my Nostradomus hat on, I can safely say that when .NET, oh, 6.0 is out in 2015--which sounds far away but is as close as we are to 2003--WPF will be as "dead" as Windows Forms because some other nifty managed interface will have been created that smoothes over all of the as-yet-undiscovered mistakes and inconveniences of WPF. Who cares? Everything we are yabbering about today will be deprecated by then. (Something is going to have to give in .NET 5.0 anyway because the framework is getting comically large.)
If anything, the thing that Windows Forms has going for it is that it's based on the technology that has existed for well over a decade, and that inertia is not dying anytime soon: the browser you are typing in is using GDI, the taskbar is using GDI, your instant messaging application is using GDI, the new Ribbon control in Windows 7 is using GDI, the $60 printer sitting your desk is using a GDI printer driver, the Windows CE applications running on your phone run a port of Windows Forms and GDI, the new Event Viewer in Windows Vista is using Windows Forms, and there is a large third-party component community behind the Windows Forms platform--WPF is a very small, niche product that only exists in the managed world, which is itself smaller than its unmanaged counterpart.
To this end, I feel that all of these "WinForms vs. WPF" discussions are blowing things out of proportion; the technologies are not mutually exclusive or inferior/superior, as much as Microsoft marketing might have us believe, and Microsoft's developers are smart enough to realize this. They are simply different and one of them happens to be older. If we didn't consider this periodically, we would have all listened to Gartner in 2005 and stopped building Windows applications entirely and moved everything to AJAX on the Web ... with our SOA interfaces ... that expose an alternative REST interface ... that use a TDD DDD model on that backend ... abstracted from the database by an ORM.
Being so eager to abandon a technology for fear of its deprecation only assures our clients that we will maintain a constant level of inexperience and incompetence at programming software solutions.
WPF is part of the future, to be sure, but it's not THE future. Personally, I'm on the fence to see if WPF "makes it" in the UI technology sense that previous data access technologies haven't, although Visual Studio adopting it in 2010 is a pretty comforting sign that Microsoft is actually serious about it by dogfooding it in a flagship product.
To sum up: if you are building a LOB application, I wouldn't feel guilty about using WinForms. If you need an advanced layout scenario, WPF interop is always available to you, just as one enhances a regular Web site occasionally with a Flash object. But for anything else, you owe it to your client to come up with a Good Reason for transitioning the whole team and shell to WPF; Windows Forms has its problems, but half the battle with any platform is knowing what the problems and limitations are, and most of the world (including Microsoft) is still learning WPF.
WinForms won't be deprecated until Win32 is ... which could be quite sometime!
(Remembering that WinForms is basically an abstraction over Win32)
WPF on the other hand has few direct dependencies on Win32 so could potentially form the basis of a "fresh start" UI layer on a future version of windows. At which point I would imagine Win32 (and thus WinForms) will be completely ditched and only available through virtualization. As I said this could be along way off :)
Microsoft's support policy for the .NET Framework and all classes within it is 5+5: 5 years of mainstream support after a release, and then 5 years of extended support is available, or a fee.
With the .NET 4.0 update, including all the WinForms stuff, being released in 2009, you will get 5 years of mainstream support, to 2014 for any WinForms app built on .NET 4.0.
It's likely whatever comes after .NET 4.0 will include WinForms, too, in which case the clock resets.
This 5+5 policy applies to all business-related infrastructure software: Windows, Windows Server, SQL Server, Visual Studio, .NET, and so on.
The point is, you won't have to worry about lack of support for WinForms.
But, the prior posters are correct - the advancements are going into WPF.
I wouldn't worry too much about long term support. WPF may be getting all the love lately, but there's too much WinForms code out there to abandon support. After all, even MFC is still getting updates with each Visual Studio release.
I think Windows Forms will continue to be maintained by Microsoft, but improved upon only in small ways. All of the hot new innovations will go to WPF. Windows Forms is in a similar position as LINQ to SQL. LINQ to SQL is a tight, compact, fast ORM that is awesome, but Microsoft is throwing its weight behind the Entity Framework.
Windows Forms is great for what it is, and what it is used for, which is small, tightly-wrapped applications. It still has many years of life left in it.
If you want an application that will (more) easily port between a web interface, a WPF interface, or a Silverlight (or even a Flex) interface, Windows Forms is probably not for you. These other interfaces use standards-based markup, and an architecture that lends itself better to enterprise development.
I certainly wouldn't call WinForms dead... but I also wouldn't write a new project in it. I would write all new projects using WPF for a myriad of reasons. The biggest is that if you use WPF/XAML, your porting efforts to Silverlight will be much easier.
I went to a WPF preview camp in Redmond a couple of years ago, and I asked this same question to one of the folks working on Crossbow (WPF/Windows Forms interop). His response was that Windows Forms will be supported for the foreseeable future, but could make no guarantees.
Given that, I think you'll be OK basing your application on Windows Forms knowing that you'll have some level of support for the next version or two of .NET (for example, 3-5 years).
I would personally bet closer to 10 years considering Microsoft's continued support for Win32. You may not get boatloads of new features with each release, but you won't be dropped, either.
In any case, I would actually be more concerned with Microsoft's shift from rich-client technologies to web-based technologies, but not enough to ignore opportunities to create compelling applications in either case.

Resources