dotNetConfPL 2015

dotNetConfPL 2015

In the previous weekend, on October 31, together with Michal and Pawel we held 3rd edition of dotNetConfPL.

In this year, sessions were very diverse: from ASP.NET vNext, through unit testing, functional programming, Vargant, software architecture, all over to Internet of Things. Great thanks to speakers who did awesome job.

If you missed it you can watch videos on youtube.

Make sure to subscribe to dotNetConfPL youtube channel to do not miss upcoming events.

If you have any feedback and suggestions, please tweet mentioning @dotNetConfPL and #dotNetConfPL, or leave comments below this post.


dotNetConfPL 2014: summary and sessions recap

The second edition of dotNetConfPL was pretty successful. I am very pleased with all sessions, and speakers performance.

All sessions went smooth, but one. Barbara Fusinska could not run screenshare on Google Hangouts. Her session was recorded later and is already available. The only way to inform other about the problems during the conference was through JabbR or displaying Blue Screen of Death instead of her session. Adding something on website would require us to redeploy. We didn’t want to do that. For the next year we will prepare some placeholder for information, which can be set dynamically.

This year we had one non-technical talk: Talent for $2. You would be tempted to! I think this talk has great potential. It includes a lot of pointers and tips. I encourage you to look at it. I watched Simon Sinek’s TED talk: “How great leaders inspire action”, and I took Clifton’s test to discover my talents. My 5 talents are:

  • Learner
  • Focus
  • Responsibility
  • Deliberative
  • Analytical

I am very interested if some of you did this test, and what results did you get. Share it in comments!

The most popular feedback about the conference is: “We need it more often than once a year”. We will try to figure out something 😉

Check all sessions recap:

Maciej Aniserowicz – Unit testing in practice, vol 2

1:11 – agenda
1:55 – unit tests vs integration tests
4:14 – DB testing: “in memory”
7:14 – DB create script
7:50 – DEMO start
9:25 – tests outline
11:40 – creating InMemoryDbFixture (helper class for tests)
13:40 – tests implementation
17:00 – first method implementation (to pass test)
18:29 – installing packages: autofixture, xunit.extensions, autofixture.xunit (for random string generation)
19:30 – applying installed packages for automatic string generation
21:15 – second method implementation (to pass test)
24:20 – modifying InMemoryDbFixture class to respect join on tables
26:12 – pros and cons for testing with real DB
27:50 – separating tests for mock DB, and real DB
30:09 – script for drop everything in DB
32:15 – creating fixture for running db scripts (drop_everything.sql and install.sql)
34:50 – baking fixture into test class and implementing tests for real DB
42:00 – turning off NCrunch ability to run tests simultaneously
43:40 – summary
45:10 – Q&A

Filip Wojcieszyn – Everything you want to know about Roslyn

1:55 – C# compiler today
3:20 – compiler as a service
4:05 – Roslyn influence
6:45 – Roslyn APIs
7:58 – Tools required for Roslyn
10:25 – compiler as a service DEMO
17:17 – Roslyn for code analysis (static, semantic)
22:24 – code analysis with Roslyn DEMO (syntax visualizer)
26:21 – sanity check DEMO
31:40 – SyntaxRewriter DEMO
35:55 – Roslyn APIs (one more time)
38:40 – building tools for Visual Studio with Roslyn SDK
39:25 – Diagnostic + Code fix DEMO
46:57 – Custom C# dialect DEMO
50:30 – Examples of Roslyn in Real World
52:00 – Q&A

Barbara Fusinska – Aspect-Oriented Programming (AOP)

1:37 – Agenda
3:29 – History of AOP
4:57 – Cross cutting concerns
8:50 – What the heck are aspects?
13:01 – demo app presentation
15:23 – Some benefits of AOP
16:15 – DEMO: adding functionality to existing method of demo app
23:55 – DEMO: LoggingAspect
27:00 – DEMO: DefensiveProgrammingAspect
28:23 – DEMO: TransactionAspect
30:00 – Where you’ve been using AOP without knowing it
33:15 – DEMO: communication with external services and cleaning code with aspects
42:02 – Testing aspects usage
46:10 – DEMO: How to test aspects and possible problems

Jakub Gutkowski – Server Side or/and Client Side MVC ???

0:45 – Agenda
1:06 – Client Side vs Server Side
6:22 – SPA (Single Page Applications)
14:00 – Problems with SPA
16:58 – Solutions?
19:20 – DEMO: SPA inside not SPA
23:39 – DEMO: SPA without server
26:20 – JavaScript everywhere? JS approach by Twitter, Basecamp, AirBnB, Instagram, Facebook
34:20 – How we can/should use JavaScript
35:13 – DEMO: Push State
40:53 – summary
41:22 – Q&A

Patryk Góralowski – Talent for $2. You would be tempted to!

3:39 – how to answer a question: who you are?
6:05 – development
6:59 – self development
7:58 – our personal resources: body, mind, emotions, belifies
14:00 – task 1: why your are here today? give 10 reasons, select 3 most important, and ask why each of them
19:30 – expected result from task 1
21:02 – about Simon Sinek (author of the process given in task 1) and his TED talk: How great leaders inspire action
26:35 – philosophy of our self development
27:35 – about Mike Markkula, and philosophy of Apple
29:34 – #1: empathy (understand customer needs better than others)
30:32 – task 2: write down your needs
30:53 – #2: focus (eliminate all irrelevances)
31:29 – task 3: eliminate all irrelevances at your work
33:10 – #3: impute desired characteristics
35:55 – task 4: identify your “imputed characteristics”
37:27 – invest $2 to discover your talent ($9.99 for 5 talents) with Gallup Strengths Center
39:55 – what means talent by Gallup Institute
42:06 – strength = talent + knowledge + skills
43:33 – Clifton’s test
45:05 – 5 talents discovered by Patryk
49:22 – summary
50:46 – recommended books
51:45 – Q&A

Maciej Grabek – Business Requirements in the form of a code: a few words about BDD with SpecFlow

1:25 – Agenda
2:20 – DEMO #0: unit tests – how we do that, and challenges in interaction with business people
5:03 – business requirements and unit tests (BDD)
7:02 – Applying BDD (tools)
9:25 – DEMO #1: simple example (translating behavior description to C# code)
16:53 – DEMO #2: parameters
18:45 – DEMO #3: scopes
23:05 – DEMO #4: parameters table
35:45 – DEMO #5: “before” and “after”
42:19 – summary
46:36 – Q&A

Michał Łusiak – WTF # – what is F # and why you should care

0:41 – Functional programming
4:38 – F# language overview
10:41 – DEMO: variables
14:07 – DEMO: lists
15:59 – DEMO: functions
19:53 – DEMO: pattern matching
21:23 – DEMO: tuples
22:20 – DEMO: record types
23:04 – DEMO: union types
24:01 – DEMO: printing
25:00 – DEMO: using .NET libraries from F#
25:55 – DEMO: unit of measures (“numbers with units” variables)
28:21 – DEMO: type provides (providing types for compiler dynamically)
31:12 – Why use F#
33:18 – Learning resources
38:05 – Recommended F# talks
39:20 – Recommended books
39:58 – summary
40:10 – Q&A

dotNetConfPL – the second edition

dotNetConfPL - 2nd edition

The first edition of dotNetConfPL was pretty successful, and together with Michal and Pawel we decided to do a second edition. This conference is in Polish language, which makes it unique, because there are no other online conference like that in Poland.

This year talks looks promising as well. Maciej Aniserowicz prepared second part of his talk about unit tests from the last year, Filip Wojcieszyn will talk about the hottest thing in this year: Roslyn. Jakub Gutkowski prepared a talk about cooperation of MVC in client and server side. Maciej Grabek proposed a talk about BDD, which is getting more and more popular in .NET World. Michał Łusiak (from tretton37) will talk about F#. This year, we have a women speaker! Barbara Fusińska will talk about Aspect-Oriented Programming. Another new thing is a non-technical talk: Patryk Góralowski prepared a talk with mysterious title: Talent for 2 dolars!

I really can’t wait! All talks sounds very interesting. Remember to buy pizza and beer, and join us on On Air, this Saturday, October 18, 3PM (UTC+01:00, Warsaw Time Zone).

Find out more about talks and speakers.

This year we have 6 ReSharper licenses, and 3 NCrunch licenses to give away. Additionally, Filip Wojcieszyn volunteered to give away one copy of his book: ASP.NET Web API 2 Recipes: A Problem-Solution Approach. To join the raffle, register your attendance!

See you at the conference!

I am back!

Last two months were super busy for me. The end of semester (with compilers course‘s project), applying for a PhD studies, Christmas, New Year’s eve in Poland, and a job interview. I will tell you more about all of those things later in separated posts. Maybe not all, Christmas and New Year’s eve experience I will keep for myself 🙂

I am happy that all above is accomplished and I can get back to my routine (programming, blogging, reading books and learning new things).

It is worth to summarize the last year, which was quite successful:

  1. I started Master of Science in Computer Science program at the Kansas State University.
  2. I started this blog.
  3. I created twitter account and started using it.
  4. I co-organized dotNetConfPL (with Michal Franc and Pawel Sawicz).
  5. I almost maintained 4.0 GPA (I have 3.8 for now).
  6. I applied for Microsoft Student Partner position, but Microsoft rejected me.

The main goals for this year are:

  1. Graduate with Master of Science degree from Kansas State University.
  2. Start a new job.
  3. Run dotNetConfPL 2014.

I also would like to finally attend Dev Day conference in Kraków, but I am not sure if I will be in Poland on September 26.

During ‘the break’ I came up with a lot of ideas. I have 6 drafts for blog posts, 5 topics for a blog posts on the to do list and tons of ‘new, cool things’ to check out. When you get busy, because of School, work, personal issues etc. – don’t worry. Take a break, get all of more important things done and once you get back, you will be more happy and motivated than before.

don't just wish for a great 2014, make it so

The Story of dotNetConfPL

It is all about people and cooperation!

Long story short

April 25-26 – dotNetConf took place, online conference for .NET developers, organized by Scott Hanselman and Javier Lozano

April 27 – I text Pawel Sawicz, that we can organize something similar with Polish speakers and name it dotNetConfPL, he said: “it’s a good idea”. (motivation++)

April 28 – Pawel told me that Michal Franc is also interested and we created google doc to write down ideas and todos. (motivation++)

May 24 – We ask Scott Hanselman whether we can use dotNetConfPL as a name of the conference (because it’s very similar to name of his conference). He and Javier Lozano confirmed in the same day and wished us good luck. (motivation++)

June 6 – We sent e-mail to Maciej Aniserowicz, with a proposition to be a speaker at our conference.

June 7 – He responded: yes (we had first speaker!). (motivation++)

After that, we were inviting rest of speakers and most of them accepted our invitations. We really appreciate this, because they didn’t get any benefits from that.

July 14 – We announced dotNetConfPL on facebook and gain almost 50 registrations for the event within 1 hour! (motivation++)

The week of the conference

A few days before the conference we did initial testing with speakers. To check, whether their microphone, resolution, etc. is set properly. Sometimes we had issues with Google Hangouts. Solution for that was simply disconnect and create a new ‘hangout’. Our initial plan was to make only 1 hangout for entire conference, because each one has different link. We wanted to avoid forcing people to refresh the website or use of SignalR. However after that, we decided it will be better (safer and more flexible) to create separate ‘hangouts’ for each speaker and update link using SignalR.

Website for conference was created in ASP.NET MVC framework. The SignalR+CounchDB feature was implemented day before conference. After the conference I found interesting file in our solution:

dotnetconfpl - code

It is worth to mention that during the conference I was in Manhattan, KS, while Pawel and Michal were in Wroclaw, Poland. The image below, is my Command Center. ThinkPad X220 is connected with 2 monitors and through it I am connected to speakers. On MacBook I am connected via Skype with Michal and Pawel. On Surface I have live streaming (about 30 seconds delay) to be sure everything is working fine. The only issue I had, was not enough ears. I had only two: in one I was connected to the speaker, second – Michal and Pawel, and if I had third, I would be able to track the live streaming 🙂

dotNetConfPL - center


All sessions were in Polish. If you don’t speak Polish, you can mute the sound, play this in background and watch 🙂 You won’t get full experience, but still can get a lot from each session!

What is cool, all of them are for beginners and non-beginners in the same time. Which means, everybody will learn something from each session. Additionally: all of them are in HD (720p). Google enabled it by the end of August.

Maciej Aniserowicz: Unit testing in .NET

Maciej shows TDD live example. From nothing to well-tested communication with external API.

Filip Wojcieszyn: scriptcs – C# on diet

Filip shows how to use C# in Console and/or in SublimeText.

Jakub Gutkowski: JavaScript for C# developer

Jakub shows differences between C# and JavaScript, and language flavors every developer should be aware of, which may cause hard to track bugs.

Tomasz Janczuk: Node.js, Edge.js and Windows Azure

This session blew my mind (and not only mine). Edge.js allows you to mix Node.js, C#, F#, IronPython, PowerShell and T-SQL code in one file!

Maciej Grabek: Windows Phone 8 Tips & Tricks

Maciej shows set of useful(8) tricks for WP8 developers. From displaying helper-grid during development, to how to get more ratings for your app.


Everything went well. We didn’t have any problems with streaming (thanks Google Hangouts) and website (thanks Windows Azure and SignalR). I noticed that sometimes, on my Surface RT, IE11 wasn’t refreshing the link. But, come on…it’s IE, so we can ignore it 🙂

We had room on JabbR for discussion and ask questions to speakers. For a few minutes, even David Fowler (one of SignalR developers) visited it.

I am very glad that many people attended the conference. We had more than 600 registrations, almost 100 people in JabbR room and around 100-200 online viewers. But many people were watching the conference together, and in this case 1 online viewer = more that 1 physical viewers.

dotNetConfPL - atCompany
dotNetConfPL - pizza

Thank you very much for all speakers! You did a great job guys, all sessions are international level!
Thanks to Michal and Pawel for organizing this conference with me.
Thanks to Scott Hanselman and Javier Lozano for inspiration.
And…thank you very much for all of you who were watching the conference and spreading the news!

Short list of tools/technologies we were using for the conference:

  • Google Hangouts
  • SignalR
  • CouchDB
  • Windows Azure (to be able to scale the instance, depends on the number of users)
  • Google Docs (as a database for most important information)
  • Trello (for tasks management)
  • AppHarbor (as test server)