7/26/2010
Software development is different from many other types of disciplines in that there are many different ways to complete a task and in many cases you don’t really know the outcome of many of the operations without trying them out first. Additionally, each iteration can give additional options of how to implement the overall solution. Due to the complexity of the many moving parts of software, an unstructured or chaotic approach of iteratively attempting multiple ways of solving a problem while building on the knowledge built from each iteration is the best approach. This creative iterative approach mesmerizes you as a software developer and you can see developers become completely absorbed and focused on the process. Some might call it obsessed, however, to me it’s becoming completely focused on a creative process to the point you become one with the task. This chaotic, iterative, creative process to developing software is what draws me so passionately to the discipline.
So, how do you control this chaos in software development? We have been doing a lot of work with the Scrum approach to software development implemented with Visual Studio Team System the last few years and I feel this is the best approach to controlling this creative chaotic process in software development. Scrum is not an acronym and has its roots of meaning in the process during a Rugby match where the ball is “kept in play” through the use of a Scrum. It is an Agile approach that fits into the standard MSF (Microsoft Solutions Framework) Agile Development Template V5.0 found in Visual Studio Team System/Team Foundation Server 2010. There is also a Scrum for Team System 3.0 template available for free from Conchango (an EMC company).
Scrum allows for the developers to work in this chaotic creative environment in complete freedom, however, within specific goals defined by something known as a Sprint. This is what is formally known as an “Iteration” in the Agile approach template, however, Scrum adds specific methodology on how these Sprints are played out. The end result is that developer gets to work in this chaotic creative environment without interference by instituting goals that do not change; which they personally commit to achieve within the time frame of a short Sprint, normally 14-21 days. The only other structured requirement is a short (typically 15 minutes) daily Scrum meeting limited to the Team members to discuss current status and any impediments discovered.
The Scrum methodology is experiencing an exploding popularity within software development teams currently and is definitely something you should look at if you are in this field. For more information, check out http://ScrumForTeamSystem.com and for training see us at http://homnick.com. 4/14/2010
The Boot To VHD feature in Windows 7 and Windows server 2008 R2 is a great way to turn a Virtual Hard Drive (vhd) created in Virtual PC (VPC) or Hyper-V into a boot partition. This allows you to take advantage of a bare metal boot scenario with the ease of use of a VHD for the partition.
To create a Boot To VHD system, you start with a VPC or Hyper-V generated VHD and run Sysprep on the Virtual Machine (VM) contained in the VHD. You then need to run some BCDEdit command lines against the VHD to register it as a boot device. See http://joeblog.homnick.com/Lists/Posts/Post.aspx?ID=48 for a detail of executing these commands. This works on VHDs created with Windows 7.0 and Windows Server 2008 R2 operating systems. ** NOTE ** the VHD is expanded to its dynamic full size, so you need to allow for whatever size the VHD is set to dynamically expand to.
Something you lose with your VHD under Boot To VHD is that you can’t undo or rollback changes like you can in VPC/Hyper-V. Additionally, once you run BCDEdit on the VHD file, you can no longer use that VHD in Virtual PC/Hyper-V. You can work around this limitation through the use of a Differencing VHD.
Instead of running SysPrep and BCDEdit on the VHD that includes the base operating system and application programs, first create a Differencing VHD using the Virtual Disk Wizard in Virtual PC and New->Hard Disk Action in Hyper-V. This Differencing VHD is a fraction of the size of the Base VHD and can easily be swapped out for the equivalent of one-time undo/rollback. Additionally, the base vhd can still be run in Virtual PC or Hyper-V. If moving the base between Virtual PC and Hyper-V take into consideration possibly uninstalling the virtual machine additions.
To recap, here is a step by step to create a Boot To VHD
scenario which takes into account a flexible differencing disk approach that mitigates the loss of VHD access options and provides for a simple rollback.
1. Create Base VHD in Virtual PC (2007 or Windows 7), Hyper-V or batch file build 2. Install application programs (Office, Visual Studio, SQL Server, etc.) 3. Exit virtual machine 4. Make the Base VHD Read-only. 5. Create a Differencing VHD linked to the Base VHD using Virtual Disk Wizard in Virtual PC or New->Hard Disk Action in Hyper-V 6. Launch a virtual machine based upon the differencing disk and runs sysprep.exe found in \windows\system32\sysprep . Take the OOBE, Generalize and Shut Down options. 7. Backup/Copy the Differencing VHD. 8. Run the BCDEdit commend line utility against the Differencing VHD , see http://joeblog.homnick.com/Lists/Posts/Post.aspx?ID=489. Backup/Copy the Differencing VHD.
This creates a scenario where you can easily transfer between systems the VHDs, regardless of using them in Virtual PC, Hyper-V or Boot To VHD scenarios. Remember that you can always back up the Differencing VHD at any point to create a point in time Snapshot of your Boot To VHD operationg system.
3/22/2010If you are one of the old timers and remember the glory days of VB 6.0 and FoxPro, you probably really liked how easy it was to quickly create Line of Business (LOB) applications.
Well, with the Silverlight (SL) 4.0 Business Application template in Visual Studio 2010, you again have that quick LOB app generation capability. Select this template and it creates several SL views with site navigation, WCF Rich Internet Application (RIA) services hook up and user authentication support. Simply add a database along with an Entity model, drop some controls on the existing pages and write a little bit of code for a fully functioning LOB application against a back end data store! It truly is as simple as the old days, plus you got all the new web technology toys.
This simple to create LOB application can then be extended WCF/REST services, jQuery, MVVM and all the cool new SL controls, Out of Browser capability like Webcam and Printing extensions.
I'm heading out this week to do a two Metro training in Mountain View California on the subject and then another one in Boston next month. Homnick Systems is also holding two day Hands On Seminars on the subject starting in April. Check it out at http://homnick.com. 1/11/2010
I have been selected once again as a trainer for the Microsoft Metro Early Adopter Program. This program is all about getting the information out to Independent Software Vendors (ISV's) and Software Developers regarding soon to launch products. For the next 3 months I am instructing on the new features found in SharePoint 2010.
The Metro program is worldwide and allows me to travel to varied places to conduct the trainings. My training schedule so far has me going to California in January, England and South Africa in February, Finland and China in March.
I've also been selected as a trainer for Silverlight 4.0 and am expecting these trainings to start up in the 2nd quarter of the year.
Here is the mission statement for the Metro program.
"The Metro Early Adopter Program is designed to assist developers with specific projects involving pre-release Microsoft products and technologies. There are specific benefits associated with participation in the program surrounding training, labs, and pre-release technical support. Participants are asked to commit to a specific early adoption project. Applications are reviewed and approved on a case-by-case basis."
If you are interested in joining, send an email to metroreq@microsoft.com or check with your local Microsoft Developer Platform Evanagelist. 11/13/2009If you are in charge of yours or an enterprise’s software development training approach and have invested in online and printed courseware, you are most likely wondering why your investment in these type of courseware materials materials are not showing any return. From my experience, 95% of investments in online and printed materials are simply wasted resources. You should be looking to instructor led training to get that critical first step in the learning process, that can then turn your online and printed courseware investment into a useful tool.
Competent instructor led training is by far the most cost efficient method to acquiring skills in highly technical subjects such as software development. The biggest hurdle to learning new software development techniques is the all important first step in understanding the high level capabilities of the specific skill set. So many times in our classes during the introductions we hear that “there is a plethora of training materials available online and in print, however, I simply don’t know where to start”. A good instructor can take complex patterns and give a high level understanding of the goals of a specific technique and thereby give the student a “boot” in the right direction. Once given a high level understanding of the complex technique, it is amazing how quickly software developers can drill into intricate scenario’s regarding the complex system. All of a sudden that mass of online and printed content now becomes useful.
To achieve this crucial first step in knowledge transfer it takes a skilled instructor interacting directly with a student that has the prerequisite skill set to understand the complex pattern. This can be done remotely; however, face to face is the preferred method, so that students can more easily ask questions as they arise.
Beyond the critical first step there are a couple of other benefits to instructor-led training. The first relates to simply setting the time aside to commit to learning. This is another crucial piece of what is missing in online/printed types of courseware, the scheduled time to focus specifically on the subject at hand. We actually prefer to hold the classes at our site since this even isolates the commitment to learning even more; however, onsite training is certainly highly successful in the knowledge transfer process. Another benefit is a comprehensive approach to the subject matter. A constant realization that we hear during our classes is that “wow, I’ve been doing this operation in a certain way, however, there is a feature available that makes it much easier that I didn’t know about!” When software developers are self taught, they will usually find a single approach to get their application development effort going. They then branch off all future efforts off of that single type of approach until exposed to a better method. Instructor led training gives this comprehensive approach.
If you really want to make your investments in online and printed educational materials pay off, start the training process with competent instructor led training.
10/19/2009
Microsoft has just announced several items regarding Visual Studio 2010 and the .Net Framework 4.0.
My guess of an October timeframe for the release of VS 2010 BETA 2 has panned out, as it is available today on MSDN for subscribers. It will be available to the general public on the 21st, check out http://msdn.microsoft.com/en-us/vstudio for public download and breaking news.
An “official” launch date of March 22, 2010 has been announced. Where it is going to happen is still a secret (they haven’t figured it out yet? :-)), however, this is the official launch, so expect to see final bits ahead of it.
There is a simplified packaging scheme for VS 2010 with a new licensing paradigm for MSDN and Visual Studio 2010, highlighted by something known as the “Ultimate Offer”. As part of this, MSDN is being redesigned for a better online knowledge transfer experience and Azure compute hours are going to be part of the MSDN subscription. This should spur more use of Microsoft’s Cloud Computing platform.
Now that BETA 2 bits are available and a final release of the product will take place in March, you should start considering using VS 2010 and the .Net Framework 4.0 for developer projects being delivered in the first half of next year.
9/29/2009
Microsoft announced late last week a program to help small companies jump start (Spark) their web development efforts using Microsoft technologies. The concept is to help web development companies of 10 personnel or less with free server products and tools along with training, support and marketing efforts. A company, once accepted into the program, receives free software tools Visual Studio Professional along with Expression Studio 2 or 3 (1 user) and Expression Web 2 or 3 (up to 2 users). The server software includes Windows Web Server 2008 or R2 (when available) and SQL Server 2008 Web Edition for both developement and production.
In conjunction with the WebsiteSpark announcement, Microsoft also released Web Installer 2.0. This web application allows the developer to install free web development tools onto their computes. Upon launching the Web Installer you are given the opportunity to install the Express Editions of Web Developer and SQL Server 2008 up to date with SP1. Not only are the Express Editions available through the installer, but it also sets up your local IIS with different extensions and includes things like Model Viewer Controller (MVC), PHP drivers and Silverlight Tools projects. Finally, there are a bunch of free web applications that can be used as templates for your projects, you can sort these by different criteria including most popular. For example of what you can get, the first four applications I saw sorted by popularity where in the image below. The image also gives you an idea of the Web Installer interface.
8/31/2009
I have finally gotten around to playing with my SQL Azure token and here are the first impressions.
The big promise of SQL Azure over its predecessor SQL Data Services was that you would be able to work with a cloud database very much like you would with an on-premise one. Sure enough, I was able to create a database, populate it with tables and data through scripts and then change an ASP.Net application to use the Azure database instead of the on-premise one by simply changing the connection string. Very cool.
The idea is that you administer and program against the Azure database using the tools you now know. You can even connect to the SQL Azure database using SQL Server Management Studio (SSMS) with the CTP, however, you are limited to a query window with the connection sequence being a bit funky. See http://tinyurl.com/mw49ae for instructions on connecting in SSMS and SQLCmd. You can see, though, that this functionality is coming and you should be able to connect to a SQL Azure in SSMS Object Explorer just like any other database you are now working with.
Initially SQL Azure will support only core database capabilities; however plans are in the works to also deliver Data Sync by enabling the sync framework (soon after PDC), additional SQL Server capabilities available as a service such as Business Intelligence and Reporting and new services like Reference Data and Secure Data Hub.
Pricing has been announced and plays into an approach for scaling out partitioning scenarios. Here’s the pricing.
Web Edition 1 GB Database - $9.99 / month Bandwidth - $0.10 /GB inbound, $0.10 /GB outbound
Server Edition 10GB Database - $99.99 / month Bandwidth - $0.10 /GB inbound, $0.15 /GB outbound
Pricing notes: Size specified by MAXSIZE on CREATE DATABASE command or portal (post-CTP1), you CANNOT switch between Web and Business Editions and it is a monthly billing period.
You can scale out your Azure database so as increase throughput for massive loads or to increase the relational database storage volume beyond 10 GB or to scale out on low cost commodity hardware. You can imagine scaling out to 10 1GB Web Edition databases as opposed to 1 Server Edition database or multiple databases for huge deployments beyond 10GB.
The Gold Coast Users Group http://GCUsersGroup.org is holding its September 10th meeting on SQL Azure and its October 8th meeting on SQL Server 2008 R2, so stop on by for more information, if you are in the South Florida area.
8/27/2009
Professional Developer Conference (PDC) has become a yearly conference that is now "the" premier event for developers to attend. Growing on it's roots as a future technologies gathering. it's becoming more of an emerging technology conference.
With so many emerging technologies baked or close to coming out of the oven such Windows 7, Windows Server 2008 R2, SQL Server 2008 R2, Azure Services, SharePoint 2010, Office 2010, Visual Studio 2010 and .Net 4.0 this conference is the place to put it all together.
We're seeing a movement where all developer technologies are being consolidated into the Visual Studio (VS) development environment, so no matter if you are a pure Microsoft technolgies developer or also work with HTML/Javascript, PHP or MySQL, VS is becoming your tool of choice.
With this expanding "Power of Choice" for developers, early access to these emerging technologies is critical. Because of dwindling travel and conference budgets, choose wisely in selecting the conference to attend. For my money this is the PDC taking place November 17-19 in Los Angeles, check it out at http://microsoftpdc.com.
| Edit in Browser | /_layouts/images/icxddoc.gif | /_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
|
|

 Community Driven Users Group
|
|
|
|