Jay Kimble : Pocket CBZ News Feed 
Wednesday, March 03, 2010  |  From Jay Kimble : Pocket CBZ

our next meeting is tonight at 7pm at the MS offices (check out the TampaSLUG site for more info). Greg is bringing a us a talk which should coincide nicely with the talk I gave last month (even if you missed last month Greg's talk is still for those of you who want to learn).  If you have a desire to learn Silverlight, but don't know where to begin, or simply just want to get some background in it. This is the group and night for you! .



Greg is really knowledgaeble about Silverlight so this night aims to be a really good evening.



We will have pizza and soda, so plan on coming! BUT, there is one thing you must do! Register here --> http://tampaslug310.eventbrite.com/



Also as usual there will be a social afterwards which is a good place to ask the Silverlight gurus those tough questions..

Tuesday, February 09, 2010  |  From Jay Kimble : Pocket CBZ

Tomorrow, is our next meeting at 7pm at the MS offices (check out the TampaSLUG site for more info). I want to stress that this is a very basic 101 type of talk. If you have a desire to learn Silverlight, but don't know where to begin, or simply just want to get some background in it. This is the group and night for you! The night will be focused on a couple topics, but it's mostly about building forms with Silverlight and binding data to those forms to make your life easier (SIlverlight is actually easier in many respects from what you are used to if you are a web developer).



BTW, I hear its the speaker's first presentation on Silverlight so at the very least it will be fun to see him sweat.



We will have pizza and soda, so plan on coming! BUT, there is one thing you must do! Register here --> http://tampaslug0210.eventbrite.com/

Sunday, January 10, 2010  |  From Jay Kimble : Pocket CBZ

I want to blog a quick reminder to my readers the first (official) meeting of the Tampa SLUG (Silverlight User Group) is Thursday, Jan 14th, 2010 at the Microsoft offices in Tampa. We’re starting the group off with a series of topics that will be good for beginners. Here’s the info on the first topic:

Introduction to the Silverlight Workflow: One of the promises of separating business logic from the display is that designers and developers can more easily work with each other to create an application. Learn about strategies to actually deliver on this promise and make your data and logic more designer friendly.

This topic will be done by Bill Reiss (Silverlight MVP). We are priviledged to have Bill --the first ever Silverlight MVP-- as a part of our group. Bill could present every month, but he won’t. He will be around to help out (as well as correct me and others who will be presenting). If you plan on coming please RSVP at http://silvertb.eventbrite.com/ so we can know how many folks are coming.

You can read up more about our group here at http://www.tampaslug.net.

Tuesday, November 03, 2009  |  From Jay Kimble : Pocket CBZ

We are not cancelling though. Greg Leonardo has graciously offered to step in and give us a talk he calls “Impromptu Sketchflow.” Should be fun. Everything else is the same (7:00pm for the speaker/Pizza at 6:30pm.. MS Offices)

Tuesday, November 03, 2009  |  From Jay Kimble : Pocket CBZ

We are not cancelling though. Greg Leonardo has graciously offered to step in and give us a talk he calls “Impromptu Sketchflow.” Should be fun. Everything else is the same (7:00pm for the speaker/Pizza at 6:30pm.. MS Offices)

Tuesday, November 03, 2009  |  From Jay Kimble : Pocket CBZ

We are not cancelling though. Greg Leonardo has graciously offered to step in and give us a talk he calls “Impromptu Sketchflow.” Should be fun. Everything else is the same (7:00pm for the speaker/Pizza at 6:30pm.. MS Offices)

Tuesday, November 03, 2009  |  From Jay Kimble : Pocket CBZ

We are not cancelling though. Greg Leonardo has graciously offered to step in and give us a talk he calls “Impromptu Sketchflow.” Should be fun. Everything else is the same (7:00pm for the speaker/Pizza at 6:30pm.. MS Offices)

Tuesday, November 03, 2009  |  From Jay Kimble : Pocket CBZ

We are not cancelling though. Greg Leonardo has graciously offered to step in and give us a talk he calls “Impromptu Sketchflow.” Should be fun. Everything else is the same (7:00pm for the speaker/Pizza at 6:30pm.. MS Offices)

Tuesday, November 03, 2009  |  From Jay Kimble : Pocket CBZ

We are not cancelling though. Greg Leonardo has graciously offered to step in and give us a talk he calls “Impromptu Sketchflow.” Should be fun. Everything else is the same (7:00pm for the speaker/Pizza at 6:30pm.. MS Offices)

Thursday, October 29, 2009  |  From Jay Kimble : Pocket CBZ

Next Tuesday, November 3rd, we have Jim Zimmerman coming in. Jim is talking about a subject that in my opinion is important to both developers and designers. Jim will be showing us how to do something that both areas of app development need to know how to do. He’s teaching us how to take a Photoshop file, slice it up into usable web graphics and then build html and CSS to create a web layout from the original file which is perfect for an ASP.NET Masterpage.

You might wonder why I think this is so important. The reason is simple. In today’s world of app development, a designer who just produces graphics and little else will someday go the way of the designer. As well as a developer with no design skills is equally on its way out. We need to know something about each other’s expertise, and be able to function in the tools of the “other half.”

Anyway, Pizza will hopefully arrive around 6:30-6:45pm. We will start the session at 7:00pm.

Wednesday, September 16, 2009  |  From Jay Kimble : Pocket CBZ

The next TRUIX meeting is October 8th. We are still finalizing some of the details for the night, but we will definitely be continuing tutorial on building a UI (using our www.TampaUx.net site). We also plan on bringing you some material for the Silverlight 3/Expression 3 launch.

Things will get started at about 7:00pm (with doors opening up at 6:30pm).

Sorry it’s taken us so long to get a next meeting (we’ve had a lot of scheduling conflicts to work through of our core team).

PS. the meeting after this one will be on November 3rd and we’ll have Jim Zimmerman talking to us about a topic that is definitely in the Dev-Signer realm! Stay tuned!

Thursday, September 10, 2009  |  From Jay Kimble : Pocket CBZ

I’m in the process of building a new ActionResult for ASP.NET MVC. This new ActionResult will allow you to transform data into a PDF, RTF, or HTML (it uses iTextSharp behind the scenes, and yes, I have a working prototype right now that isn’t all that useful yet.. and you have to know way too much in order to use it as of this time).

Essentially what I want to do is use any view engine that the programmer chooses and convert the resulting html, xml, or regular string data into a file that gets pushed to the browser. All this works for all of the alternative engines, but the default engines doesn’t work… so, without further adieu

Challenge #1: WebFormViewEngine ignores the TextStream you give it

Actually this might be the only challenge here. I tried numerous solutions.. none of which worked. I finally cracked open the MVC source code and determined that I needed to inherit form their class and do some overriding… In my API I created BufferedViewPage, and BufferedViewPage<T> so I could intercept the RenderView code. Here’s a copy of my current (in progress) version of BufferedViewPage:

   1: public class BufferedViewPage : ViewPage, IBufferWebFormView

<!--CRLF-->

   2: {

<!--CRLF-->

   3:     public TextWriter Writer { get; set; }

<!--CRLF-->

   4:  

<!--CRLF-->

   5:     public override void RenderView(ViewContext viewContext)

<!--CRLF-->

   6:     {

<!--CRLF-->

   7:         ViewContext = viewContext;

<!--CRLF-->

   8:         InitHelpers();

<!--CRLF-->

   9:         // Tracing requires Page IDs to be unique.

<!--CRLF-->

  10:         ID = Guid.NewGuid().ToString();

<!--CRLF-->

  11:         var wfv = viewContext.View as WebFormView;

<!--CRLF-->

  12:         var page = (wfv!=null?wfv.ViewPath:""); // View should always be WebFormView

<!--CRLF-->

  13:  

<!--CRLF-->

  14:         if (viewContext.ViewData["____writer"] != null)

<!--CRLF-->

  15:         {

<!--CRLF-->

  16:             Writer = viewContext.ViewData["____writer"] as TextWriter;

<!--CRLF-->

  17:         }

<!--CRLF-->

  18:         ProcessRequest(new HttpContext(new simpleWR(page, viewContext.HttpContext, viewContext.HttpContext.Response.Output)));

<!--CRLF-->

  19:         if (Writer != null)

<!--CRLF-->

  20:             this.Render(new HtmlTextWriter(Writer));

<!--CRLF-->

  21:  

<!--CRLF-->

  22:     }

<!--CRLF-->

  23: }

<!--CRLF-->



You will see that I’m injecting a new writer into the ViewData (I’ll eventuually come up with a better mechanism, but it works for now). My code for the most part copies what the standard WebFormViewPage does except that you’ll see that if the page is a WebFormView it runs Render after running ProcessRequest. I’m not sure if this is problematic or not, but it works! Before I release the actual library I will probably clean this up quite a bit (this is mainly an exercise in helping anyone who wants to use the WebFormViewEngine, but somehow capture the result and do something else with it..



BTW, the part of the code here you don’t see is that before I render I make sure buffering is on and then I clear the response text after generating this (which clearing the response was about the only thing I could do.. that generated data in HttpContext.Current.Response.Output is lost to you… at least I couldn’t find a way to get at it…)

Thursday, September 03, 2009  |  From Jay Kimble : Pocket CBZ

As you may be aware Scott Hanselman’s 2009 Ultimate Developer and Power Users Tool List for Windows came out yesterday. If you are like me you end up pooling through the list especially the new stuff to see if there is something cool that somehow you missed.

I found an item on the list that answers something I think I have been looking for (but not for me), but before I go on I need to give you some background (as usual).

Kevin D. Wolf (aka ByteMaster) and I have been talking over the last several months on all things Ajax. We’re both pretty deep on the topic of Ajax (Actually Kevin is deep on a number of topics), and we’re both pretty opinionated about a few things (I know you are shocked that I would say that about myself).

One of the things I’ve sort of been looking for is something that makes it easy for someone to write Ajax. The new Blend Skecthflow stuff is a HUGE game changer, but if what I want to write is Ajax then after using Sketchflow I’m back to the drawing board.

Interractions in Ajax.. found!

So yesterday, I was browsing the Hanselman list and I found a side reference to a tool to watch called “IxEdit.” All I can say is WOW! [Personal Note: Diane Leeper download this now! I think you could have some fin with this…] Their video tells it all, but I will tell you what I think is cool about it.

You create a page and add references to jquery, jquery ui, and their ixEdit script as well as a few CSS. Once you do this the page launches with a movable dialog. This new dialog let’s you create Ajax/Web 2.0 (more the latter) interactions with your page all by simply playing in their GUI. Really, really cool! Now they don’t do everything, and in fact from what I saw of the tool you can’t set up to make calls back to the server (but I could see something like that being set up, and am starting to think about it). Once you are satisfied you can “save and reload” which reloads the page and applies your designed interaction (so now you can see how it worked).. something not look right simply edit the interaction to tweak it’s setting.

When you are done it will help you deploy the script, so now you have designed JS code with out actually writing a line of code! Really, really cool, IMO!

[I spent a couple of hours looking for pictures to fancy this up a little.. I run a UI/UX users group for crying out loud.. I need to get better at that, so sorry my post is bland.. I’ll try to follow up with something more graphically pleasing]

Tuesday, July 28, 2009  |  From Jay Kimble : Pocket CBZ

Reinventing TUX - Our Website... and Our Identity

Big things in the wind. Besides a new location, we are making a slight URL change to <acronym>www.TampaUX.net</acronym>.

With a new web address, we decided that a new design was in order, so our next session will be all about reinventing our web site and setting it up for future development by YOU!

Speakers:

  • Roy Lawson (Roy couldn’t make it.. it’s my fault.. we’ll get him another month)
  • Shawn Cady
  • Jay Kimble
  • Nikita Polyakov
  • Kevin Wolf

NEW Location:
Microsoft Corporation 5426 Bay Center Suite 700 Tampa, FL 33609 Map

[A little busy today, so yes, I stole Nikita’s post]

Monday, July 20, 2009  |  From Jay Kimble : Pocket CBZ

If you’ve ever tried to use jQuery UI with Visual Studio, you’ve run into a JavaScript parse error and you lose JavaScript intellisense in Visual Studio. I wasn’t exactly sure of the issue until I read someone’s advice (who was just trying to get the datepicker working) to simply include a dummy jquery-datepicker-vsdoc.js file. So I did this for the jquery-ui.js file and lo and behold, no JavaScript parsing errors, and I had intellisense for everything EXCEPT jQuery UI.

Anyway, I dug around and couldn’t find one… so I created the beginnings of one. What you get is very core level (and not an actual working file). Simply add it to your project along side your jquery-ui.js file and VS will automagically realize that when it gives you intellisense for JavaScript and you are using (or have referenced) the jquery-ui file.

As I said it’s not complete. The areas that I know for sure is that it doesn’t give you any of the theming support.. actually the jquery.ui object is pretty much not there at all… I did get the effects and all the base controls intellisense working (datepicker, tabs, dialogs, etc.). It’s not perfect, but it will be a good start for someone else…

How to Use it
So to use this simply add it alongside your jquery-ui.js file in visual studio and visual studio should pick up my file and use it to give you intellisense. If you are using an external JS file you’ll need to use “/// <reference… /> to reference the JS file.

If I get around to it I will publish an update in the future.

File Attachment: jquery-ui-vsdoc.js

Wednesday, July 15, 2009  |  From Jay Kimble : Pocket CBZ

This is a concept I have been pondering lately (and not just from a personal perspective). To be clear on the concept, here’s the idea: what would you do differently right now, if you knew in 6 months you would be killed in an accident (and not a terminal illness)?

Personally the answer that we all come up tends to be the same. Spend more time with family and friends. Have more fun. Maybe, join a religion or get deeper in the one that you subscribe to(you gotta worry about the afterlife if you believe in one.. which obviously I do).

Professionally though, you might think a little differently. For instance I was tweeting this last week and Steve Hebert (can’t find your blog anymore man) responded…

To summarize him he said that he would find a fun project and forget about unit testing on it (no point if you are dying in the not too distant future… it’s someone else’ problem… ) Interestingly enough I would say the opposite. Now to make it really weird, Steve is probably more in that realm than I am.. My suspicion for why this is has something to do with our current teams. My current team is in many respects very inexperienced; I’d bet the team Steve would pick for himself or who he would have in mind working with him isn’t. My reasons for wanting to do more is that I would want my team to have a better understanding of my code.

Anyway, for me the more critical fact is that I would probably doing less development on my team.. Seriously, I’d be investing a lot more time into my team helping them grow.

If I took the fun route, I’d be working on probably PocketCBZ or one of my other “fun” projects (which by the way have no unit tests in them)..

How about you?

Wednesday, July 15, 2009  |  From Jay Kimble : Pocket CBZ

I just wanted to mention that we added a new blogger here on theruntime.com (actually we have a few more in the pipeline. Guiseppe (“G” hereafter) is my workplace’s resident Reporting Services guru. He’s gonna focusing on Reporting Services (duhh), SSIS (which he also does), and Analysis Services (an area I bet most of us could use some additional knowledge of).

He already put up an intro post here.

Monday, July 06, 2009  |  From Jay Kimble : Pocket CBZ

Just wanted to fire off a quick blog post/update on what is happening with Tampa UX this month. With the switch to the Microsoft Offices in Tampa (map, etc to come in a future post), we had to adjust the schedule a little, so sorry if this inconveniences you (BTW, I don’t have credentials for our web site nor do I have the email list at this time, but I will do my best to update them soon).

Look for an update on our new URL – http://www.tampaux.NET

We have really, really exciting things happening (I can’t wait to share them at the next meeting). I can tell you that next month is going to be mostly about re-inventing our web site.

Among other things, we’re going to open source our web site’s source code and will be taking suggestions/patches from you (for design as well as development tasks).

Anyway, stay tuned for more info…

Wednesday, June 24, 2009  |  From Jay Kimble : Pocket CBZ

For years, I have been espousing how great Script# is. I often do an advanced MS ASP.NET Ajax client talk and end it with a Script# talk. Mainly because I think that the idea of learning the nuances of JavaScript OO techniques can be a little confusing. It’s really the challenge (All you need to do is search the archives of my blog and you’ll see my own confusion on this topic).

I think many web developers can wrap their heads around building the functionality, but making something private/public/static can get a little confusing. Especially if you are used to using something like C# or VB to do it.

Kevin “ByteMaster” Wolf and I have been talking about this. As a result of those talks I started playing with an idea of allowing developers create something that feels more like OO… Anyway, I have come up with a very alpha version.

A Better OO For JavaScript??

   1: compileClasses({    

<!--CRLF-->

   2:     testClass: {        

<!--CRLF-->

   3:         ctor: function() {            

<!--CRLF-->

   4:             // this is a test        

<!--CRLF-->

   5:         },        

<!--CRLF-->

   6:         private: {            

<!--CRLF-->

   7:             privateVar:1,            

<!--CRLF-->

   8:             privateMethd:function() {                

<!--CRLF-->

   9:                 // test method            

<!--CRLF-->

  10:             }        

<!--CRLF-->

  11:         },        

<!--CRLF-->

  12:         public:{            

<!--CRLF-->

  13:             // public stuff here            

<!--CRLF-->

  14:             publicVar:"2"        

<!--CRLF-->

  15:         },        

<!--CRLF-->

  16:         static:{            

<!--CRLF-->

  17:             //public statics            

<!--CRLF-->

  18:             staticVar:"test"        

<!--CRLF-->

  19:         }    

<!--CRLF-->

  20:     },    

<!--CRLF-->

  21:     testClass2: {        

<!--CRLF-->

  22:         ctor: testFunc,        

<!--CRLF-->

  23:         private: {            

<!--CRLF-->

  24:             privateVar2:"2"        

<!--CRLF-->

  25:         },        

<!--CRLF-->

  26:         public:{            

<!--CRLF-->

  27:             publicMethod:function() {                

<!--CRLF-->

  28:                 return true;            

<!--CRLF-->

  29:             },            

<!--CRLF-->

  30:             myVar:"this is a test",            

<!--CRLF-->

  31:             dispose:function() {            

<!--CRLF-->

  32:             }        

<!--CRLF-->

  33:         },        

<!--CRLF-->

  34:         implements:["Sys.IDisposable"]    

<!--CRLF-->

  35:     }

<!--CRLF-->

  36: });

<!--CRLF-->



Two classes are defined here.. the first one is the testClass. you will see that I’m creating a JSON object that has members called “ctor” (constructor), “private” (private members are contained within this object), “public” (public members are contained within this object),”static” (static public members are contained within this object), and “implements” (“array of interfaces that are implemented). I also will handle single inheritance using a member called “inherits.”



I think this makes class definition a little more straightforward for those of us who aren’t closure gurus, and it just might replace the pull of Script# on my life.



Right now this all works with a simple function that uses the MS Ajax Client framework. I’m considering doing this for other frameworks (so if you love some other framework, never fear I’m considering your framework as well).



I created a codeplex project which contains a single release that contains a simple ASP.NET project (could have been a simple html page too).. Don’t fret I expect the code to be a ton cleaner in the next version (I’m reading the MEAP version of John Resig’s Secrets of the JavaScript Ninja (and am learning a ton!)



Here’s the link: JsClassDef Project



Let me know what you think.. does it stink? is it cool? I know it ain’t Resig-like, but both Kevin and I think the simplified structure is nice and not un-JavaScript-like

Wednesday, June 10, 2009  |  From Jay Kimble : Pocket CBZ

[Here’s a preview of something I’m going to show Thursday night at the Tampa MVC group.]

You may have thought that by jumping on ASP.NET MVC that you have to leave behind all the cool Ajax Control Toolbox controls.. or more than likely you realize that it’s possible to use them, but one has to be a “JavaScript Rocket Scientist” to use them..

It’s really not, but you do need a couple things to use them.. First of all go here (Bertrand Le Roy’s blog) and pick up the jQuery plugin that let’s you instantiate MS Ajax Behaviors. Next go here to the Ajax Control Toolbox project and get both the ScriptFilesOnly project and the Source code as with MVC you won’t need anything but the JS files since the source/DLLs are for WebForms-related controls, but the Source code contains the debug version of the JS files which we’ll need (By the way, 6 months from now that link to the Ajax Control Toolbox will be old so you’ll probably want to get the latest release, and not the release I pointed at).

Now let’s look at how you would wire up the DropShadow behavior (aka the DropShadow Extender). First of all, we need to figure out the references. Thanks to Visual Studio 2008, this is easy. Using the text editor/view of your choice, open up the DropShadowBehavior.Debug.js from the Source project (not the ScriptOnly zip); this is located under the zip file at .\AjaxControlToolkitSource\AjaxControlToolkit\DropShadow. When you open up the file you will see the following at the top of the file:

   1: /// <reference name="MicrosoftAjax.debug.js" />

<!--CRLF-->

   2: /// <reference name="MicrosoftAjaxTimer.debug.js" />

<!--CRLF-->

   3: /// <reference name="MicrosoftAjaxWebForms.debug.js" />

<!--CRLF-->

   4: /// <reference path="../ExtenderBase/BaseScripts.js" />

<!--CRLF-->

   5: /// <reference path="../Common/Common.js" />

<!--CRLF-->

   6: /// <reference path="../RoundedCorners/RoundedCornersBehavior.js" />

<!--CRLF-->

   7: /// <reference path="../Compat/Timer/Timer.js" />

<!--CRLF-->



The first 3 items are all the standard MS Ajax client library, so we’ll need to reference those. Now we need to look at the last 4 items. If you open up the files from the ScriptOnly zip file, you aren’t going to find these exact named files; to find the right file look at the end of the file name to find the actual file you need to reference. You’ll also need to reference jQuery and Bertrand Le Roy plugins. Here’s what the references look like:





   1: <script src="Scripts/MicrosoftAjax.js" type="text/javascript"></script>

<!--CRLF-->

   2: <script src="Scripts/jquery-1.3.2.js" type="text/javascript"></script>

<!--CRLF-->

   3: <script src="Scripts/JqueryPlugin/jquery.MicrosoftAjax.js" type="text/javascript"></script>

<!--CRLF-->

   4:  

<!--CRLF-->

   5: <script src="Scripts/MicrosoftAjaxTimer.js" type="text/javascript"></script>    

<!--CRLF-->

   6: <script src="Scripts/MicrosoftAjaxWebForms.js" type="text/javascript"></script>    

<!--CRLF-->

   7: <script src="Scripts/AjaxCT/AjaxControlToolkit.ExtenderBase.BaseScripts.js" type="text/javascript"></script>

<!--CRLF-->

   8: <script src="Scripts/AjaxCT/AjaxControlToolkit.Common.Common.js" type="text/javascript"></script>

<!--CRLF-->

   9: <script src="Scripts/AjaxCT/AjaxControlToolkit.RoundedCorners.RoundedCornersBehavior.js" type="text/javascript"></script>

<!--CRLF-->

  10: <script src="Scripts/AjaxCT/AjaxControlToolkit.Compat.Timer.Timer.js" type="text/javascript"></script>

<!--CRLF-->

  11: <script src="Scripts/AjaxCT/AjaxControlToolkit.DropShadow.DropShadowBehavior.js" type="text/javascript"></script>

<!--CRLF-->



Here’s how we can then make every div with a “box” class to have a drop shadow:





   1: $().ready(function() {

<!--CRLF-->

   2:     $(".box").create(AjaxControlToolkit.DropShadowBehavior,

<!--CRLF-->

   3:             { 

<!--CRLF-->

   4:                 Opacity: 0.3,

<!--CRLF-->

   5:                 Rounded: false,

<!--CRLF-->

   6:                 TrackPosition: true,

<!--CRLF-->

   7:                 Width: 5

<!--CRLF-->

   8:             });

<!--CRLF-->

   9: });

<!--CRLF-->



See that JSON string (lines 3-8). If you look at those settings closely and compare them to the Ajax Control Toolbox documentation web site, you’ll see that these are the same settings that the extender uses which should make everything easy.

 Jay Kimble : Pocket CBZ News Feed 

Last edited Jan 28, 2008 at 3:46 PM by DevTheo, version 2

Comments

No comments yet.