I have to admit that I am once again amazed by the power of
Microsoft. I just completed my first Microsoft training course in
a long time … to learn the C# programming language. It was an
awesome experience.
I have a long background in developing software, starting with assembly
language, Fortran, Basic, C, and other languages. I never really
moved to Java, but knew that I wanted to learn a current object oriented
langauge. Over the last several years I have learned both Perl
and PHP, and these are impressive Open Source languages. When I
saw that the Mono project was getting going last year, I immediately
reealized that C# was the language to learn … from a C programmers
perspective.
After three days in class I now have a good understanding of C#, which
I plan to use for both Windows and Linux development. The Mono
project is the Open Source project to bring C# and .NET to Linux …
and obviously Microsoft has C#, .NET and their development environment
Visual Studio well established and moving forward. I will be
looking at Mono, but I realize that they have their work cut out for
them … Microsoft’s development environment is impressive.
I have developed in Visual Basic 6 on Windows for a long time, and I
found this to be a spectacular solution for developing Windows
applications. I was able to rapidly create a wide range of
applications over the years, complete with installers, with very little
effort. With all of this, I was spoiled when I had to deal with
text-mode development in Perl and PHP. I was really waiting for
this C# training … knowing that it was going to leverage a lot of the
same technologies.
Some of the core areas of Microsoft’s solution that I was most impressed with:
- Visual Studio .NET 2003 –
this is a very impressive Integrated Development Environment (IDE)
solution. They have done a good job allowing for a lot of
customization of the development environment. Once I had my
desktop arranged, it was easy to flip between the visual UI designer,
and the various code modules. Help was always there, and the
Intellisense code completion was great. I admit that I wish it
would complete using the tab key, instead of the Ctrl-Spacebar they
require, however it is invaluable.
- Database Connectivity and Development
– it is beyond easy to develop complex applications that access a wide
range of databases, and data sources. Within the Visual Studio
IDE, most of the development can be done using wizards and simply
dragging and dropping database tables from the Server Explorer.
All of the code to integrate the data sources, and databases, into your
code is just written for you. You end up being able to use the
DataSet wizard to then create the DataSet. Again … all of the
code is basically written for you … and you are left to focus on your
core logic and functionality.
- XML Manipulation – so
far, I haven’t found anything that I can’t do with XML. In almost
no time this morning, I was able to program an HTTP request to grab an
RSS XML file from one of my blogs. I was then able to transform
this XML file into a DataSet with one or two lines of code. From
an XML file, to a set of database tables ready to be read.
- SOAP Client – ok … now
this was just too easy. I simply located the URI for a web
service that I was interested in. I actually searched the
Microsoft UDDI directory through the integrated browser. I found
a stock quote web service, and clicked the link to add it to the
project. The next thing that I know, I simply have a new service
with a couple of new methods that I can call. I then link the
results of the SOAP request to a DataGrid … and can view the results.
- SOAP Web Service – now this was just too easy. I simply
went through a Wizard to create the base service class, and then added
a series of methods that immediately become web-services methods.
As I added each new method to the class, the build process seems to
simply re-deploy and everything worked.
- ASP.NET – now this was the final aspect of the course that I
received today. I am absolutely blown away at hope simple it is
to create complex sets of interactive pages.
Now … I am completely open to Mono and very interested in it’s
success … however I now have a model product that they are going to
have to beat. Visual Studio and Microsoft are at the forefront
of development with their offering . I’ll post about my
further experiences … and my experiences with Mono!