April 27, 2011

Peter-Paul Koch (PPK) at the Front-End Day in Telerik Academy

Telerik organized the first front-end development conference in Bulgaria – Front-End Day 2011. It was held in Sofia, in April 26-27. Our guests were Peter-Paul Koch (PPK) and few other Web, front-end and mobile Web development gurus.

PPK-at-Telerik-Academy-Front-End-Day-April-2011It was a nice event, focusing on the modern Web front-end technologies. The second day was hosted in Telerik Academy where we had a free training on Web game development and mobile Web.

Tags: , , , , , ,

January 31, 2011

High-Quality Code Course – Open for All Universities in Sofia

I am happy to announce that I and my team of experienced speakers will teach the “High Quality Code Construction” course again starting in February. The course will be held in Sofia University at the Faculty of Mathematics and Informatics and in parallel in the Telerik Academy (for students from TU-Sofia, NBU and UNIBIT). Students from all universities and even school students are invited to attend this course. The course is free and is open, without any obligations for the attendees.

The course “High-Quality Programming Code” provides fundamental principles and practices for building high-quality software with focus on the source code, unit testing and refactoring. The course is held as elective training in few Bulgarian universities and targets the students from the computer science related specialties.

Course Annotation

The „High-quality programming code” course objective is to introduce the students to the principles of high-quality programming code construction during the software development process. The quality of the code is discussed in its most important characteristics – correctness, readability and maintainability. The principles of construction of high-quality class hierarchies, classes and methods are explained. Two fundamental concepts – “loose coupling” and “strong cohesion” are defined and their effect on the construction of classes and subroutines is discussed. Some advices for correctly dealing with the variables and data are given, as well as directions for correct naming of the variables and the rest elements of the program. Best practices for organization of the logical programming constructs are explained. Some methodologies for testing, debugging and code optimization are introduced. Special attention is given also to the “refactoring” as a technique for improving the quality of the existing code, unit testing and test-driven development. The principles of good formatting of the code are defined and explained. The concept of “self-documenting code” as a programming style is introduced. The techniques and practices for constructing high-quality programming code discussed in the course are independent of the programming languages. To graduate the course students are assigned two practical projects and a test examination. The practical projects consist of refactoring existing low-quality code, making the code testable, adding unit tests and measuring the code coverage to ensure the code is well tested.

Certification and Awards

Best students will get certification signed by the trainers team and will be awarded by our sponsor – Telerik Corp.

Curriculum

  1. Course Overview. Introduction to High-Quality Programming Code. Entrance Project
  2. Fundamentals of Software Engineering
  3. Naming Identifiers in the Source Code. Naming Classes, Methods, Variables, Parameters and Other Elements of the Code
  4. Designing High-Quality Classes and Class Hierarchies. Best Practices in the Object-Oriented Design
  5. High-Quality Methods. Strong Cohesion and Loose Coupling
  6. Using Variables, Data, Expressions and Constants Correctly
  7. Using Control Structures, Conditional Statements and Loops Correctly
  8. Correctly Formatting the Code. Code Documentation, Comments and Self-Documenting Code. Code Conventions
  9. Defensive Programming. Using Exceptions Correctly. Performance Tuning and Code Optimization
  10. Code Integration. Refactoring Existing Code to Improve Its Quality
  11. Software Quality Assurance. Testing and Debugging. Unit Testing. Test-Driven Development
  12. Development Tools. Development Environments. Change Management Systems. Code Analysis Tools. Automated Testing Tools. Automated Build Tools. Continuous Integration Tools
  13. Test Covering the All Studied Topics
  14. Course Projects: Assignment, Guidelines and Discussion
  15. How to Become a Ninja Developer?

Trainers

Eligible Students

The course will be held in parallel for students in the following universities:

  • Faculty of Mathematics and Informatics (FMI), Sofia University “St. Kliment Ohridski” (SU)
  • Technical University – Sofia
  • New Bulgarian University (NBU)
  • University of Library Studies and Information Technologies (UNIBIT)

Timetable

The course will be held:

  • Every Tuesday, 18:00-21:00 h, starting from 22.02.2011 at FMI, lab 101 (Sofia, James Baucher 5 -http://goo.gl/maps/MnXR)
  • Every Wednesday, 18:00 – 21:00 h, starting from 16.02.2011 at Telerik Academy’s training lab (Sofia, Mladost-1, bul. Alexander Malinov 33, ground floor – http://goo.gl/maps/mCZE)

Official Discussion Group

The official discussion group of the course is open for your questions, discussions and feedback: https://groups.google.com/group/qualitycodecourse.

Official Web Site

Visit the official Web site of the course for more information: http://codecourse.telerik.com/.

Registration for the Course

Please register for attending the course at: http://goo.gl/cFgv7.

Tags: , , , , , , , , , , , ,

January 30, 2011

Java EE Lecture – JDBC and XML

Last Saturday I was speaker in the VUZF university as part of the lectures of the Java EE open course that we teach each Saturday. I presented few lectures about JDBC, XML and XML parsers. Students came from Sofia University, TU-Sofia, NBU and even school students and professionals from the industry came to learn and practice how to access databases with JDBC and how to parse and build XML documents with Java and the JAXP parser.

Java-EE-Course-VUZF-lecture-29.01.2011

During this long training day we had several lecture sessions and several exercises sessions. Students were well motivated to learn Java EE but most of them were beginners so I needed to put lost of energy and passion during the practical sessions of exercises.

Java-EE-Course-VUZF-exercises-29.01.2011

I hope this course will be really helpful to all people who want to learn Java and Java EE and use these technologies as basis for their career development.

Tags: , , , , , , , , , , , , ,

January 12, 2011

Native SQL Queries in Entity Framework

ADO.NET Entity Framework (EF) is powerful object-relational persistence framework. It has great capabilities for querying the database with LINQ but sometimes a custom native SQL could be more efficient way to execute a certain native SQL command or query directly at database level.

To execute native SQL query in EF you could use the following method of the ObjectContext:

objectContext.ExecuteStoreQuery<return-type>(native-SQL-query); 

Native SQL could return nothing, a single value, a multiple data rows. You could map the returned data rows into classes. To achieve this you should define properties with the same name and corresponding type like the returned data rows from the native SQL query. Moreover, you could execute parameterized queries by passing the SQL command and its parameters to the ExecuteStoreQuery<T> method.

Developers rarely read text when a good example is available so I have prepared a fully functional example on the Northwind database in SQL Server which illustrates how to use native SQL queries in ADO.NET Entity Framework:

class ExecutingSQLQueriesExample
{
  static void Main()
  {
	int customersCount = SelectCustomersCount();
    Console.WriteLine("Customers count: {0}", customersCount);

    Console.WriteLine("\nList of products:");
    var products = SelectTop5ProductsIdAndName();
    foreach (var product in products)
    {
      Console.WriteLine("{0}. {1}", product.ID, product.Name);
    }

    Console.WriteLine("\nList of employees from London:");
    var employees = SelectEmployeeNamesByCountryAndCity("UK", "London");
    foreach (var emp in employees)
    {
      Console.WriteLine(emp);
    }
  }

  static int SelectCustomersCount()
  {
    NorthwindEntities northwindEntities = new NorthwindEntities();
    string nativeSQLQuery = "SELECT count(*) FROM dbo.Customers";
    var queryResult = northwindEntities.ExecuteStoreQuery<int>(nativeSQLQuery);
    int customersCount = queryResult.FirstOrDefault();
    return customersCount;
  }

  static IEnumerable<ProductIdAndName> SelectTop5ProductsIdAndName()
  {
    NorthwindEntities northwindEntities = new NorthwindEntities();
    string nativeSQLQuery =
      "SELECT TOP 5 ProductID as ID, ProductName as Name " +
      "FROM dbo.Products " +
      "ORDER BY ProductID";
    ObjectResult<ProductIdAndName> products =
      northwindEntities.ExecuteStoreQuery<ProductIdAndName>(nativeSQLQuery);
    return products;
  }

  private static IEnumerable<string> SelectEmployeeNamesByCountryAndCity(
    string country, string city)
  {
    NorthwindEntities northwindEntities = new NorthwindEntities();
    string nativeSQLQuery =
      "SELECT FirstName + ' ' + LastName " +
      "FROM dbo.Employees " +
      "WHERE Country = {0} AND City = {1}";
    object[] parameters = { country, city };
    var employees = northwindEntities.ExecuteStoreQuery<string>(
      nativeSQLQuery, parameters);
    return employees;
  }

  class ProductIdAndName
  {
    public int ID { get; set; }
    public string Name { get; set; }
  }
}

Tags: , , , , , , ,

November 19, 2010

My Talk about High Quality Code at the BGOUG Autumn Meeting in Pravetz

It is late evening (… or let’s say it correctly, 4:30 early in the morning, 19 November 2010). I finally finished preparing my presentation for my upcoming talks at the next morning at the Autumn Conference of the Bulgarian Oracle User Group (BGOUG) in Pravetz. I will talk about creating high-quality programming code in Java:

  • What is High-Quality Programming Code?
  • Naming Identifiers
  • Code Formatting
  • High-Quality Classes
  • High-Quality Methods
  • Using Variables, Expressions, Constants, Loops and Conditional Statements Correctly
  • Defensive Programming
  • Comments and Documentation

If you are interested, download my presentation: High-Quality-Code-for-Java-Devs.pptx.

Tags: , , , , , , , , ,

November 17, 2010

The Future of Silverlight – Silverlight Firestarter

Today I was asked by Microsoft Corp. to invite all interested Silverlight and .NET developers to attend a very special online event called “Silverlight Firestarter” at 2nd December 2010.

Attendees will learn about the future of Silverlight from Corporate Vice President, Scott Guthrie and other experts, direct from Microsoft’s HQ and will hear about Microsoft’s plans for the next version of Silverlight, the latest developments as well as in-depth sessions on building applications with Silverlight.

All interested developers could find out more about the event and register online.

Tags: , , , , , , , , , , ,

November 12, 2010

Telerik is the Best Employer for 2010 in Bulgaria!

Today the reputable survey of Aon Hewitt (the #1 human capital consulting company in the world) has shown that Telerik Corp. is the best employer for Bulgaria for 2010 in the category “Small and middle enterprises”. It is the leader not only in the IT sector but globally, in all industries. I am proud to be one the happy employees of Telerik and I truly believe that Telerik is really excellent place to work. Enjoy the results (source: DarikNews):

image

It is not a secret that Telerik is constantly growing, but with great people only. It has employed a hundred new software engineering professionals in 2010 and more than 20% of them come from Telerik Academy project – the best place to learn software development in Bulgaria for free: http://academy.telerik.com.

I feel a strong contributor to the success of Telerik and I am happy to be one to the organizers of Telerik Academy (academy.telerik.com) and Telerik School Academy (schoolacademy.telerik.com). I am happy that Telerik highly supports these initiatives and helps the Bulgarian IT industry to grow.

Tags: , , , , , , , ,

« Newer Posts Older Posts »