.NET FX 4


As a part of the conversation on the VS2010 and .NET FX 4 pillars, I thought I would focus today on the .NET platform.


 


With .NET FX 4, we are focusing on empowering innovative user experiences in applications, allowing for re-invigorating large ISV applications, enabling developers to create connected and declarative applications, and enabling developers to build next generation line of business (LOB) applications. 


 


We know that user experience is becoming critical for LOB applications.  In WPF4, we are adding support for the Windows7 multi-touch, ribbon controls, and taskbar extensibility features.  The Surface 2.0 SDK will also be built on WPF 4 and share a common multi-touch infrastructure and programming model.  We are adding a Data Grid control that will significantly improve your experience when building data centric applications.  We are also addressing some of the fundamentals with even better deployment, continuing improvements in performance and scalability, visual improvements such as text clarity and layout pixel snapping, and improved localization and interoperability.


 


 


 


Large ISV applications can easily take advantage of the user experience inherent to WPF and the improvements to it in WFP4.  We understand firsthand what it means to re-skin a large native application and take advantage of the incredible UI you can get from WPF.  For Visual Studio 2010, we have taken Visual Studio and started to transform the UI in this very way.  You won’t see this happen throughout the entire IDE in this next version however, but we are taking all new pieces of UI that are being written and using WPF as well as taking a bet in some of our larger UI infrastructure pieces.  As I mentioned earlier this week in a post, we have a new editor that is written exclusively in WPF and built on MEF and .NET FX 4.  Our start page is new, clean, and simple and is also WPF based as is our overall shell.  This work has driven some improvements in WPF and the new WPF controls will strengthen your ability to re-skin your application with WPF while leaving the business logic intact.


 


Another area we are focusing on is to make your life easier for n-tier development.  N-tier development is a reality in the business world today – application patterns such as those in Silverlight and Ajax make n-tier mainstream.  In .NET FX 4, We are making n-tier development much easier by doing all the plumbing work for you and letting you focus on your business logic while still being explicit about the network transitions.  We are providing Visual Studio support for a single solution that spans both the web server and the client tiers with end-to-end solutions around sorting, paging, filtering of data on the client, as well as end-to-end solutions for data validation from declarative data on the database tier all the way through to the client UI.  You will be able to write validation logic once – have it run anywhere and this framework will work with any data access layer –  the Entity Framework, LINQ to SQL, ADO.NET, nHibernate, etc.


 


.NET FX 4 also builds on prior investments that we have made in Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF).  The main goal is to enable developers to express applications in a way that makes sense to the team and business, provide a framework for durable, long running apps, and simplify the creation and customization of authoring experiences.  WF in .NET FX 4 includes a composable set of workflow styles, a unification of rules and activities as well as improved data binding, scoping, and expression support.  In Windows Communication Foundation (WCF) we are simplifying implementing complex communication patterns with content-based message correlation and support for long-running durable communications.  We are also adding XAML support for declarative service authoring and improved support for REST service authoring.  To improve the developer experience with these technologies, we are improving the tooling in Visual Studio 10 with a new flowchart designer.  The new tooling will make it easy to create custom activity UIs leveraging WPF and the new declarative-workflow model will make re-hosting the designers outside of Visual Studio even easier than before.


 


As you can see, there is a lot of good stuff that we are adding to .NET FX 4. 


 


Namaste!

Comments (34)

  1. willdean says:

    Soma, the ribbon is currently covered by the bizarre ‘Office UI Licence’ (which was presumably accidentally excreted in the dying spasms of ‘old MS’).

    Can you reassure us that the absurdity of the OUI licence isn’t going to encumber the use of WPF4?

  2. Somasegar says:

    Hi Willdean,

    We hear your feedback on the license issues.  The .NET FX team is keeping that in mind to ensure you don’t encounter these issues with WPF4.

    -somasegar

  3. "while still being explicit about the network transitions" – sounds like Volta?

  4. Jeff Lewis says:

    What about .Net CF 4? Any hope of VS2010 actually working correctly (ie: fewer Platform Validation issues and perhaps a more natural way to mark classes as desktop safe? oh – and not have shadow classes filling in for missing classes be blocked because the IDE actually knows about them even though they’re not included.. oh and how about adding Settings to the mix – it’s not that hard to do and not that large… actually, there’s a ton of stuff that’s needed to make .Net CF competitive and not induce programmers to blow their own brains out – he says after spending 6 months writing a nice UI application for WinCE in .Net CF… Oh – documenting things would be nice too – preferably in a proactive way rather than just filtering out the stuff that doesn’t apply from full .NET, which leaves out all sorts of gotchas…)

    But I digress.

    Remember, not everyone wants to program in declarative languages, so whatever you do – do NOT lock us into that model.

    TTFN.

  5. Soma,

    Thanks for sharing.

    you mention "…visual improvements such as text clarity and layout pixel snapping".  We are currently working on a Silverlight app and the blurry fonts have become a major issue.  I am assuming this will be addressed by WPF4.  Do you have a rough ETA that we can pass on to our clients?

    Thanks,

    Torsten

  6. Mark Gordon says:

    Well Soma, This is the most encouraging blog you have "ever" posted. I can’t believe you are finally addressing data and n-tier issues in VS. But given Microsoft’s history with data access and N-TIER development in VS I’m being rightfully cautiously optimistic especially since data is still I assume being treated as an object and through the .NET framework.

    I still can’t understand why you just wont implement something that has been proven to work for years and provide native data access to SQL Server using the VFP core command and function library? With the DLR this is completely doable. I’m totally baffled by your resistance to the obvious!

    Nonetheless I’m taking a wait and see approach and eager to play with this technology when it is finally released hopefully it will not be symbolism over substance.

    Mark

  7. Mehfuz says:

    Pretty exciting stuff for .net 4 . I just cant wait to get a standalone release of visual studio 2010 ( Not as a part of VPC) , i got one from PDC 08 but with windows 2008 server as the virual pc host its not a fast experience ;).

  8. Somasegar says:

    Hi Torsten,

    Yes, we are planning on addressing these in WPF4.  You will likely see pixel snapping in a beta release and improvements to the blurry font issue at RTM.  It is a little too early to talk about an ETA, but as we make more progress on .NET FX4, we will keep you posted.

    -somasegar

  9. Greg says:

    We need to in .NET 4 fx:

    – open an avi or wmv file and find out its run time and video dimensions.

    – open an mpeg file and find out its run time and video dimensions (for commonly used mpeg formats).

    – open a wav, wmv or mp3 audio file and find its run time and bit rate

    We need to be able to handle audio and video files much easier in .NET instead of what we get now which either forces us to win32 interop, forces us to a com component, or (ugh) forces to byte count/interpret a file header.

    Basic media files should just work in .NET given we’ve had 7 years of the .NET framework.  From Microsoft’s support life-cycle page:

    http://support.microsoft.com/lifecycle/search/default.aspx?sort=PN&alpha=studio&Filter=FilterNO

  10. John says:

    Basic ability to handle and play audio/video files would be a great addition!  I also would like some more clarity on the LINQ to SQL situation.   LINQ to SQL should not be abandoned but that’s what it looks like will happen to it from the ADO.NET blog.

  11. Johnny Hall says:

    I see the Service Bus in Azure but I don’t see any mention of it being part of WCF 4.0.  Is there a chance that we’ll be able to do pub/sub with a service bus endpoint in WCF 4.0.

  12. Greg says:

    .NET needs improved image file handling also.  Doing things that should be simple (see example below) should be simple.  

    Example: Open a jpeg file, set compression level to 50, save as a different jpeg file.

    Example 2: Open a single page tiff file, open another single page tiff file, each file has the same tiff format (e.g. black and white), create a new tiff file containing 2 pages, one from each of the input files using Group IV compression.

    Doing either of them is quite difficult to do as the .NET framework currently has poorly designed classes for image file format/parameters.  The framework directs you to an undocumented set of generic codec classes which forces you to hunt for the available compression, format, etc settings for each image format in the debugger.  This should be easily found in a class derived off of the generic codec class which is specialized to jpeg files, a specialized class for Tiff files, a specialized class for PNG files, a specialized class for bitmap files.  

    These specialized classes should have a set of basic properties (e.g., compression quality level) and a bag of advanced properties where all of the rarely used values reside.

    See the Java Advanced Imaging classes as well as the Java Media Framework classes for inspiration.

    Microsoft has the underlying libraries for media and image file handling already built into Expression media and Expression design.  Can’t they just extract a subset of them  and embed them in the .NET API?

    The Expression encoder should allow for reading of most of the common media formats.

    Expression design should be able to read/write most of the common image file formats as well as set the parameters for each.

  13. Ian Ellison-Taylor [MSFT] says:

    In WPF, unfortunately there’s no way to get the bit rate without using the Media SDK but the NaturalDuration property on MediaElement will return a media file’s duration/runtime and NaturalVideoWidth/NaturalVideoHeight will return a media file’s dimension.

    We’ll look at if we can improve this in the next version.

    Ian.

  14. Hi,

    c’t, a popular german computer magazine states that WF will change significantly in .Net4 (see below) so that existing WF applications have to be rewritten completely.

    Would you please comment on this.

    Thanks, Martin

    _____

    http://www.heise.de/ct/08/24/022/

    "Den Sprung auf die nächste .NET-Versionsnummer nicht überleben wird die Workflow Foundation (WF) – jedenfalls nicht in der derzeitigen Form: In puncto Performance und Funktionsumfang haben sich mittlerweile so viele Probleme offenbart, dass eine komplette Neuimplementierung notwendig wird; bestehende Workflows und Aktivitäten werden sich damit nicht weiter nutzen lassen."

  15. bobdimp says:

    In response to Johnny Hall’s question pertaining the ServiceBus:      The ServiceBus is currently not in plan for WCF 4.0.  However, on-premise services will be able to communicate with the Azure .Net Services in the cloud.  In particular, the ServiceBus client release (the various *Relay* bindings) are a separate download that can already be used today from 3.5.  These bits will continue to work in 4.0.  The Service Bus will continue to evolve on the  Azure release schedules.

    Thanks, Bob.

  16. Support for the empowering innovative user experiences in applications, such as Windows 7 multi-touch,

  17. MichaelGG says:

    +1 for finally fixing the blurry text. But, it’d be super-great to have some kind of hotfix for SL2 and WPF apps before this whole new cycle RTMs. (People have been asking for it since before .NET 3.0 RTM!) But wow, it’s great to see some official recognition and management of the issue, finally,

  18. Accroding to S. Somasegar, Senior Vice President Developer Division in his blog posting empowering innovative

  19. Kevin (WPF) says:

    MichaelGG,  We investigated a hot fix for the blurry text issue but the solutions weren’t good enough.  The fix we are working on in .NET 4 requires substantial changes to the text rendering stack and thus is not suitable as a patch.  We would very much like to have feedback on the rendering quality from folks such as yourself once we have that change ready.

    -Kevin (WPF)

  20. Patrick Blackman says:

    What about Windows Forms, is this dead in FX4? I have made a large investment in winforms….

  21. Bo says:

    Hi, it is me again, complaining about .Net not being a good platform for science. For the sake of being complete, I would like to make a couple of more points, just in case Microsoft suddenly starts to care about it. (By the way, unless Microsoft truly listens to the needs of scientists, you can forget about your HPC effort. It is not going to sell.)

    In addition to support complex numbers and matrix, I would like to see a true long double in Microsft C# and C++, make it, e.g., the equivalent of quad precision in Fortran (real*16), and the corresponding complex*32. A component that helps with plotting and visualization would also be useful.

    A scientist uses a computer for a) computation, b) visualization, and c) writing papers. It is sad to say that Microsoft products are not competitive in any of these. We don’t use Word to write papers, which has never done equations right, we use TeX. And IE still does not do MathML.

    None of the things that I mentioned seems difficult. Why cannot you do it? I moved from Unix to PC many years ago because Unix boxes were too expensive. While I would rather not to change again, Linux is clearly becoming a better alternative.

    In the end, it is the substance that counts, not pretty faces.

  22. Publicación del inglés original : Miércoles, 12 de noviembre 9:38 PST por Somasegar Como parte de la

  23. jemiller says:

    I agree with Greg’s comments about being able to more easily work with media files and their metadata. I have to use COM to read the Artist out of a WMA or MP3 file? Personally, I think Microsoft is purposely leaving it in COM/native code because they consider it proprietary and it would be too easy to reverse engineer it if it were implemented in .NET.

    And speaking of making things more open. Why not include all the source code for the .NET Framework with the IDE? It’s getting better as you can now configure VS and step into some of the source, but, it’s not all there and other things like Goto Definition don’t work. I like .NET, but, Java and IDEs like NetBeans have .NET and Visual Studio beat in this regard.

  24. mattgi says:

    Hello Patrick,

    I am the Group Manager for WinForms.  We continue to invest in WinForms for .NET FX 4.  This includes the core expectation of maintaining compatibility for applications already written in WinForms, fixing bugs that developers have reported, contributing to overall developer experiences across Visual Studio, as well as perf work and some feature development.

    Matt Gibbs

  25. Jason Webb says:

    Please view these two feedback item on Connect regarding improving WPF below and please review and consider the ideas for updates in the the .NET 4.0 release of WPF-

    Please update the WPF 4.0 default text Caret width to the “thinner” version used in all other platforms:

    https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=382313

    Please add the great features from the “RichTextBox” control to the standard “TextBox” and “ComboBox” controls in .NET 4.0 (Triple Click select, Selection Margin-cursor indent, etc):

    https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=375044

    Thanks for your time.

    Jason Webb

  26. Jason Webb says:

    One added note:

    The Caret suggestion feedback I mentioned also allows you to manually adjust the Caret size and bring the older size if you like it better.  You’ll find this and much more details when you read the actual feedback report.  The same goes for the other feedback report… there’s much more details when you read the whole thing.

    If anyone else agrees with these feedback suggestions, feel free to vote and leave comments.

    Thanks again!

    Jason Webb (jasonw15@msn.com)

  27. Ben Westbrook [MSFT] says:

    Jason,

    I’m a developer on the WPF team.  We are tracking the issues you raise, and we hope to address them in a future release.

    The current caret thickness render, in particular, is a bug that we have been looking at closely.  We would also like to see it render thin and crisply.  FWIW, it is currently possible to adjust the caret thickness in the "Ease of Access Center" control panel, using "Set the thickness of the blinking cursor" combobox.  In this case the setting is desktop global, intended to aid users who have difficultiy viewing a standard thin caret.

    Ben

  28. Jason Webb says:

    Thanks so much.  Keep up the great work!!

    Jason

  29. Robert Conde says:

    Regarding the text improvements…will there also be improvements to scrolling text issues described here:

    http://www.gamedev.net/community/forums/topic.asp?topic_id=445078

    For me, this issue is a deal breaker for developing new apps in WPF.

  30. rconde02 says:

    Just a post so I can watch the thread…ignore.

  31. Chris Beers says:

    Is .NET Framework 4.0 going to be a full release or another additive release like 3.0 and 3.5 are? In other words, when I eventually install 4.0, will there be a C:WindowsMicrosoft.NETFrameworkv4.0CONFIG folder that I would go to to manage my machine.config etc. instead of v2.0.50727? Also, in participating with Connect, there were a lot of bugs that were supposed to be addressed as part of the red bits (or was that green bits?), but never got fixed because of the feature push for .NET 3.0. Are these going to be addressed as well in .NET 4.0?

  32. rrvenki says:

    Will OledbCommand support AsyncResult processing?

    Will all Interop.xxxxx be completely .NET compliant?

    Will all protocls https,.. be supported in silverlight?

    Will WWF really make its way into Enterprise region?

  33. Plua says:

    Like Bo, I would like to see support for quad (or greater)precision.   Even if it is software-only for now.