Monday, October 27, 2008

C# quick overview

I wanted to write down a quick overview about C# with hot facts, so people who are wondering if they should learn or continue learning C# can find some quick and important facts about this language. I took information from some blog post and some other sites listed at the end of the post.

Where did it originate? - A little history

C# development was led by Anders Hejlsberg, one of the architects of Visual J++, Borland Delphi and Turbo Pascal. The primary architects of C# were Peter Golde, Eric Gunnerson, Anders Hejlsberg, Peter Sollichy, and Scott Wiltamuth. Of these, the principal designer of the the C# language was Anders Hejlsberg, a lead architect at Microsoft. Previously, he was a framework designer with experience with Visual J++ (Microsoft's old version of the Java language), Delphi, and Turbo Pascal.

Although Microsoft and its partners set the direction for C#, the standard is maintained by ECMA, the European Computer Manufacturers Association, which also looks after the standards for JScript and JavaScript. Microsoft's partners in submitting the original specification were Hewlett-Packard and Intel. Participants in later versions include IBM, Sun and Novell.

C# debuted in the year 2000 at the Professional Developers Conference (PDC) where Microsoft founder Bill Gates was the keynote speaker. At the same time, Visual Studio .NET was announced.

C# is also an ISO standard language, like Cobol. Both C# and the Common Language Infrastructure (CLI) have been submitted to international standards organizations European Computer Manufacturers Association (ECMA) and International Organization for Standardization (ISO) / International Electrotechnical Commission (IEC).

What's it for?

Microsoft launched C# as "a modern, object-oriented programming language built from the ground up to exploit the power of XML-based web services on the .net platform." As well as suitability for developing software components in distributed environments, C# is "intended to be suitable for writing applications for both hosted and embedded systems, ranging from the very large that use sophisticated operating systems, down to the very small having dedicated functions".

What makes it special?

ECMA's involvement guarantees the continued independence of the language from Microsoft's proprietary control. However, not all features supported by the .net common language infrastructure (CLI) will necessarily be available, as the ECMA C# specification explains: "Although Microsoft's implementation of C# relies on CLI for library and runtime support, other implementations of C# need not, provided they support an alternate way of getting at the minimum CLI features required by this C# standard."

What's coming up?

C# 3.0 was released late in 2007 along with .net 3.5.

Current direction

With the release of Vista, there are important changes to acknowledge. Microsoft modified its path to provide a better separation of the presentation and the backend/logic layers giving designers to focus on the look & feel of the application interface while the developers concentrate on functionality. Microsoft also released the Expression Studio suit providing powerful (although not yet mature) design tools to create interfaces in a similar way than Adobe tools, but producing XAML code behind the scenes so developers don't need to translate or create their own version of the interfaces.

Current technologies following this trend: Windows Presentation Foundation, Silverlight 2, Media Center Applications and Surface.

With this technologies I expect C# skills to become more appreciated in the market since all your current C# skills will be needed for these next generation technologies.

Sources and Must-Check references:

Nick Langley Post
C# Programmers Overview
C# Quick Overview
MSDN Getting Started Site

Happy C#!

Wednesday, October 22, 2008

Google Android Available

I just found out that Android, Goggle's mobile open source platform has been released. You can go to the Android site and check it out over there !!

Ok so first things first: What is Android? Android is the first free, open source, and fully customizable mobile platform (remember, Open Source !!). But Android is not a single piece of hardware; it's a complete, end-to-end software platform that can be adapted to work on any number of hardware configurations. Everything is there, from the bootloader all the way up to the applications. And with an Android device already on the market, it has proven that it has what it takes to truly compete in the mobile arena. Android offers a full stack: an operating system, middleware, and key mobile applications. It also contains a rich set of APIs that allows third-party developers to develop great applications.

So...which is the first Android mobile device? The T-Mobile G1 phone. Check out the T-Mobile page about this phone and play with it a little so you can see what the Android Platform is capable of. And let me share this article from Ars Technica giving you a quick overview about the phone and the platform.

By the way, Android is an effort of Goggle and the Open Handset Alliance !!

So, go ahead, check out the sites and read a little about the phone. In my opinion, since Android is an Open Source project that allows developers to contribute to the source code and give a lot of feedback, I truly believe is going to have a fast growth. Also, having one real mobile device already available in the market will make Android to win (or lose? we will see in the upcoming months) trust very quickly.

Here are some useful sites for you:

Android Home Page
Android Open Source Project
Android Developers Site

Mobile application market is going to grow in the upcoming years. Whether you chose Android, Windows Mobile or Objective-C for IPhone development we will have a lot of room to develop applications in the mobile market.


Tuesday, October 14, 2008

Silverlight 2.0 Released

Hi everybody !!!

As many of you probably already know, Microsoft released today Silverlight 2. This is the final public release version(RTM) and after many months of playing with betas and updates to those betas, finally we have a public RTM version. I believe that Sivlerlight is going to become a great platform for developing next generation RIA applications, and since I'm a .NET architect and developer, Silverlight is a dream technology to start playing with design and interface elements that can make our applications to look cool and actually attract web users all around the world !!! That's right, forget about ugly standard winforms, webforms or awful controls !!!!

Anyway, I know that a few guys have already started to blog about this release and the new cool features and plans for Silverlight, including some good news that are going to be unveiled to the public during PDC 2008, but I still think it is a good idea to do my own contribution and put together some interesting articles and news about this release that will help you to get up to speed on this new final version.

First of all, be sure to visit the MS Silverlight site to get the most recent tools for developing Silverlight 2 applications. You will need the Visual Studio 2008 SP1 and also the Blend 2 SP1 (it seems like MS is getting rid of the dot versioning !! - Blend 2 SP1 instead of Blend 2.5). You will get the service packs for VS and Blend, the new Silverlight 2 templates for Visual Studio and the updated Silverlight 2 SDK. Check out any tutorial or video that might interest you on their site.

Next, check out this cool blog posts regarding new features like the Unit Testing framework which for all top developers, is a great tool to make sure we can test our applications before releasing them into production environments. Here's a short post from Shawn Burke which will serve you as an introduction. You can also check this post from Jeff Wilcox with more detailed info. Make sure to take notes about it and get your hands wet with this framework. You can also find more information at the MSDN site.

Finally, keep track of Scott Guthrie's blog, since you will find the most recent news about Silverlight and many other products and technologies and you will be able to get more info and help from this blog on how to architect and develop your Silverlight 2 applications. This is the specific post regarding Silverlight 2 release.

Another great step on the Silverlight 2 road map is that it seems that there's is a new extended group in Microsoft that will be focusing on creating and delivering Silverlight controls (part of the "Silverlight Control Pack" announced today). There is the rumor of a first round of controls being released during PDC 2008. A list of possible controls is:

* DockPanel
* WrapPanel
* ViewBox
* Label
* HeaderedContentControl
* Expander
* TreeView
* NumericUpDown
* AutoComplete
* Accordion

This is great news !!! This will make our life so much easier. I have been working on an emulation of a TreeView like control (post to come on that) although, if a real TreeView control is going to be released shortly you might prefer to wait for it than take a look at my code :-)

Ok, so be sure to keep track of all the latest news regarding Silverlight and keep track of the post to come on my blog.

Happy Silverlight !!!

Thursday, October 2, 2008

Microsoft Conferences - TEC

Tomorrow I'll be speaking at the ITCR (TEC) which is probably the best tech university in Costa Rica, and one of the best of Latin America.

I'll be focusing on Windows Communication Foundation, which is the integrated communication solution for developing Microsoft service oriented applications following the connectedness universal principle.

The presentation will have an intermediate level, covering all the components of WCF communication workflow and also focusing a bit on duplex communication code samples.

I hope to have many students from the TEC over there, and probable some of my colleagues.

What: Microsoft Conferences 2008
Topic: Cool WCF features for SOA applications
When: Friday, October 3rd, 2008
Time: 4:00 pm (GMT-06:00)
Where: ITCR (TEC), Cartago, Costa Rica