More servicesWindows Live
HomeHotmailSpacesOneCare
 
MSN
Sign in
 
 
Spaces home  Talbott Crowell's Develo...PhotosProfileFriendsMore Tools Explore the Spaces community

Talbott Crowell's Development Blog

May 19

EntLib 4.0 and Unity

Enterprise Library (EntLib for short) has become a standard for developing business applications in .Net.  EntLib was initially released in Jan 2005 and combined a bunch of Application Blocks.  Application Blocks were chunks of reusable code that helped developers accomlish common aspects of an application design such as database access, caching, security, and logging, without rewriting it for every application.  By using the application blocks and EntLib, your apps have a well tested infrastructure for those common aspects.
 
EntLib evolved from v1 to v4 with an update approximatly one per year.  Version 1.0 has been deprecated, Version 2.0 was rewriten to leverage .NET 2.0 framework.  For example the Configuration Application Block went away and instead EntLib 2.0 uses the native .NET 2.0 Framework configuration functionality.  Version 3.1 added the Validation Application Block and the Policy Injection Application Block and was released a year ago and was targeted for .NET 2.0 or .NET 3.0  (.NET 3.0 is required for the WCF functionality).
 
Here is a table of EntLib evolution:
 
Ent Lib Version   .NET Version Visual Studio New Features
 EntLib 1.0 - Jan 2005  .NET 1.1 VS 2003 bundled application blocks (Data Access, Caching, Exception Handling, Logging, Security, Crypto, Config)
 EntLib 2.0 - Jan 2006  .NET 2.0 VS 2005 Config app block goes away (leverages .NET 2.0 Framework config), mostly internal changes
 EntLib 3.1 - May 2007  .NET 2.0 or 3.0 VS 2005 Validation Block, Policy Injection Block, improvements to Data Access, etc...
 EntLib 4.0 - May 2008  .NET 3.5 VS 2008 Unity App Block, WMI 2.0 support, pluggable Cache Manager
 

What's new in EntLib 4?

What's different about this release?  For starters v4 requires .NET 3.5 which means you will be using Visual Studio 2008.  Also, v4 now integrates the Unity Application Block (Unity).  Unity supports two key design patterns: Dependency Injection (DI) and Inversion of Control (IoC) .  This can help application architects and designers implement loosly coupled dependencies which simplifies application code.
 
Mike Walker blogged about this release also.  He has links to hands on labs, etc...
Of course the best source for more information about this release is the MSDN Patterns & Practices site for EntLib 4.0
May 05

Excel Services and Silverlight, a dynamic duo

Excel Services is a component of MOSS (Microsoft Office SharePoint Server 2007) that brings the capabilities of Excel to the server side.  In the past, customers and programmers that wished to add Excel calculation logic to the server needed to use ActiveX and COM to instantiate Excel's Application object.  This unfortunately was not an ideal model for a scalable server-side enterprise application and required a few tricks to make it perform and scale well.   With Excel Services, much of the functionality of Excel's client application is brought to the server and can run in the context of MOSS which is highly scalable.  Some Excel features like macros and VBA code are not supported on Excel Services (see http://msdn.microsoft.com/en-us/library/ms496823.aspx).  But many of these limitations can be overcome using Excel Services User-Defined Functions which can be written in VB.NET or C#.
 
My company, ThirdM.com, was enlisted to build a demonstration of the power and flexibility of Excel Services by Elliott Ichimura and Bob Daniels of Microsoft.  In this scenario, Litware, a professional services company, needs a project planning application built on Excel to work with their customers to decide on those three important factors in every project: duration, deliverables, and fees (also known as schedule, scope, and resources).   Litware, like many companies use Excel to do many business calculations and ad-hoc analysis.  This is Litware's what-if scenario for project planning:
 
Excel Services business logic and what-if scenario for project planning   
To see the full spreadsheet click here. Litware has all of the project planning logic in Excel and does not want to reproduce this logic in C# or some other programming language, since it may change.  Also, the people who need to change the business logic are not programmers. 
 
In order to be more agile, Litware has chosen to leverage Excel Services to host the business logic.  Programmers were brought in to build a flashy UI on top of the Excel logic using Silverlight 2.0 and Web Services.  The Excel spreadsheet is exposed though Excel Web Services which allows the business users to update their logic without the need to change the UI.   
 Silverlight and Excel Services Demo
 
Click here to view the full Silverlight and Excel Services demo.  Click on the deliverables bar to change the deliverables.  Drag on the Duration bar to change the duration of the project (make it longer and shorter).  Drag the fee bar to the left to change the fee scaling which will deselect deliverables based on an prioritization logic expressing in Excel.  Toggle between Extranet and Intranet view to see what Litware will see for profit and use the Rates button to offer a discounted rate which will reduce the fees but also reduce the profit. 
 
This Silverlight demo uses Excel Services as a backend to recalculate the logic.  A copy of the spreadsheet is kept alive in a session for each user.  When the user clicks "Save" the session copy saves back to the SharePoint document library that hosts the business logic.
March 03

Seemless Exchange Integration with Windows Mobile

One thing I have done on my Windows Mobile device (Motorola Q) to have a better universal access experience is to save a copy of my email when sending it from my mobile device and sync my sent items folder.  What this accomplishes is the ability to see reply's to email in Outlook that I made on my mobile device and vice versa.  The reason I sought this solution was that when I replied to emails on my cell phone, it was not recording the replies in Outlook, and sometimes I didn't remember if I had replied to someone. 
 
By doing both "save a copy" and "sync sent items" you get the ability in Outlook to see the "Replied To" icon in your Inbox.  I'm using Outlook 2007 but it probably also works in Outlook 2003.  Also when you open the email in Outlook, the top bar above the "From/To" header has a message "You replied on xx/xx/xxxx 00:00 AM/PM" which is clickable to "Find related messages".  This is great because I can send an email on my mobile device and at a later date on my computer bring the reply up easily from my Inbox without searching manualy through my Sent Mail folder.
 
Here are the steps I use to accomplish this integration:
  1. On you Windows Mobile Device (I'm on Windows Mobile 5), Open your "Outlook E-mail" folder or the folder that contains your Exchange email under the Messaging applicaiton.
  2. Inside your Outlook email Inbox, choose "Menu" -> "Options"
  3. Under Options, choose "Sending" and check the "Save copies of sent items" option and then "Done" to save the option.
  4. Now click "Done" again to get back to your "Outlook E-Mail" folder inbox (or whatever your folder is called that has your email from Exchange)
  5. From your Windows Mobile inbox, choose "Menu" -> "Folders"
  6. From the "Folders" screen, choose "Menu" -> "Manage Folders" and scroll down to your "Sent Items" folder.
  7. Highlight the "Sent Items" folder and choose "Sync" then "Done"
  8. Highlight your "Inbox" and choose "Select" to return to your Windows Mobile Inbox.

Now any email messages you reply to will be decorated and linked in Outlook with your reply!

Hope this tip helps you...

February 08

Microsoft Office System Dev Conference

Going to the Microsoft Office System Developer Conference 2008 tomorrow in San Jose!  Lots of MOSS sessions.
 
Should have some interesting topics to blog about soon...
 
December 14

MonoRail's future

With the advent of Microsoft's ASP.NET MVC which has been released as a CTP called ASP.NET 3.5 Extensions Preview, what will happen to MonoRail, the other MVC for ASP.NET?  Well last month Hamilton Verissimo, aka hammett, the founder of the Castle Project, which includes MonoRail, ActiveRecord, MicroKernel, and Windsor Container projects, talks about his trip to Redmond in his blog post MS MVC and the MVC Team:

"And what happens to MonoRail? - you may ask. I’m not sure. I was really adamant that they should try to support all things that MonoRail support, but I’m not sure they are going for that. MonoRail 2.0 is pending their implementation. If the final MS MVC rocks, and provides so many things, I’d vote for forget the MR 2. If the final MS MVC has clearly something lacking, MR 2 could reuse the infrastructure and provide some nice extensions."

In his most recent blog post MVC Experiments, hammet includes the samples for download that he created on his visit to Microsoft.

Finally, the front page of the Castle Project site includes a letter to the .NET Community regarding the Microsoft MVC starts off:

"You are probably wondering how the recently announced Microsoft MVC project will compete with Castle's MonoRail.  We think that any attempt to offer more productive tools, better testability and better separation of concerns is valuable, no matter who is the author."

And finishes with:

"Is MS' MVC better? Worse? Only once we have used both will we be able to tell."

So only time will tell if one or both will continue on.  Microsoft has invested some great developers on the project so we should see some interesting options in the future.  For the MonoRail team, imitation is the sincerest form of flattery. 

View more entries