Thinking outside the box

SteelePrice.Net

My Links

Twitter Updates


Get Microsoft Silverlight
follow me

Article Categories

Archives

Post Categories

Image Galleries

Dot Net

General

Linux

OneNote

Windows

TechED Bloggers
Visual Basic Bloggers (OPML)

June 2007 Entries

Scott Guthrie is Coming to Phoenix

AZGroups, a professional association for computer programmers in the Southwest, has one big meeting annually that brings the very best talent in the industry to Arizona.  This year it will be held on Wednesday, June 27th from 8am to 4:30pm at Symphony Hall in downtown Phoenix.  It's a free event open to the public. You should register to reserve your spot.

The main speaker this year will be Scott Guthrie, the original creator of Microsoft's ASP.NET architecture.  He is a general manager at Microsoft over many areas of developer technology including ASP.NET, IIS, ASP.NET Ajax, and Silverlight.  His presentation will center on the newest video and web technology that has been announced at recent conferences including NAB (National Association of Broadcasters) and MIX.

Scott is not your average general manager, being incredibly proficient in these technologies, and will demonstrate a hands-on approach to using them effectively.  It will be time well spent for any IT manager, web designer, or developer that has an interest in the latest technology from Microsoft.

If this is anything like his presentations at TechEd, this is a NOT TO BE MISSED event. Scott will show you in detail how we will be developing web apps for the next few years. I hope to see you there!

In addition, Stefan Schackow will be presenting.

Stefan Schackow is a manager on the web platform and tools team at Microsoft, and works with the new application services stack that shipped in ASP.NET 2.0. He owns the Membership, Role Manager, Profile, and Web Parts Personalization features and is currently working on extending these services to both smart clients and the ASP.NET AJAX platform. Prior to joining the ASP.NET team, Stefan worked as an application development consultant in MCS.  There are presentations online where he shows how to build your own ASP.NET Provider-Based Feature and the new trust levels in ASP.NET 2.0.

Finally there will be a comparison of 7 Web development platforms, showing the strngths and weaknesses of each.

posted @ Tuesday, June 12, 2007 10:13 AM | Feedback (0)

Optimizing and Extending Ajax

Jeff Prosise gave a terrific talk about Ajax, how it really works and how to extend it.

Did you know that ASP.NET AJAX creates an entire OOP framework for Javascipt?  I have no idea that this is really what they did.  Some geniuses at Microsoft decided that if there was a Class and Inheritance model for JS that it would be easier to extend and build frameworks.  They were right, this is awesome stuff.  The resulting code looks virtually identical to C# or Java including Type checking, etc.

When you need to build something like a Drag and Drop framework, extending some of the classes you get with the kit make it simple, in fact, most of it is already there and looks very close to the old OLE model.  Implementing IDragSource and IDragTarget provides a complete Drag and Drop capability for AJAX controls.

Something to be aware of when you are using the UpdatePanel.  By default when One Update Panel is refreshed, ALL are, so you may be putting more across the wire than you think you are.  Set UpdateMode = Conditional in your markup to get the expected functionality.  Using the .Update method in event will let you create dependent controls properly.  PageRequestManager provides the hooks you need to adjust any rendering or conditional triggers.

posted @ Wednesday, June 06, 2007 11:17 AM | Feedback (0)

VB Tips & Tricks for Orcas

Kit George showed us some nice reminders about what is already there in VB8 and how it is improved in VB9.

Probably the most visible aspect in the coding view will be changes to Intellisense.  Intellisense has become the must have tool when writing code, it dramatically speeds up writing code over other editors.  Some noticible improvements are that Intellisense works pretty much everywhere now, in code, imports, dim XMl and LINQ.  Having an XSD File attached to define your XML Documents should become mor pervasive now as it will enable Intellisense when writing XML blocks.  In the reminders we also now get the much needed Imports assistance when diming a variable that is not in a known namespace.  Automatic lookups for these and adding the Import or complete reference for me is great.  Also don't forget that crtl-space will force Intellisense to open.  When creating your own Classes; use the <EditorBrowsable([])> tag to separate your methods and properties in the Common and All Tabs of intellisense, options are ComponentModel.EditorBrowsableState.Advanced, Always and Never... Always displays on the Common tab. 

A new Option exists in VB9, this is Option Infer.  It is for supporting Anonymous types.  When Option Infer is ON (the default for NEW projects) the Type is Infered from the set value...  i.e.  Dim s = "Something" would make s a String instead of the current setting of Object.  Upgraded Projects default to Option Infer Off to retain current functionality and compatibility.  If you really want Object, and are using Option Infer On, then you should specifiy it... Dim o as Object = SomeObject().

Something I always have to remind people of is that = is Not the same as .Equals or "Equals" in LINQ.  Kit covered this briefly along with Operator Overloading.  When you need to compare classes you should be overriding and using the .Equals method so you know how you are comparing classes (like by an ID).

It doesn't make sense to ADD two customers together, but it DOES make sense to do things like adding Point Classes together, so in this case you would be using Operator overloading to accomplish this.

Something Kit points out about LINQ is that when you are making joins on queries, always make sure you are applying filters to the first set before you make a join.  Otherwise you may be taking performance hits or getting unexpected results.

He did cover much more, if you have a chance to attend this talk at any of the conferences he is giving it, i highly recommend attending.

posted @ Wednesday, June 06, 2007 11:05 AM | Feedback (0)

LINQ and XML for the VB Developer

Amanda Silver gave some great insight into what we are going to see for VB in VS 2008 (aka Orcas).

With LINQ and XML we finally get some embedded Object Mapping for the most common Database requirements for building applications.  To date I have relied on Code Generation for building the CRUD code and business rule stubs to tramsform our Database Schema into Object for Type Safety.  The biggest hassle with this has been that we needed to create templates that were not always optimal when applied to every object and then there was the need for a DQE (Dynamic Query Engine).   Two companies providing this are LLBLGEN and EntitySpaces.  I have used both and they have definite pluses and minuses which are beyond the scope of this entry.

Will LINQ make Code Generation Obsolete? in a word... NO.  It will however give us a built in framework to use so we can eliminate the DQE if we want to.  This is vital because it will give us an optimized approach to creating and receiving queries aganst our DB with static type checking.  We still need to separate business objects and business logic from our presentation for clarity and efficiency.

Consider the following: (excuse the images...)

Here you see the intellisense for Query Syntax.  Also it shows how easy it becomes to Infer a bindable type from a query.

Creating business logic with this is a snap.  Creating Templates is no longer really necessary, that would be to do some genric I/O with a custom DQE, The approach I will be taking is to create some basic Partial Classes and Partial Methods that create the stubs for the logic, then quickly go through the business logic and create my rules with intellisense.  This will lead to a much more customizable approach than trying to generate everything from templates.  I am sure the 3rd party tools will be adapting to this approach quickly.  I can see a real need for a VS Add-In that creates the business logic stubs for your project with a single click.

One nice thing is that you can inspect the exact SQL which LINQ creates:

 

On to XML...

Have you every tried to combine XML Fragments?  How about inserting Elements and/or attributes in an XML Document... Painful huh?

Take a look at this:

Yes, that's right; Infer a document or fragment from RAW XML... Notice the <% %> syntax, these are "Expression Holes" in which you can insert VB variables, Infered fragments, etc.  Want more control?  Create an XSD for static types. Awesome stuff.  So Awesome are these two features alone; it compelled me to build http://VisualBasic.Net with VB9.  So while there is no "Go Live" license available yet, be assured that shortly after there is (Beta 2...), the site will GO LIVE.

I will have more about LINQ and some better code samples up soon, also watch the VB Team Blog for more details and samples.

posted @ Tuesday, June 05, 2007 11:21 AM | Feedback (0)

Blogger's Breakfast

I attended the Blogger's Breakfast this morning and there was a nice discussion with a couple members of the Security team.  One of the more active discussions was about Spam.  Spam is pervasive, though it is calming down in terms of how it is effecting many enterprises.  Users are not quit reaping the benefits yet, though many mail providers have enabled effective filtering at the server level.  I personally believe that stopping spam at the server level is how we will be dealing with spam for the forseeable future.  Charging a nominal fee for email will not stop all spam.  I still get junk mail in my snailmail box.  It is part of our society in a capitalist state to get this stuff.  Filtering is the best way to deal with it.  Filtering at the user level is nuts... Non-technical people have no idea how to combat this stuff it needs to be built into the mail servers and never delivered.  When Exchange 2007 rolls outand more echange server start getting better protection, I think we will see a significant drop in spam.

posted @ Tuesday, June 05, 2007 10:21 AM | Feedback (0)

A Lap Around Silverlight

Scott Guthrie shows us not only what he covered at MIX but a little more asbout creating interfaces with Silverlight.  I am starting to really get where the placement of belongs.  Sure you can create entire sites or Apps with it, (see Top Banana) but I see it more as an enhancement to provide content that is difficult or impossible in HTML/CSS.

He displayed the Silverlight Airline demo, available here, which shows this sort of combination effectively done.  I am currently working on 2 projects leveraging Silverlight 1.1 that I will be very excited to display soon.

Something I know several people have asked me about is if Silverlight will allow Local Media Support (File Open and Save Dialogs)  the answer was yes, it definitely will be in Silverlight 1.1 RTM.

posted @ Tuesday, June 05, 2007 6:30 AM | Feedback (0)

Inside T-SQL

Itzik Ben-Gan once again displays his mastery of T-SQL.  He shows us ways to do somedificult or even unconventional things inside Stored Procedures and Functions.  He also comments that CLR Functions can be up to 3 times faster at doing String Manioulation than using raw T-SQL.  This of course make sense due to the effieciency that the CLR provides for this over the oftem cryptic or limited functionality provided by T-SQL.

His biggest offering was a phenomenal Pivot Stored Procedure that overcomes the limitations of the PIVOT() functionality (such as dynamic columns names) most of which can be found here  He also has some pretty interesting uses of the STUFF() Function.

posted @ Tuesday, June 05, 2007 5:45 AM | Feedback (1)

TechED Keynote Address

The opening of a "Back to the Future" skit, complete with Christopher Lloyd as "Doc" was pretty funny.  I enjoyed this skit more than some past skits for the keynote.  I was also really glad to see the topic of something other than the next big Microsoft Vision.

Windows Server 2008 will be including a slimmed down install called Server Core, which will let us strip the non-essential aspects of the system. This is great; especially for Virtualization which by the way is also included.  This is big because it is on par with ESX server from VMWare.  If you needed to justify a cost difference between WinServer and another OS+ESX it now is about the same price.  It can also convert existing VMWare Sessions to VPC and move LIVE systems to another machine.

System Center Operations Manager look particularly nice with the Application Model Designer that can drill down into an Error Path to pinpoint where connected systems fail. Finally we have an easy view of the whole application operation that is completely interactive and integrated.

The Silverlight demo, while not showing anything particularly new, showed some great aspects of the code being released for "Top Banana".  I can't wait to get my hands on this and convert it to VB Code!

posted @ Monday, June 04, 2007 11:20 AM | Feedback (0)

TechED Observations

By far the most frustrating part of scheduling TechED Sessions in which to attend is the inability to send my entire calendar to a device. Why can't we just get all the sessions in iCal format. Clicking each session is a real pain and makes me NOT want to use the scheduler. Export to Outlook is 3 clicks per session… let's see I am here for 4 days and 5 or 6 sessions a day… this really sucks when it could be a one click download and a 2 click import for the entire calendar.

In fact, I resorted to printing out the calendar, I would MUCH rather have had it in my phone and Outlook Calendar.  I will not click every session just to do that.

Unfortunately, the Conference Bag I received I rejected immediately and got another due to a zipper malfunction… an hour later the zipper broke on the second bag. I smell a recall coming as there has been in the past… for the same reason.  I understand about cutting costs and all that, but recalls end up costing more.

posted @ Monday, June 04, 2007 11:08 AM | Feedback (3)

Blogroll Me!

Blog Search Engine

Copyright © 2003-2004 H. Steele Price, IV -
All opinions are my own, not necessarily those of my employer, your mother, or any government agency.