Archive for November, 2005

Will Team Foundation wipe out the enterprise tools competition?

November 30, 2005

Microsoft CEO Steve Ballmer predicts that they will "wipe out its enterprise tools competition without breaking a sweat".

I agree. Visual Studio Team System’s Team Foundation Server has much to offer at a reasonably low cost.

The exciting news is that even the Java shops will be able to get in on it.

At this point, there are 2 Eclipse Plug-ins in development that will give Java developers ability to use Team Foundation’s services.

  1. VSTS Eclipse – Open Source (Apache 2.0 license)
  2. TeamPrise – formerly code named Allerton. It is being developed by SourceGear, LLC and will cost $799.

TeamPrise will only provide source control and work item tracking.

VSTS Eclipse plans to eventually offer the full suite of TFS services, such as:

  • Version Control
  • Work Item Tracking
  • Build Automation
  • Project Management
  • CMMI Guidance
  • Bug Tracker
  • Unit Tester
  • Code Coverage
  • FxCop
  • Architecture Tools (e.g., Datacenter Diagram Tool, Object Modeler, Component Modeler, UML/DSL)
Advertisements

More on LINQ – Bane and Boon

November 2, 2005

As mentioned in previous entry, LINQ will be an enterprise developer’s dream.

I call it a boon because it will provide an easier programming model making developers more productive.

I also call it a bane because developers will use it to build richer more complex applications requiring more development time.

Before I get too philosophical, let’s do some deep diving into LINQ.

LINQ will be distributed as part of the WinFX API.
A beta 1 is currently available to developers here.

The Key Benefits of LINQ are:
· Unified querying of objects, relational, XML
· Type checking and IntelliSense for queries
· Provides SQL and XQuery capability in C# and VB

To pull this off, the following features have been added to the .NET Framework.

# Feature Example
1. Lambda expressions c => c.Name
2. Extension methods static void Dump(this object o);
3. Local variable type inference var x = 5;
4. Object initializers new Point { x = 1, y = 2 }
5. Anonymous types new { c.Name, c.Phone }
6. Query expressions from … where … select
7. Expression trees Expression<T>

I will be drilling down further over the next few days.

Programming XML with XLINQ

November 2, 2005

To illustrate the power of XLINQ, let’s see some code.

Simple XML Document:

<contacts>
  <contact>
    <name>Sandra Day O’Connor</name>
    <phone>(503) 555-7123</phone>
  </contact>
   …
</contacts>

Programming XML today

  XmlDocument doc = new XmlDocument()#160; 
                               // 1. Imperative model
  XmlElement contacts = doc.CreateElement("contacts");
                               // 2. Document centric

  foreach (Customer c in customers)
                               // 3. No integrated queries
    if (c.Country == "USA")
    {
      XmlElement e = doc.CreateElement("contact");

      XmlElement name  = doc.CreateElement("name");
      name.InnerText   = c.CompanyName;
      e.AppendChild(name);     // 4. Memory intensive

      XmlElement phone = doc.CreateElement("phone");
      phone.InnerText  = c.Phone;
      e.AppendChild(phone);

      contacts.AppendChild(e);
    }

  doc.AppendChild(contacts);

Programming XML with XLINQ.

  XElement contacts = new XElement("contacts",
                                        // 1. Declarative model
    from c in customers                 // 2. Element centric
    where c.Country == "USA"
    select new XElement("contact",
      new XElement("name", c.CompanyName), 
                                        // 3. Integrated queries
      new XElement("phone", c.Phone)    // 4. Smaller and faster
    )
  );