»
S
I
D
E
B
A
R
«
The November version of the Windows Azure SDK and Tools
Nov 15th, 2009 by evereq

Download them here.

New in the November 2009 SDK (quote from Microsoft Windows Azure team newsletter):

  • Windows Azure Service Runtime managed library: The latest version of the Service Hosting Runtime API includes support for enhanced communication between roles and for runtime notification of service configuration changes. Direct communication between role instances enables new application development scenarios, including applications that distribute state across role instances. Service configuration changes include an increase or decrease in the number of request role instances and changes to the values of configuration settings.
  • Windows Azure Diagnostics managed library: The new Diagnostics API enables logging using standard .NET APIs. The Diagnostics API provides built-in support for collecting standard logs and diagnostic information, including the Windows Azure logs, IIS 7.0 logs, Failed Request logs, crash dumps, Windows Event logs, performance counters, and custom logs.
  • Certificate Management: Enhanced support for SSL certificates in Windows Azure and in the Windows Azure SDK enables the secure automated deployment of certificates to services hosted on Windows Azure.
  • Variable-size Virtual Machines : Developers may now specify the size of the virtual machine to which they wish to deploy a role instance, based on the role’s resource requirements. The size of the VM determines the number of CPU cores, the memory capacity, and the local file system size allocated to a running instance.
  • External endpoints for worker roles. A worker role may now define any number of external endpoints for HTTP, HTTPS, and TCP, and specify the desired port number for any external endpoint.
  • Persistent local resource storage: Developers can now choose to persist data written to a local storage resource at runtime when the role is recycled.
  • Windows Azure Storage Client managed library: The Storage Client library provides a .NET API for accessing the Windows Azure storage services.
  • Improved Development Storage: Development storage provides a high-fidelity simulation of the Windows Azure storage services in the cloud. Tables can now be created dynamically in the development storage Table service and are no longer required to be generated in advance.
  • Updated samples: The samples included with the Windows Azure SDK have been updated to demonstrate new features. The samples now include both C# and Visual Basic versions.

As we can see – a lot of improvements and new features introduced in this release. I will made review of them right after will have time to check (hopefully today later)! In any case, glad that MS improve Azure SDK so quickly!

Update: after installation and first review, I found following:

  • It seems like Microsoft finally have “official” Client library for Azure Storage. The name is same like from samples before, i.e. “StorageClient”, but now it is in “Microsoft.WindowsAzure.StorageClient” namespace, not like “Microsoft.Samples.ServiceHosting.StorageClient” that was before! It is also VERY extended and improved, so if you going to use Azure Storage, for sure you need to use this library (and I am also going to use it in my EvejobAzNET project) – it give you access to Blob Service, Queue Service and Table Service! Sure like before, it is possible to use simple .NET Client Library for ADO.NET Data Services (and new library use it inside anyway, just check that it reference System.Data.Services.Client library inside)… But with official Azure Storage Client library a lot of tasks become much more simple! You can found this library (*.dll) in “c:\Program Files\Windows Azure SDK\v1.0\ref\” folder, together with other useful binaries!
  • It is possible now to use another “official” library to get programmatic access to most of functionality available before only from Azure Developer Portal (and actually I don’t know why, but for some reasons Portal works and looks not best way! You can google, A LOT of people complain about issues with this!).
  • A new Library for Logging and Diagnostic functionality was added to SDK (Microsoft.WindowsAzure.Diagnostics namespace) - feel free to review samples in SDK (zip archives available in root folder of SDK installation, i.e. in C:\Program Files\Windows Azure SDK\v1.0 by default – samples-cs.zip for C# version and samples-vb.zip for VB version)
  • A lot of other improvements / features was added that relate mostly to development / production environment (Visual Studio Azure support, new release of Development Fabric etc) – they not change significantly your code / application design, instead of features described above that I highly recommend to review in case if you develop for Azure!
Amazon AWS Big News for developers
Nov 13th, 2009 by evereq

Because I build Evejob multi-platform project with support of Cloud deployment scenarios (currently for Google App Engine and Microsoft Azure) and I am sure that best Web software must be ready to be deployed in Cloud(s), it was very interesting to read latest announcement from Amazon: “… AWS Software Development Kit (SDK) for .NET Now Available… “.

Sure it’s just a beginning for Amazon in development of real .NET SDK, but even with this version we can quickly build .NET applications that tap into AWS Cloud.   Yes,  even before developers have good libraries to build such applications, but now looks like we have first “standard” API from Amazon and this fact is very important!

For example, for Ruby there is no such official SDK (or Ruby gem), and developers can choice from few available gems (right_aws, amazon-ec2 or AWS:S3 to name just few).  The same situation for Java - available a lot of “community” libraries, but no official SDK… (ok, ok, for Java we have at least official AWS Toolkit for Eclipse, but Toolkit it is not SDK!!!).

But why it is important to have official “language specific” SDK?

Well, first of all, now because Amazon have few BIG rivals, like Google App Engine (and we know that Google DO have official SDKs, more so, for both Python and Java!) and Microsoft Azure (sure Microsoft always have SDKs – it a BIG plus for Microsoft!).

Also it is important for developers, so they know that if they take some library and put this library as “base” for communications with a Cloud, they will not need to dial with changes in API in case of library author decide to drop development! It is important to have SDK that will be up to date with company services (Amazon in our case), just because we developers want to be SAFE! Sure it is good if there are a lot of open source libraries that EXTEND SDK some way, but it’s just “add-ons” and can’t replace real official SDK!

So it is really BIG day for Amazon and .NET developers – first official “language specific” SDK, and for .NET!!! What will be answer from Microsoft Azure that is still in “Beta”? ;-)

Note: in this post I mean “language specific” SDK, not just common SDK that list API for Web Services  with samples how to use them for example, etc… Because most of they time developers dial with some specific language, it is important for services like AWS to provide language specific SDKs so developers can really quickly and “safely” create applications using such “language specific” SDKs! Hope you understand what I mean ;-)

Project “Evejob” Introduction
Oct 12th, 2009 by evereq
Logo

“Evejob” is a Web 2.0 style Social Job Board Open Source web application developed in few frameworks / programming languages simultaneously and released under GPLv2 license.

Why another job board application?

First – every developer understand naturally such business domain because at least one time in his live he was a “Job Seeker” and some day probably also become (will or already) an “Employer”. So I (and readers) will not spend time to learn business domain in developing Job Board application! (sometimes really huge amount of time team or independent developer just learn business domain of application… It’s actually wrong to think about this as “time waste” because as much developers understand the business as more better software they usually made!).

Another reason why I decide to create another job board open source application(s) is absence of such project developed in true MVC architecture (at least by now). Try to search open source Job Board software? You will found huge amount of poorly written PHP scripts (most are not open source) and for sure you will not found any good ASP.NET MVC or Ruby on Rails implementations… Social Job Board software have a huge “potential” and I don’t want to lost opportunity to develop good open source version of such application (and even more – first few versions powered by different platforms!).

Last reason which I want to list here (in reality I have much more reasons for sure), is that I have some cool ideas how to make really SOCIAL Job Board and want to at least try such ideas on practice!

Evejob Application Versions

So, there will be few major versions of Evejob applications:

  • EvejobDJ (powered by Django -  high-level Python Web framework)
  • EvejobDJG (powered by Django -  high-level Python Web framework and ready to be hosted on Google App Engine)
  • EvejobRoR (powered by Ruby on Rails – open source MVC web application framework which leverages the Ruby programming language)
  • EvejobRoRG (powered by Ruby on Rails – open source MVC web application framework which leverages the Ruby / JRuby programming language and ready to be hosted on Google App Engine)
  • EvejobGoG (powered by Grails -  open source MVC web application framework which leverages the Groovy programming language that based on the Java platform)
  • EvejobGoGG (powered by Grails -  open source MVC web application framework which leverages the Groovy programming language that based on the Java platform and ready to be hosted on Google App Engine)
  • EvejobNET (powered by Microsoft ASP.NET MVC framework and written on C# programming language under Microsoft .NET platform)
  • EvejobAzNET (powered by Microsoft ASP.NET MVC framework and written on C# programming language under Microsoft .NET platform and designed to be hosted in Azure)

All versions will be developed and updated in parallel with comparisons between frameworks / languages  features, platforms and even IDEs in the way …

Why I will release project as Open Source? Sure primary reason because I want other developers will get benefits from it, like I now get benefits from all open source software that I use every day. Another reason – I want to made this application better, so I need feedback, and not only from end users, but also from other developers! In my case, because I get used few different programming languages, I will probably get really huge feedback – at least few times more then if i will write code using one language! I will get feedback from developers with different cultures (Unix vs Windows environment), different preferable coding styles (dynamic language or static) etc… Think project will benefit from this (and actually I never see something like this before so it will be at least interesting to get a try :D … ) !

Agile Development

As you probably understand by now, I am a huge fun of Agile development (and even Agile life).

What this means for selected project:

  • ANY feedback, both positive and negative highly appreciated!  (just please make sure that it’s “constructive” – I don’t want to start a wars between platforms, I don’t want to get feedback about my English level etc – just stay concentrated on the project)
  • I will try to get releases every month  (just be aware that like most of developers I do this open source project at free time at home after hard work… )
  • I will follow DRY principle (as well as many other Agile principles) and sure will always try to keep things Simple! Please correct me in case if I go in wrong direction!

Integrated Development Environments

One thing where I really don’t want to go most simple way is usage of Integrated Development Environments (IDEs) … While all development can be done using even simple text editors (notepad, vim, Emacs etc) I decide to implement this project using rich IDEs available for selected platforms.

Reason – most of developers DO use IDE at work (companies simply buy it) and I think this will help developers to make total compare of PLATFORMS, not just frameworks or programming languages. While a lot of people can argue that IDE does not make any difference (and probably they are right in some cases),  I think usage of IDE can significantly decrease developing time ones you get use of functionality they have and sometimes even improve discipline (with tools like ReSharper for C# for example) of developers.

So here is the list of IDEs I am going to use:

  1. IntelliJ IDEA by JetBrains (http://www.jetbrains.com/idea/) for Django (using Python plugin), Grails development (build-in support) and Ruby on Rails development (using Ruby Plugin). Version for Open Source development available for free at JetBrains site, for personal development costs 249$, while version for commercial developing costs 599$. But you can simple start with 30 days Trial version for now, exactly like I do.
  2. Microsoft Visual Studio 2008 (http://www.microsoft.com/visualstudio/en-us/products) for ASP.NET MVC development in C#. Standard edition cost 299$, while professional cost 799$. For our needs it’s enough to have just standard edition. Also sure thing you can download 90 days Trial version for now – after you try it (if never try before), you will 100% buy it as there is no alternative for .NET !

Why I choose IntelliJ IDEA, but not Eclipse or Netbeans (really good free alternative to IDEA) or Wing or Komodo etc? For .NET development, Visual Studio is STANDARD and Express Edition that available for free simply “for users other than professional software developers, such as hobbyists and students.” (but even so Express Edition should also work for you). Because my goal is to be at least “professional software developers” (and readers I think also) I must use at least Standard version of Visual Studio that is not free (except cases when Microsoft give it for free for start-ups etc, like on http://www.microsoft.com/bizspark/ for example)… So to make fair comparison I must use something not free for other versions also… This means that great tools like Netbeans or Eclipse simple can’t be used in this case (as both are completely free). Sure if you going to made your own projects you can use Netbeans or Eclipse because both have good support for both Ruby on Rails and Grails development and even Django (with some additional external tools / plugins). Regarding Komodo / Wing etc, they are too specific for selected languages or does not support all frameworks I need (at least by now).  While it is available free IntelliJ IDEA version for open source developing, because I (and readers) some day going to make a money, it’s make sense to compare versions for commercial development.

Application Hosting

Hosting… Yes, while I can leave this decision for later in theory, in practice it can (and will) effect our architecture… So let’s made it clear now: I am going to host Grails, Django and Ruby On Rails versions of Evejob application in Google AppEngine. Google AppEngine support Python natively so we can run Django here. Also last version of AppEngine support  Java as programming language. So because Grails leverages Groovy (which written on Java), we can also run Grails applications in AppEngine. Same for Ruby On Rails – it is available JRuby implementation of Ruby on Java so we can run Ruby On Rails applications in Google App Engine. To host ASP.NET MVC application in I am going to use latest Microsoft Azure platform.

Operation System

I am going to make all development under Microsoft Windows 7 64 bit Operation System (OS). Visual Studio 2008 does not work on any other non-Windows operation system directly (and I don’t want to use virtualization for such case – IDE must work on operation system for which it was written to get maximum performance… but, while IDEA works on almost any OS, Visual Studio does not!). Even so, It is still exists option to use Mono (cross platform Open Source development framework) to run ASP.NET MVC on other OS except Windows, and to use MonoDevelop instead of Visual Studio for example. Unfortunately I decide to port application to Mono AFTER development will be completed. (primary because I just want to wait until Microsoft legally allow to use Mono or finally will just “close” it, so I will not need to release another version for this wonderful framework).

Project sources, links and documentation

  • Projects hosting
  • Evejob Open Source Projects homepage (under construction currently)
  • Public domains for implementation sites (sites will be hosted only after Evejob reach first release version):
    - Worldwide: http://evejob.com, http://evejob.net, http://evejob.info
    - Israel: http://evejob.co.il
    - Mobile Clients: http://evejob.mobi
    - USA: http://evejob.us
    - Ukraine: http://evejob.com.ua
    - Russia: http://evejob.ru
    - “СНГ” http://evejob.su
»  Substance: WordPress   »  Style: Ahren Ahimsa
© Copyright 2008–2009 EvereQ.com All rights reserved.