A long awaited feature on Reporting Services 2008… rich text formatting

It’s finally here, had I had this feature at the beginning of last year…

Finally you can apply different styles to the text on your text boxes and even more, you can retrieve rich formatted text from the database and view the formatting on your report.

It doesn’t work well with background color attributes yet…

List of new features

Thread on MSDN about rich formatted text coming from the database

I might be able to use the rich text controls that generate HTML sooner than later…

Happy coding!

WCSF falling short on composing web applications?

I’m right now looking for options on composing web applications. I recently took part of an interesting project with the composite application block framework (CAB) developed by the patterns and practices team and am certainly looking for the web equivalent. That been said I should add I have a great deal of frustration now.

I had been subscribed to several discussion threads at Codeplex for the web composite application block and WCSF. At the moment of writing this post codeplex.com is down (it has been down for about 2 hours now at 4.18 PM EST) and southworks.net is down too.

SouthWorks.net is the company that has more developers maintaining these application blocks, afaik, and they also moderate most of the codeplex threads.

After reading about the road map of the Composite Web Applications I tried out the QuickStarts for the WCSF hoping to find the web equivalent of CAB or Prism.

My team has a couple of “legacy” web asp.net applications that were migrated to asp.net 2.0 two years ago.

We were looking for a framework that would serve as a skeleton for composing web solutions.

IoC containers such as Spring.NET allow composability at object level, but it’s cumbersome to have all the objects that you’ll inject into your main application defined in a main configuration file. *this is as far as what i’ve seen* And we wanted to be able to use existing applications with a minimum of re-write (maybe some style changes).

That’s why modules might be a better choice of dividing and composing applications. Each module could have it’s own set of configurable objects, it’s own configuration file and it’s own UI and would communicate with other modules through an event broker mechanism and would consume information presented by the services registered or published by the shell…

WSCF appeared to be the answer, until after we tried the QuickStarts.

The modules do not have a UI at all, the UI is defined in the main web application (web project) where the web.config file resides. The modules are merely a group of business objects and presenters. I don’t think the modules are loosely coupled at all, as the view is defined in the main application (web project) and the name of the view or web form is also declared in the sub module.

I might be very biased by the architectural design of Facebook, but composability in that case means, you can host *any* application on your main *shell* and this application will consume services to communicate with the main shell, using encryption with a key provided at the time the application is registered.

…they surely share session…

Why WSCF falls so short on this?

My real world problem: I would like to integrate the existing web applications into a new shell with minimum changes. These legacy applications are now on different virtual directory and run on different appdomains. They do share a single sign on implemented as shown here:
http://forums.asp.net/p/1023838/1390821.aspx
but there is no shared session.

These web applications although might be considered legacy, are fully functional and have been tested. Rewriting them would cause more pain that help the business.

It seems that if the team goes for WCSF we will have to end up rewriting these application into WCSF modules and moving all the webforms and user controls to the web project as oppose to do small modifications to integrate them into a true composable shell. This would be extremely painful.

I’m still looking and to be honest, I’m kind of lost, it must be it is Friday afternoon. Any comments or suggestions would be more than welcome…

Thanks!

I hope they deprecate the money data type in SQL Server

In SQL Server 2000 and 2005 you have the money data type and the smallmoney data type. (Oracle doesn’t have this data type)

You wouldn’t think there is anything smaller than a penny or a cent in money matters, so why did they designed these data types with 4 decimal places? To help hackers puts all the partial pennies in a separate bank account? :-p or to keep compatibility with Excel and allow easier data import from Excel spreadsheets?

Apparently, the only reason is to let developers insert currency symbols that won’t be preserved:

USE tempdb;
GO
CREATE TABLE TestMoney (cola INT PRIMARY KEY, colb MONEY);
GO
SET NOCOUNT ON;
GO

-- The following three INSERT statements work.
INSERT INTO TestMoney VALUES (1, $123.45);
GO
INSERT INTO TestMoney VALUES (2, $123123.45);
GO
INSERT INTO TestMoney VALUES (3, CAST('$444,123.45' AS MONEY) );
GO

-- This INSERT statement gets an error because of the comma
-- separator in the money string.
INSERT INTO TestMoney VALUES (3, $555,123.45);
GO
SET NOCOUNT OFF;
GO
SELECT * FROM TestMoney;



GO



DECLARE @dollars AS money
SET @dollars = $100
SELECT @dollars

The value returned is 100.0000, without a currency symbol.

If you’re a developer, these data types will make you round your values to two decimal places before retrieving them to your UI and they will also give you a couple of headaches with calculated data.

http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=92830

Stay away from the money type, use decimal instead.


Lotus Connections vs Sharepoint, what’s your take?

This post is not fully technical and I’m afraid I might be just adding noise to the net, but I couldn’t keep quiet, as a developer I should give *my* developer’s point of view.

When SP first saw the light I must confess it wasn’t my pick for CMS, it needed a sql server box and SQL Server needed an expensive license. I turned to free easier to put together PHP based CMS/portal systems like mambo, phpnuke et-cetera.

Time changed my point of view. I used Sharepoint mainly as a collaborative tool and intranet on two companies I worked for, and used it only as an end user. The ability to manage content, add documents to a project, keep the knowledge base associated to source control made me change my mind a little bit about this tool.

Knowing now more about web parts and seeing the proliferation of code camps, documentation, codeplex projects and how easy it is to implement workflows in Sharepoint now make me doubt about Lotus Connections quite a bit.

Why?
1. I’ve used Lotus Notes for email client and find it to be extremely unintuitive. Most people would say we use an old version, but I liked Outlook XP better!!!
2. I’ve used Outlook for email client for a while and although I have tried Thunderbird and other email clients, I keep going back to Outlook.
3. When I lose network connection my Lotus Notes becomes irresponsive to the point of having to shut it off, even if it’s a small network hiccup. It has never happened with Outlook.
4. Domino was a pretty big dinosaur back in 2000 when I first started programming intranets. I would say it still is.
5. Sharepoint is now free if you pair it with sql server express.
6. Most decision makers I know say that relying on open source projects to enhance or tailor a tool is a mistake. I would say exactly the opposite, but it also depends on what open source project you choose. Look at NHibernate and Hibernate? NUnit, JUnit, log4net, Apache (I hope Mono were a serious take)
8. They would also argue that customizing a tool further can imply high costs when a new license is purchase and sometimes it is impossible to obtain a new license due to the great deal of costumization. I would say that applies more to IBM like products, imho.
7. Some decision makers bet on Lotus Notes mainly because migrating away from Notes would be too costly. I would say migrate ASAP, that ship is sinking.

As a developer, I’m not a decision maker, I do make decisions but within my scope, most of them are based on experience, some of them are based on gut feeling. My guts say, hrm, Lotus Notes still sounds like a dinosaur to me…I hope I never have to program on top of it :-p

UI design for a better user experience. I found a goodie…

I’m currently doing UI analysis on several apps. Hopefully some of them will be migrated.
Being a core developer I must confess I get a little bored if I don’t see code or try a new framework, or implement a pattern; but I guess this is a good opportunity to put myself in the end user’s shoes and easy their lives, if I can…
Coming from a Windows environment, my first apps were always MDIs. Now most development efforts are moving away from MDIs as they are considered very complex and overwhelming, requiring a high learning curve. See most disadvantages here.

I found a free goodie and wanted to share it: Designing Interfaces: Patterns for Effective Interaction Design

I hope you find it as interesting as I did.

There is also this very good website that documents most of the GUI design patterns, with emphasis on Web: Patterns in Interaction Design

Enjoy!

And wish me luck so I can go back to try new development frameworks soon and they bring the usability expert and designer on board :-p

Have fun while learning, are you certifiable?

I got this ad from a marketing person. I wasn’t going to post it as I’m not very fond of sales and marketing people.
I tried the game and found it cute, it’s similar to the contest that MSDN Canada launched a few years ago, the Last Developer Standing. I was eliminated quite fast on that one :-p

If you like games, you might enjoy this one.

Check out the game at www.areyoucertifiable.com. Enjoy!

Second shot certification exam and discount on e-Learning…

I just got this from a Microsoft marketing representative. I know I’ll make use of the second shot quite soon, hope it helps you too:

Register for Second Shot today and get an up to 90% price discount on one Microsoft Official E-Learning Collection
Second Shot provides a free retake if you fail your Microsoft Developer Certification exam. And from now, until June 30, 2009, if you register for Second Shot, you get any Developer E-Learning Collection for just USD $35 (usually priced up to USD $349). That’s up to 90% off.

But hurry! Once you have activated a discounted E-learning collection it will only be available for 90 days.

Sign up for the Second Shot offer today

Excuse me, Emir Maktoum, could I please debug this small hello world app on your Surface?

The race for the multi-touch input devices has begun, unfortunately as of today, the prices are unaffordable for the regular consumers and developers that are tied to project budgets.
We all remember the GUI from Minority Report and the attempts CSI Miami* is making nowadays to show these input devices as regular, day to day available hardware.
Most of us, developers, know it will take a while till the hardware becomes available/affordable in enterprise or end consumer applications.
But the time might be around the corner.
Hopefully it will be like the IBM PC and the PC-clones stories, third party companies were able to clone the IBM PC’s hardware and lower PC prices. That along with MS-DOS being distributed as a separate product, made the PCs widely affordable. No more architectures based on Zilog Z80 or Motorola 6508 (my highschool classmates played with Z80/8085 assembler back in the 80s), Intel 8085 quickly became the processor of choice, then the 16 bits 8088, 32 bits 80386 and 486 and all AMD clones.
Anyway, my point is, let the hardware be cloned, lower the prices and sell the WPF, XNA, Surface.Core APIs as a separate products. **


I just came from a Metro Toronto User group presentation about Microsoft Surface and played tetris with a few other group members. The presenter gave a great introduction to multi-touch devices and how to start programming for the MS Surface using WPF.
Unfortunately for me, I would have to email my hello world app to Dubai for debugging purposes.
It seems the price range of the Surface is about 15 to 20K. It is now used in a Casino in Vegas, some banks in Switzerland and widely spread in Malls in Dubai.

Another multi-touch/multi-user device is the incredible Perceptive Pixel Wall with range prices in the order of 100K. I wish I could get a hold of the development platform for this 100K device :-p What the heck are they using?

So far all of these technologies are under a pretty lip tight policy…It’s proprietary, can’t touch this. As a difference b/w the MS Surface and PerceptivePixel is the pressure perception. MS Surface being based on infrared rays and an arrays of cameras cannot perceive pressure.

Video

IPhones from Apple, even though they are not multi-user, do recognize a few types of touches and are more affordable, if you don’t sign up with Rogers. I believe they use the Objective-C Cocoa framework as development API which would be pretty hard to kick off for a Java or .NET developer coming from a managed environment. I remember the alloc and mallocs from C and get chicken skin…what’s wrong with being spoiled with Garbage Collection?

Enough about random thoughts, I wish I could have played Tetris for longer…


*
I’m not a regular of the show, but my mom asked me once if I developed apps like that on my workplace…Not mom, not quite yet.
**Let’s see if they listen :-p