6/25/2009I was recently asked to do a guest blog regarding a study commisioned by Microsoft on IT spending attitudes. The complete article and links to the study can be found at http://tinyurl.com/mkqfqp, please check it out.
I discussed the need for a hybrid approach to infrasturcture and education expenditures. Two areas that need to be addressed if innovation is to be attained, even in a restricted budgetary time. Here is my discussion of the Azure Cloud Value Proposition.
Cloud Computing is quickly becoming a reality with major investments by Microsoft, Google and Amazon. Cloud Computing allows you to efficiently extend and scale your IT infrastructure into a shared internet environment and overcome two major investment concerns when an enterprise invests in new technology. The first of these concerns is the Cash Flow Curve of Costs to Utilization for new technology investments. The typical curve for private cloud cash expenditures is as follows:

Typically there are large cash expenditures for infrastructure well before there is utilization related to revenue/efficiencies to be realized on the private cloud investments. As utilization of the infrastructure takes place there is typically a period that occurs where over utilization of the resources occurs, which results in another capital expenditure to give greater capacity than is needed until once again utilization out strips capacity and the whole process of underutilization/overutilization takes place again. The Cloud Computing approach smoothes this Cost/Utilization by allowing the enterprise to only purchase the amount of computing power that they need to meet utilization requirements. Another issue that Cloud Computing addresses is daily Periodicity of Demand. The typical demand curve in a fully utilized system looks like the following:

The Y axis shows a measure of infrastructure capacity based upon simultaneous users while the X axis shows time within a day. As can be seen, the system is underutilized (yellow) through the majority of the day with a couple of spikes of overutilization (red). Of course, the overutilization spikes carry the added inefficiency of a not optimal computing environment. The Cloud Computing platform with its on demand scalability and pay as you go pricing model address both the cost curve and periodicity of demand concerns related to IT infrastructure expenditure. 6/7/2009It is now public that Windows 7.0 and Windows Server 7.0 (aka Windows Server 2008 R2) wil be Released to Manufacturing (RTM) during the second half of July and will be on shelfs in boxes on October 22. I've been predicting that July 19 would be the RTM date for a month now, let's see how close I come to the actual date.
RTM date means that MSDN/TechNet subscribers will be able to download the software at that time.
6/5/2009
With Windows 7.0 there is a new capability to Boot to a Virtual Machine VHD file. This is not running a virtual machine in Virtual PC or Hyper-V, rather it is running it with full hardware fidelity. The positives of this approach are running the virtual machine as a multi-boot system without having to separate partitions and install directly on the hardware, while maintaining an Xcopy deployment system. It works with differing disks, so a system of many differing types of installations off of a common base is possible. You do lose the Virtual PC Undo or Hyper-V Snapshot capability; however, Xcopy of differing disks versions creates an easy rollback capability. Another thing to note is that this approach does an automatic install of drivers, since it is natively running on the hardware. When copying vhds from one system to another, initial startup will always launch a mini-setup. This is just like a sysprepped image being deployed and you prepare your VHD with SysPrep before booting it. I’ve limited my VHDs to Windows 7.0 and Windows Server 2008 R2 and haven’t found any issue with this mini setup so far.
Once you have the vhd, here are the commands I use to set a “Boot From VHD” scenario. Run line 1 to get the CLSID and then do find/replace in the other three commands. I just copy them from notepad into a cmd window (run as administrator). You, of course, could capture the CLSID into a variable and completely automate it in script with parameters. Execute these commands and you have a new boot option when restarting.
bcdedit /copy {current} /d “Boot_From_WhateverVHD”
REM Copy the CSLID that is displayed and then run
bcdedit /set {CLSID} device vhd=[C:]\vhdname.vhd bcdedit /set {CLSID} osdevice vhd=[C:]\vhdname.vhd bcdedit /set {CLSID} detecthal on
Supposedly there is a 1-2% overhead running from a vhd as opposed to the native file system. Whatever this overhead is, it’s imperceptible to me. Despite the drawbacks of no rollback and driver installs, I find this the best method to run the majority of my new Windows 7/Windows Server 2008 R2 VHDs. 4/25/2009
It has just been announced that Windows 7.0 Release Candidate (RC) has a scheduled release date of April 30 for MSDN subscribers and a general public release of May 5 (Cinco de Maya)! This “Get Er Right” release is a very impressive operating system (O/S) and something you should look at. The biggest improvement to me is under the hood. Memory, service and processing operations have been drastically improved. The amount of memory requirements has been reduced and processing speeded up along with quite a bit of use of background services. The concept being that if you only need a service, like USB operations, while you have a USB device inserted, only fire up that service when it is appropriate. This decreases memory size, allows for faster processing and also increases battery life. My own experience with Windows 7 is that your computer will perform faster, use less memory and your battery will last longer than running XP.
If you have held off on upgrading to Vista from XP or tried Vista to only downgrade back to XP, Windows 7.0 will absolutely win you over! Of course, it is a no brainer upgrade from Vista. If you are interested in learning more about the new memory management techniques being used in Windows 7.0, check out the Mark Russinovich video at http://channel9.msdn.com/shows/Going%20Deep/Mark-Russinovich-Inside-Windows-7. Mark is a Windows kernel guru, formerly of Sysinternals, now working on the Windows 7 team and is an architect of the memory management techniques I’m talking about here.
Be sure to see Windows 7.0 at the next Gold Coast Users Group meeting presented by Paul George on May 14 in Boca Raton. Check out this "Community Driven" Users Group at http://GCUsersGroup.org to get a truely unbiased learning experience. 4/18/2009I just finished up a Windows 7.0 for Developers class in Mexico City and was very impressed with what is coming in this Operating System regarding the new Developer Application Programming Interfaces (API) available. Win 7 adds Developer API’s in the areas of Task Bar, Multi-Touch, Federated Search, Libraries, Power, Background Services, Sensors and Location that makes these O/S features customizable.
The Sensors and Location API’s are an area not talked about much with Windows 7.0, however, they offer powerful API’s for those enterprises who make a living out of interacting with external equipment. Sensors are devices or mechanisms that can measure physical phenomena, provide descriptive data, or provide information about the state of a physical object or environment. Examples are light sensors, measurement devices like medical equipment, gaming controllers and location devices like GPS’s. Developers have been writing computer interfaces with these external sensor devices for many years, however, it’s always been a custom endeavor without a common API. Windows 7.0 now delivers this common API, so the low level operations are now standardized. No reinventing the wheel every time a different sensor device is hooked up to a computer. There is a custom Location API also for those GPS devices hooked into a Windows 7.0 computer. The following diagram shows the architectural relationship between the various components.
 3/16/2009Something that the .Net Framework software developer should look at as a potentially new profit center is extending the Dynamics 4.0 Platform. CRM 4.0 creates a platform of classes above a SQL Server data platform that bundles quite a lot of functionality around the Customer Relationship Management function in business enterprises. By leveraging this platform, the developer can take advantage of this abstracted functionality by extending the capabilities to create custom solutions in this growing area of enterprise software. The .Net Framework, including the cool capabilities of Azure Cloud Services, Windows Presentation Foundation (WPF), Silverlight, SharePoint and Office Business Applications can be leveraged to build Line of Business (LOB) applications on top of the CRM Platform.
I’m currently working on a sponsored Microsoft half day seminar that showcases how the .Net Software Developer can leverage the built-in functionality of the CRM Platform called the Business Action World Tour. My part of this tour is in North America and I would like to invite .Net Software Developers to check out this half day seminar. Not only will you see how the CRM Platform works and can be extended, but also how Azure, Silverlight, WPF and OBA can be integrated into the CRM Platform. I just completed the first Toronto session and the attendees were rather excited about the potential for new revenue sources. Here’s the schedule for the remaining North American redeliveries, all at the Microsoft offices in their downtown locations.
New York – March 23 Boston – March 25 Vancouver – March 27 Mountain View, CA – April 17 Chicago – April 20
You can sign up for these events by contacting your Microsoft Partner Account Manager (PAM) and requesting access to the registration site. If you are not a Microsoft Partner and would be interested in checking out the potential of becoming a CRM Partner, just email me at joe@homnick.com. Partners in other corners of the world (it is a World tour after all), also check with your PAM for more info. 1/29/2009The latest really cool Microsoft technology I have been working with is the Cloud Services, named Windows Azure. These Cloud Services allow you to put your code (.Net Services) and data (SQL Data Services or SDS) onto a distributed shared operating system living out in the internet (the cloud). This is a “shared” hosting environment that gives you a development setting that is maintained by Microsoft, basically taking away your infrastructure concerns for anything you put out on the cloud. You can use Visual Studio 2008 to write and deploy your code to cloud.
A couple of complementary technologies that you can look at to get ready for this new development environment are the Model View Controller (MVC) architectural approach to web applications http://www.asp.net/mvc/http://www.asp.net/mvc/, ADO.Net Data Services http://msdn.microsoft.com/en-us/data/bb931106.aspx and Internet Information Services (IIS) 7.0 applications. MVC gives you an efficient means to write and maintain your applications, not only on the cloud, but also your current web applications. Since with Cloud Services you are working in a shared environment, you need to be a good citizen and understand how security is implemented to assure that you are. By building applications that work in the default security context of IIS 7.0, you will be meeting the majority of security concerns you will run into on the Cloud. By using the MVC architecture along with ADO.Net Data Services and deploying your applications to IIS 7.0, you will be well positioned in moving these applications to the cloud. Sign up for a beta Azure cloud service account at http://lx.azure.microsoft.com
If you are interested in Cloud Services along with other emerging web technologies such as Silverlight, Internet Explorer 8.0, Windows 7, MVC and ADO.Net Data Services, the MIX 09 conference taking place in Las Vegas, March 18-20 is the place to be. This is a must conference for me to maintain my skills on the latest web technologies, which I have attended for the last three years. Considering how cheap it is to travel and stay in Vegas right now, it is definitely worth the learning experience. Check it out at http://MIX09.com. 12/31/2008
This last month I did a training for a group of developers who are looking into implementing a highly customized version of Microsoft Dynamics CRM 4.0. The question of how to implement business logic in a centralized fashion was foremost in their minds. They wanted to constrain data operations within specific columns of information beyond what was available natively within the program and perform some fairly sophisticated formatting of some of the columns. They wanted to give their users permission to take advantage of the Dynamics CRM extensive end user customization capabilities for the utmost flexible environment. However, they needed to maintain control of specific column business logic centrally.
Dynamics CRM does not support modifications to its underlying SQL Server database, so implementing the standard method of constraints, defaults and triggers is out of the question. Here is where plug-ins comes into play.
Plug-ins are .Net written Classes that result in a DLL (Dynamic Link Library) that is then attached to the event pipeline of the CRM. These events include the standard CRUD (Create, Retrieve, Update, Delete) and also include Dynamic State for modifying what is actually displayed on forms. You can attach to Pre-Post or After-Post of the data and the After-Post can be synchronous or asynchronous. Most plug-ins I have worked with are Pre-Post with Workflows being the preferred method of incorporating After-Post scenarios. Here is a diagram of the Microsoft Dynamics Plug-in Pipeline.
10/22/2008
I have been working with the new Microsoft Business Productivity Online Suite (BPOS) lately which a Cloud Computing offering. Cloud Computing is basically delivering Software as a Service (SAAS) and moving all server infrastructures online instead of on-premise. BPOS is made of SharePoint, Exchange, Communications Services and Live Meeting. If anyone has worked with setting up server infrastructures knows the time and expense required to install and configure SharePoint, Exchange and Communications Server.
Of course, by moving the infrastructure to the Microsoft servers, you need to play by their rules and therefore have some limitations on what types of developer customizations are allowed. I have worked up a presentation on what you can and cannot do with the SharePoint Online offering related to Developer customizations. I will be presenting this at Florida Users Groups over the next couple of months, so check http://GCUsersGroup.org for a meeting in your area. The following is the session abstract.
All versions of SharePoint 2007 have many hooks for developers to extend and add valuable customizations with. These opportunities include creating customizations with SharePoint Designer, Web Parts, Web Service API, List/Library manipulation and Content Management. Since SharePoint Online is a managed service by Microsoft, some customizations like Feature deployment and code behind is not supported. However, there is still a wealth of customization opportunities available. This session looks at what is available for Developer customization in SharePoint Online and contrasts it with the opportunities available with an on-premises solution. This session is an excellent source of what can be done with SharePoint customization in both online and on-premise implementations.
Below is a handy chart to see what features are available in the SharePoint Online versions and on-premises versions.
9/19/2008Microsoft is launching a series of online software offerings they call Software as a Service. You might have heard the term “Cloud Computing”, which basically means all infrastructure is online. Under this scenario all those things related to infrastructure, such as the buying, configuring and maintenance of servers along with the installing and maintaining of the software is borne by Microsoft for a flat fee. The thing that Microsoft is doing that differentiates from other online infrastructure offerings such as SalesForce is that there is a compelling offline component to the service along with strong developer support for customizations.
I’m doing a new presentation at the Florida Users Groups on these lines of offerings which starts with a service currently being offered, which is CRM 4.0. Coming online shortly you will be able to deploy Exchange mailboxes and SharePoint site without any infrastructure requirements beyond a browser and mail client like Outlook. The Outlook client gives quite a bit of flexibility regarding offline use of the services, whether it is CRM, SharePoint or Exchange that you connecting to. The other Office components even enhance this online/offline experience further. Finally, there is the new SQL Server Data Services coming that allow you to take your SQL Server infrastructure online.
| 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
|
|
|
|