Gus Issa Has a Micro .NET Framework! January 4, 2011

motionslatelickΛογισμικό & κατασκευή λογ/κού

2 Νοε 2013 (πριν από 4 χρόνια και 7 μέρες)

208 εμφανίσεις


HTTP://www.dotnetrocks.com






Text Transcript of Show #
6
2
5

(Transcription services provided by
PWOP Produc
tions
)


Gus Issa Has a Micro .NET Framework!

January 4, 2011

Our Sponsor




H
T
TP://www.telerik.com/





Carl Franklin and Richard Campbell
interview experts to bring you insights
into .NET technology and the state of
software development. More than just
a dry interview show, we have fun!
Original Music! Prizes! Check o
ut what
you've been missing!


Transcription by PWOP Productions, http://www.pwop.co
m

Page
2
of
12

Gus Issa Has a Micro .NET Framework!

January 4, 2011

Lawrence Ryan:

.NET
Roc k s!
e
pi sode #
6
2
5
,

wi t h guest

Gus I ssa
,
recor
d e d l i v e
Tuesday
,
December
21
, 2010
.


[Music]


Lawrence Ryan:

This episode is brought to you
by Tel eri k

a n d b y
Franklins
.NET

-
Trai ni ng
Devel opers to Work Smarter and now
offeri ng vi deo
trai ni ng on Si l verl i ght 4.0 wi th Bi l l y Hol l i s and
SharePoi nt 2010 wi th
Sahi l Mal i k, order onl i ne now at
franklins.net
. And now
,

here
'
s Carl and Richard
.


Carl Franklin:

Thank you very much.
Welcome back to .NET Rocks! It
'
s Carl and Richard.
Hey, man.


Richard Campbell:

How are you
, my friend?


Carl Franklin:

I
'
m good
.
I
'
m well.


Richard Campbell:

Going to
have some fun today I
think.


Carl Franklin:

Yeah, definitely. Anytime we
get to geek out with stuff that
'
s fun to program, man,
it
'
s just a good thing. So it
'
s getting towards
the end
of the year and we were talking before we started
recording about an end of the year .NET Rocks!


Richard Campbell:

Yes.


Carl Franklin:

And how much we
'
d like to
bring back some old folks like Rory Blight perhaps.


Richard Campbell:

Perhaps.


Car
l Franklin:

Yeah.


Richard Campbell:

Wel l, I
'
ve been chatti ng wi th
Rory on and off i n Twi tter and he seems to be maki ng
happy noi ses about comi ng on the show, but I can
'
t
get him locked down for a time and we are running
out of time, the year is almost ove
r.


Carl Franklin:

We should get Rory and Mark
Miller on too, and maybe Mark Dunn.


Richard Campbell:

At the same time?


Carl Franklin:

At the same time, yeah.


Richard Campbell:

That
'
s like an excess
of
c o
-
hostery.


Carl Franklin:

Yeah, actually we could
have a
little eggnog and have a little Christmas party
recorded with all the party
...


Richard Campbell:

Yeah, on different coasts.


Carl Franklin:

Yeah. Well, anyway, let
'
s get
started right away with Better Know a Framework.


[Music]


Carl Franklin:

An
d of course this is the little
segment I do where I shine a little light on an arcane
corner of the .NET Framework and hope that overtime
some of the stuff might be interesting to you and you
go check it out on your own.


Richard Campbell:

Awesome. So wha
t have you
got?


Carl Franklin:

So today I
'
m going to talk about
something that
'
s in WPF. Now I took a good look
around to see if there
'
s any Silverlight support for it
but I don
'
t think there is and if I
'
m wrong about that
please let me know. But it say
s in terms of platforms
that it
'
s supported in .NET 4.0, 3.5, and 3.0 and in the
.NET Framework Client Profile 4.0 and 3.5 SP1, I
'
m
talking about the Weak Event Manager Class.


Richard Campbell:

Oh, yeah.


Carl Franklin:

So i t
'
s a base cl ass f or t he
event
manager that
'
s used in the Weak Event Pattern
and it adds and removes listeners for events that also
use the pattern. So what
i
s the Weak Event Pattern
you say.


Richard Campbell:

Uh
-
hmm.


Carl Franklin:

And I
'
m reading right from the
remarks. You typica
lly use the Weak Event Pattern,
and i t
'
s W
-
E
-
A
-
K, when t he ev ent s our c e has an
obj ec t l i f et i me t hat i s i ndependent of t he ev ent
l i s t ener s. Us i ng t he c ent r al ev ent di s pat c hi ng
c apabi l i t y of Weak Ev ent Manager al l ows t he l i s t ener s
who handl e t he gar bage c ol
l ec t ed ev en i f t he s our c e
obj ec t per s i s t s. By c ont r as t, a r egul ar ev ent hook up
c aus es t he pot ent i al l y di s c onnec t ed s our c e t o hol d a
r ef er enc e t o t he l i s t ener s. Thi s pr ev ent s t he r ec ei v er
f r om bei ng gar bage c ol l ec t ed i n a t i mel y f as hi on.
One

common situ
ation where the lifetime relationship
between sources and listeners should use the Weak
Event Pattern is the handling of updated events
coming from sources for data bindings.


Richard Campbell:

Oh, okay.


Carl Franklin:

The Weak Event Pattern can
also be u
sed for call backs in regular events. So in
those situations where you have objects that are
coming in and out of existence and you have listeners
coming in and out of existence, it might be a good
idea to look into the Weak Event Manager.



Transcription by PWOP Productions, http://www.pwop.co
m

Page
3
of
12

Gus Issa Has a Micro .NET Framework!

January 4, 2011

Richard Campbe
ll:

This is one of those situations
where I
'
ve heard it described as this is a pattern for
controlled developers where you don
'
t necessarily
know when you
'
re going to be brought in and when
you
'
re going to be dropped and it can lead to memory
leaks.


Carl
Franklin:

Sure.


Richard Campbell:

So this is just a way to be sure
to free up memory.


Carl Franklin:

Sure. So there is is. It
'
s in
System.Windows.WeakEventManager Class.
Richard, who
'
s talking to us?


Richard Campbell:

Let me see here. Oh, you
'
ll lik
e
this one. Well, of course very topical. This is from
Mark Stanford.
"
Hi, guys, I
'
ve been listening intently
to the arguments for and against the long term
survival of Silverlight when compared to HTML 5.0
and thinking what about the trade
-
off between
cost
and reach. If you have to decide between a project
with 80% of the reach or a project with 50% of the
cost, which would you choose? I think that that will be
a decision facing us in the near future. It also brings
up another question about the trad
itional project
management triangle compose of time, cost, and
quality.
Does the
fourth dimension need to be the
added representation of reach.
"


Carl Franklin:

Yeah.


Richard Campbell:

"
At any rate, it looks like
Microsoft isn
'
t missing a step. They
'
ve
announced
that your next COM might be running Silverlight as
well and it provided a link, which unfortunately is no
longer around, about Silverlight showing up in the
Nissan Leaf
..."


Carl Franklin:

Yeah.


Richard Campbell:

"
Which is the little electric c
ar
that Nissan is making which really is kind of cool.
"


Carl Franklin:

It
'
s interesting.


Richard Campbell:

"
I love the show. Thanks.
"

From Mark Stanford who lives in Utah. Mark, thanks
for your great email. Of course this fall we had all the
adventur
es of Silverlight being dead which as near as
we could tell was premature by a long way. We
'
ve
also done a show now on the next version of
Silverlight so that
'
s pretty much a m
oot
issue. I like
this email, also it ties into something I
'
ve recently read
o
n Shawn Wildermuth
'
s blog where he describe the
situation in web development right now as being
Balk
anized.


Carl Franklin:

Oh, that
'
s something.


Richard Campbell:

And
Balkan
ization of course for
those who had no good dictinary to come and look it
up, it
'
s breaking us up into small groups that fight with
each other rather than actually move things forward. I
can
'
t disagree with that. You know, the reality is
HTML 5.0 is going to come out in multiple
incarnations in different browsers and people aren
'
t
go
ing to migrate to it quickly and so there
'
s going to
be a huge fracturing of the web development market.
In some ways Silverlight really simplifies that.


Carl Franklin:

Yup.


Richard Campbell:

But I think the real strength of
Silverlight is this idea tha
t one language, one basic
set of development techniques that work, desktop,
web, and phone.


Carl Franklin:

Yup.


Richard Campbell:

But again with the restricted
reach can only reach so many different devices. So
on the other hand, I think a big battle he
re when
people actually start getting serious about making
HTML 5 apps, they
'
re going to find out that it
'
s still
lowest common denominator.


Carl Franklin:

Right.


Richard Campbell:

It
'
s going to be the inferior
client.


Carl Franklin:

Right. And let
'
s f
ace it, there
'
s
going to be ASP.NET apps.


Richard Campbell:

Yeah, yeah. Take the backend
without a doubt.


Carl Franklin:

Yeah. So there you go.


Richard Campbell:

Either way, Mark, we
appreciate your email. A mug is on its way to you.
Probably it wil
l get you there before Christmas but it
'
s
really a New Year
'
s present. Thanks for sending out
your message. And if you
'
ve got any questions,
concerns, thoughts and ideas you
'
d like to talk to us
about, send us an email, dotnetrocks@franklins.net.


Carl F
ranklin:

Before we let this one go, let it
be a lesson to you all because it was to us too that
when somebody runs around saying the sky is falling,
the sky is falling, don
'
t believe the hype.


Richard Campbell:

Look up.


Carl Franklin:

Just look up. Righ
t, exactly.
Just think about
i t
your sel f and don
'
t t ake anybody
else
'
s word for what
'
s really going on. Just think,
think, people.


Transcription by PWOP Productions, http://www.pwop.co
m

Page
4
of
12

Gus Issa Has a Micro .NET Framework!

January 4, 2011


Richard Campbell:

Little things.


Carl Franklin:

Yeah. Well, I
'
m really excited
today, Richard, because our guest is Gus
Issa. Gus
is the founder and lead developer of GHI Electronics.
Before getting into .NET Micro Framework, he
conceived many devices to make developers
'
lives
easier. After learning of .NET MF or NETMF, he
quickly became enthralled. For the last three year
s
he
'
s been nurturing NETMF and uses it by developing
hardware and software. He is a member of the
NETMF core tech team and author of Beginners
'

Guide to NETMF, an open source ebook. For Gus,
embedded system development is a passion. He
believes in the cou
ntless solutions that electronics
can provide. Combining experience, fun and belief, he
has always worked on sharing his knowledge.
Welcome, Gus.


Gus Issa:

Glad to be here with you guys.


Carl Franklin:

Well, we
'
re glad to have you.
You know, the theme
song to .NET Rocks! is Toy Boy
for a reason. I mean we both, Richard and I, are
hugely into gadgets and programming them and
Richard probably a little more than me. He
leans
a
little more
toward
the hardware side. I just like stuff
that I can noodle with
.


Gus Issa:

And with .NET Micro
Framework, you have plenty of toys.


Carl Franklin:

Yeah. So let
'
s start at the
question what is the .NET Micro Framework?


Gus Issa:

.NET Micro Framework is the
smallest version we have right now of .NET. It
'
s small
to t
he point it can run on a single, little processor, an
ARM processor or a similar 32
-
bit processor. It
doesn
'
t even require an operating system. Now that
doesn
'
t mean that it wouldn
'
t run on a operating
system, but in normal cases if you want to run .NET
Micro Framework you can just run it on the bare
bon
es.


Richard Campbell:

Micro framework rev with the
regular framework, right? It
'
s a 4.0 as well?


Gus Issa:

No. The revision, it happen
that now we are at version 4.1 but the revision of
.NET Micro Fram
ework or NETMF for short, the
revision has nothing to do with the full framework.


Richard Campbell:

Oh, okay. So they
'
re actually
on their own cycle but happen to be a 4.0.


Gus Issa:

Yes, it just happens to be at
the same version but it
'
s not related.


Carl Franklin:

Does this have any
relationship, and I know we
'
ve talked about it in the
past but it
'
s been a while, does NETMF have any
relationship to Windows CE?


Gus Issa:

No. Windows CE runs
Compact Framework. Compact Framework requires
an operating
system and it require
s
Windows CE to
run. Now micro framework is even smaller and it
doesn
'
t require any operating system. Now it can run
on a few kilobytes of memory. Now on Compact
Framework it needs a lot less resources than the full
framework but yo
u still need a few megabytes of
RAM.


Carl Franklin:

So this is all about embedded
programming. What are we actually doing there in
the .NET Micro Framework? Is it sort of virtualizing
the processor? Is it it
'
s own little operating system?
What exactly
does it do and how specific is it to a
processor?


Gus Issa:

Okay. Micro framework sits in
a place that is really unique and my own belief is this
is the best thing that has ever happened to embedded
technology. Where Micro Framework sits, it
'
s right in

between low level processor programming and using
a smaller operating system like Windows CE. Now
when you are sitting in this place, you are running on
a smaller processor, your cost on hardware is very
low but at the same time you
'
re using .NET, that
m
eans you
'
r e usi ng Vi sual St udi o, you have
debuggi ng, you have t hr eadi ng, you have al l t he ni ce
l i br ar i es t hat hel ps you devel op your appl i cat i on but at
t he same t i me you don
'
t have t o know ever y si ngl e
det ai l about t he under l yi ng pr ocessor.


Carl Frankl i n:

So t h e r e
'
s a h a r d wa r e
a b s t r a c t i o n l a y e r?


Gus I s s a:

Yes.


Carl Franklin:

Okay.


Gus Issa:

Under the CLR or what
'
s called
TinyCLR, we have hardware abstraction layer and
Micro Framework which is peopled by Microsoft and
it
'
s open source by the way so anybo
dy out there can
go grab the forces and put it on their own hardware.
What they have to do is write their own hardware
abstraction layer to their processor or their system
and then Micro Framework will run on that processor.


Carl Franklin:

And it will al
so run on a PC,
right?


Gus Issa:

Yeah. Actually it already ships
with an emulator on the PC so you get to try it before
you do anything with real hard work. The emulator

Transcription by PWOP Productions, http://www.pwop.co
m

Page
5
of
12

Gus Issa Has a Micro .NET Framework!

January 4, 2011

sets the environment so the application will run on the
PC in .NET Micro Framework.


Carl Franklin:

There
'
s a whole slew of
hardware out there that it runs on, isn
'
t there?


Gus Issa:

Yes. There are plenty of
hardware out there from GHI, from other vendors and
there are plenty of ports in the porting kit as well.


Richard Campbell:

I
'
m
looking at the USBizi144,
that looks to be the tiniest thing I
'
ve ever seen on.
NET.


Gus Issa:

Yeah. It
'
s a single chip running
.NET Micro Framework. Well, et me go back a few
years here and tell you what exactly happened. We
started with the Micro Fra
mework. Well, at first GHI
was looking into a solution that
'
s like five years ago.
We were looking into creating a solution where you
are capable of doing a lot without knowing a lot and
this is the big challenge given to better develop. If
you
'
re a .NET
developer, everything comes to you
somewhat easy because you have libraries for file
system let
'
s say. If you
'
re using a small processor
and you want to create a file, you really have to know
everything about file system. You have to know
clusters and a
llocation units and everything goes on
with file system. Now we don
'
t have to know all those
in .NET. Now we have this idea that what if we create
something where we put all these libraries on a
processor or a board and as a developer you don
'
t
have to k
now so much about the file system as an
example or graphics, but you can use all these
libraries. So we started back then actually with Java
and we created a device that has Java virtual
machine and has plenty of libraries on there and then
you can write
your code in Java and you have access
to all the nice loggers that are built in there. But the
problem with Java was the lack of nice IDE and lack
of debugging and we were looking in different options.
We didn
'
t
cite
any good enough option out there. We

wanted to make something that
'
s really amazing and
this was when we learn about .NET Micro Framework
and seem to be the answer for our needs and for a lot
of developers
'
needs out there. It has a perfect IDE,
it
'
s Visual Studio, just the same tool we use
to
program PC, but your code can run on a smal l
processor and i t doesn
'
t requi re an operati ng system,
doesn
'
t require a whole lot of memory and the
processors are just getting more and more powerful
and they have more and more RAM and everything
seem to f
it together very nicely. So we started getting
into .NET Micro Framework and we created a little
module, we called it embedded master because we
saw i t
'
s bei ng r eal l y t hei r mast er of embedded
devi ces. You can j ust do i t r eal l y easi l y wi t h .NET
Micro Fram
ework. We created that device and from
there we had this idea that what if we can run this on
a single chipset. It sounds crazy running a whole
framework on a single chipset, but let
'
s see. In theory
we know we could run it, but we
'
re not sure would it
be powerful enough to create a product and after I
use an application.


Carl Franklin:

This portion of .NET Rocks! is
brought to you by our good friends at Telerik who
want me to tell you about JustMock, Telerik
'
s mocking
tool, and unlike most mocking tool
s just mock can
work with non
-
virtual methods, sealed classes, and
static methods and classes giving you complete
control over your code. Of course, you get that great
Telerik quality and support. You can read more and
download the tool at
telerik.com/justmock
,
and hey,
don
'
t forget to thank them for supporting .NET Rocks!
on their Facebook fan page,
facebook.com/telerik
.


Now you
'
re t al ki ng about GHI, and GHI
creates
software and hardware?


Gus Issa:

GHI, yes, we develop the
hardware and we develop the software that goes on
the hardware. Correct.


Carl Franklin:

And the software uses the
.NET Micro Framework.


Gus Issa:

Yes. So we took .NET Micro
Framework th
at
'
s evolved in Microsoft and we ported
that to the hardwares that we create and on top of
that we extended the framework with more libraries.


Carl Franklin:

Oh, okay. So there are
features of your hardware that are not in NETMF, that
NETMF doesn
'
t suppo
rt out of the box but you added
support to them.


Gus Issa:

Yes. This is one of the nice
features of .NET Micro Framework or NETMF. It
supports users at a native call within the CLR so you
can have wrappers in C# and they are accessed
natively in the nat
ive layer where of course it
'
s written
usually in C or C++.


Carl Franklin:

So this one that Richard was
talking about, USBEizi, this is a piece of hardware
that has a USB port on it. Is there a USB support in
NETMF?


Gus Issa:

Oh, yeah. Correct. So thi
s is
where we had this idea of running micro framework
on a single chipset and we created USBizi. USBizi
basically is a single chip running a full .NET Micro
Framework and it has plenty of extra features that are
not standard in .NET Micro Framework.


Car
l Franklin:

So what are some of those
features?



Transcription by PWOP Productions, http://www.pwop.co
m

Page
6
of
12

Gus Issa Has a Micro .NET Framework!

January 4, 2011

Gus Issa:

USB clip host is one of them.
That
'
s an important one where you can use a USB
thumb drive. A file system is supported in .NET Micro
Framework as well as vCard. So what we did is add
that on the
USB.


Carl Franklin:

Okay. So just to refresh my
memory. A USB host is something like a hub that you
can plug a USB device into and work with it.


Gus Issa:

USB host is actually like a PC
and then you can plug hubs. A hub is a way of
expanding the port
into multiple port
s
. So the hub is
the main port.


Carl Franklin:

Right.


Gus Issa:

Just like the one on your PC or
a laptop. This is where you plugin a hub and you can
plugin USB devices or client.


Carl Franklin:

Right. Yeah.


Gus Issa:

So this is
one

of the features.
We also added SQLite for users who needed
databases. We
added

CAN
for users, and then
DOS
or more if
they need the system, sort of networking.
We had it Wi
-
Fi
...


Carl Franklin:

Okay, hold on, hold on a sec.
Can you spell some of thos
e things and tell us what
they are?


Gus Issa:

CAN is Controller Area
Network which is a device that
'
s used in industrial
applications.


Carl Franklin:

CAN.


Gus Issa:

Yes.


Carl Franklin:

Okay.


Gus Issa:

The same way you have a
serial port on a PC. This
is a similar port that is
usually use on industrial applications. It
'
s immune to
high levels of noise if used in automotives.


Carl Franklin:

Okay.


Gus Issa:

We also have a Wi
-
Fi.


Carl Franklin:

Okay.


Gus Issa:

So you would have wireless
networking su
pport. On the USB device side, NETMF
has some support to USB device customization. Now
in fact, well, the other side of the USB device. This is
when you would connect the .NET Micro Framework
device to your PC. Now we created libraries to
simplify this
. Since many users don
'
t know much
about windows, drivers, they don
'
t want to take it
there, we created different drivers and different
libraries that convert your micro framework device into
a virtual mouse let
'
s say or a CDC device. A CDC
device is basi
cally a virtual COM port over USB.


Carl Franklin:

Yeah.


Gus Issa:

So a little example here, let
'
s
say I want to create a data logger, I can easily do that
with .NET Micro Framework by taking any of the
offers out there. To plugin a SD card for storage,
you
can put 2, 4, 16 gigabytes for all your data on a SD
card and then this little logger running .NET can plug
into a PC and show up on a PC like a card reader
would and then you can take the log files up there in
your card.


Carl Franklin:

So you could
-
-
essentially if
you
'
re building an electronics device, you could have
built into
--
you could write the data logger for, you
know, the logger side of it obviously you
'
d have to
interact to your device to get that data, but on the
other side you essentiall
y like you said can use USB
keys or SD cards which you can just put into your
computer and use. But the whole idea is that you
want to have some device that
'
s portable but also can
be embedded in another piece of electronics gear.


Gus Issa:

Yes. So it
'
s
a lot like creating
the end product. You
'
re creating a very little
--
you
think you have a very, very small PC in a lower box.
What can you do with that? It
'
s possible that these are
really endless.


Carl Franklin:

So l et
'
s t al k about some of
t hose poss
i bi l i t i es because t hat
'
s what r eal l y get s me
goi ng. What ki nds of
--
I mean, when I think of a little
handheld box that I want to take around, it
'
s got to
have some sensors, it
'
s got to have a lot of good input
possibilities, something that has a micropho
ne and
can listen, or motion detector or do something else
like that and then since it
'
s got Wi
-
Fi, when something
happens it can phone home and tell me about it.
What are some of those sensors and input devices
that you can connect to these things?


Gus
Issa:

.NET Micro Framework
includes support for busses that are use in embedded
systems like UART which is the basic of serial port,
SPI Bus, and
...


Carl Franklin:

SDI?


Gus Issa:

SPI. And I2C.


Carl Franklin:

I2C, okay.



Transcription by PWOP Productions, http://www.pwop.co
m

Page
7
of
12

Gus Issa Has a Micro .NET Framework!

January 4, 2011

Gus Issa:

These are the main bus
ses
that are used on embedded systems. Usually when
you would have a sensor, if it
'
s a digital sensor then
you would use one of these interfaces to read let
'
s
say temperature or acceleration, gyroscope, even the
sensor. You would use a lot of these inter
faces to
read the value from the sensor.


Carl Franklin:

I see. So with UART and SPI
and USB, you could pretty much plugin any off the
shelf sensor.


Gus Issa:

Well, in embedded system it
'
s
not that simple. You don
'
t have off the shelf sensors.
There a
re sensors. There
'
s a little wiring. So what
we did is we try to make this easier for software
developers who don
'
t have a soldering iron and
they
hate seeing it
. We created these little sensors with
standard sockets so you can take the sensor and plug
it right into the board so now you could do much
about the hardware, just plug it in, and we provide the
source code to give you an example of how to read
from that sensor.


Carl Franklin:

So Richard, this is like basic
stamp for .NET.


Richard Campbell:

T
hat
'
s what I
'
m thinking.


Carl Franklin:

Yeah.


Richard Campbell:

It
'
s in different form factors.


Carl Franklin:

Right.


Gus Issa:

Yeah.


Richard Campbell:

We can get to really, really
small, not so small. You know, I suspect it cost more
when you get re
ally small.


Carl Franklin:

Yes.


Gus Issa:

Right. So then last year we
had this idea that when we start to look at .NET Micro
Framework, we are only working with companies and
on pretty involved systems. So we had this idea that
this is really easy to u
se. So how can we make this
even easier so anybody out there can have fun? You
want to connect your Christmas tree to a .NET board
and blink some lights and control this from your
phone, just think of anything you would like to
accomplish. Now how can w
e make this easier? So
we look out there at different options of what you
'
re
going to do. We saw BASIC Stamp like you just
pointed out. There
'
s also Arduino, that
'
s another
popular board. We look at these boards and we
thought, well, the form factor is
nice, people are using
them, they are happy with what they have but it does
not run on .NET. So what if we create a board that is
in the same form factor but it
'
s running .NET and
that
'
s what we exactly did. We have this one board
that
'
s called FEZ Domi
no.


Carl Franklin:

FEZ, F
-
E
-
Z?


Gus Issa:

Yes, FEZ.


Carl Franklin:

Domino.


Gus Issa:

And we have FEZ Domino.
These two boards have the same form factor as the
Arduino board, the same thing out, it looks the same.
So if you have sensors or if you have
any board for
plug into Arduino, you can take that board and plug it
into the .NET board and now you
'
re programming in
.NET. You
'
re not programming in C or C++ anymore.


Carl Franklin:

Oh, that
'
s awesome.


Gus Issa:

Another thing, we also created
a board
that
'
s called FEZ Panda that is the same form
factor as BASIC Stamp too. So if you have a BASIC
Stamp robot you can take the FEZ Mini and plug first
mini into your robot that is originally was used with
BASIC Stamp and now you can program your robot
with
C#.


Carl Franklin:

Wow.


Richard Campbell:

Awesome.


Carl Franklin:

I mean without the stuff that
you guys do, the .NET Micro Framework isn
'
t really
for end
-
users, is it? Without a company like you to
sort of use it and implement it on hardware and then
provide other hardware and embedded software
along with it, this isn
'
t something that a .NET
application developer can just download and start
using.


Gus Issa:

Yes. The only thing you can
use without hardware is the emulator that already
ships with .NET
Micro Framework. But there
'
s so
much you can do with the emulator because the idea
for micro framework is you
'
re accessing more
hardware, you
'
re accessing sensors. So you
'
re now
interacting with the other world, not with the sensor,
not with the software
. So you would really need some
hardware so you can use .NET Micro Framework to
its fullest.


Carl Franklin:

I get it. And we have links on
the website,
dotnetrocks.com
, on this particular show
to not only the .
NET Micro Framework homepage but
to the GHI Electronics homepage too. Do you have
other competitors? I mean, are there other people
that are doing what you do, what you guys
...
?



Transcription by PWOP Productions, http://www.pwop.co
m

Page
8
of
12

Gus Issa Has a Micro .NET Framework!

January 4, 2011

Gus Issa:

Oh, yes. Oh, yes. There
'
s
plenty. If you go on
netmf.com
, i t
'
s t he of f i ci al
websi t e f or Mi cr osof t f or .NET Mi cr o Fr amewor k, i t
'
s
at
netmf.com
, they list the different vendors and they
list different products on the website so you can see
what d
i fferent vendors offer sort of l i ke .NET Mi cro
Framework.


Carl Franklin:

So there
'
s another website at
microsoft.com/netmf

that
'
s different but it looks like
they
'
re both portals for the .NET Micro Framework.


Gus Issa:

Yes, correct.


Carl Franklin:

Why are there two? Do you
know?


Gus Issa:

The
netmf.com

is a newer
website. I
'
m not sure now why there are two. I would
have to check with Microsoft. The
netmf.com

is a
newer one and it has forums on it so if somebody has
a question, they can use
netmf.com
. I think the
newer website has a forum and it
'
s a more
community
-
targeted website.


Carl Frankli
n:

Okay.


Richard Campbell:

So Gus, can you talk about
some of the projects you
'
ve done with this kind of set
up?


Gus Issa:

.NET Micro Framework, the
easiest one to talk about is the example, they allow
the example, where it can be all different kinds of
data
loggers. Now from vCards to USB stick drives or data
storage and now to the endless sensors that you can
connect to .NET over the different boxes that are
available. Now other examples would be vending
machines. We have a customer that works with
t
hose. Basically they have a smart vending machine.
You could just take a Windows CE and drop that in a
vending machine, it creates a vending machine. But
the idea of .NET Micro Framework, how can we make
this on a smaller scale cheaper and maybe even
ea
sier because you don
'
t have everything in that
porting system. You only have fewer set of libraries
to work with. So the smart vending machine can have
a touchscreen for example. It can be network
-
connected. It sends data logs of inventory, any error
cod
e, troubleshooting codes, and it can
even
update
the
firmware
remotely.


Carl Franklin:

At
Franklins.Net

right now you
can get a DVD with over 11 hours of Billy Hollis on
Silverlight 4.0 or 14 hours of Sahil Malik o
n
SharePoint 2010 each for only
$
695. Order online at
www.frankins.net
. Are you looking to change jobs?
Infusion Development has offices in New York City,
Toronto, London, Dubai, and Poland. Infusion has
hired a
whole handful of happy .NET Rocks! listeners.
Contact me for an introduction at carl@franklins.net.


Richard Campbell:

Of course these things have a
TCP/IP connection. They can log into the network
and just be a device in your network.


Gus Issa:

Yeah.
.NET Micro Framework
includes a full blown TCP/IP stack. It
'
s a standard
packet just like your program on your PC.


Richard Campbell:

Is there a little web server we
can run on there as well?


Gus Issa:

Yeah, you can run server and
client.


Carl Franklin:

So the web stuff is built
-
in. It
'
s
not just pure sockets, right?


Gus Issa:

There
'
s HTTP. I
'
m not sure
how
--
there are limits as to how much you can put on
embedded systems.


Carl Franklin:

Sure.


Gus Issa:

So the last version had HTTP
support to the cor
e.


Carl Franklin:

For the client.


Gus Issa:

And then it supports SSL. So if
you want to take it one step up, you can but then you
would have to code up and
...


Carl Franklin:

Right. It sounds like it
'
s got
client support but there
'
s no little IIS runni
ng in there
or Cassini.


Gus Issa:

No.


Carl Franklin:

Yeah.


Gus Issa:

Yeah. We
'
re talking about a
framework that can run on 300 kilobytes of RAM.


Richard Campbell:

Right. Yeah, just looking at the
.NET Micro Framework 4.0 there is
H T T P We b R e q u e s t, H T T P
WebResponse,
HTTPLIstener so you can put together a little web
service that runs on the device.


Gus Issa:

Yeah. So one little project that
I thought I
'
d work on the next week since we are
taking the week off work, I want to make a little web
server just
for fun that runs on the small board and I
want to connect the infrared transmitter on the board
and start this into my next work at home. So what the
little server will hold is a small page that has buttons
on it and then from these buttons I can control
the IR

Transcription by PWOP Productions, http://www.pwop.co
m

Page
9
of
12

Gus Issa Has a Micro .NET Framework!

January 4, 2011

transmitter. Now through my phone, I can open a
page and change the volume or change the station on
my TV.


Richard Campbell:

Right, of course. The trick here
is figuring out the sensor set you need to be able to,
you know, what is the IR device a
nd how to send its
signals. It
'
s just that combination of things to figure
out what to send and what to receive.


Gus Issa:

Yes, correct. Now what
'
s great
about this, we have this awesome community of
hundreds of users who are in love with .NET Micro
Fra
mework and with sensors and robots and all the
above
and they are on
tinyclr.com
, that
'
s the website,
and if you go there on the forum you just type any
question about any software you can think of and
you
'
ll have ple
nty of answers. People there are very,
very friendly and very helpful.


Richard Campbell:

Yeah. You just keep leading
us to cooler and cooler sites here, Gus, like now we
'
re
getting into
--
TinyCLR has a lot of robotics on it.


Gus Issa:

Oh, yeah, yeah, T
inyCLR.
There are so many things I want to talk about
,
maybe
we should have another meeting but
...


Carl Franklin:

Now let
'
s go for it.


Gus Issa:

There are two websites. There
are two
electronics.com
. This is
the main website
where we work with big companies on solving their
commercial needs, and we have this
tinyclr.com
.
This is the community website that has the smaller
board that is possibly for hobbyists. The
documen
tation are fabulous for hobbyists.


Richard Campbell:

Right.


Gus Issa:

On top of all this, we saw that
users are contributing more and more source code
and examples so we thought, well, let
'
s create a
whole website just for them to drop in their sample
so
urce code like our examples here. I
'
m not sure how
to control an IR Transmitter to change picture on my
TV, maybe somebody else there had done the work
already. So we have this website called

fezzer.com

and it
'
s targ
eted for sharing source code and it
'
s full
open source code snippets and drivers for all kinds of
sensors.


Richard Campbell:

So now you just got to go out
and search for the kind of sensor you
'
re looking for.


Carl Franklin:

That
'
s awesome.


Richard Campb
ell:

And do nuts.


Gus Issa:

Yeah. Their website is fairly
new, a couple of weeks old and we already over 150
different drivers on the website.


Richard Campbell:

Awesome.


Carl Franklin:

Now, can you use VB.NET with
this within the framework?


Gus Issa:

Yes, you can but not today.
.NET Micro Framework has a full CLR. It
'
s a TinyCLR
but it is a CLR so theoretically you can create any
language and compile it and run it on .NET Micro
Framework. As of today officially C# and VB will
probably be the next as
we are seeing more and more
request and we are seeing more hobbyists getting
.NET Micro Framework and they
'
re asking for
VB.


Carl Franklin:

So this is a .NET Micro
Framework limitation, not a GHI limitation?


Gus Issa:

Yes, yes.


Carl Franklin:

Okay.


Gus
Issa:

Yeah. So what needs to be
done is when it gets to a point where there
'
s a VB
support on Visual Studio, then you can create a VB
project, compile that and load it on any .NET Micro
Framework device including GHI.


Carl Franklin:

Wow.


Gus Issa:

Actu
ally I
'
ve done some work
myself where what I did was compile a DLL in VB and
use that DLL in C# and now I was able to use C#, the
official support as a base but from there I was able to
link the DLL that was written in VB and then I can use
VB, but not the
mai n method. I had to access that i n
C#, but from there I can j ump i nto any VB code.


Richard Campbell:

So where do I find the
sensors?


Gus Issa:

T
inyclr.com
, t h a t
'
s t h e
c o m m u n i t y w e b s i t e w e h a v e. I t h a s m a n y, m a n y

s e n s o r s a n d i f t h e r e
'
s a s e n s o r y o u n e e d t h a t i s n o t
a v a i l a b l e t h e r e, l i k e I s a i d t h e c o m m u n i t y a n d e v e n
d e v e l o p e r s f r o m G H I a r e a l s o m o n i t o r i n g t h e f o r u m,
t h e y ’ l l p o i n t y o u o u t t o t h e
s e n s o r a n d
i f
you
'
re not
sure what sensor you need, the guys out there
will
either point you out to the right sensor or points you
out to where to get the sensor and even how to
connect it.


Richard Campbell:

Right.


Carl Franklin:

Wow.



Transcription by PWOP Productions, http://www.pwop.co
m

Page
10
of
12

Gus Issa Has a Micro .NET Framework!

January 4, 2011

Richard Campbell:

Although when I look at the
hardware at TinyCLR it
'
s all machines, it
'
s not the
sensors for the machines.


Gus Issa:

When you look at TinyCLR
there are sensors. If you go to any of the sensors, all
the boards they start with FEZ
.
FEZ
,
they
'
re for fun
and easy.


Richard Campbell:

Right.


Gus Issa:

So if you go to any of the
FEZ,
let
'
s say FEZ Domino, you
'
ll see many, many sensors.
There are selections on multiple places.


Carl Franklin:

Oh, yeah.


Gus Issa:

Where you can go to the next
and next page.


Carl Franklin:

I see FEZ Relay, MP3 decoder,
extension, a GPS extension, a
n accelerometer
extension, RFID Reader, and there are pages of
these things.


Richard Campbell:

Yeah.


Carl Franklin:

I
'
m looking at FEZ
--
what am I
looking at? Rhino? FEZ Rhino?


Gus Issa:

Yeah.


Carl Franklin:

So FEZ stands for Freaking
Easy. That
'
s
great.


Gus Issa:

Yeah. We did that for Fun and
Easy.


Carl Franklin:

Ah, come on. Freaking Easy is
great.


Gus Issa:

Yeah. Actually last year we
were thinking, when we started this website, what are
we going to name this new product line and we were
th
rowing ideas back and forth and somebody says
"
This is freaking easy. I
'
m not too
..."
Well, he named
it. And then we said
"
Oh, it
'
s freaking easy.
"



Richard Campbell:

It
'
s funny when those names
just stick.


Carl Franklin:

Yeah.


Richard Campbell:

Like
that
'
s the one. Yeah, look
at the list of sensors.


Carl Franklin:

Blue LED, IO40 Expansion,
Easy Remote using infrared light as remote, 38K
infrared receiver, a light sensor, relay boards, Serial
LCD, Wii Controller Interface. A Wii Controller
Interface
17 box.


Gus Issa:

That comes greater, the
controller, because it has an accelerometer. They
'
ll
drive into the Wii controller and plenty of buttons I
don
'
t like and digital buttons. So connecting those
you can do so much with the Wii controller.


Carl F
ranklin:

All right, I
'
ve got to read the list
because people are going to freak out here. Metal
detector, button, a big button, I love it, just a button.
You know how hard it is to just find a programmable
button out there.


Richard Campbell:

Yeah.


Carl
Franklin:

All right. PA Speaker, a
reflective sensor. What
'
s that? Sensor emits an
invisible infrared light and then measures it back to
see if the light is reflecting. That
'
s how the Kinect
works, Richard.


Richard Campbell:

Yeah.


Carl Franklin:

A t
hree
-
wire cable, a
thermometer, a serial server motor controller and
these are 40 bucks tops, some of them are 10 bucks,
some are 15 bucks. XB, Expansion XBEE, I don
'
t
know what that is, a DC motor driver, a distance
detector, a color LCD extension, car a
daptor, USB
Power Supply. What else do we have here?
Bluetooth Interface, battery holders, server motors.
These are just components, right?


Gus Issa:

Yeah. Some components will
be out like wires, headers, some things that help in
different projects th
at you could be creating.


Carl Franklin:

Yeah. Man, that
'
s awesome
and that
'
s just for
...


Gus Issa:

Yeah. Can you go to hardware
FEZ Mini page?


Carl Franklin:

Yeah. Okay.


Gus Issa:

You see the third product on
that says the friend of many robots.


C
arl Franklin:

Yeah.


Gus Issa:

So it
'
s a full robot that comes in
pieces and you can construct that over Christmas
break and you have a robot where you could run in
.NET.


Carl Franklin:

150 bucks.



Transcription by PWOP Productions, http://www.pwop.co
m

Page
11
of
12

Gus Issa Has a Micro .NET Framework!

January 4, 2011

Richard Campbell:

Yeah, and then you need to
add sensors
from there.


Gus Issa:

Oh, yes, yes. This robot had a
little flag on top saying I
'
m running .NET and it was
dancing around at PDC 2009.


Carl Franklin:

So there
'
s a little monkey that
says did you know FEZ supports runtime debugging?
How was that differe
nt from Visual Studio debugging?


Gus Issa:

Okay. This is actually for those
who are used to program on a very low level. They
were not able to debug. This is not like the .NET
developers. .NET developers have this coming easy
for them. They always ca
n step in code, views,
inspect variables, do all kinds of different things to
help them develop. Now deep embedded developers,
they must have very expensive tools or they would
not be able to debug. What we did back in the days
when we did low level prog
ramming is basically send
them an LED on if something happens. This is how
we debug that something is working, and LED is a
little light by the way if somebody doesn
'
t know. So
we see an LED is on, this is how we know it
'
s
working, or it
'
s blinking, or m
aybe connect a small
display and print things to the display just so we know
why the software is crashing and what happens. We
didn
'
t have debugging.


Carl Franklin:

Okay.


Gus Issa:

Now with .NET Micro
Framework, you have all this, get these little piece
s
built right in. You hit F5 in Visual Studio, it deploys
the FEZ to write on the board over USB and while the
software is running on USB you can start to encode,
you can start the program, you can inspect variables
all day long.


Carl Franklin:

Awesome.
So that
'
s really not
for us. That
'
s for those people who aren
'
t used to it.


Gus Issa:

Yes. So this is something new.


Carl Franklin:

Yeah. Do you find that there
are a lot of non
-
.NET developers that are getting into
C# programming because of this? L
ike do you find a
lot of beginner developers?


Gus Issa:

Personally I think there are
more users coming from deep development to .NET
because of the .NET Micro Framework.


Carl Franklin:

Okay.


Gus Issa:

If you are a .NET developer,
you
'
re usually programm
ing on a PC or you don
'
t
think about programming in mobile devices, and if you
did, you
'
re probably programming your smartphone
using C#. So you really don
'
t see the small device, or
you don
'
t think the device exist, or you don
'
t go out
there and look for
it. Now for developers who are
used to use their micro controllers, developing is
extremely difficult. Like I was saying earlier, how do
you create a file let
'
s say using a basic micro
...


Carl Franklin:

Right.


Gus Issa:

This is a nightmare. This is
h
undreds and hundreds of lines of code to do
something extremely simple. Now with .NET Micro
Framework, this is already built
-
in. Now we are
programming little devices in the same way you would
program smart devices.


Carl Franklin:

Okay.


Gus Issa:

There
is also a Wiki that would
be very helpful for users interested to learn more
about .NET Micro Framework.


Carl Franklin:

Okay.


Gus Issa:

We named the Wiki website
microframeworkprojects.com
.


Carl Fra
nklin:

Great.


Gus Issa:

So Wiki is basically open for
the community. Anybody can go in there and edit that
project, remove project and you would see tons and
tons of projects out there with videos.


Carl Franklin:

Okay. Well, that
'
s cool. So
how long
have you been doing this with GHI and what
were you doing before you work there?


Gus Issa:

Before GHI, I
'
ve always been
an embedded systems developer, and before GHI I
was working on automotive devices developing
handheld special equipments on automotive
and then
we started GHI and we had this idea that we want to
create
--
I found these challenges that we
'
re talking
about earlier, how deep embedded developer is
extremely difficult to do a lot of things on the
embedded side.


Carl Franklin:

Yeah.


Gus Issa
:

So we had this idea of creating
these modules that are easier to use. They are
hardware and software. There are plenty of modules
out there, hardware modules and there
'
s plenty of
software but it
'
s not easy to find a combination. So
we had this idea o
f let
'
s start a business where we
offer developers hardware and software package that
gets them going with whatever they want to do and
this where we always try to create devices that are
very generic. They
'
re not targeted for one company

Transcription by PWOP Productions, http://www.pwop.co
m

Page
12
of
12

Gus Issa Has a Micro .NET Framework!

January 4, 2011

or one need. We
try as many features as we can.
We have to try to have everything of course, make
sure everything is professionally added. Now users
out there needing file system, we support that.
Somebody needing networking, we support that. Wi
-
Fi, or wired, or even
PPP if you need to use cell
phone network we also support that.


Carl Franklin:

That
'
s awesome. Well, Gus,
man, it
'
s been awesome. This is great stuff and after
Christmas and I have a few extra dollars lying around,
I
'
m definitely going to get into this
. So Richard, I
'
m
going to apologize in advance because I
'
m going to
be busy with my GHI devices and probably won
'
t have
time to hang out as much.


Richard Campbell:

Okay.


Gus Issa:

Yeah. I love to hear more after
you try it and I would love hearing the
story of some
users who coming from either world, from .NET world
or from deep embedded world and they
'
re trying .NET
Micro Framework. I love to hear what your opinion
would be.


Carl Franklin:

I also like to apologize in
advance to my girlfriend. I
'
m sor
ry but
...


Richard Campbell:

I
'
m busy.


Carl Franklin:

I
'
m going to be busy for a
while. All right, Gus, thank you so much.


Gus Issa:

You
'
re really welcome. Well,
one thing to get you started before you purchase
anything
...


Carl Franklin:

Okay.


Gus Is
sa:

Or do anything, there is a free
ebook for you and it
'
s right there on the website. I
wrote this book and it was a gift for the community
and basically it
'
s the knowledge from everybody at
GHI and knowledge from the community combined
that. Thanks to e
veryone at GHI and the community
for helping me, and combine that into one book that
takes you from the very beginning. The book was
made so even if you
'
re not .NET developers you
would be able to use the book. It even teaches C# to
an extent. So take i
t from A to Z. So this is a good
place to start.


Carl Franklin:

Okay. So if you go to the
downloads tab, you
'
ll see it there, this PDF file.


Gus Issa:

Yes.


Carl Franklin:

All right. Great. Beginners
Guide to NETMF and NETMF
...
Thanks very much
and
we
'
ll see you next time on .NET Rocks!


[Music]


Carl Franklin:

.NET
Rocks! is recorded and
produced by PWOP Productions, providing
professional audio, audio mastering, video, post
production, and podcasting services, online at
www.pwop.com
.
.NET
Rocks! is a production of
Franklins
.NET
, training developers to work smarter
and offering custom onsite classes in Microsoft
development technology with expert developers,
online at
www.fr
anklins
.
net
. For more
.NET
Rocks!
episodes and to subscribe to the podcast feeds, go to
our website at
www.dotnetrocks.com
.