Tonight I decided to accept my invitation to the SSDS beta and start monkeying around with it. All I had to do was click the link in my invitation email and I was automatically logged in to the MS Connect web site. I had only been into this site once before when I ended my participation in the Live Mesh beta.
So it's too late tonight to start anything up, but it seams clear that I can just reference a web service and start building my own management interface...or something.. I fired up Web Service Studio and took a look at the service contract. (wsdl).
Web Service Studio
GI XML Mapper ;-)
This weekend I will do more and blog everything I can. I have to say that the prospect of SSDS is very intriguing. I am also going to try to compare and contrast this service with ADO.Net Data Services (formerly Astoria). From an SOA/SaaS standpoint this is a good time to be a programmer.
Currently rated 5.0 by 1 people
- Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5
While I am having trouble getting behind Microsoft's AJAX implementation (that's really putting it lightly), I am starting to get excited about the MVC framework. My friend Jesse and I have spent quite a few hours now talking about REST, MVC, .Net and AJAX. You can see his Hydrogen CMS project here.
Check out this link for a very complete resource on MVC with .Net
http://quickstarts.asp.net/3-5-extensions/mvc/MVCOverview.aspx
Here you will find some nice screen-cast videos.
http://www.asp.net/learn/3.5-SP1/#mvc
I'll save the topic of Silverlight for another post.
Be the first to rate this post
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5
I don't care if you're creating AJAX based applications based in ASP.Net, Yahoo UI, ExtJS, JQuery or Tibco GI, if you're not riding the page bus you could be missing out on some fundamental benefits of a "Publish and Subscribe" event model. Get it here.
Testing
Imagine if you could simulate user click events without having to deal with functional automated test utilities that can inspect and manipulate the Document Object Model (DOM)? By hooking all of your user initiated events (keyboard or mouse) to Page Bus message handlers you can write test scripts that inject messages on to the bus and manipulate the AJAX application in the same way a user would. This technique can facilitate automated functional/regression testing.
Run Time Tutorials
Imagine if you could animate your AJAX application to behave as it might according to user interactions as part of a tutorial or training script. This method would give the user a hands on orientation without actually having any 'hands-on'. You can see something similar to this in TIBCO's sample application called Xignite.
Decoupling/Team Development
I have seen the Page Bus provide a clear delineation between the message publishers and their code and message subscribers and their code. This means you can delegate portions of the application to built by developers and have then interact in terms of messages and their contents. There is typically more meaningful documentation that arises from this interaction as well.
Modularity and Standard JavaScript API's
One way to provide a concise and standard API between modules of code is to provide a series of messages that some modules can publish in order to interact with other modules. TIBCO highlights this in their AJAX Portlet framework.
There are probably more reasons to use TIBCO's page bus. If you have any let me know.
The PageBusSample GI Application
- appCanvas.xml - The only GUI component in the application. It contains 4 panes.
- Top Left - A list control depicting the RSS data
- Top Right - A text box and a button. These are the user interface elements that initiate the message.
- Bottom Left - A block that serves as a runtime log only.
- Bottom Right - A matrix containing the RSS data that was downloaded
- RSStoCDF.xsl - An XSLT file that is used to transform RSS data into a Common Data Format (CDF) document. We will bind the list controls to this CDF document in order to display the data.
- LogHandler.js - This is a complete rip off of the Xignite application. I was interested in how they did the runtime logging pane at the bottom.
- pagebus.js - The TIBCO page bus JavaScript file
- pagebussample.js - This is the JavaScript file that contains all of the business logic.
What Happens?
- When the application loads (onLoad Script property of the Project Settings) the com.adamzastawski.samples.pagebussample.onLoad() function is called. This function subscribes to the message that will soon be published on the bus.
- When the user clicks the button in the top right pane, the application publishes a message to the bus that contains the text value of the textbox.
The handler that was registered onLoad is fired and the data is put into the cache.
- All the while the code is logging to the bottom left pane.
That's it. I hope this helps you decide if the page bus is something you think you can use in your AJAX application. You can download the sample GI project below.
PageBusSample.zip (10.25 kb)
Be the first to rate this post
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5
My friend Jesse showed me a cool little technique for introspecting a string array using Linq. Of course I realize that there a ton more fascinating Linq tutorials out there but this one showed me just how sweeping the effects of Linq are.
I first thought that Linq was just a neat way of generating a provider based Data Access Layer. Now I know that Linq can come in handy in a much broader array of solutions.
1: string[] textKeys = { "str1", "str2", "str3", "str4", "str5"}; 2:
3: if (textKeys.Contains("str1")) 4: { 5: //do something here
6: }
As I learn more about LINQ I will try to add some posts that actually provide more real-world value.
P.S. You will need to have "using System.Linq;" in your 'using' statements.
Currently rated 5.0 by 1 people
- Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5
Recently I got into a 'Usability' debate about what sort of menus where better; 'Office Like' menus or basic drop-down fly-out menus with tool tips. I was thinking about it and I started to wonder if it was even possible in my favorite AJAX web UI development environment (General Interface).
The answer is yes, of course, and there are a number of ways in which it could be accomplished. I chose to try it by re-writing the XSL that is used to render the Menu GUI component. You will have to realize that GI is alien technology reverse engineered by time traveling browser ninjas and the XSL method is the one that I felt was the most elegant. It is not the easiest way I can think of.
I have to admit that this example is incomplete for two reasons:
- I don't have any real business case for implementing this at this time. I am perfectly happy with the default menus for now.
- I am feeling very lazy tonight.
In the image below you will see an example of some of the menus in Office that I am talking about. They have a large graphical icon and two types of text, a bolded title and a non-bolded description.
Here is an example of the menus that I made by altering the default XSL for the menu component in GI.
- Copy the default XSL file from the GI runtime folder..(/JSX/xsl/jsxmenu.xsl) to the XSL folder under your current project.
- Alter the XSL file to show the menus the way you want them to.
- Then create an XML document using the GI 'Common Data Format' or CDF
<data jsxid="jsxroot">
<record jsxid="1" jsxtext="New" jsxtip="Tool Tip Here" jsxkeycode="ctrl+e" jsximg="images/paint_24.png" jsxexecute="alert('New Clicked');"/>
<record jsxid="2" jsxtext="Open" jsxtip="Tool Tip Here also" jsximg="images/flag_24.png" jsxexecute="alert('Open Clicked');">
<record jsxid="21" jsxtext="Open Sub 1" jsxtip="SubTip Here" jsxexecute="alert('Open Sub Clicked');"/>
</record>
<record jsxid="3" jsxtext="Save" jsxtip="Another Tool Tip here and this one is really lot of text." jsximg="images/foldr_24.png" jsxkeycode="ctrl+q" jsxexecute="alert('Save Clicked');"/>
</data>
Pay special attention to the 'jsximg', 'jsxexecute', 'jsxkeycode', and 'jsxtip' attributes. I chose to use the tool tip data as the description text. I could have used a custom attribute but I got lazy again.
- Apply the contents of this XML file to the 'XML String' property of the menu. You can also apply the path to this document in the 'XML URL' property but I am finding that the HOT KEYs (see jsxkeycode attribute) are not working when I do that. I have brought this up in the forum.
- I then copied some random icons into my local project and made sure the 'jsximg' attribute in the XML document was correct.
You can download the project and see what all was done to the XSL. Enjoy....
Be the first to rate this post
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5
Thanks to Bert de Jager for pointing out a bug in the Discovery Theme. I just uploaded a fix for it. It was due to a collision between two portions of the page using the same CSS style. It was an easy fix, I am only sorry it took me so long to get to it.
You can download the theme here.
Be the first to rate this post
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5
This is a great little Internet toy. I had a go at Silverlight cuz it's annoying me right now.
http://www.oreillymaker.com/link/6852/silverlight/
http://www.oreillymaker.com/link/6856/web-20/
Be the first to rate this post
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5
I found this Discovery theme on www.freecsstemplates.org and I thought it would make a great BlogEngine theme. I think I am going to take a break from BlogEngine themes for a while (not too long ;-). I am really not a designer and I fear that I just don't have the patience to monkey around in CSS for a few hours just to find out my work only looks good in IE and not in FireFox.
I have decided to put this theme out and then customize it for my blog. Here are some interesting notes about this theme:
- I thought it was too narrow so I widened it. To do so I needed to make the Cheetah picture longer. My Photoshop skillz are definitely lacking. I recommend you replace that picture with one of your own.
- The menu was originally styled incorrectly when viewed in FireFox so I noodled with the CSS until it worked. In doing so I learned two really interesting things about the IE Developer Toolbar witch I will share in a subsequent post.
You can download the theme here.
As always, if you have any problems, questions, or kudos, pass them along.
Currently rated 5.0 by 1 people
- Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5
My friends Jason and Jesse and I are having a blast converting different themes for BlogEngine.Net. I think it would be fun to write some extensions as well. I took the original version of this theme from www.styleshout.com. This is my first pass at this so I expect there to be some issues. If you have any problems or questions about this theme please let me know. You can download it here.
I am always browsing through the various free CSS templates out there and I have a whole list of themes I want to convert as time and patience allows. I am particularly impressed with Jason's 'StarGazer' theme.
Currently rated 4.0 by 3 people
- Currently 4/5 Stars.
- 1
- 2
- 3
- 4
- 5
Thanks to Jesse Foster for converting the 'Gluttony' Wordpress theme for use with Blogengine.net. I imagine there will be a flood of themes converted for/by the blogengine.net community in the days to come. I think I'll leave the cube for a while as small token of thanks. ;-)
Be the first to rate this post
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5