ShowUsYour<Blog>

Irregular expressions regularly

June 2004 - Posts

Visual Web Developer Express Edition FAQ

Visual Web Developer Express (VWD) is a lightweight tool for building ASP.NET applications and WebServices.


What is VWD?
http://channel9.msdn.com/ShowPost.aspx?PostID=11639

Where can I get VWD?
http://lab.msdn.microsoft.com/express/vwd/default.aspx

What are the System Requirements for running VWD?
http://lab.msdn.microsoft.com/express/sysreqs/

Is there a Url for the "landing page" for VS 2005?
http://lab.msdn.microsoft.com/VS2005/Default.aspx

Is there a blog for VS2005?
http://blogs.msdn.com/vs2005news

I've installed Whidbey and now my 1.1 sites won't run.  How can I switch between versions?
http://www.asp.net/Forums/ShowPost.aspx?tabindex=1&PostID=619066

Is it FREE?
According to Scott Guthrie, the pricing has not been decided, but it will be very, very low cost.

What is the size of the download?

Compulsory componenets:

.NET framework Whidbey B1 (~20mb)
Visual Web Developer Express (~40mb)

Optional components:
SQL Server Express Edition (~80mb)
MSDN Full Express SKU documentation (~150mb)
J# Redist (~2mb)
Planning the Whidbey sessions for Adelaide User Group

Looks like everything is in readiness for our Whidbey developer sessions.  During the July meeting I'll hopefully be announcing how we will be running the Whidbey sessions at the User Group.

The plans are that we'll be handing out 60 day trial versions of Virtual PC and have some pre-built images with WindowsXP and the May community drop of Whidbey on them (Thanks to Chuck for the disks!).  During the meeting we'll install Virtual PC on members machines and load the pre-built Whidbey images on them.  After that we'll be encouraging that people determine which area of Whidey they are most interested in:

  • Web
  • Windows
  • ClickOnce
  • MSBuild
  • etc

Members will be encouraged to interract and collaborate within those "Communities of Interest".  To help manage this, senior group members will keep in touch with users/groups in between meetings.   We'll be encouraging that groups/individuals solidify their learnings by delivering small 15-20 minute presentations  - either in their groups or individually - at subsequent meetings.

If you are in Adelaide, South Australia and you want to be a part of this Whidbey learning opportunity make sure that you get along to the July meeting to hear about the plans.

Lately I've had fun building different kinds of features

I've been fortunate enough to get to play with some interesting technologies of late due to some different types of features that I've been required to deliver. We've got a WinForms client which is a front-end to a BI application and lately we've had to implement:

  1. A client licensing model
  2. An application updater
  3. Code obfuscation / protection

The first two of these we designed and wrote from the ground up. For the third one however we decided to go for a third party solution. It came down to 2 possibilities: DotFuscator to obfuscate our code or RemoteSoft Protector to compile the code straight into native format.

Our client application consists of around 70 assemblies on the client side and talks to 13 web services on the server side. It's a pretty advanced application so, we started by drawing up a list of what we needed to be able to do. Basically the code protection too need the ability to:

  • Pass and load classes that have been binary serialized across web service calls
  • Dynamically load types through reflection and invoke their members
  • Read information from an application config file
  • Load images and xml documents from resource files
  • Be interchangeable with other (obfuscated/compiled) versions of the same assembly
  • P/invoke native calls
  • Log sensible/legible exception messages

After some testing we found that the protector worked better on our code so we implemented it. It was a painless affair. I should mention that both companies were excellent to deal with and responded to our questions very promptly.

Once we worked out how to use protector we wrote a VS.NET add-in which could intercept the assemblies when we did a build so that only the protected assemblies got included into our .msi. That was an interesting excercise. We basically handled a "build completed" event to grab the newly created assembly from the \obj\release folder, then shell'ed it to the Protector application and had Protector re-direct it into the \bin folder. Then our installer project just included the primary output from the \bin folder. Neat!


Links to resources
http://remotesoft.com/salamander/protector.html
http://www.preemptive.com/products/dotfuscator/index.html
Posted: Jun 27 2004, 11:39 AM by digory | with no comments
Filed under: , ,
GMail: If you think it's about space - think again!

I've been using GMail for about a week now and I can say this: it's a sweet app.  It's the best online e-mail tool I've ever used.  It rocks.  It manages my mail much better than my FREE Hotmail account has.

There you go, I've extolled the virtues of this new application; did you hear me say anything about the 1Gig of free space?  No you didn't!  That's because I don't think that this new e-mail war has anything to do with the amount of space being offered - I can buy 1 Gig of space for less than a dozen beers!

The best thing that Google have done is to give me a UI which is more responsive and features which organize my e-mail in ways that the other teams had long lost the drive and energy to do.

Over the next short period you will hear a lot about the amount of space which is being offered...

    > "Gmail offers 1 Gig free..."
    > "Yahoo gives you 100 Mb..."
    > "With Hotmail you can get 20 Gig for 20 bucks!"


Pbbbbbbbbtttttttttttt!

The real game is about how Google make it easier to read and find e-mail.  The UI is fast and responsive.  The conversational nature of the threads is a joy.  The ability to search for - and find - mail quickly and accurately is well received.

Hotmail and Yahoo be warned, if you are going to play this game then you need a better app. not just a bigger hard-drive.

Posted: Jun 24 2004, 11:11 PM by digory | with 8 comment(s)
Filed under:
Asynchronous Callbacks

I was playing with the new Asynchronous Callbacks in Whidbey today... very nice! Basically, what they allow you to do is to, effectively, call server-side code from the client-side without invoking a Page postback.

Picture this, imagine that you need to do client-side e-mail validation in your page; not just regex validation; real stuff. You have to do a real-time check to confirm that the mail address exists. Here's how you could do that using Asynchronous Callbacks.

1) Implement an Interface

In your page you implement the System.Web.UI.ICallbackEventHandler interface and add code for the RaiseCallbackEvent method which is a method that receives an Asynch call (as a string) and returns data to the callee (again as a string).

<%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>

' ICallbackEventHandler implementation
Protected Function RaiseCallbackEvent(ByVal arg As String) As String _
    Implements ICallbackEventHandler.RaiseCallbackEvent
    If IsNumeric(arg) Then
         Return "Good Data"
    Else
        Throw New ArgumentException("You cannot use that type of data.  Must be numeric.")
    End If
End Function

 

2) Do the wiring-up

There's a method on the Page class which emits a javascript string suitable for calling the RaiseCallbackEvent method asynchronously. The method is named: "GetCallbackEventReference". To use it you basically tell it what client-side method will handle the callback and another client-side method to call just in case an error occurs.

' a string which will hold the callback javascript
Public Atts As String 
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
    If Not IsPostBack Then
        ' __CallbackHandler is a javascript method to callback
        ' __CallbackError is a javascript method to callback in case an error occurs
        Atts = Me.GetCallbackEventReference(Me, "myClientSideVar", "__CallbackHandler", _
               Nothing, "__CallbackError")
    End If
End Sub

 

3) Invoke the call from the client

Add some client-side functions to: A) invoke the asynch. callback, B) receive the asynch. response, C) handle and errors. Note that the names match the names which were passed to the GetCallbackEventReference method on the server.

// a processing function which requires an asynch call
function DoStuff() {
    alert("about to do callback")
    var myClientSideVar = txtField.value ; 
    <%= Atts %> // this will write out the javascript to invoke the callback
    alert("just did the callback")
}
// the callback function
function __CallbackHandler(result, context) {
    alert( result ) ;
}
// the callback function in case of an error
function __CallbackError(message, context) {
    alert( "An error occurred: " + message ) ;
}

 

So now, whenever the DoStuff() function is called, an asynch call will be made and processing will continue on through to the end of DoStuff. Eventually the callback will return through either "__CallbackHandler" or "__CallbackError".

There's an article on DotNetJunkies today which shows a great little application which uses this very logic.

P.S.  Joseph isn't convinced about them :P

Posted: Jun 24 2004, 12:29 AM by digory | with 10 comment(s)
Filed under:
New SmartPhone

Thanks to Chuck I managed to grab myself a new smartphone today...

i-mate Smartphone2

 

I've wanted one of these for a long time but now I'll be able to try out all of the new Adaptive Rendering for Browser-Specific Output stuff in ASP Whidbey :-)

Posted: Jun 23 2004, 09:50 PM by digory | with 3 comment(s)
Filed under: ,
Whidbey Bloggers

I intend to use this post to maintain a listing of Whidbey bloggers.  If you believe that you are blogging useful Whidbey content give me a ping and I'll add you to the list:

Whidbey Blogroll:

 



5-Jul-2004 Added .NET Undocumented
19-Jul-2004 Updated Fredrik's blog url

Posted: Jun 23 2004, 01:46 PM by digory | with 12 comment(s)
Filed under:
Official Whidbey Resources

I only just noticed that there is a dedicated area on Msdn which discusses ASP.NET V2 stuff:

    http://msdn.microsoft.com/asp.net/whidbey/default.aspx

Cool!  I think that the closest WindowsForms comes to this is this link:

    http://www.windowsforms.net/default.aspx?tabindex=4&tabid=60

Posted: Jun 23 2004, 01:43 PM by digory | with no comments
Filed under:
New Whidbey Category

I'm creating a new category named “Whidbey” where I will list Resources, Whidbey Bloggers and Other Useful Whidbey Stuff that I come across. 

The Rss feed address for this category is: http://weblogs.asp.net/dneimke/category/5896.aspx/rss.

If you are a notable Whidbey blogger, send me an e-mail and I'll list your site.

 

Posted: Jun 23 2004, 01:42 PM by digory | with no comments
Filed under:
Being a good BlogSpam citizen

I was lamenting to ScottW about my lethargy in removing BlogSpam.  Scott did 2 things to turn my attitude.  First he mentioned some new anti-spam features which will be included in soon-to-be-released versions of the product.  Secondly, he pointed me to this article:

     http://scottwater.com/blog/archive/2004/06/11/BrokenWindows.aspx

Very true methinks!

Posted: Jun 21 2004, 10:25 PM by digory | with no comments
Filed under:
More Posts Next page »