Category Archives: .NET 4.0 - Page 2

Couple of interesting links

  • Brad Abrams writes about “What is .NET RIA Services“. Here is a small bit of this article:

    Microsoft .NET RIA Services simplifies the traditional n-tier application pattern by bringing together the ASP.NET and Silverlight platforms. The RIA Services provides a pattern to write application logic that runs on the mid-tier and controls access to data for queries, changes and custom operations. It also provides end-to-end support for common tasks such as data validation, authentication and roles by integrating with Silverlight components on the client and ASP.NET on the mid-tier.
  • C# 4.0 goes dynamic – a step too far? Here is a small bit of this article:

    With C# 3.0 still so new that many are only just beginning to appreciate, let alone use, its new features it might seem premature to be discussing the next version of the most popular .NET language. Microsoft, however, has its plans for C# 4.0 well advanced, and the changes are so important that you might not recognise your favourite language after the upgrade. Now is the time to look over the horizon in the hope that end users can influence the outcome.

    The first thing to say is that C# occupies a very special niche in the panoply of .NET languages. When it was introduced there were essentially two classes of Windows programmers corresponding to mastery and use of either VB or C++. The split was fairly clear-cut as VB was easy to learn and easy to use but limited, and C++ was difficult to fathom but could do anything. You can even think of C++ as an object-oriented machine-independent assembly language if you want to, but VB, being interpreted and well removed from machine constructs, was no such thing. In addition there was also the aesthetic distinction to take into account – VB being messy and pragmatic and C++ pure and logical. Of course none of these characterisations is 100% true, they are just approximations to an average truth that is at least recognised by most programmers even if they’d argue over the fine details.

The Future of .NET Languages?

I came across this article and really enjoyed it, thats why I have to share it with you. Written by Damon Armstrong this article gives a bit of light what is next in .NET field.

Co-Evolution for VB.NET and C#

One of the most prominent messages coming from Microsoft right now is geared towards Microsoft Visual Basic® .NET developers. VB.NET and Microsoft Visual C#® are both built on top of the Common Language Runtime (CLR), which means they both compile down into the same Common Intermediate Language (CIL). Since they both compile down to the same code, there should be no intrinsic benefit of one language over another. However, both languages are maintained by separate teams at Microsoft, and over the years this separation has led to a variety of language-specific features in both C# and VB.NET as the teams focus on different areas with their respective products. Many VB.NET developers feel that the most exciting new features appear in C# first and are only later introduced into VB.NET. Naturally, this has generated a bit of animosity in the VB.NET community.

Introducing the Dynamic Language Runtime

Microsoft is acutely aware that the .NET Framework is not the only choice for building applications. All you have to do is take a quick glance around the development sphere and you’ll find a number of language options, and that number is only expected to rise as domain-specific languages emerge. People are spending time and energy writing useful components in these languages, so the question is, how can you use a component written in another language without having to rewrite it in .NET?

At a high level, you can think of the Dynamic Language Runtime as having three layers (see figure 1 below):

* .NET Language Integration
* DLR Core Components
* Language Binders

image001 The Future of .NET Languages?

The first layer, .NET Language Integration, simply represents the need for .NET languages to have a notion of what the DLR is and how to use it. For the most part, you won’t even notice this aspect of the DLR because most of the .NET languages had a natural integration point. IronRuby and IronPython are both dynamically typed languages, so the DLR fit right in. VB.NET has always supported the notion of late binding on the Object type, so the DLR incorporated nicely into late binding resolution. C#, however, has no notion of late binding and needed an additional static type for dynamic language support. It’s called the dynamic type, and we’ll talk about it in more detail a bit later.

Language Binders, which make up the third layer, are language-specific implementations of certain operations the Dynamic Language Runtime needs to understand about each language that wishes to participate in the DLR.

New Language Features in .NET 4.0
– Dynamic Lookup (New to C#)
– Named and Optional Parameters (New to C#)
– Anonymous Method Support (New to VB.NET)
– Co-variance and Contra-variance (New to C# and VB.NET)
– Dynamic Import (New to C#)
– Omitting Ref Parameters (New to C#)
– Compiling without Primary Interop Assemblies (New to C# and VB.NET)
– Implicit Line Continuation (New to VB.NET)
– Simplified Property Syntax (New to VB.NET)
– Array Type Inference and Jagged Arrays (New to VB.NET)
– From Keyword (New to VB.NET)

Functional Programming with F#

F# is a succinct, high performance, type-inferred, functional language built on top of the .NET Framework. Microsoft has a solid base of imperative programming languages with VB.NET and C#, but there is a trend in computing that tends to be moving towards a more declarative style of programming. What’s the difference? In an imperative language you write code that tells the compiler exactly how to do something, whereas in a declarative language you write code that says what you want to do, but leave the “how” part up to the compiler. Now, the ultimate declarative language would allow you to write something like “Morph the screen into something cool” and then compile your thoughts into a wicked screen saver or some such, but we’re not there just yet. F# offers developers the opportunity to explore declarative concepts and offer a useful language to customers whose thinking is geared more towards functional development.

Read the whole of this article from the source.

2009 Predictions – ASP.NET, LINQ 2 SQL, VB and C# are dead

These are predictions by Guy Barrette who is Microsoft Regional Director.

ASP.NET is dead
You should drop ASP.NET and start using Silverlight right now because it is clear that Microsoft has no roadmap and future plans for that technology. At the last PDC, nothing new ASP.NET was announced except a few tweaks for AJAX and the fact that Microsoft released the MVC Framework proves that but IMHO, the MVC Framework is just a toy technology to shut the Agile loudmouths that wants to code everything by hand and reinvent the wheel.

BizTalk is dead
With Dublin coming up with the Framework 4.0, it makes no sense to purchase and invest in BizTalk anymore. Why spend gazillions of dollars when you’ll have the exact same services for free right in the Framework? Why being locked with a product when you get the API for free?

LINQ 2 SQL is dead
Microsoft recently stated that they have stopped working on LINQ 2 SQL to focus on the Entity Framework so why would you use LINQ 2 SQL anymore? Once again, Microsoft has released a new technology, people invested in that technology and Microsoft abandoned it without warnings. I’m not happy because I invested so much in LINQ 2 SQL so I think I’ll stick with ADO.NET fearing that Microsoft will eventually dropped the Entity Framework as well.

VB and C# are dead
At the last PDC, Microsoft showed Oslo, its modeling platform along with M, a modeling language. This will revolutionize the way we design and build applications. In the near future we will no longer code using low level languages like VB and C#. I would stop investing in these languages right now and train my whole team in M.

Azure is DOA
Cloud computing, talk about something so stupid its name is stupid. Why the heck would I push my apps and data in Microsoft’s data centers? I don’t get it and I think no one will use that technology and trust Microsoft. This thing is dead even before it will be released (.NET My Services anyone?).

OK, you must have seen similar comments everywhere in forums, blogs or talking with colleagues and other developers but is any of this making sense?

AP.NET vs Silverlight vs MVC Framework
When I was at the last PDC, one thing that struck me was the fact that no major new announcements were made for ASP.NET. Clearly, this is the sign of a mature technology but at the same time, Microsoft is putting a lot of resources and efforts in building a new platform in Silverlight. Does that mean that you should drop ASP.NET? Of course not: it’s mature, it’s stable, hundreds of 3rd party controls are available, it’s proven and you can find thousands of developers familiar with that technology. Why would you stop using it all of a sudden? But why is Microsoft working so hard on Silverlight? Because Silverlight fills the RIA gap in the Microsoft offer because developing complex RIA apps with AJAX is way too costly right now. So why is Microsoft working on the MVC Framework, a direct competitor to ASP.NET? Again, another model to solve different problems. It’s easier to use if you’re deep into TDD, it’s somewhat lighter but at the same time, it’s somewhat a return to Classic ASP. Well, it’s another tool in your .NET toolbox and this creates confusion for people who think in the “one size fits all / one ring to rule them all” way. Again, look at your project/assignment, analyse the problem/need and select the right technology to do the job. But in the long time, could Silverlight be so successful that it would replace ASP.NET? Maybe or maybe not. It certainly has the potential to do so but who knows at this point in time!

2009 prediction: ASP.NET will dominate and we will see a slow but steady Silverlight adoption. The MVC Framework will remain a niche tool for Agilists for now (and I’m not saying this in a pejorative way).

BizTalk vs Dublin
The .NET Framework 4.0 will include a set of extensions to Windows Server that will add new services to Microsoft’s app server. Features that will simplify the deployment, configuration, management, and scalability of WCF and WF applications. Basically, some of the same features found in BizTalk Server. So why would I bother with BizTalk and spend big money when I can get the same services for free? Well, BizTalk is an integration server and Dublin is a set of management tools extending Microsoft app server. Dublin will allow you to deploy more easily your WCF apps so instead of writing a Windows service to host your WCF services, the app server will be able to host them directly.
So you think you can write a BizTalk clone? Remember how BizTalk 1 was a piece of ****? And remember BizTalk 2? Microsoft only got it right with version 3 so yes, you can write a BizTalk clone using Dublin but it will cost you a lot more than purchasing BizTalk because Dublin and BizTalk are two different animals.

2009 prediction: Dublin will be widely used right away to help host WCF apps. BizTalk will not die and some people will get burned by trying to replace BizTalk with Dublin in a scenario where the use of BizTalk would have make more sense. FUD will run loose on the Web.

LINK 2 SQL vs Entity Framework
So Microsoft created some confusion by releasing two similar ORM technologies? Yes of course but if you look closely, they are somewhat similar and different at the same time. LINQ 2 SQL is RAD against SQL Server and the Entity Framework is the full blown ORM thing. Both use LINQ as the query language so if you invested in LINQ 2 SQL, your investment is not wasted and for God’s sake, LINQ 2 SQL is in the Framework; it cannot die!
One suggestion that I saw on the Web was to release LINQ 2 SQL on CodePlex so that people can update it since Microsoft has “abandoned” it. First, Microsoft never said that it has abandoned it. They will keep it as it is right now and they will put all their efforts on the Entity Framework. My hope is that when we’ll see new SQL Server releases, Microsoft will update LINQ 2 SQL to match some of the new features. So back to the CodePlex idea: I think it’s a bad one because people will try to match the features of the Entity Framework or Nhibernate and that will create more confusion because we will have similar products competing against each other.

LINQ 2 SQL = simple 1 to 1 mapping against SQL Server
Entity Framework = complex mapping against SQL Server and more

2009 prediction: people will still be confused and FUD will run loose on the Web

C# and VB vs Oslo
Microsoft have finally abandoned the traditional design surface where we connect little boxes as the way to model apps and I think that Oslo and M are very good concepts. Is this the modeling Holy Grail? I have no idea but it looks good. Can Oslo and M replace VB and C#? Of course not!
Every time that Microsoft launched a new way to model apps, these technologies never lasted more than one version. I would tend to have a wait and see approach. Take a look, experiment and wait for version 2.

2009 prediction: Olso and M will be curiosities. Let’s hope that they will not die as the other Microsoft modelling oddities.

Azure vs apps hosted in the enterprise
Microsoft has taken a bold approach to cloud computing. Instead of hosting your virtual machines running your apps, they will host your apps in a new cloud OS running in their virtual machines. But why would you do that? To drive IT costs down of course. Look, there’s something called a recession going on right now and it’s a nasty one. At some point, your boss will be asked by his/her boss to cut expenses drastically and maybe one way to do it is to go the cloud way. We’ll see but there’s one thing that I’m sure: this will be another tool in your .NET arsenal and it will not make sense to write all apps to run in the cloud. Again, look at your project/assignment, analyse the problem/need and select the right technology to do the job. I’m sure that people will get burned by using the cloud model on projects where it doesn’t make sense.

2009 prediction: Microsoft has a lot of work to do to convince people to move to cloud computing.

Visual Studio 2010 and .NET Framework 4.0

Microsoft is revealing more about its plans for the next generation of Visual Studio Team System (code-named Rosario), part of the now officially named Visual Studio 2010 and .NET Framework 4.0 rollout. All of these products are still in the very early stages.

“We’ve got a name called Visual Studio 2010 and that’s about all we’ve got right now,” said Dave Mendlen, director of developer marketing at Microsoft. “We’re not saying much more about schedule at this point.”

The company is outlining some of the new functionality in Visual Studio Team System 2010, which consists of Team Foundation Server and the Team Suite of role-based Visual Studio clients. This next release will focus on “breaking down the walls between the roles that exist today,” said Mendlen. With VSTS 2010, Microsoft is addressing the need to better integrate the functions of the project lead, architect, developers and testers throughout the application lifecycle. Key features in the 2010 Team Suite enable reuse of code assets, modeling across tools and architecture, higher quality test and better collaboration.

SQL Server 2005 Dropped

Going forward, the VSTS Database Edition will be rolled into VSTS Developer Edition.

“Developers are more hybrid today than they were in the past, this need to work not just with the core source code but also with the database is becoming more and more important to them,” said Mendlen. “With that in mind, we’ve made the decision to fold these two products together in the 2010 release of the product.”

Starting this month, Software Assurance customers with licenses for VSTS 2008 Developer Edition or VSTS 2008 Database Edition can download the VSTS 2008 Database Edition, VSTS Developer Edition, VS2005 Team System for Software Developers and VS2005 Team System for Database Professionals at no extra cost.

In a surprise move, Microsoft has also decided to discontinue TFS “Rosario” support for SQL Server 2005. VSTS lead Brian Harry explained in his blog: “That was a controversial decision but it is a final decision. The primary driving force behind it is that the Report Server feature in SQL Server 2008 is sooooo much improved over that in previous versions that we simply could not pass up taking advantage of it for Rosario.”

Plans for Expression Studio integration or a VSTS “Designer” edition are not currently on the 2010 roadmap. “There’s more work to be done to enable cross designer developer collaboration,” said Mendlen. “[We have] nothing specific to announce but it’s absolutely an area of focus for both sides.”

Team Suite Upgrades

The VSTS April 2008 CTP12 offered a glimpse of many of the new features in the upcoming Developer, Test and Architecture Editions. The next CTP is expected in the PDC timeframe, although Mendlen declined to confirm that timeframe.

Developers can expect improved customization of the continuous build process through new features such as architectural validation. That includes the ability to model the app’s UI layer, business layer and data layer, set up constraints, and map back-end code onto that architectural diagram. Using the new “Architecture Explorer” and “Layout Diagram designer” in the 2010 Architecture Edition, project leaders can enforce policies at code check-ins through architectural validation.

“Team Build will include a WF engine that is very extensible,” said Cameron Skinner, product unit manager for Visual Studio Team Studio. The next version of Team Build introduces an agent/controller architecture, with support for distributed builds.

The new client environment for testers beefs up its support for manual testing and test case management. It is built using Windows Presentation Foundation to enable better visualizations of software processes. Testers can run test cases that relate only to modified code. They can also capture what happens in the debugging process through video recording — TiVo for test — and that along with a debugging log, can be handed off to the developer.

The 2010 Developer Edition adds support for historical debugging, a standalone debugger on a USB stick for testing code on separate machines, code analysis rule sets and test impact of code changes.

New Modeling Platforms

The April CTP of VSTS supports UML, which Skinner said makes sense for higher level concepts such as the logical layer, with DSL at the physical layer. Microsoft has long championed DSL, as an alternative to UML.

Forrester Research analyst Jeffrey Hammond believes Microsoft views UML “as a great DSL for software architects.” One of the issues for Microsoft early on was the problem of complexity in modeling, and “Microsoft rightly noted that building off UML 2.0 can create some complex tooling for architects and developers,” Hammond said.

Microsoft officials have hinted that support for UML might be coming in “Oslo,” a new modeling platform that consists of a repository, language and tools. The company has confirmed that it will issue the first CTP of “Oslo” at next month’s Professional Developers’ Conference in Los Angeles.

“In Team System 2010, we clearly need to be able to interoperate and get the models that you’re creating in the Team Architecture Edition into the Oslo repository,” said Skinner. “That’s something that we’re currently working on, we’re still early in making that happen but that interoperation is absolutely going to be there, and we are actually chasing out more integrations between the two, but it’s still too early to talk about at this point.”