Let's get some data from a RSS feed. No big deal, because there's a pretty example in the silverlight site quickstarts.
However, I wanted to do my concept prove in VB.Net, and take the data from a List in Sharepoint.
As usual, Sharepoint let's you create your list, then you can add some items, and because I don´t know the trick to get directly the RSS reference, I publish the list contents in a Content query web part, activating the feed.
Ah, of course, you must add a Clientpolicyaccess.xml file on tje root of the site to get access.
But when I translate the code for my new Silverlight app, and ran it: surprise!!!! Nothing happends. So I check the IDE output and there's a message like this:
A first chance exception of type 'System.UnauthorizedAccessException' occurred in System.Windows.dll
So I added a variable to get the content from the feed, and a button to launch the textbox refresh. The content reading was fine; and when the button was clicked the content was assigned fine, so where's the deal?
Thanks to the post from Mark Monster, I discover the trick: use
Dispatcher.BeginInvoque(Adressof YourUIUpdateOps)
inside the thread; you need to create a method called YourUIUpdateOps to define the UI ops that you need.
And all this is needed because you can't perform UI ops in threads used for async communications (beware of WS).
24 hours to get the answer. Such is life.
Sunday, September 7, 2008
Tuesday, September 2, 2008
Virtualization: cheaper development & deployment environments
So, you don´t have a server at home or can´t stay at your client's cold room, and you need to do some tests in a sort of infrastructure. Well, then the only chance to have access to these resources is by using a virtualization software, that allows a single host computer to create and run one or more virtual environments.
The options:
VMware Home
Virtual PC Home
VirtualBox Home
Parallels
If you are using Virtual PC, this links are usefull:
How to Create a MOSS 2007 VPC Image: The Whole 9 Yards
Why I Love My Virtual PCs
If you are using VirtualBox:
Create a Virtual Machine with VirtualBox
To know more about virtualization:
What is virtualization?
Virtualization (wiki)
Virtualization - A Quick Tutorial
Virtualization 101
The Hows and Whys of Server Virtualization
The options:
VMware Home
Virtual PC Home
VirtualBox Home
Parallels
If you are using Virtual PC, this links are usefull:
How to Create a MOSS 2007 VPC Image: The Whole 9 Yards
Why I Love My Virtual PCs
If you are using VirtualBox:
Create a Virtual Machine with VirtualBox
To know more about virtualization:
What is virtualization?
Virtualization (wiki)
Virtualization - A Quick Tutorial
Virtualization 101
The Hows and Whys of Server Virtualization
Silverlight. Month 1.
It's been an interesting experience this days with Silverlight. The reasons are many:
- A multiplatform multi-browser technology with MS support.
- It was used to transmit the Olympics over the Internet.
- The community is embracing the new toy, makint examples, articles & video tutorials.
Seems like Flex/Flash are not alone anymore in the Web.
Next steps to climb the lerning curve:
+ Integration with Sharepoint 2007.
+ Produce a showcase to explore the capabilities of the platform and tools.
+ Wait till november to get the release of versión 2.
Time is coming for a Saas project!
- A multiplatform multi-browser technology with MS support.
- It was used to transmit the Olympics over the Internet.
- The community is embracing the new toy, makint examples, articles & video tutorials.
Seems like Flex/Flash are not alone anymore in the Web.
Next steps to climb the lerning curve:
+ Integration with Sharepoint 2007.
+ Produce a showcase to explore the capabilities of the platform and tools.
+ Wait till november to get the release of versión 2.
Time is coming for a Saas project!
Friday, August 1, 2008
Silverlight. Week 1.
Ok. Several things around Silverlight.
Data support is cool, but escenarios are no so well documented. For instance, in my case I need to deploy a SL app that consumes data from a WCF web service, and...catches the username from the user in turn.
In order to catch usernames, you need to add some code to the ASP.Net SL host page, to put this information in a hidden field, to recover it later from Silverlight. And, to have some users, you must add them to the server, and in the IIS stablish the windows authentication access on.
This part is cool. You see your user´s name when load the app, but when you try to get the data, ...PUFFFF. Nothing happends. Why?
Well, a nasty detail appear: WCFs only work with anonymous access, so the app and the web server can´t live in the same site.
By the way, its important to create a deployment environment, cause there are lots of surprises that the dev environment hides from us.
Data support is cool, but escenarios are no so well documented. For instance, in my case I need to deploy a SL app that consumes data from a WCF web service, and...catches the username from the user in turn.
In order to catch usernames, you need to add some code to the ASP.Net SL host page, to put this information in a hidden field, to recover it later from Silverlight. And, to have some users, you must add them to the server, and in the IIS stablish the windows authentication access on.
This part is cool. You see your user´s name when load the app, but when you try to get the data, ...PUFFFF. Nothing happends. Why?
Well, a nasty detail appear: WCFs only work with anonymous access, so the app and the web server can´t live in the same site.
By the way, its important to create a deployment environment, cause there are lots of surprises that the dev environment hides from us.
Tuesday, July 22, 2008
Silverlight. Day 5.
OK, it's showtime. The mission: deploy a Silverlight application in a production server with WSS 3.0.
The first attemp was made by someone else, and the behavior when the .aspx loads, was that the UI appears just for 2 second, and then, the browser's area went blank. No message, no warning, no nothing.
Firts: set your IIS MIMEs.
Extension MIME Type
.manifest application/manifest
.xaml application/xaml+xml
.dll application/x-msdownload
.application application/x-ms-application
.xbap application/x-ms-xbap
.deploy application/octet-stream
.xps application/vnd.ms-xpsdocument
.xap application/x-silverlight-app
Second: create a virtual directory or site, and put your ag_dummy.html, web.config, \ClientBin and app.xap there. Be sure to stablish the correct silverlight version. I spend more than 3 hours reconfiguring our dev machine to rip of beta 1 and launch beta 2 tools. Luckily no problem was arrised by VS 2008.
Third: open the browser, redirect it to the correct URL and....for a trivial demo you'll get everything fine; in this case there's some data binding that, as always, runs well locally, but when it's time to move...well, it has its tricks.
So, I'm checking the data binding and authentication docs, to see why LINQ can´t reach the DB server.
The first attemp was made by someone else, and the behavior when the .aspx loads, was that the UI appears just for 2 second, and then, the browser's area went blank. No message, no warning, no nothing.
Firts: set your IIS MIMEs.
Extension MIME Type
.manifest application/manifest
.xaml application/xaml+xml
.dll application/x-msdownload
.application application/x-ms-application
.xbap application/x-ms-xbap
.deploy application/octet-stream
.xps application/vnd.ms-xpsdocument
.xap application/x-silverlight-app
Second: create a virtual directory or site, and put your ag_dummy.html, web.config, \ClientBin and app.xap there. Be sure to stablish the correct silverlight version. I spend more than 3 hours reconfiguring our dev machine to rip of beta 1 and launch beta 2 tools. Luckily no problem was arrised by VS 2008.
Third: open the browser, redirect it to the correct URL and....for a trivial demo you'll get everything fine; in this case there's some data binding that, as always, runs well locally, but when it's time to move...well, it has its tricks.
So, I'm checking the data binding and authentication docs, to see why LINQ can´t reach the DB server.
Monday, July 21, 2008
Silverlight. Day 4.
I found a great tutorial
Free Training for Microsoft® Silverlight™ 2
from AppDev for FREE. Very interesting.
I hope this can give some more light for Silverlight ;)
Free Training for Microsoft® Silverlight™ 2
from AppDev for FREE. Very interesting.
I hope this can give some more light for Silverlight ;)
Wednesday, July 16, 2008
Silverlight. Day 3.
I´m still watching videos to understand more about how to develop a Silverlight app, and in the part 3 of the Blend tutorial by Jesse Liberty there's a step where you apply a style to the button of the chat prototype where the cut & paste really makes me question the UI development.
First, as always that you want some "special shape" button, you need to define the view of its states (generally 3). But why do you need to specify this templates in Visual Studio manually? Why not to apply some Power Point wisdom and have a pallete of predefined shapes to choose from. And if you know about button states, why not have some configuration panel in Blend for this? if you have a UI dedicated tool, let's charge it!
The one great things that I found is this ObservableCollection that works with generics, that can be consumed by a control in a MVC way. That is cool!
First, as always that you want some "special shape" button, you need to define the view of its states (generally 3). But why do you need to specify this templates in Visual Studio manually? Why not to apply some Power Point wisdom and have a pallete of predefined shapes to choose from. And if you know about button states, why not have some configuration panel in Blend for this? if you have a UI dedicated tool, let's charge it!
The one great things that I found is this ObservableCollection that works with generics, that can be consumed by a control in a MVC way. That is cool!
Etiquetas:
Blend,
generics,
ObservableCollection,
Silverlight
Tuesday, July 15, 2008
Silverlight. Day 2.
After the innitial trauma, I decided to read and check some tutorials to understand what is happening with Silverlight.
First of all. Why a new tool for GUI design instead of having it integrated to VS, as usual? Well, after watching the video tutorials related to Blend, its clear that VS UI editor is limited; we have use it just to size forms and put controls on them. But when the clients want some color, and shapes and gradients, etc, the effort to do this with the usual controls is too much.
One aproach is to develop or use a UI framework (thinking in reuse), with controls that have cappabilities to look better. However, the look and feel of these controls are not always the best.
This is where Blend fits OK. This Flashy editor lets you modify and edit almost any visual feature of the controols, and best of all, the specification is made in XML language, in this case XAML.
To have all these features in the standard IDE is too much and usability of VS could be affected. Nice thing is that the same files are used by VS and Blend, so no import utilities are needed.
Now I'm going to try the installation to get my hands dirty ;)
First of all. Why a new tool for GUI design instead of having it integrated to VS, as usual? Well, after watching the video tutorials related to Blend, its clear that VS UI editor is limited; we have use it just to size forms and put controls on them. But when the clients want some color, and shapes and gradients, etc, the effort to do this with the usual controls is too much.
One aproach is to develop or use a UI framework (thinking in reuse), with controls that have cappabilities to look better. However, the look and feel of these controls are not always the best.
This is where Blend fits OK. This Flashy editor lets you modify and edit almost any visual feature of the controols, and best of all, the specification is made in XML language, in this case XAML.
To have all these features in the standard IDE is too much and usability of VS could be affected. Nice thing is that the same files are used by VS and Blend, so no import utilities are needed.
Now I'm going to try the installation to get my hands dirty ;)
Friday, July 11, 2008
Silverlight. Day 1.
"What the hell is this? Where are the controls? What is this mess inside the project?"
These are my first impressions after I open a friend's example (first thing I saw was a XAML file, then some code, and then some messages about trials), without reading no tutorials or going to therapy, to prepare myself with this 2008 shock. I had the same sensation that I experienced 10 years ago when I wanted to do some UI stuff with Java; no IDE, just some third party tools or code it by hand. Blindness.
My pal told me: "You make the UI with expression Blend".
But why do you need a special tool to manage XML UI definitions? There's no more IDE. This is a MDE (Messy Development Environment).
The apology is based in roles. The designer need something to design and the developer someting to code. But when you make some desktop app you have controls, or a web app you have more controls, why with Silverlight you ain´t have nothing?
(I suddenly remember this song: Two steps behind - Def Leppard)
Now I understand why in the last 3 MS events where they showed this things I felt very upset and confused.
After this non pleasant experience, I believe Flex is a much better platform to make RIAs. No doubt about it.
These are my first impressions after I open a friend's example (first thing I saw was a XAML file, then some code, and then some messages about trials), without reading no tutorials or going to therapy, to prepare myself with this 2008 shock. I had the same sensation that I experienced 10 years ago when I wanted to do some UI stuff with Java; no IDE, just some third party tools or code it by hand. Blindness.
My pal told me: "You make the UI with expression Blend".
But why do you need a special tool to manage XML UI definitions? There's no more IDE. This is a MDE (Messy Development Environment).
The apology is based in roles. The designer need something to design and the developer someting to code. But when you make some desktop app you have controls, or a web app you have more controls, why with Silverlight you ain´t have nothing?
(I suddenly remember this song: Two steps behind - Def Leppard)
Now I understand why in the last 3 MS events where they showed this things I felt very upset and confused.
After this non pleasant experience, I believe Flex is a much better platform to make RIAs. No doubt about it.
Wednesday, July 9, 2008
Programming everywhere with anyone
No more need to carry your Server or desktop PC on your back, and your CTR monitor on a second round. Laps & wi-fi let us move; giving us the chance of freedom.
But what about your dev tools? Do you still need to coordinate with your partner to "sync" the code you finish at midnight, just to find out some last minute extra errors?
Can we develop "socially"?
Here are some tools, platforms and services that promise the next dev paradigm. But then, how the work relations are going to be managed? even overseas?
IBM/Rational Jazz
http://jazz.net/pub/index.jsp
codstorm
http://www.codstorm.com/
codeBeamer
http://www.intland.com/
CodeX
http://codex.xrce.xerox.com/en/index.php
SalesForce
http://www.salesforce.com/developer/
http://www.collab.net/
But what about your dev tools? Do you still need to coordinate with your partner to "sync" the code you finish at midnight, just to find out some last minute extra errors?
Can we develop "socially"?
Here are some tools, platforms and services that promise the next dev paradigm. But then, how the work relations are going to be managed? even overseas?
IBM/Rational Jazz
http://jazz.net/pub/index.jsp
codstorm
http://www.codstorm.com/
codeBeamer
http://www.intland.com/
CodeX
http://codex.xrce.xerox.com/en/index.php
SalesForce
http://www.salesforce.com/developer/
http://www.collab.net/
Etiquetas:
codstorm,
collaborative,
development,
Jazz,
software
Friday, June 20, 2008
Web X
It seems that someone applied the version control idea to the web, with the intention of remarking the differences between the read-only Web and the interactive Web we are dealing with today.
1.0 is the mark for the static content, dotcom dissaster and the raise of internet development.
2.0 is not just blogs, on-line video, wikis, and even more. 2.0 is the awaken of the open collective efforts and their results. Maybe hundreds of projects died in the way, but the important thing is that the new ones learned from the fallen.
3.0 maybe the Web in 3D, a semantic effort, or an omni functional platform. Who knows it? The point is that individuals and companies are investing lots of time innovating. So 3.0 may not have a unique characteristic, but many.
And what about when we reach the Web 10.0; or as Apple states, X?
1.0 is the mark for the static content, dotcom dissaster and the raise of internet development.
2.0 is not just blogs, on-line video, wikis, and even more. 2.0 is the awaken of the open collective efforts and their results. Maybe hundreds of projects died in the way, but the important thing is that the new ones learned from the fallen.
3.0 maybe the Web in 3D, a semantic effort, or an omni functional platform. Who knows it? The point is that individuals and companies are investing lots of time innovating. So 3.0 may not have a unique characteristic, but many.
And what about when we reach the Web 10.0; or as Apple states, X?
Tuesday, May 6, 2008
Graphic design for engineers and mortals
One of the main factors that people want today from a software product is that it must look good.
Fancy curved interfaces with gradient fills and nice colors are IN, but how do they do it? and most important, how can we do it?
Fortunally design guidelines and theories give us a clue of how this artisits do their tricks.
But there is still something missing. Why do I need to learn HTML, XHTML, CSS, XML, and many many more dialects for make some text and images look good?
My proposal is graphic and web design for mortals. It´s possible to make editing tools that focus on information and the layout, instead of implementation details.
A first step in this direction was CSS Playground (now published at planetsourcecode.com), a program I made for my multimedia students to show them some things about CSS. But from this prototipe, I really believe that a tool that focus on Information Architecture has more future that another WYSIWYG script editor.
Fancy curved interfaces with gradient fills and nice colors are IN, but how do they do it? and most important, how can we do it?
Fortunally design guidelines and theories give us a clue of how this artisits do their tricks.
But there is still something missing. Why do I need to learn HTML, XHTML, CSS, XML, and many many more dialects for make some text and images look good?
My proposal is graphic and web design for mortals. It´s possible to make editing tools that focus on information and the layout, instead of implementation details.
A first step in this direction was CSS Playground (now published at planetsourcecode.com), a program I made for my multimedia students to show them some things about CSS. But from this prototipe, I really believe that a tool that focus on Information Architecture has more future that another WYSIWYG script editor.
Thursday, April 3, 2008
It's dev-olution baby
First programs I made, were using Turbo Pascal 5.5. Console output, even when I tried to code some GUI support. The same think happend with assenbly, C and C++.
At some point C++ mixed with Borland/MS support for windows promised the desktop era, but code was a mess; to much libraries, to many techniques, to many considerations about pointers just to show a window or a widget.
In Smalltalk everything changed; the UI was part of the enviroment, but anything you want to do was restricted to that microcosmos.
At some point I met with VB and 4GL. The UI paradigm changed radicaly; less useless efforts trying to fix and understand technical issues.
And then, Java appeared. And console was great; UI applications need some IDE support, and web...well it was HTML mixed in the output methods.
Now some proposals promise to save the day, but Javascript is too messy, and ActionsScript seems to be splited between designers and programmers; even server side solutions like PHP, Asp.NET or Ruby still need to consider to many details in order to make development easier.
But it seems that things are about to change.
At some point C++ mixed with Borland/MS support for windows promised the desktop era, but code was a mess; to much libraries, to many techniques, to many considerations about pointers just to show a window or a widget.
In Smalltalk everything changed; the UI was part of the enviroment, but anything you want to do was restricted to that microcosmos.
At some point I met with VB and 4GL. The UI paradigm changed radicaly; less useless efforts trying to fix and understand technical issues.
And then, Java appeared. And console was great; UI applications need some IDE support, and web...well it was HTML mixed in the output methods.
Now some proposals promise to save the day, but Javascript is too messy, and ActionsScript seems to be splited between designers and programmers; even server side solutions like PHP, Asp.NET or Ruby still need to consider to many details in order to make development easier.
But it seems that things are about to change.
Tuesday, March 11, 2008
The lost code?
I still have some 5 1/4 and 3 1/2 floppies with some homeworks and early projects. Maybe a 70% is Turbo Pascal code and the rest C/C++.
Last tinme I made a backup, I saw a lot of toy examples. Some from books, and some from my head. The typical tiny program began with a problem sentence, and the coded solution was an algorithm. But in the middle there was the problem of the user interface. So the classic solution was to code a text menu with numbers to entre the options. Then someone came with one of those big "bible" books, were an author explain more less the trick to code some popup & pull down menus. Wow, that was really something.
But one of the first serious problems were the graphics. I remember one of my teachers asked us for a parabollic throw simulator. So the equations were easy, but because of the lack of technical info, I did it in text mode. Not bad, but looks ugly.
Then, when the group reacted and we started to plan about making some code library, a new language appeared: assembly.
Life is too short to program everything in assembly language, so a nice technique was the binding of macros in a library to use it with other languages.
And then came C/C++. Even with the power and speed of C, I remember that time was easely lost trying to find syntax errors and memory leaks. Even when C++ improves the logic, is hard to master it. The mother of my university projects: a Pascal compiler. One whole week programming day and night. And the best of all: it works.
And when Smalltalk appeared on scene, everything was beautyfull (all except my hardware). Great develoment enviroment, great power of expresion, and a networking simulator was completed in 3 days, without debbuging.
So, for some people toy samples may be a waste of time, but they reflect the essence of what it makes a good programmer: practice.
Last tinme I made a backup, I saw a lot of toy examples. Some from books, and some from my head. The typical tiny program began with a problem sentence, and the coded solution was an algorithm. But in the middle there was the problem of the user interface. So the classic solution was to code a text menu with numbers to entre the options. Then someone came with one of those big "bible" books, were an author explain more less the trick to code some popup & pull down menus. Wow, that was really something.
But one of the first serious problems were the graphics. I remember one of my teachers asked us for a parabollic throw simulator. So the equations were easy, but because of the lack of technical info, I did it in text mode. Not bad, but looks ugly.
Then, when the group reacted and we started to plan about making some code library, a new language appeared: assembly.
Life is too short to program everything in assembly language, so a nice technique was the binding of macros in a library to use it with other languages.
And then came C/C++. Even with the power and speed of C, I remember that time was easely lost trying to find syntax errors and memory leaks. Even when C++ improves the logic, is hard to master it. The mother of my university projects: a Pascal compiler. One whole week programming day and night. And the best of all: it works.
And when Smalltalk appeared on scene, everything was beautyfull (all except my hardware). Great develoment enviroment, great power of expresion, and a networking simulator was completed in 3 days, without debbuging.
So, for some people toy samples may be a waste of time, but they reflect the essence of what it makes a good programmer: practice.
Friday, February 29, 2008
In the begginig: school days
First time I get interesed in computer programming was in the 80s after been exposed to films like Tron and some teen hackers dramas. However in Mexico it was hard and expensive to get a computer and tech literature. Someone in high school made us a promise about to have a computer lab, but that promise vanished with time.
It was before I entered to college that I had the opportunity to take a programming course using Pascal. It was great, but the problem of not having a computer and the software to practice tended to end the dream.
But when I started in college, one of the requisites was to have a compuer in home, so I sold my electric guitar to help my mothey to buy the computer. It was a i286 with 1 MB RAM and 20Mb of HDD. And it supported me for 5 years. It was a real advantage to have it at home to prectice; those were long productive nights of trials and errors, but is the only way to learn. We started using Turbo Pascal 5.5, a great tools considering it fits in a 720 kb floppy disk, and the IDE, help and examples were all there.
Some other languages appeared in scene: C, x86 assembly. A paradigm shift was the introduction of C++ and my first contact with Smalltalk. My computer started to have some difficulties to load this enviroments. Then came Prolog and Lisp. And by 1993 the Windows 3.1 started to spread and some interesting DB and A&D tools appeared.
Lots of code lines were written in those days. What happened to that code?
It was before I entered to college that I had the opportunity to take a programming course using Pascal. It was great, but the problem of not having a computer and the software to practice tended to end the dream.
But when I started in college, one of the requisites was to have a compuer in home, so I sold my electric guitar to help my mothey to buy the computer. It was a i286 with 1 MB RAM and 20Mb of HDD. And it supported me for 5 years. It was a real advantage to have it at home to prectice; those were long productive nights of trials and errors, but is the only way to learn. We started using Turbo Pascal 5.5, a great tools considering it fits in a 720 kb floppy disk, and the IDE, help and examples were all there.
Some other languages appeared in scene: C, x86 assembly. A paradigm shift was the introduction of C++ and my first contact with Smalltalk. My computer started to have some difficulties to load this enviroments. Then came Prolog and Lisp. And by 1993 the Windows 3.1 started to spread and some interesting DB and A&D tools appeared.
Lots of code lines were written in those days. What happened to that code?
Etiquetas:
assembly,
C language,
programming,
school days,
Turbo Pascal
Tuesday, February 26, 2008
What is codink?
CoDInK is an acronym for Communication of Data, Information and Knowledge. It's a temptative for my future company. But deep inside is a way of life.
I love to write; I wrote a couple of thesis works in my academic life, but I don´t know how to write a novel. However, I know how to write software and turn ideas into interactive entities that people can play with or use for learn or work. It's an expression using the art & science of computer sciences.
The future is always a surprise, but somebody has to make it happend.
That is codink, and here I will be writing about turning ideas into software or something else. Yes, a little tech words will appear, but experience and innovation will move the fingers in the keyboard.
I love to write; I wrote a couple of thesis works in my academic life, but I don´t know how to write a novel. However, I know how to write software and turn ideas into interactive entities that people can play with or use for learn or work. It's an expression using the art & science of computer sciences.
The future is always a surprise, but somebody has to make it happend.
That is codink, and here I will be writing about turning ideas into software or something else. Yes, a little tech words will appear, but experience and innovation will move the fingers in the keyboard.
Subscribe to:
Posts (Atom)