Nima Dilmaghani’s Technology Blog

Oomph: A Microformat Toolkit from Microsoft

Posted in javascript, Microsoft, programming, software, web development by nimad on October 22, 2008

Microsoft has just released Oomph: A Microformat Toolkit.  According to Karsten Januszewski, “Our main goal with Oomph is to make Microformats more accessible for users, developers and designers. Oomph is an amalgamation of applications: an Internet Explorer Add-in built in C++; a cross-browser HTML overlay built using JQuery that aggregates Microformats (hCard and hCalendar); a set of CSS styles for Microformats; and a Windows Live Writer plug-in written for inserting hCards”

There is a video demo on YouTube: http://www.youtube.com/watch?v=zx2f2Z9MMQ8

The code is on CodePlex at http://codeplex.com/oomph

Advertisements

Visual Studio Launch Event

Posted in .NET, ASP.NET, Card Space by nimad on February 8, 2008

The 2008 Launch event site is at http://www.microsoft.com/heroeshappenhere/register/default.mspx. The event is not only a good opportunity for networking and learning, but participants will get copies of VS2008,  Windows Server 2008, and SQL Server 2008.  And because of this, the event will sell out.  So sign up for it now before all seats are taken and if you are unable to attend, please cancel your seat so someone else can attend.

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.

topics at alt.net

jay flowers: loop diagrams from system thinking

jeffery palermo: advanced nhybernate techniques

paul juliean : different styles of pair programming

mvc stuff and plugging the dlr into that ruby view,

can we call it msft does rails

ndunit and xunit

ddd domain driven design

scott belware behavior driven design

rod how to sell agile to management

making tests pretty

eric anderson how to introduce bdd to developers who are not actively seeking better ways to do that. how to lower barrrier to writing specs

passion, what to do to build that passion

what is going on with architecture, what you have learned about

unit testing

futurespective on msft. give msft ideas on where to go.

mono,

boo

what we lack in .net community that they have in ruby and java community

scott gu new mvc pattern from msft. use nunit to test it.

simon guest guidance or lack of from msdn. how to fix or replace it

westin benford monorailmoving from asp.net to monorail. why would someone spend 6 months on monorail and then move to ror

dynamic languages on the cl

aspect oriented programming

why move from tdd to bdd.

how to move organizational skill up

kevin d? how to move legacy code under test

jacob boris. how to avoid xml hell

howard turking. runs msdn magazine (laughter which was not cool) how to systematically moving it up to the masses vs c++ hates the vb community.

moving a .net team to ror. tips tricks

it is harder to build software this way how to make it easier.

intersection of the domain moder pattern and rich internet app built on silverlight

dave ohara. how do we take these ideas and sell them to folks in a way that they see the value.

tom integration tests involving databases. i am fan of nhybernate and active record. (use sql light with database in xaml -joke)

lightning talk for 5 min. to do quick demos, …

roy: a famous speaker said that td will deteriorate your design, can it really do that. when to use it or not. how it compares with bdd.

mike from uk you are all a freindly bunch… i am a java manager now. all alpha geeks have left as martin has already left. apple is taking over the desktop. is vista is the last nail in the coffin. why should i care about msft anymore.

vista ME will be out in just 2 years.

where does a model go, what is the lifespan. when to use mockin, when not.

agile project management.

scott: writing and understanding user stories.

jean paul — becoming a catalyst for change in your organization. how to introduce things like agile into the organization

james kovacs — why are we facinated with executable xml. it is terribly verbose. painful.. can we do better. most msft devs diddnet go to college.

ruby for dummies, i mean .net developers.

testing guis.

fostering passion within a company to grow.

are executable requirements possible. are … better. can we do better.

domain specific languages for business and geeks.

language oriented progamming is challenging. design asthetics and environment is challengeing with mocking and dependency injection.

what is the persona for .net. mort, einstien, elvis, belware

sorry for misspelling everyone’s names.

Back to the future with source code viewing with Visual Studio 2008

Posted in .NET, ASP.NET, engineering, Microsoft, programming, software, Technology and Software by nimad on October 4, 2007

Today Microsoft announced that it will be releasing many of the .NET Framework libraries under the Microsoft Reference License (Ms-RL).   Scott Guthrie’s post details what this means.  We have been able to see this source code using Reflector for a number of years so while getting the code in one big chunk is nicer (and now properly licensed) it is not that big of a deal.   A feature that has been lacking since the days of MFC is the ability to step into Microsoft source code in the Visual Studio debugger from your own code.  This was a great feature in MFC and I among others had asked Microsoft’s product team for it in 2005.  Today, my wish has been granted.  Starting with VS2008 you can actually step into Microsoft source code from your own code.  This will help developers everywhere better understand how Microsoft code works and write their code better.  It also puts Microsoft source code more in the spotlight and I hope this visibility will cause Microsoft developers to write better code.

My new wish is that future pieces of source code released in this manner should have the signature or alias of the developer who wrote it so if they did a poor job, the whole world would know.  While this wish coming true is very unlikely for many many reasons, I thought I put it down in writing none the less.

What does the Visual Studio 2008 Release Date mean

Posted in .NET, 104812, ASP.NET, engineering, Microsoft, software, technology, web development by nimad on October 2, 2007

I have been getting lots of hits to my post about the VS2008 release date being February 27th 2008. Let me clarify what this date means. This is the official date that VS2008 will be released. There will be lots of events put together and possibly free copies of the software distributed and lots of marketing taking place. This is the launch date of the product and should not be confused with the RTM (Release to Manufacturing) date which most developers (particularly those with MSDN licenses) are interested in. The RTM date is when all coding and testing of the software is done and the product is released to the manufacturing process to burn the DVDs. Usually within a few days of a product’s RTM MSDN subscribers will be able to download it from MSDN. If you look at the blogs of some of the Microsoft Employees particularly Somasegar’s blog, you will see that Microsoft is shooting for an RTM of November 2007 for VS2008. The two dates are a few months apart for several reasons.

The February date is for an event including three products, VS2008, SQL Server 2008, and Longhorn Server. The marketing folk want to throw the parties and the marketing shebangs all at once to capture people’s and the media’s attention. They want to be able to say things like “The biggest release Microsoft Ever Did”. Also launching the products within a few months of each other will put in people’s minds a state of “another release from Microsoft” which is boring and not exiting. So a big launch is the way to go. When you have three big products releasing, you want to have a few months of cushion in case last minute show stopper bugs are found. Also, this gives you time to prepare the physical media that will be given away at the events and other things that can not be done the day after RTM.

I hope this helps clarify things.

 

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