Throughout this book I have tried to include interviews with developers and companies that are lucky enough to be developing with some of these new technologies to gain their insight into potential issues and opportunities.
I asked a number of experts what they were excited about in VS2010 and .NET 4.0.
http://blogs.msdn.com/mikeormond
What am I excited about? There are a truckload of productivity enhancements in VS2010, like snippets for Visual Web Developer. At last, snippets for ASP.NET, HTML, and JavaScript! Reference highlighting and generating types from usage are two other productivity enhancements I'm looking forward to, as well as the IntelliSense enhancements (no longer having to remember the exact member name and the improved JavaScript support is awesome).
I dabble in Office development from time to time and have a tendency toward C#, so I'm really pleased to see the language embrace the likes of optional and named parameters, as well as the new dynamic type, which will make COM Interop that much easier. Office development in C# is going to be a dream from now on!
From a web perspective, I love the new features in Web Forms. Many of them are small, but they are crucially important enhancements to the platform, as well as the new kid on the block: ASP.NET MVC. Choice is always good, and ASP.NET now offers two great choices. Add into the mix Microsoft Ajax enhancements such as client-side templates/data binding and jQuery integration, and you have a killer web application platform. And of course there's the Web Deployment Tool and web.config transforms, which allow you to automatically ready and package your applications for deployment.
http://geekswithblogs.net/iupdateable
For me .NET 4.0 represents a turning point in how we will develop database applications in the future. With .NET 4.0 we get a great object-relational mapping (ORM) technology in ADO.NET EF 4.0, which will significantly simplify the effort involved to work with relational database management systems (RDBMSs) from .NET applications. I have been really impressed with how the product team listened to feedback from the community on the initial release of EF and went on to deliver significant new functionality in version 4.
http://www.craigmurphy.com/blog
Every so often the computing sector goes through a paradigm shift. Programmers have gone through many such shifts, many of which are the results of changes in design techniques or changes in the way we think. The leap from procedural programming to object-oriented programming is an example of a paradigm shift. More recently, with functional programming becoming part of the mainstream Visual Studio product, programmers are offered another shift.
Advances in hardware has meant that even entry-level laptops are now being supplied with dual and multicore processors. This leap in hardware technology has positive implications for programmers. It also means another shift in the way programmers think about their applications; more so, it affects application design. Working with a single CPU in a multithreaded fashion is no longer the challenge: working with a single CPU with two or more cores, each capable of performing a unit of work, is the new challenge.
Writing applications that are capable of targeting the specific cores on a CPU presents programmers with the challenges associated with deadlocks, race conditions, scalability, lockout, and determinism. On the upside, applications that share their workload over many cores become more responsive and are more efficient.
Understanding many-core processing and Microsoft's parallel extensions and are other paradigm shifts for programmers. However, it's a shift that doesn't just affect programmers: the deep-reaching positive effects extend into application performance and user experience. A well-designed application that takes advantage of many-core processing may even result in your end user's computer feeling more responsive: it's a win-win situation.
Visual Studio and .NET 4.0 offer programmers a solid framework for building .NET applications that target many-core processing. As far back as late 2007, Microsoft has been providing programmers with their parallel extensions, offering support for Parallel LINQ (PLINQ) and task parallelism via the Task Parallel Library. Programmers need to understand .NET 4.0; this book will give them an excellent understanding of how to use VS2010 to take advantage of the .NET 4.0 feature set, including the parallel extensions.
http://www.pixelprogramming.com
ASP.NET 4.0 has the benefit of hindsight. With the integration of both the Web Forms and MVC rendering engines, developers are free to express themselves as they choose while still benefiting from the underlying ASP.NET platform. To support developers in the building of rich, powerful ASP.NET applications, VS2010 has streamlined its approach and is focusing on those areas that matter to developers: speed, efficiency, and ease of use.
Some of the things I love most about .NET and Visual Studio are the teams themselves and their openness to the community. Sure, they keep certain things hidden and have private betas, but much of what they do is public and open to comment, which makes the product improve in ways that we the developers need it to.
Much of the talk is about MVC, a great platform that has brought in new users, but I'm excited by the changes to Web Forms, MVC's mature elder brother. Web Forms is still supported and being actively developed, and although the changes aren't as radical as MVC, they are far reaching. Many ASP.NET controls in .NET 4.0 now emit clean HTML (the Menu being a great example), and along with the control of client IDs, we have a far better platform for building Ajax-based sites. Couple that with features such as the client templates and support for jQuery, and the platform is reenergized; I'm loving the thought of building Web Forms sites without having to jump though so many hoops to produce standards-compliant HTML that can be easily styled with CSS.
In Visual Studio itself, the most exciting new feature is the potential that WPF brings. Using WPF for the code surface not only allows a UI refresh to make it look better, but opens up wonderful possibilities for tools to enhance the code-editing experience. I think what we have now is just the tip of the iceberg in terms of what's possible for editing support.
http://blog.mrlacey.co.uk, http://www.devevening.co.uk
I meet lots of developers, and most of them don't have lots of time to learn new things or even an inclination to do so. For that reason I'm always excited to see features that need minimal training or explanation. Named and optional parameters are two such features. They're easy to explain and understand. Plus, they can allow for a dramatic reduction in the amount of code needed for some tasks. Needing less code to perform a task should lead to fewer bugs and more time to test and implement new features. Everyone wins!
The other feature I'm really excited to see is ASP.NET MVC. It's important for two reasons. Firstly, it's raising questions about the importance of having testable code. In turn this will lead to more developers using testing tools and techniques to improve their code. Secondly, it's causing developers to ask why it's needed and what's wrong with ASP.NET Web Forms. One key difference with ASP.NET MVC is that it's much harder to develop without having an understanding of HTTP. Whether using MVC or Web Forms, having more web developers with a better understanding of HTTP can only be a good thing.
For me the best changes in this release are the simple ones that will be utilized every day. I'm talking about changes such as the new String.IsNullOrWhiteSpace() and Enum.TryParse(). As a web developer myself, the ASP.NET changes fix some long-term annoyances, and the integration of jQuery is a smart move. I don't have to do much multithreaded work, but I really like the new Task model and find it much more intuitive to work with. Changes that make your applications run more quickly without you having to do anything are always welcome, so am glad of the garbage collection and thread pool enhancements in this release. I also really like the direction the security model is moving in, as I found the previous system overly complex. Perhaps one of the biggest surprises for me was how good EF now is, but I'm going to stop here as I have the rest of the book to tell you about all the great new features.
A big risk for software developers is learning and backing technologies that will quickly become obsolete. Of course, no one can know for certain what the future holds (no matter how much they claim to), but I think it can be useful to look at current recruitment trends when deciding which areas to concentrate on.
I spoke to Jonathan Keen, head of search practice at a UK recruitment agency, Cognitive Group (http://www.cognitive-group.co.uk), about trends he was seeing in .net development. Keen shared the following:
Generally, companies are cutting back on new projects, so we are seeing fewer development roles.
The most popular and highest paid skills in London at the time of writing (October 2009) are SharePoint, Dynamics AX, and Dynamics CRM.
There are many roles focusing on integration with existing applications such as SharePoint and the Dynamics suite.
More competition for job roles places increasing importance on distinguishing yourself. Prove your passion for development. Get out there to conferences, user groups, and blogs.
C#, ASP.NET, and SQL Server remain core skills that companies seek.
There is some interest in agile skills and SCRUM, but less in TDD.
Increasingly, WCF and WPF skills are expected on a developer's resume.
Many public sector projects are still using .NET 1.1.
There is an emphasis on web over desktop programming.
Silverlight and ASP.NET MVC are not yet in demand (note that many developers I spoke to disagreed and felt that Silverlight is the current hot area).
ASP.NET MVC has been used as hook to attract developers.
Technologies such as BizTalk have decreased drastically in popularity.
WPF certainly seems to be a growth area. The highest .NET contract rates appear to be for Silverlight currently. My own subjective experience of the job market has shown that ASP.NET remains popular, and jQuery is becoming a must-have skill. It will be interesting to see if ASP.NET MVC becomes mainstream, although I suspect that many companies have too much investment in ASP.NET now, and that ASP.NET MVC will be too big a change in thinking for many developers.
The new parallelization functionality is interesting, but I suspect it will not be utilized or needed in the majority of line-of-business applications. Developers skilled in threading and parallelization should always be able to command high salaries, so it will defiantly be worth looking into.
3.144.26.221