guyS's WebLog

IShare, My DotNet Fingerprint
Kiss the Middle-tier Goodbye with SQL Server Yukon
The article Kiss the Middle-tier Goodbye with SQL Server Yukon which claim:
 
Yukon's new XML support features cut out the middleman and allow you to deal with your data directly on the database tier. Learn how to use these features to improve your database app's performance and design.
by Klaus Aschenbrenner. Caught my eyes..
 
How its reflect our architecture considerations and specifically to the way we will design our DAL layer?
R we going to keep only a rudimentary DAL layer and move the CRUD actions to the DB server?
A typical DAL will most likely to have something like -
 
void Save(string xmlTableData)
{
    //call the DB store procedure save with the parameters - xmlTableData of type Xml
}
 
Today I saw another presentation regards Yukon. Part of the Xml features I already saw within Oracle DB by using custom packages. Still, I got the impression that Microsoft thoroughly attacked the Xml support within SQL Server. Yukon support lots of the XQUERY W3C language.
 
Partial Yukon Xml features list:
We can use scheme to enforce constraints on Xml column but we can still work without it
Select, add, delete data from an Xml column within a DB table 
Construct Xml structure as part as select statement using XPath
Get Xml parameter and convert it to tabular structured and vice versa
We saw part of the XQUERY FLWOR implementation which enable us to manipulate our Xml data using FLWOR expressions
 
Immediate advantages to keep our data as Xml in the DB:
We enjoy our DB capabilities - backups, replication etc
Transaction operation on our data
With Yukon we will have strong set of options to manipulate Xml data before its being save to the DB Table and before we return it back to the client
We have flexible data format that can easily enhance and stretch in future releases
 
Considerations/Note:
The performance implication when processing Xml within our server is still unknown on this stage. We sure need to take this point into consideration.
[note - our table is lock when updating our Xml columns. Huge Xml will effect the lock time and effect all the other users,
Right now, rational operation have better response time] 
 
Impression:
As I see it - Yukon and other RDBS with rich  Xml support will be another architecture option in our application architecture DAL alternative. 
I think whoever have to Kiss his DAL is welcome to do it - but saying goodbye will be too soon.
 
Other goodbye estimations
Kiss goodbye your Component Service Layer (because of Transaction namespace)
Kiss goodbye your Integration services layer (we have Biztalk and such)
Kiss goodbye your web client front end (click once)
Kiss goodbye NUnit (we have build in testing tools in Whidbey)
Kiss goodbye WSE2, 3 and so (Indigo)
Kiss goodbye part of your web developers (we have lots of out of the box, productive web controls and infra structure in Whidbey, meaning less work)
 
Any other ideas?
 
Posted: Jan 17 2005, 09:11 PM by guyS | with 5 comment(s)
Filed under:
Using XSL Transform with Objects Extension[framework2]

In continue to the previous post here is another great walkthrough by ftponline web site author Thiru Thangarathinam regard XSLT performance but I find it also focus on object extensions during XSL transform process. This time its being done using the new XslCommand class that ship with Framework2 and is the core class for dealing with XSLT transformations.

Here is a snippet of it

XsltCommand command = new XsltCommand();
//Compile the XSL stylesheet
   command.Compile(Server.MapPath
   ("ProductsPaging.xsl"));
XmlArgumentList argsList = new
   XmlArgumentList();
//Retrieve the pageNumber from //querystring
int pageNumber = Convert.ToInt32(
   Request.QueryString["pagenumber"]);
//Add the required parameters to the XmlArgumentList object
argsList.AddParameter
   ("recordsPerPage", "", 10);
argsList.AddParameter
   ("pageNumber", "", pageNumber);
argsList.AddParameter
   ("recordCount", "", 77);
//Instantiate the object to be added to the
//XsltArgumentList object
BGColor obj = new BGColor();
   argsList.AddExtensionObject
   ("urn:myColor",obj);
command.Execute(xpathDoc, null, argsList,
      Response.Output);

I guess that we will be able to see more and more object extensions in our applications for validations, filtering & sorting according to a set of rules, different text formatting and such. 

One of the intensive usage I can see for object extension will be in Yukon, which is the code name for the next SQL Server. Yukon introduce a new table field type of Xml. Its also enable us to use our assemblies for processing data within the database itself. This mean we could get our Xml data from a table field, process it in our assembly using XSL with object extensions and return it to our client - and do it all within our DB

XML processing within Yukon can also be done using internal set of XQuery language that is part of Yukon. So we can now choose the best processing method for our problem. 

Posted: Jan 07 2005, 02:32 AM by guyS | with no comments
Filed under:
Web Control VS Designer Support - to do or not to do?

Everyone agree that Custom composite web controls is fantastic way toward re-use, extend and all the bonuses we get from OO

I want to share with you a difficulty we always encounter in the IT department I'm part of.

Our IT project managers new slogan is try to do "more with less". This is because of budget considerations & Time to market constraints.

Usually this leads to the following results - when we need to set a design to a module that can be re-use in different pages of our application it will be done using User Control. User Control are easy & intuitive way to code re-usable visual component that will use in different places within the web applications (again do more with less is guiding principle).

When we need a control that we know it could be re-use in different applications (multiple file upload control for example) we design it as a custom web control or composite web control.

[The different is the custom web control is existing web control we extend to gain new functionality (inherits from TextBox, Label or other existing web control). Composite web control is few web controls that together with attached methods and events gives us the required functionality]

The problem is (and this is what I am aiming for) we get the resources (developers, time, budget) to the develop the must functionality which is the Web Control itself but we cannot convince our project manager why we need to implement the Designer support for our web control.

The project requirements being divided into high priority feature list and "nice to have" features. The support of the VS Designer to a re-usable custom web control categories as "nice to have" feature. When we said the designer support will enlarge developer users productivity but we will need more time in order to supply it their answer is write a short, clear developer guide instead.

This is why all of our custom/composite controls in our IT department do not have designer support

When a developer drag one of our custom control to the designer form he will get in the control display something like

"Error creating control" or "There was an error rendering the control"

Now - the thing is that (and I want to be honest with you ) even when we got the OK from our project manager to add VS designer support then we don't have the motivation to do it.

We are not component providers specialists that have to supply enhance controls with designer support to make the control more productive.

We also prefer to get into other .NET Namespaces that will be more valuable to us and to our department instead of drill down the VS designer namespace which is not often used by different software companies that are not component providers.

I guess you encounter this problem too.

Now, what I suggest is the following -

Microsoft or one of the leading component provider will supply a simple VS integrated wizard that will build and attach the VS designer class support for our custom/composite class (I guess that with reflection this is possible)

The wizard engine will find our public properties & events and build for it the required VS support

I think this kind of Wizard can be really essential & complementary tool for lots of developers

Don't u think?

List2List composite web control walkthrough

List2List custom control walkthrough Article show the basic considerations & steps when building a custom composite Web Control.

This actually my first web control - I enjoyed every minute when working on it and learning the basics

Demo & code available

 

Posted: Mar 26 2004, 04:37 PM by guyS | with no comments
Filed under: ,
XML2HTML_ENTRY_FORM : The XML Structure - Step #1

I'm working on a module that should construct HTML forms + JS Functionality (for different input events) from a pre-defines XML's that contains set of rules as followed:

Definition of each input in the form - this XML will be send to the client and back to the server with the form input element values as part of it

The Validation/s we will do on the client browser for the specified input element/s

Dependencies between elements (behaviors)- for example: when a ListBox of Customers value changes - we should change the ListBox of the Support Persons

After I search for something similar in Google and I didn't find equivalent source code, walkthrough or product

I hope that someone could assist me from his experience while working on a similar solution.

Or by directing me to a product that gives this functionality or to direct me to relevant resources that can help

For more details click here ...

Posted: Mar 21 2004, 03:04 PM by guyS | with 134 comment(s)
Filed under:
PocketPC must to have utilities

I've just bought my first pocket pc. I must confess, there was a lot of excitement.

I started to check the right software utilities for me, that I can use in my PocketPC and make my life easier.

I find what I wanted after browsing Microsoft mobile web site software catalog

In order to keep truck on my appointments, tasks and contacts I bought the Informant 5.1 for 29$ - excellent!!

For ideas in highlights and ToDo lists I use the ListPro from IliumSoft

For keeping my different web site user names, passwords pairs I use ewallet also from IliumSoft. Right now the list consists 12 user names/pwds

Until we will have a single sign on on the web I will need this great software. Its cost only 29.95US$

I found that the Microsoft notes software is good enough for writing short blogs and other short technical paragraphs on different subjects

When I want to play I use- a chess game I bought in IPACKChoice web site, tetris and packman sharewares

I also think of buying the Battery Pack 2003 which seems very useful

The advantages of using IPAQ are huge - I stopped using notes for my ideas & design concepts (lots of notes), contacts phone. I also have a better control of my tasks and tasks progress status. I have in one place my subscriptions to web sites details.

Today, while I was waiting to my wife in my car I wrote 70% of this blog - isn't that nice?

Posted: Mar 19 2004, 03:53 PM by guyS | with 18 comment(s)
Filed under:
Is it OK to Share your Knowledge & Opinion in a Blog

I think the problematic situation start when you are sharing opinions and knowledge we gain or adopt while working for our employer who pay us from his money in order that we will have the opportunity to gain new skills for his advantages.

I think most of us sign a confidential agreement before we start to work for our employer,in which we are obligated to keep any knowledge (sometimes it's called opinions) we get during our daily work private.

For example - you find a great tip while working with one of the ASP.NET controls at your work office. Can u share it with other? Is it absolutely right to do so? After you find this amazing tip you have changed your opinion on this control - can you share it with other?

Another example - you found a great web site after 1.5 hours of searching in the net at your work office. Then you browse in the site content for another 1.5 hour and read its articles which you find helpful (again - in your work office). Can you share it with other?

I've just started my own blog 1 week ago and I explained why I want to blog- I still confused what I alloed to publish there

I also want to post a short walkthrough on how to represent an HTML Entry form as XML. I had to do the design in work and I would like to share it with others. I did not invent anything new but still, do I have the right to publish this post?

 

 

Posted: Mar 19 2004, 02:22 AM by guyS | with 8 comment(s)
Filed under:
Why I need this new blog?

Hi everyone [ok - the first weeks r actually - Hi to Me Again:-)  ]

This is my new blog and and my first post, I'm trying to answer to myself what was the motivation to do it (Its not that I'm bored and have too much spare time)?


My first conclusion was that I need this blog to maintain my daily experience knowledge in 24x7 electronic media. A place where I can add and manage my How To's, my favorite articles and the list is long. The advantages are huge - no more IE Favorite, no more several PCs (work, home) with lost information pieces - All the right Info for me will be in this blog

But, the more I think of it, I get the understanding that there is additional reason - which is the real reason. In the last 2 years something good has been happening in the software industry - people started to share there information and experience with others colleague(its not so easy as its seems).

This is one of the good things the Internet gave us - a giant reference, tutorials and of course blogs

Two years ago, when someone had a good idea for a "killer" application - he tried his first steps to a start up. Today - the same guy will write an Article about this "killer" application or will give it few words in his blog - nothing more.

So, this is why I start to blog - I want to add my small contribution to this giant sharing media and write about my daily experience while designing and implementing N-Tier applications.

I hope you find this blog interesting and helpful;-)

 

Posted: Mar 16 2004, 01:26 AM by guyS | with 2 comment(s)
Filed under:
More Posts