Nima Dilmaghani’s Technology Blog

Silicon Valley Code Camp is this weekend

While I am sitting far and away from Silicon Valley, I will be watching as the second Silicon Valley Code Camp happens this weekend. I want to tell all the developers, coders, architects, hackers, or whatever techie names they want to call themselves who live in or near the Valley how lucky they are to have such a great event there. Some of my favorite techies will be speaking at this event. People like Douglas Crockford, Juval Lowey, and Matt Mullenweg will be taking time to share their knowledge and experiences with the rest of us and thanks to the hard work of folks like Peter Kellner who have spent countless hours organizing this event, it will all be for free. Believe me, people from other parts of the country or the world do not have this same luxury to drive a few minutes from their home and listen, learn, and share with such a powerful group of software engineers and pioneers involved in such a divers array of technologies. Fortunately, the word has gotten around and over 700 people have registered. Unfortunately, many of those who register will not show up. Mainly because registration is free and the barrier to entry is nothing. So at the last minute, they decide to do something else or feel lazy or … I don’t really know why. All I know is that this is a great opportunity. People pay hundreds of dollars at conferences to see the same speakers give the same talks and folks in the Valley have a wonderful chance to take advantage of it for free this weekend. So don’t let this opportunity go by. If you have not registered, register now. If you have registered, set your alarm clock for Saturday morning and go down there. You are blessed with the opportunity to live in the valley and take advantage of this. Take full advantage of it.

I wish I was there.

The tools folks said they used at Alt.net Conference

At the Alt.net conference Someone put a sheet on the wall and folks filled it out with:

here is a flickr link to the photo of the first page and here is what was on the sheet:

Update:  AltNetPedia has this list in much better order now.

What tools do you use?
Resharper
NUnit
NHibernate
Castle
Reflctor
Subversion
MbUnit
Bugzilla
Visual Studio!
TestDriven.NET
PowerShell
CodeRush
Fiddler
CharlesWebProxy
FogBugz
Jira
Confluence
Fisheye
Big Witeboard Wall!
Mono
Reboot
CruiseControl.net
Rhino Mocks
MS Test
TFS
Team Build
Mac Book
Firebug
Structure Map
Textmate for C# (Really!)
e
Autotest
Active Record Migrations
NAntMy Generation
VMWare
perl
Visual SVN
Socket Wrench
Scredrive
Eclipse
Java
Groovy
JUnit
Gurce

Fitnesse
Rake
NUnitForms
iBatis
Index Cards
WORM
NDepend
FXCop
Putty
Baseball Bat
Simian
Ruby
Watir
NetBeans
Subversion
Selenium
Fiddler
MSBuild
Excel
.NET
Media Wiki
OS X!
Synergy (network KVM)
Tortoise SVN
jQuerry
Hammer
DPack
GreatEX
Subsonic
NCover
NCoverExplorer
SQL Server
Mingle
Git
Vim/ViEMU
Emacs
Trac
Firefox
Cygwin
Grep
Skype
Acrobat Connect
Trillian
Outlook
SQL Diff
Google
(o)(o)
CI Factory
Ethernal
Caffeine
SQL Compare
MANTIS
ADIUM
NotePad
XML Doc Viewer
Fire
Lots of e
Manipulation
Beer
Cross Loop
YUI
WinMerge
Pandora
Parallels

Microsoft announces its new MVC architecture for Web Apps

Today at the alt.net conference, Scott Guthrie demoed the new MVC architecture that Microsoft will be releasing in Spring 2008 for web apps. The first CTP should be available in two weeks. This architecture is very similar in many ways to the Rails architecture but takes full advantage of Microsoft .NET 3.5’s features and the strong typing in .NET. The crowed of alpha geeks that where incredibly critical of Microsoft the night before all gathered in one room and intently listened. Many questions were asked: Does this framework work with such and such? Can I do so and so. Scott’s answer was yes to all of these questions. The crowed was enchanted by Guthrie. No one had anything negative to say. There were a few syntactic and minor suggestions. And some mental wresting from some of the geeks, but Scott’s technical answers addressed the issues raised. Everyone was incredibly impressed. Scott’s presentation and rapid fire answers to questions demonstrated his detailed understanding of all the testing frameworks as well as alternative development frameworks out there and his team’s synthesis of all this knowledge in what appears to be a superior product to what currently exists in the market.
This will be a MVC pattern similar to Rails with a similar URL mapping convention and an architecture that allows you to plug in your favorite testing tools. Both Scott Hanselman and Philip Wheat taped the talk and will post it shortly. I strongly recommend watching it. This architecture is far superior in separation of concerns, testability, maintainability, and scalability to the existing ASP.NET architecture that was basically mimicking a state-full WinForms environment in a stateless web world to bring existing WinForms developers up to speed with web application development quickly. It will enter a heated battle with Ruby on Rails for the top spot as the best way to develop modern web apps. The Microsoft .NET Framework will have certain advantages such as WCF, Linq, and strong typing while the dynamic nature of Ruby and it’s faster innovation rates due to its open source nature will have other advantages. It will be interesting to see how this fight will pan out.

Note that because of a fundamental change in the design, there will be a new (smaller) set of ASP.NET controls that will work in this model. This architecture relies more on the native html controls (which is a good thing. See my CSS blog post to see what hoops you need to jump through to make ASP.NET controls work well with CSS). AJAX Control Toolkit controls that talk to the server also will get counter parts that will work in this model. There will be no change to the Microsoft Ajax Library or the networking stack of the Microsoft Ajax offering. This stack will also improve the existing ASP.NET architecture by replacing the UpdatePanel that was designed to wrap existing ASP.NET controls which were not originally designed for Ajax with a control that can be passed into the app as a JSON object and placed in a placeholder.

To read other perspectives please read the following blogs:

Bob Grommes, Chris Holmes, Howard Dierking, Jeffery Palermo, Jason Meridth, Joshua Flanagan Mike Moore, Roy Osherove,

Update: Sergio Pereira has written nice blog post that goes in more detail with sample code.

Enums in JavaScript

Posted in AJAX, ASP.NET, ATLAS, javascript by nimad on October 2, 2007

Enums, (enumerated types) are very simple but incredibly useful programming constructs. However, while the EcmaScript specification has the enum keywork reserved, they have not implemented it in the language. While Microsoft’s JScript has an implementation of Enum, I recommend not using it since your code will not work in browsers other than IE. However by using associative arrays you can get a good deal of the enum functionality easily:

var myEnum =
{
First : 0,
Second : 1,
Third : 2
}

Now
Tabs[Third]
and
Tabs.Third
both return a 2

If you really want enums, the Microsoft AJAX Library implements them. You first declare the enumeration and then register it with the class the enum belongs to. Here is an example from the Microsoft Ajax Control Toolkit:

// Create an alias for the namespace to save 25 chars each time it’s used since
// this is a very long script and will take awhile to download
var $AA = AjaxControlToolkit.Animation;

$AA.FadeEffect = function() {
/// <summary>
/// The FadeEffect enumeration determines whether a fade animation is used to fade in or fade out.
/// </summary>
/// <field name=”FadeIn” type=”Number” integer=”true” />
/// <field name=”FadeOut” type=”Number” integer=”true” />
throw Error.invalidOperation();
}
$AA.FadeEffect.prototype = {
FadeIn : 0,
FadeOut : 1
}
$AA.FadeEffect.registerEnum(“AjaxControlToolkit.Animation.FadeEffect”, false);

You can use this enumeration in this way:

$AA.FadeEffect.FadeIn

ATLAS to be released around the end of the year

Posted in .NET, AJAX, ASP.NET, ATLAS, programming, software, technology, Technology and Software by nimad on September 11, 2006

I can finally talk about this.  The V1.0 of the Microsoft AJAX framework code named ATLAS will be shipped around the end of the year.  It will be “Fully supported” which means that customer support services are available 24 hours a day, 7 days a week, 365 days a year and that any customer can request hotfixes in the event that they encounter a bug affecting their application. 

In order to meet this date, we will be shipping a “core” set of functionality including all the common components needed to enable developers to build client-side controls/components, as well as the server-side functionality that provides integration within ASP.NET (including the super-popular update-panel and other assorted controls).  There are features of the current “Atlas” CTP drops that won’t be in the fully supported “core” bucket. These features will continue to be available in a separate download and will continue to work on top of the supported “core” release.  We will obviously continue to support a Go-Live license for all features going forward.  Overtime we will be moving more and more features into the fully supported bucket.

Naming:

1) The client-side “Atlas” javascript library is going to be called the Microsoft AJAX Library.  This will work with any browser, and also support any backend web server (read these blog posts to see how to run it on PHP and ColdFusion).

2) The server-side “Atlas” functionality that nicely integrates with ASP.NET will be called the ASP.NET 2.0 AJAX Extensions.  As part of this change the tag prefix for the “Atlas” controls will change from <atlas:>to <asp:>. 

3) The “Atlas” Control Toolkit today is a set of free, shared source controls and components that help you get the most value from the ASP.NET AJAX Extensions.  Going forward, the name of the project will change to be the ASP.NET AJAX Control Toolkit.

Watch for a white paper with details in late September.