Mindful Sanity
Random rantings of a geek named Kelly

Silverlight Preparation

June 5, 2008 20:45 by kelly

Later this month (June 25, to be exact), Rod Paddock will be visiting the Winnipeg .NET User Group and talking about Silverlight for Business Developers.

While at DevTeach, I had the opportunity to see an all-day presentation by Rod and Jim Duffy on Silverlight development. Their presentation covered a number of items, including how to style Silverlight applications, data access, etc. Basically, it gave a nice broad introduction to a technology that will be growing in use as it begins to mature. Now that Microsoft has announced that Beta 2 of Silverlight will be released soon, alongside of a "Go Live" license for Silverlight (which basically means that Silverlight applications can now be fully launched for clients and customers, but should still be made known that it is still in "Beta"), I foresee that many applications will grow to use it as time goes on.

That being said, not everyone will switch right away. Why? Well, after becoming immersed back in many technological areas of late, I have become introduced to a movement, if you will, called ALT.NET. One of the elements of this movement (and, by no means, is the only piece of the puzzle) is that one should not limit one's self to a specific technology or methodology - basically, "The right tool for the job". Currently, there are many a site out there (including sites that we do for our clients at work) that utilize large elements of Flash content. If it works and does the job, why change? Depends on what we want. If we want a little animation for marketing purposes, use Flash; almost everyone already has the player installed so why change it? However, if we want a Rich Internet Application (RIA), then we now have options with both Flash and Silverlight.

I can see, still, that Flash will continue to dominate at this time. Why? Lots of investment already by companies with employees already skilled in the technology. It works, it has had years to gain maturity in the industry... why break a good thing? However, it is not the most user friendly for a developer. ActionScript is similar in nature to JavaScript, which many a developer has said sucks (although fellow Canadian Justice Gray is not one of them). The largest complaint, and I have only worked with ActionScript in a very cursory manner, is that there is no true IDE in which to code for it (nothing native to the Adobe suite at any rate). (CAVEAT: Yes, I know that Adobe Flex is now out, but I have not used it and have not discussed it with anyone who has. It may be good, and is geared towards developers, but the inherit items within ActionScript may make using it more complex than it has to be.) There are some coming out, sure, but it's not as intuitive for a developer. And, when one is creating a RIA, understanding software development and how to effectively parse, utilize and manipulate data, is essential. I work with some extremely creative and highly intelligent individuals, but only a few of them grasp the "developer mindset". That being said, what a developer would make look like your standard button these guys can make look like gold to the end user. Different skill sets for different folks. And the rare occasion is that you find individuals who can really bridge that gap between developer and designer.

So, what about Silverlight? It uses 2 tools and multiple technologies. First, for designers, there is Expression Blend (to truly take advantage of Silverlight as it currently stands, you need the 2.5 Preview). This is the designer tool that is used in order to build Silverlight (or WPF) applications. It creates the same solution files that the development tools use, which is completely interchangeable. Speaking of, the developers in a Windows environment use Visual Studio 2008. This allows them to build applications using their favourite .NET compliant language. (Personally, though quite comfortable with VB.NET, I am using some of this time to learn C# more effectively and get back into {} and ;.) The same solution file can be passed back and forth, which is great, because then a developer can add actions and events to items within the Silverlight application in a similar way to how they do it with ASP.NET and WinForms - no new language, no new environment, just a comfortable starting point where you learn a new technology and apply it in a much more seamless manner.

So, after all this, what preparation? Before Rod speaks in Winnipeg, I want to give an Introduction to Silverlight presentation to my coworkers and colleagues. I want to encourage attendance to the event, but also want to get people looking into this system for building RIAs, which seem to be where many an application is going. I think that this is going to be key to have a proper evaluation and review of a competing technology, but also a technology that can be used side-by-side with other pieces. Who says you have to be exclusively Flash or exclusively Silverlight? (Although Adobe and Microsoft, respectively, would probably like that; but keep in mind that Microsoft has not yet migrated to all Silverlight yet either... I had a blog post I read on this that I just have to find...) EDIT: Link added to the previous content for information as to why MS has not fully migrated - it is the obvious.

The key thing here, though, is choice. And to get choice, you have to be informed. This is one way that I hope to contribute and drive people to look at this technology. Whether adopted or not, an informed decision cannot be made without investigation, testing, and most of all having fun in building stuff. That will make or break it for a company.


Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags:
Categories: Development | Silverlight | Tools
Actions: E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed

What I'm up to...

May 23, 2008 17:24 by kelly

I just got back from Toronto today. Yes, I went again. This time it was for client meetings, though, so was not for a purely technical experience. That being said, I do work in a software company and so it was about software we were talking about.

Although the client conversation has nothing to do with the various technical pieces running through my mind right now, I have 3 primary things I want to learn in the near future:

  • Silverlight development
  • WPF development
  • WCF development

But the question is... how can I make sure that I learn the technologies?

After reading a recent post by Justice Gray where he discusses technical presentations of late, he makes a strong point about how many presenters are in it for the wrong reasons. There are many who participate for the right reasons, but there are some who do not. I would be doing presentations going forward for somewhat selfish reasons too, but for a different end goal. My goal is to learn the technologies. How can I make myself do that? By preparing to do a presentation on the topics that I am learning. This gives me incentive to learn better, as I would have to present that information to others to absorb. Yes, it's selfish, but it makes sure that I know what I am talking about otherwise I make myself lose all credibility with anything I do in the future.

Pressure? Sure. Resulting satisfaction? As D'Arcy said recently, there is a difference between teaching and speaking. But your incentive for how you approach the presentation is really what is key. For me, any presentations I do would be twofold: one, to teach (depending on the depth of the presentation; introductory ones may be used merely to spark interest in others rather than detailed teaching)... where was I? Oh yes, to teach others a new technology or idea. But second, to teach me several things - the necessary information one needs to make a valid presentation, to learn new technologies for myself and my own personal growth, but also to give back into the community here and elsewhere that has helped spark a newfound interest back in developing. (For those that don't know me very well, my current position has me in a project management role, not a development one. The Winnipeg .NET User Group and DevTeach, as well as meeting many people at these conferences, have continued my interest in development and keeping me current and wanting to challenge myself more.)

So there we have it. I will be learning these technologies and holding myself accountable for them via a presentation/teaching method, either through the User Group, through a code camp, or even if just being used internally in my own workplace to impart the knowledge. I know there have been challenges before that I have slacked on, but a more focused method here (along with still reading a ton of books, alternating technical and business (usually company profiles) ones) will allow me to continue to grow.


Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags:
Categories: Development | General
Actions: E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed

ASP.NET MVC : First Attempt

April 23, 2008 19:57 by kelly

Last night at the Winnipeg .NET User Group, D'Arcy Lussier presented on the ASP.NET MVC Framework. He had spoken previously at our Code Camp on it, and this presentation went into more detail. It was a good intro to many of what MVC is and why it is going to be useful and (relatively) easy to build websites. I have learned about MVC some time ago and wanted to learn more, but needed several things to do it:

  1. Visual Studio 2008 (got a full version at the Heroes Happen Here event)
  2. An idea of what to do to learn it
  3. Time

That last one was the hard part. But today I was home sick from work so decided to play with it a little. And what project did I choose? Well, my company does some public-facing websites for our clients and we are in the midst of reskinning one. As a Project Manager, my role is not to build the applications anymore but to make sure the work gets done. After 10 years (5 years at my current company) of doing such sites and applications, it is easier said than done. However, this is still how I can do the work AND learn MVC: take the project and convert it at home to an MVC app. Now, I know I won't have all the bells and whistles right off the hop, and my CSS skills need some DEFINITE work, but the main functionality should be fairly straightforward. After playing with it for several hours, here is what I have found so far:

Routing Table

Love it. Since I knew what the URL structure would be up front, this was relatively simple to do. There are some things that others out there may know that I do not, though, so here are some issues I have:

I have multiple levels that need analysis. Here is an example of a URL (not the actual URL being used but something to give the same format so it's not a client URL):

http://localhost/books/2008/scifi/home
http://localhost/books/2007/fantasy/home

I use the following route table with it:

            routes.Add(new Route("{controller}/2008/scifi/{action}/{id}", new MvcRouteHandler()) {
                Defaults = new RouteValueDictionary(new { controller = "Books", action = "Home", id = "" }),
            });
            routes.Add(new Route("{controller}/2007/fantasy/{action}/{id}", new MvcRouteHandler()) {
                Defaults = new RouteValueDictionary(new { controller = "Books", action = "Home", id = "" }),
            });

Now, I could use "id" but I still need other sub-pages for similar items and that's what I would use the id for. Now I know I can strip out the other variables with a Request object call in code, but is there an easier way to create the route table, or do I have to have more hard-coded values such as above as I progress? (Suggestions are greatly appreciated.)

Apart from that, the route table is working really well. I still have to fix a 404 if it's not found at all, but I can always go in there and fix that later (already saw a blog post elsewhere on that). But so far, got the controllers all worked out, the route table, and the base ASPX pages and the primary master page (still have to add in the nested master pages). Not bad for a first attempt at playing with it (more than just watching webcasts and reading blog posts), if I do say so myself...


Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5