TechDays 2012 at Brussels, Belgium

February 14-16 was fantastic conference at Brussels, Belgium. Also it was the biggest conference when I’ve ever been.

Just have a look at these speakers:

  • Scott Guthrie is a Corporate Vice President in Microsoft’s Server and Tools Business division,
  • Nick Harris is a Technical Evangelist at Microsoft specializing in Windows Azure,
  • Ben Riga is Senior Technical Evangelist for Windows Phone 7 in Microsoft’s Developer and Platform Evangelism (DPE) group,
  • Steve Sanderson works as a program manager for Microsoft in the team that brings you the ASP.NET technology stack,
  • Jeff Prosise is cofounder of Wintellect (www.wintellect.com)

and lots more interesting speakers.

This is absolutely fantastic, isn’t it? J You can find all videos from this event here.

There were a lot of question at the beginning of the year. What is the main way/trend of Microsoft? Is it real rumours about JavaScript (I remind that it was only February!)? And as usual what interesting features were prepared for as from Microsoft?

Let’s give short answer on these questions.

First of all, before this year everybody say that main language at Microsoft stack of technologies was C#. After TechDays 2012 I’d say: now there are 3 equal programming languages C#, C++ and JavaScript.

Yes, JavaScript became strong language at Microsoft world. You should even use JavaScript for creating CRUD operation on Windows Azure Mobile Services (I won’t say here about missing test system and source code tracking hereJ). Next significant point: all Microsoft skills and power is shifted to mobile world: html5, JavaScript and of course mobile platforms.

Secondly, mostly interesting question is about Silverlight future.

After this event I have a following opinion. Steven Sinofsky completely kills Silverlight as a Microsoft trend. However, don’t start to move all your application out of this. There is really good feature for this technology at business sector (especially at conservative business, such as insurance/financing/bank sectors). Here I’m pretty sure Silverlight can be a good choice for creating Rich Internet application.

Last one, but not boring part. Microsoft features.

There are only few words: web + Azure! New Microsoft ASP.NET MVC 4 is absolutely fantastic framework. Have a look at the video from Scott Guthrie “A Look at ASP.NET MVC 4”

A Look at ASP.NET MVC 4

BTW: after session I had a small conversation with him about web and new ASP.NET Web API. I’d like to say: he is really energetic person which can energetically charge an interlocutor. After this few minutes I was full of energy and felt as a Superman J
Next huge topic was Microsoft Azure, awesome platform!

There is a video from Nick Harris about new features here:

Devices + Cloud: Using Windows Azure with Windows Phone, iOS, Android, …

At the end, I would like to say, that TechDays 2012 was a good event, thank you everybody who helped to organize all of this! I really enjoy it and hope it wasn’t my last such a big TechDays.

What has been done during 2011 year?

This year is almost finished and I’d like to summarize what has been done, what I should improve. New Year’s good time to know: where you are on the road map, add new goal to life and analyse productivity.

If you want to do something grandiose in one of the beautiful days,

remember – this day is today!

(c) George Lucas

This list I had in the beginning of 2011 year (of course without my private goals which all have been done) and what has been done:

  1. Change a job.Success

    I have been working for 3 years for one company in Ukraine. It was my first job, I grown there from junior-developer to senior developer. I met a lot of interesting people; I worked with customers which gave me knowledge in variety areas. However, on someday I realize that our ways are different, that I need something more in business and technical knowledge. For this I decided to push myself a little bit. My new company was in the Donetsk, Ukraine too. I worked there around half a year as a head of .NET department but on not good productL. (Why I left that company on the next item).

  2. Immigration.Success

    In a university I made a decision to work (or live) abroad. In 2011 year I had decided to do it. As a result I’m working with high-motivated professionals for fantastic company in Antwerp city, Belgium.

  3. Visit one of the solid conferences.Success

    On November 14-15, 2011 I’ve visited a SQL Server Days 2011. If you want to know more please read this post about first day and this one about second day in a conference.

  4. Pass 70-564 and become a MCPD ASP.NET developer.Success
  5. Read 10 books.Success

    At the end of the year I read around 15-20 maybe (I calculated only technical books). So this item was underestimated. As a result on the next year I put 20 (I don’t want to improve this now because I need time for other things). Last book were about project management and Agile You can find some of them on my LinkedIn profile. And I’m planning to move on that direction. I feel that I need more knowledge on business too (Maybe for this I’ll graduate some business college or university here in Belgium. I already have one which interesting for me. It’s EHSAL Management School. So if you know something or ever graduated that one please live a comment!)

  6. Pass 70-523: upgrade MCPD ASP.NET 3.5 to MCPD ASP.NET 4.0.Fail

    It was one of things which I decided not to do and really regret about. Last year all my projects were Silverlight. I’m feeling shortage of experience on this area. However I’m not sure that I put it to the next year’s list.

  7. English: pass IELTS.Fail

    I’m absolutely sure that this one is the biggest my fault. I definitely need to improve my English. I decided not to take this but I’m 100% sure that “pass IELTS” is one of the strong motivated factors. This item is absolutely MUST HAVE on my next year’s list.

  8. Create a first Windows Phone 7 application.Fail

    I decided to move on this direction. I really like this OS and Metro style. I’m working around 3 month on my application. Now I think it’s ready on 60%-70%. I still should implement good design and publish it on marketplace. Hope, I can do it on February.

  9. Create a blog with N-thousands visitors.Success

    At the end of the year I’ve exceeded this item on 155%. However, now I think it’s my mistake. I shouldn’t evaluate blog by “visitor” measure. I need to think about this item on next year because I don’t satisfy with “post count” measure too.

In a conclusion I would like to maintain that 2011 year was really productive for me with a lot of fun and success. I hope next one would be ever more interesting and productive. Also I’d like to say thank you everyone how was on this year with me!

I hope you all enjoyed Christmas, and I wish you all a happy and productive 2012 year!

Choose control style in XAML through converter.

Frequently we need to change control style (or template) dynamic. Of course it can be done on different ways:

  • Put two controls and “play” with Visibility property and binding – I suppose it’s the less smart case;
  • You can choose DataTemplate/ControlTemplate in code behind file;
  • And use converter.

I’ll show the last one.

The task is: we have a control (in my case it’s just an expand/collapse button) and we need to choose appropriate style for this control which depends on a model.

I created two styles:

  1. True style for expanded state
     <Style TargetType="Button">
                    <Setter Property="Width" Value="13" />
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate>
                                <Grid Width="13" Height="13" VerticalAlignment="Center" HorizontalAlignment="Center" Background="Transparent" Cursor="Hand">
                                    <Rectangle StrokeThickness="1" Stroke="{Binding ForegroundColor}" RadiusX="2" RadiusY="2" />
                                    <Rectangle Fill="{Binding ForegroundColor}" Height="1" VerticalAlignment="Center" Margin="3" />
                                </Grid>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
  1. False style for collapsed state
    <Style TargetType="Button">
                    <Setter Property="Width" Value="13" />
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate>
                                <Grid Width="13" Height="13" VerticalAlignment="Center" HorizontalAlignment="Center" Background="Transparent" Cursor="Hand">
                                    <Rectangle StrokeThickness="1" Stroke="{Binding ForegroundColor}" RadiusX="2" RadiusY="2" />
                                    <Rectangle Fill="{Binding ForegroundColor}" Height="1" VerticalAlignment="Center" Margin="3" />
                                    <Rectangle Fill="{Binding ForegroundColor}" Width="1" HorizontalAlignment="Center" Margin="3"  />
                                </Grid>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>

Next step, I create a BoolToStyleConverter:

    public class BoolToStyleConverter : IValueConverter
    {
        public Style TrueStyle { get; set; }

        public Style FalseStyle { get; set; }

        #region IValueConverter Members

        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return ((bool)value) ? TrueStyle : FalseStyle;
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }

        #endregion
    }

Also I create model with following properties:

    public class TaskModel
    {
        public bool IsExpanded { get; set; }

        public Brush ForegroundColor { get; set; }
    }

As a result, I’ve got following behavior only in a XAML. Additionally, I can use a bind (in my case it’s just a foreground color of the model to my style).

Expanded state

Collapsed state

Enjoy!

SQL Server days 2011. Second day.

15 of November was second day of SQL Server days. Whole day I spent in San Marco Village with 6 lectures. As I wrote in first topic you can find agenda here. I’ve choose following:

  1. Migrating applications to SQL Azure ( Cihan Biyikoglu)
  2. Ten Things Every Developer Should Know ( Kevin Kline)
  3. Extending the reach of Microsoft BI to virtually any mobile device ( Real Dolmen)
  4. Table indexing for the .Net developer ( Denny Cherry)
  5. iPad and PowerPivot ( Jennifer Stirrup)
  6. Extending to Public / Private cloud ( Lubor Kollar)

The today’s Cihan Biyikoglu’s lecture was more smarter for me and interesting (but maybe there is a reason because it was a first lectureJ). You can find some info here. I knew lots of information about federation in SQL Azure. It was absolutely new for me.

Lecture of Kevin Kline was completely fantastic. He’s really god speakers. There were funny jokes, some interesting images in presentation and ever Darth Vader’s song! The main topic of speech was performance in sql queries, selecting and improvement of your query and how developers can help and made DBA’s job J

    The most interesting lecture for me was “Table indexing for the .Net developer” Denny Cherry. The information was absolutely useful and very high-oriented! I like the speaker, he wasn’t boring.

    All other reports were really boring and nothing interesting.

In conclusion I would like to maintain SQL Server days 2011 has turned fine! Thank you all lectures for their time and job. I’s happy to be a part of this event! So now I very much look to the TechDays 2012.

SQL Server days 2011.

Today I’ve been on the first day of SQL Server days 2011 in Antwerp, Belgium. This is the agenda. In my opinion there were around 300-350 IT-professionals. First of all, I’d like maintain on good organization of this event. There were a lot of parking spaces, good hall and of course tea/cola and cakes ;-).

Secondly, I really like topics. They are really on cutting edge, lots of new applications and products which we will see on the 2012 year. Also almost all speakers were from Microsoft. You can find the list of them here.

Personally I on the first day agenda was following:

  • Opening Keynote (Dandy Weyn & Wesley Backelant);
  • Windows Azure Platform Roadmap (Cihan Biyikoglu)
  • Federations: Building large scale applications on SQL Azure (Cihan Biyikoglu)

Maybe I should take more SQL server topics, but after first one I decided spend all my time to the Microsoft Azure. I really like Dandy Weyn’s speech. He was so dedicated and belief on the Microsoft products, that new SQL server 2012 is the best products. BUT I don’t believe that there isn’t any problem place and problems! And without these things all speech was just like a marketing advertisement.

However, new SQL server 2012 seams have really good innovative features such as:

  1. Improvement performance around 44% with new Column Store Index;
  2. AlwaysOn Availability Groups (Clustering + Mirroring + Replication);

I’m 100% sure that it would be useful. Also there are a lot of new features for business oriented people.

Also Cihan Biyikoglu gave us a lot of information about Azure, new features of it and building a scale application with a SQL Azure. It was very interesting! …but information without interesting demos (maybe because we didn’t have lots of time) was really boring. But maybe it was only my problem.

Thanks Dandy and Cihan for new information, for his time and love on these products. They are really enjoy what they are doing. Everything was fantastic!

Tomorrow second day of SQL server days 2011 is waiting for me 😉

P.S. On other hand it’s really sad that Ukrainian specialists don’t have such events. As a result, it impacts on whole Ukrainian start-ups, companies and all IT-area.

Silverlight: stretch ListBoxItem horizontally.

Very often you need to stretch your ListBoxItem horizontally. If the ListBox is simple (without ItemTemplate), there is easy solution: just add

HorizontalContentAlignment="Stretch"

to the ListBox.

However, in second way the solution is easy too. But frequently we spend a lot of time to fix it. There is a solution:

<ListBox.ItemContainerStyle>
<Style TargetType=”ListBoxItem”>
<Setter Property=”HorizontalContentAlignment” Value=”Stretch”></Setter>
</Style>
</ListBox.ItemContainerStyle>

Enjoy!