The mysteries of software development and networking... RSS 2.0



 Friday, August 10, 2007

Big companies, like Amazon and AOL, offering 'Software as a Service' seem to focus on REST more than on SOAP. Having a Microsoft background myself I found this strange... ASP.NET webservices work great, so therefor why not use SOAP?

The number one great thing about REST is the ability to easily test a service by... typing the URL in you browser. This will at least allow you to test the GET operation on your REST service.

Microsoft's number one dude on SOAP, Don Box seems to be moving away from SOAP himself (or is he running?). Below is an abstract of Don's words during Microsoft Tech Summit 07 taken from Ben Galbraith's blog. Read the full item here.

Q: What is the future of REST?

Don: Interesting word that means different things to different people, such as:

1. Get the WSDL and XSD out of my face
2. Get the SOAP out of my face
3. Put the URI in my face
4. Respect GET
5. Embrace PUT and DELETE

“It turns out a lot of the headache people have with Web Services or WS-* is tied to XSD. XSD is more flawed than most technologies that roam the earth. I was on the committee that created it, and that was back when I made my money explaining complicated technologies to people for money, and man, I could hear the cash registers ringing in my ears.”

“Now my job is making things simple, which is unfortunate since I’m stuck with XSD.”

“XSD was a standard-committee driven piece of ####ing crap.”

“If you’re Sun, if you’re Microsoft, if you’re IBM, you can just throw a bunch of engineers in a room and make it all work. Sun is committed to making their stuff interop with WCF with Project Tango. But if you’re Matz, or DHH, or Larry Wall, you’re screwed, because you don’t have time to build out this stack and then make it interoperate.”

Friday, August 10, 2007 7:49:04 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
WCF

Googling for some good examples on how to implement a REST style service using WCF does not provide many useful hits. Microsoft seems to not like the acronym REST very well instead using either the term POX (plain old XML) or 'the Web Programming Model' (WPM???).

Anyway Bryan Bell has a pretty decent post showing the very basics of REST/POX/WPM as made available using WCF 3.5.

Read more on: http://hyperthink.net/blog/2007/03/05/HTTPPOX+Programming+Basics.aspx.

Friday, August 10, 2007 6:43:42 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
WCF
 Wednesday, August 08, 2007

My cousin Rodie Blomsma has started his own company, specializing in Software Testing.

Go to: www.blomsmasoftwaretesting.nl

Wednesday, August 08, 2007 9:25:02 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
General

AOL just released a cool gadget for the Vista sidebar.

It's still in beta and 'hangs' every now and again. This does not affect the rest of Vista though and all other gadget keep running too.
Download at: http://dev.aol.com/video_gadget.

Main annoyance so far is that in Medium mode it tries to show how long ago the video was posted, but this takes most of the space in the subtitle bar. This can be changed by going to the preference page and changing the settings for Playback size to 'Large'. The subtitles now scroll.

Update: The hanging occurs when the AOL video service cannot be reached.

 

Wednesday, August 08, 2007 9:18:27 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
AOL
Can't wait for the new DB Pro Power Tools to become available!

Wednesday, August 08, 2007 6:16:58 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
SQL | Team System
 Tuesday, August 07, 2007

It's hard to keep up, just this weekend I was installing VS2008 Team System beta 2 only to find that the Community Technology Preview of Rosario is already available for download.

'Rosario' is codename for the Visual Studio Team System release that will come after Visual Studio Team System 2008 (which was codenamed 'Orcas').

Brian Harry writes:

One of our primary focuses for this release is what we call "Business Alignment".  This is about making sure you know what your development organization is doing, why they are doing it and how it is coming compared to plan.  There are many features coming to support this goal and I'll talk about a few of them here.  Some of them you can see in this CTP include:

  • A focus on requirements and traceability.  Among other things, the MSF CMMI guidance has been updated to include new work item types and reports.  MSF Agile will be updated in the future.
  • Hierarchical work items for work breakdown and status rollups.
  • Extensible link types to be able to relate work in whatever ways fit your process.
  • Querying over links to enable traceability and easily answering hard questions about ongoing work.
  • Querying based on group membership to be able to scope to the people on your team easily.

 

Tuesday, August 07, 2007 10:24:45 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
Team System
 Friday, August 03, 2007

So this week I got round to installing Visual Studio 2008 beta 2. After downloading the image for Visual Studio Team System, created a new virtual machine using VirtualPC 2007 and started the installer. I was working on a different machine in the time so I had all day for the install process to run.

The image I was installing into already had Visual Studio 2005 Team Suite installed, so I'm testing against a side-by-side installation.

After deselecting C++ in the list of items to be installed I was ready to go and let the installer do it's business. The installation went without a hitch, but did ask me to reboot the machine after installation. I'm going to guess this had to do with installing the .NET Framework 3.5.

Time to load up the IDE and start a new project. First thing to notice is that VS2008 supports multiple verions of the .NET Framework (currently 2.0, 3.0 and 3.5 beta) and different project templates are available for different version of the .NET runtime.

Visual Studio for Database Professionals is now fully integrated into the VS Team System deployment and there are a lot more templates for Office available.

I'll be writing an article about AOL Video in the near future and I want to implement a video feed into my Outlook contact. Creating cool Outlook add-ins is really easy in VS2008 and within minutes I had my addin up and running.

Useful code snippet:

Outlook._ContactItem item = this.OutlookItem as Outlook._ContactItem;
if (item != null)
{
MessageBox.Show(item.CompanyName);
}

The snippet above shows how to access the current item from within the FormRegion control (=Microsoft.Office.Tools.Outlook.FormRegionControl). I feel 'this.OutlookItem' should really return a managed object or interface, not a reference to a COM Callable Wrapper. Anyway, once you figure out how to cast to an interface it's very easy to access the properties of an Outlook item.

Friday, August 03, 2007 12:22:25 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -

 Tuesday, July 31, 2007

Portland, ME: Thursday August 9th 2007 at 6:00pm.
Chris Bowen will be presenting on Visual Studio 2008.
More info.

Tuesday, July 31, 2007 12:15:28 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
General | Team System
 Friday, July 27, 2007

Visual Studio 2008 beta 2 has just become available for download.

Go to: http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx

Friday, July 27, 2007 8:58:40 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
General | Team System

Having been in immersed in C# and .NET Framework stuff lately I've been missing out on some of the developments that have been going on in the webbrowser. I remember programming an application for a customer in 2002 which was allowed to target Internet Explorer 4.0 and use JavaScript in combination with something called XmlDataIslands and XmlHttpRequests. Last year this technology has been given new life and is now commonly refered to as Ajax.

Tied in with the evolution of JavaScript is JSON: JavaScript Object Notation.

I like to think of JSON as object serialization for JavaScript objects, much like XmlSerialization is one of the corner pieces of .NET.

Scott Mitchell and Atif Aziz do a good job of explaining JSON in a little more detail :-).

 

Friday, July 27, 2007 2:36:49 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
ASP.NET

This is a question I've been getting quite a bit lately. People have heard about it, but don't quite know what it is.

www.silverlight.net says it is:
Microsoft® Silverlight™ is a cross-browser, cross-platform plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Web. Silverlight offers a flexible programming model that supports AJAX, VB, C#, Python, and Ruby, and integrates with existing Web applications. Silverlight supports fast, cost-effective delivery of high-quality video to all major browsers running on the Mac OS or Windows.

So what does it boil down to?

Microsoft Silverlight is something you install in your browser which allows you to view Silverlight content.

Silverlight content can be closely compared with Adobe Flash: rich design, animations, a statefull application that runs in the browser.

Silverlight is supposed to have better capabilities in integrating streaming video within your Silverlight application/website than Flash, but not having much experience with delivering video I can't tell from personal experience.

Silverlight content can be written using JavaScript or one of the many .NET languages.

Note 1: As of right now the plug-ins and tools for writing Silverlight content are still in beta.
Note 2: Silverlight was developed as WPF/E, which stands for Windows Presentation Foundation/Everywhere.
Note 3: Silverlight content can be viewed on Microsoft and Mac platforms. Novell has pledged a browser control based on Mono called Moonlight. This will bring Silverlight to the Linux platforms also.

Friday, July 27, 2007 12:51:02 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
General | WPF
 Tuesday, July 24, 2007

Microsoft® Visual Studio® 2005 Team Edition for Database Professionals Service Release 1 has been released. This is must have tool for people that develop using Visual Studio Team System!

Go to: http://www.microsoft.com/downloads/details.aspx?FamilyID=9810808c-9248-41a5-bdc1-d8210a06ed87&displaylang=en

Tuesday, July 24, 2007 4:58:49 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
General | SQL
 Sunday, July 22, 2007

Microsoft just keeps 'em coming. Expected release date for Visual Studio 2008, SQL Server 2008 and Windows Server 2008 is now February 27th, 2008.

Read more: http://entmag.com/news/article.asp?EditorialsID=8800

Sunday, July 22, 2007 12:50:42 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
General
 Saturday, June 30, 2007
Saturday, June 30, 2007 5:45:15 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
Amazon | C#
 Friday, June 15, 2007

I reinstalled a tool today which I used years ago and was impressed by how, and how easy, it worked in the current version: Fiddler HTTP Debugging Proxy.

The tool allows you to analyse all requests and responses from your browser. Works great and very usefull for AJAX debugging.

More on: http://www.fiddlertool.com

Friday, June 15, 2007 9:13:58 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
General
 Tuesday, June 12, 2007

While playing around with SOS a little today I took two looks at the output of the command:

!dumpheap -stat

First I ran.

static void Main(string[] args)
{
}  //breakpoint here

Next I added a Console.Writeline.

static void Main(string[] args)
{
Console.WriteLine("Hello!");
}  //breakpoint here

Output of the dumpheap of the first bit of code:

!dumpheap -stat
PDB symbol for mscorwks.dll not loaded
total 2074 objects
Statistics:
      MT    Count    TotalSize Class Name
790fdd5c        1           12 System.Security.Permissions.SecurityPermission
790fd5b4        1           24 System.OperatingSystem
790fc79c        1           24 System.Reflection.Assembly
790fb668        1           28 System.SharedStatics
790fce28        1           32 Microsoft.Win32.Win32Native+OSVERSIONINFO
79124544        1           36 System.Int64[]
790fd444        1           40 Microsoft.Win32.Win32Native+OSVERSIONINFOEX
790fbcfc        1           40 System.AppDomainSetup
790fdc3c        1           44 System.Security.FrameSecurityDescriptor
790fd4ec        2           48 System.Version
790f9c18        4           48 System.Object
790fc308        3           60 System.RuntimeType
790fa800        3           60 System.Text.StringBuilder
790fca24        1           64 System.IO.UnmanagedMemoryStream
790fd824        2           72 System.Security.PermissionSet
790fac70        1           72 System.ExecutionEngineException
790fabcc        1           72 System.StackOverflowException
790fab28        1           72 System.OutOfMemoryException
00153d48        6           84      Free
790fb8c8        1          100 System.AppDomain
790fad14        2          144 System.Threading.ThreadAbortException
79124670        6          356 System.Char[]
79124228        4         8288 System.Object[]
790fa3e0     2028       130364 System.String
Total 2074 objects

The output for the second bit of code:

!dumpheap -stat
PDB symbol for mscorwks.dll not loaded
total 4451 objects
Statistics:
      MT    Count    TotalSize Class Name
79110e94        1           12 System.Resources.FastResourceComparer
79107f40        1           12 System.RuntimeTypeHandle
79102f48        1           12 System.__Filters
79102ef8        1           12 System.Reflection.Missing
79101ca8        1           12 System.RuntimeType+TypeCacheQueue
790fdd5c        1           12 System.Security.Permissions.SecurityPermission
79178564        1           16 System.IO.MdaHelper
79126bd8        1           16 System.Collections.ObjectModel.ReadOnlyCollection`1[[System.Reflection.CustomAttributeData, mscorlib]]
79126710        1           16 System.Collections.ObjectModel.ReadOnlyCollection`1[[System.Reflection.CustomAttributeTypedArgument, mscorlib]]
79111010        1           16 System.Resources.ResourceReader+TypeLimitingDeserializationBinder
7910fe28        1           16 System.Globalization.GlobalizationAssembly
7910646c        1           16 System.Reflection.Cache.InternalCache
79168874        1           20 System.Diagnostics.StackTrace
79126824        1           20 System.Reflection.CustomAttributeTypedArgument[]
7910fbdc        1           20 System.Environment+ResourceHelper
7910031c        1           20 Microsoft.Win32.SafeHandles.SafeFileMappingHandle
791002c0        1           20 Microsoft.Win32.SafeHandles.SafeViewOfFileHandle
790ff26c        1           20 System.Text.InternalEncoderBestFitFallback
790fdf38        1           20 Microsoft.Win32.SafeHandles.SafeFileHandle
7910f690        1           24 System.Collections.Stack
791009f0        1           24 System.IO.TextWriter+SyncTextWriter
790ff2c4        1           24 System.Text.InternalDecoderBestFitFallback
790fd5b4        1           24 System.OperatingSystem
790fc79c        1           24 System.Reflection.Assembly
790f8648        1           24 System.Runtime.CompilerServices.RuntimeHelpers+ExecuteWithLockHelper
79125330        1           28 System.Reflection.Cache.InternalCacheItem[]
791008f0        1           28 System.Text.EncoderNLS
790fe4b0        1           28 System.IO.Stream+NullStream
790fde94        1           28 Microsoft.Win32.Win32Native+InputRecord
790fb668        1           28 System.SharedStatics
791064d8        1           32 System.Reflection.Cache.ClearCacheHandler
79100760        2           32 System.Text.DecoderReplacementFallback
79100700        2           32 System.Text.EncoderReplacementFallback
790fce28        1           32 Microsoft.Win32.Win32Native+OSVERSIONINFO
79124544        1           36 System.Int64[]
790fe280        1           36 System.IO.__ConsoleStream
790f992c        1           36 System.Resources.RuntimeResourceSet
79110f4c        1           40 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
790fd444        1           40 Microsoft.Win32.Win32Native+OSVERSIONINFOEX
790fbcfc        1           40 System.AppDomainSetup
790fdc3c        1           44 System.Security.FrameSecurityDescriptor
79193fa4        1           48 System.RuntimeMethodHandle[]
7910fc38        2           48 System.Environment+ResourceHelper+GetResourceStringUserData
79107714        1           48 System.Reflection.Module
790ffbe4        4           48 System.UInt16
791687fc        1           52 System.Diagnostics.StackFrameHelper
79126534        1           52 System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Resources.ResourceLocator, mscorlib]]
790fb238        1           52 System.Threading.Thread
790f96e8        1           52 System.Resources.ResourceManager
7912545c        1           56 System.LogLevel[]
791005d4        2           56 System.Text.UTF8Encoding
791003f8        1           56 System.IO.StreamWriter
790ffb28        3           60 System.Globalization.CultureTableItem
79110c2c        2           64 System.Text.UTF8Encoding+UTF8Decoder
7910feec        2           64 System.Globalization.CompareInfo
79126398        1           72 System.Collections.Generic.Dictionary`2+Entry[[System.String, mscorlib],[System.Resources.ResourceLocator, mscorlib]][]
790ffa34        1           72 System.Globalization.CultureTable
790fd824        2           72 System.Security.PermissionSet
790fac70        1           72 System.ExecutionEngineException
790fabcc        1           72 System.StackOverflowException
790fab28        1           72 System.OutOfMemoryException
790ff138        1           76 System.Text.SBCSCodePageEncoding
79110b54        2           80 System.IO.BinaryReader
7910fcec        1           80 System.Resources.ResourceReader
79102fac        3           96 System.Reflection.MemberFilter
79102e10        3           96 System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode
791079cc        1          100 System.Reflection.MetadataArgs+SkipAddresses
790fb8c8        1          100 System.AppDomain
00153d48        7          100      Free
79125594        1          108 System.SwitchStructure[]
79102cec        4          128 System.Runtime.CompilerServices.RuntimeHelpers+TryCode
790ffe6c        1          128 System.Globalization.NumberFormatInfo
790f9c18       11          132 System.Object
790fad14        2          144 System.Threading.ThreadAbortException
79109a4c        4          240 System.Reflection.AssemblyName
790ff6dc        5          240 System.Globalization.CultureTableRecord
790fed1c       20          240 System.Int32
790fd4ec       10          240 System.Version
790fca24        4          256 System.IO.UnmanagedMemoryStream
791689a4        9          288 System.Diagnostics.StackFrame
791251f8        1          288 System.Reflection.CustomAttributeRecord[]
790fa800       20          400 System.Text.StringBuilder
7912747c       23          552 System.Collections.Generic.List`1[[System.Reflection.FieldInfo, mscorlib]]
79127200       23          552 System.Collections.Generic.List`1[[System.Reflection.RuntimeFieldInfo, mscorlib]]
791270bc       23          552 System.Collections.Generic.List`1[[System.Reflection.PropertyInfo, mscorlib]]
790ff4c4        8          576 System.Globalization.CultureInfo
79124958       25          600 System.Collections.Generic.List`1[[System.Reflection.RuntimeConstructorInfo, mscorlib]]
791240f0       12          608 System.Int32[]
79127404       23          644 System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[[System.Reflection.RuntimeFieldInfo, mscorlib]]
79127044       23          644 System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[[System.Reflection.RuntimePropertyInfo, mscorlib]]
79124b5c       24          672 System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[[System.Reflection.RuntimeConstructorInfo, mscorlib]]
791273a8       46          736 System.Reflection.CerArrayList`1[[System.Reflection.RuntimeFieldInfo, mscorlib]]
79126fe8       46          736 System.Reflection.CerArrayList`1[[System.Reflection.RuntimePropertyInfo, mscorlib]]
79124418       14          780 System.Byte[]
79125c30       28          784 System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[[System.Reflection.RuntimeMethodInfo, mscorlib]]
79124b00       49          784 System.Reflection.CerArrayList`1[[System.Reflection.RuntimeConstructorInfo, mscorlib]]
791100e4       23          828 System.Reflection.CustomAttributeData
7910b170       26         1144 System.Reflection.RtFieldInfo
7910aaf4       25         1200 System.Reflection.RuntimeConstructorInfo
790fc308       60         1200 System.RuntimeType
791036b0       51         1224 System.Collections.ArrayList
79125a94       90         1440 System.Reflection.CerArrayList`1[[System.Reflection.RuntimeMethodInfo, mscorlib]]
791256cc       62         1488 System.Collections.Generic.List`1[[System.Reflection.RuntimeMethodInfo, mscorlib]]
791275c8       23         1620 System.Reflection.CustomAttributeCtorParameter[]
79124670       20         1756 System.Char[]
79126e40       74         1776 System.Collections.Generic.List`1[[System.Reflection.RuntimePropertyInfo, mscorlib]]
790fea70       34         1904 System.Collections.Hashtable
79124d0c      156         2120 System.RuntimeTypeHandle[]
7910ae58       39         2340 System.Reflection.ParameterInfo
7910b778       51         2856 System.Reflection.RuntimePropertyInfo
79101be8       40         3200 System.RuntimeType+RuntimeTypeCache
79101e90       62         3472 System.Reflection.RuntimeMethodInfo
791242ec       34         4896 System.Collections.Hashtable+bucket[]
7910adcc      107         5136 System.Signature
79126d08       23         5512 System.Reflection.CustomAttributeNamedParameter[]
79124228      649        25308 System.Object[]
790fa3e0     2251       144908 System.String
Total 4451 objects

So 2000+ objects to do... "nothing" and then 2400 additional classes to output one string to the Console.

Seems a lot, but it illustrates how much management it takes to have a managed environment.

Tuesday, June 12, 2007 8:09:03 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
C#
AppScaler won the TechEd 2007 award for...

Web Development category winner: Strangeloop Networks' Strangeloop AppScaler Appliance for ASP.NET/AJAX

Tuesday, June 12, 2007 8:00:54 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
Webacceleration
 Tuesday, June 05, 2007

Strangeloop AppScaler for Microsoft ASP.NET and AJAX has been selected as a finalist for the Best of Tech·Ed 2007 Awards in the Web Development and Infrastructure category.

Read more on: http://www.strangeloopnetworks.com/news_newsrelease_0531_teched_best_final.html

Tuesday, June 05, 2007 5:02:25 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
Webacceleration
 Friday, June 01, 2007

Richard Campbell has posted a detailed blog entry describing the challenges and (part of the) innerworkings of the Strangeloop AppScaler.

 

Friday, June 01, 2007 10:52:47 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
Webacceleration

Recently I've started using VSTS for DB Pro. I've installed CTP 2 of Service Release 1, and it's been great.

The VSTS DB Pro team plans to release power tools for VSTS DB Pro as well. These are tools that will be released as soon as possible, without having to wait for a major release.

The Power Tools are listed on the Future Release page of VSTS: http://msdn2.microsoft.com/en-us/teamsystem/bb407307.aspx

Team Edition for Database Professionals Power Tools

Feature Description
“Move Schema” Refactoring Allows a user to right click on an object and move it to a different but existing schema
SP Rename Generation Generate a new script that will contain sp_renames for all rename refactored objects that the user can then execute.
Data / Schema Compare Build Tasks MSBuild tasks that can generate scripts as if the user had run the Data / Schema compare UI
Script Preprocessor Expand SQLCMD variables and include files and command line version (sqlspp.exe) & an MSBuild version ( wraps the command line version )
API Access to Schema View Insert / Update / Delete to schema View and list schema objects and their associated files
Data / Schema Compare Build Tasks MSBuild tasks that can generate scripts as if the user had run the Data / Schema compare UI
Dependency Tree Show the dependencies ( incoming / outgoing ) for selected objects in a new tool window
Static Code Analysis A precursor to the functionality that will be in future versions of VSTS that will allow you to perform Static Code Analysis on T-SQL code.
Wildcard Expansion Automatically expand the wildcard in a select to the appropriate columns.
Fully-Qualified Name Support Automatically inject fully-qualified names when absent in a script
Schema Reporting DBSpecGen functionality for the project system allows you to easily document your database schema.

 

 

Friday, June 01, 2007 9:54:07 AM (Eastern Standard Time, UTC-05:00)  #    Comments [1] -
SQL | Team System
About
This blog is run by Mark Blomsma.
© Copyright 2008
Develop-One
Sign In
Statistics
Total Posts: 314
This Year: 58
This Month: 11
This Week: 0
Comments: 52
All Content © 2008, Develop-One
DasBlog theme 'Business' created by Christoph De Baene (delarou)