SlideShare a Scribd company logo
Achievement Archive
2015
TECHNICAL & BUSSINESS ADDED-VALUES
ABDULRAHMAN EMAD
CEQUENS | [Company address]
Table of Contents
Business Achievements ................................................................................................................................2
Documentations Index..................................................................................................................................3
Emails Assembly............................................................................................................................................4
Model Binding Feature with ASP.Net 4.5 Web Forms ..........................................................................4
Technical Enhancements .....................................................................................................................5
TPL Dataflow & Asynchrony with Reporting Service ............................................................................6
New Development Theme ....................................................................................................................7
Software Quality ...................................................................................................................................8
String manipulation ...............................................................................................................................8
Quotes.........................................................................................................................................................10
Business Achievements (Participated on)
Module / Project Date
USSD POC (Push) April 2014
Test Account (R1) April 2014
Sender Id Management (R1) May 2014
Bulk Policies Update (R1) May 2014
Optimization (R1)
- Engine (Cache Listener) & RegEx
- Administration
 Account Rules
 General Rules
- Reporting
 Short Term
 Historical
Jun-Nov
2014
Release 1 Stabilization
- Master Account Management
- Sub-Account Management
- User Logs Report
Sep – Dec
2014
Access Rights (R2)
- Administration
Dec 2014 –
Jan 2015
Traffic Analysis Reports (R2)
- Message Categorization
Jan– Feb
2015
Release 2 Stabilization
- Bulk Policies Update (Enhancement)
- Account Settings
Feb 2015
Documentations Index
Documentation Links Proposed Date Keys
New Ideas / Projects
Notification Tracking Recovery System File Feb 2014 Monitoring
Gateway Live Control File Nov 2014 Based on monitoring feedback
Architect
Web Portals Architect File Jun 2014 EF
Solution Architect (.Net) File Jul 2014 SOA, REST API
Universal Data Access Layer File Feb 2015 EF, Web API
Business Modules (Vertical Add-Values)
USSD POC as a Demo File Mar 2014 Push mode is visualized with
monitoring
Optimization
- Architect (Initial)
- Cache Listener
- Regular Expressions
File
File
File
Jun 2014
Oct 2014
Aug 2014
with monitoring
V1.4
Access Rights / Security Module File Jan 2015 Flow, ERD
Traffic Analysis / MES Module File Jan 2015 Design
Benchmarking
Cequens Technologies File May 2014 EF, MVC, .Net4.5.2, AngularJS
String Manipulation Email May 2014
Data Access Benchmarking (ADO.Net 2008 vs
EF 2014)
File Sep 2014 Performance enhancement
Complied vs Interpreted Languages File Feb 2015
Technical Enhancements (Horizontal Add-Values)
Software Design (Course) File Jun 2014
Software Quality Email Oct 2014
Peer Review Check List File
ASP.Net 4.5 Web Forms (Model Binding
Feature)
Email Oct 2014
New Development Theme Email Dec 2014
TPL Dataflow with Cequens Reporting
Service
Email,
File
Dec 2014
Technical Enhancements Summery Email Dec 2014 Cequens.DAL,
Cequens.Framework.UI,
Cequens.BL.*
Emails Assembly
Model Binding Feature with ASP.Net 4.5 Web Forms Oct 2014
Dears
Now Microsoft brings the Model Binding Concept to asp.net classic but per control not per whole View
as they did with WPF,MVC.
Please refer to the articles bellow. It is an amazing feature save time and effort and exist science 2012.
We could use this methodology with those controls : Gridview, DetailsView, FormView, Listview,
Repeater, DorpdownList,..
This Feature is well compatible with Entity Framework (IQueryable)
Advantages:
1- Moving the data binding (Object Properties) to UI, and let the View Engine / Binding Engine take
this responsibility specially with Details View, Form View, Repeater
2- In the retrieval method you could inject many parameter from Control’s selected values , Query
String parameters, View State keys, Sessions keys, Cookies values,…
3- Save many line of code, there is no many logic for binding and rebinding result set,
4- At update case the engine will transmit to the code behind (controller) a filled strongly typed
Entity, you don’t need to access the UI elements to build an entity.
5- There will be some kind of separation between UI and Code
Another thing, There is a Helper Class contains many Technical Logic like Reflection, TryCatch and
Business UI Logic like BindListControl, ClearInputs, BindUserNames,.. Use and Add to them To
Build Cequens Framework and avoid code redundancy.
Thanks.
Main Articles:
1- http://blogs.msdn.com/b/webdev/archive/2013/03/28/tutorial-series-on-model-binding-with-asp-
net-web-forms.aspx
2- http://www.asp.net/web-forms/tutorials/data-access/model-binding/retrieving-data
6- http://www.dotnetcurry.com/showarticle.aspx?ID=772
7- http://mitchelsellers.com/blogs/2013/04/22/aspnet-web-forms-model-binding-%E2%80%93-my-
favorite-aspnet-45-feature.aspx
3- http://blog.pluralsight.com/asp-net-4-5-web-forms-features-model-binding
4- http://www.geekytidbits.com/asp-net-web-forms-model-binding/
8- http://www.bluelemoncode.com/post/2013/03/22/Super-cool-Model-Binding-functionality-in-
aspnet-45.aspx
9- http://sravi-kiran.blogspot.com/2012/09/master-detail-view-using-aspnet-45.html
5- http://www.asp.net/web-forms/tutorials/data-access/model-binding/updating-deleting-and-
creating-data
6- http://weblogs.asp.net/dwahlin/asp-net-4-5-web-forms-features-model-binding
7- http://www.codeguru.com/csharp/.net/net_asp/controls/using-model-binding-in-asp.net-data-
controls.htm
With QueryString:
using-query-string-values-to-retrieve-data
Update Data:
update-data using-model-binding
Examples (Source Code):
http://code.msdn.microsoft.com/Getting-Started-with-221c01f5?cdn_id=2013-12-16-001
http://code.msdn.microsoft.com/Model-Binding-with-ASPNET-b49014d2
Advaced / Extra Resource:
model-binding / adding-business-logic-layer
Technical Enhancements Dec 2014
Dear Team
Now there are two new projects added to the Cequens..* family
1- Cequens.Framework.UI
Holds
- a set of generic technical UI Helpers (Classes/Methods), already used at the same project
and from Admin/Customer Portals
- a set of generic UI Helpers for Cequens Business UI Controls, already used from the Portals
Planning
- Develop a Custom Server ASP.Net Control Single or Composite match Cequens business to
increase re-useability
2- Cequens.ReportingService
An image copy of MPS.ReportingQueuingService with added Optimization Report Execution
business.
---------------------------------------------------------------
Cequens.* Family
- Cequens.DAL (Library)
- Cequens.BL.Account (Library)
- Cequens.BL.MessageOptimization (Library)
- Cequens.Framework.UI (Library)
- Cequens.ReportingService (Client Application)
Planning
Add a new project Called "Cequens.Framework.Tech" hold all technical helpers going to be
used from Data Access Layer, Business Layer or Presentation Layer.
-----------------------------------------------------------------
Enhancements
IOC Services Reflection
The services deceleration at Customer Portal is initiated using reflection and that reduce
redundant logic by 80% ( 70 line to 15 line), so you only need to declare service.
Planning:
Apply this methodology to Admin Portal and and the services resolvion at Globael.asax at
Customer & Admin Portal
Thanks
TPL Dataflow & Asynchrony with Reporting Service Dec 2014
Dear Team
I want to share this .Net Technology with you, It is worth and useful. I applied it with the
Optimization Report Service. It base on actor-based programming and message passing model.
~provides components to help increase the robustness of concurrency-enabled applications.
TPL Data flow references:
1- Main Ref (Walk through 1 , Walk through 2)
2- Producer & Consumer using TPL Data flow
3- http://taskmatics.com/blog/simplifying-producer-consumer-processing-with-tpl-dataflow-
structures/
4- https://leanpub.com/tpldataflowbyexample/read
5- http://blog.stephencleary.com/2012/09/introduction-to-dataflow-part-1.html
Asynchronous references:
1- http://msdn.microsoft.com/en-us/library/hh191443.aspx
2- http://msdn.microsoft.com/en-us/library/dd997423%28v=vs.110%29.aspx
3- http://msdn.microsoft.com/en-us/library/hh873175%28v=vs.110%29.aspx
4- http://msdn.microsoft.com/en-us/library/hh873177%28v=vs.110%29.aspx
New Development Theme Dec 2014
Dear Team
It is the time to apply a New Theme for the next development phase, so we need to
communicate What are the the Edge Technologies Stack and How to bring them to Cequens
Solutions.
A few coming days we will enter the year of 2015 and there is a few of new technologies
announcements happen by Microsoft for that year. E.g. Visual Studio 2015, .Net 4.6, ASP.Net
5 (MVC6), Entity Framework 7.
So this is a suggested plan for the new Year is, we want to :
- Apply a well structured projects.
- Target Framework 4.5 for all projects or 4.5.2
- Use Visual Studio 2013 with Update 4 RTM
- Follow Best practices and technical recommendations.
- Consider Performance and Security factors.
- For DAL, Rely Fully on Entity Framework 6.
- For Web,
- Rely Fully on ASP.Net Web Form 4.5
- Use Asynchronous events
- Use Model Binding with Gridview, DetailsView and FormView. Apply Two-Way Binding
using "BindItem.{Property}" or "Item.{Property}" instead of "Bind("{Property}")". Activate usage
of Data-annotations.
- Use HTTP enhancements
Ref: ASP.Net with Visual Studio 2012 (worth reading)
Ref: ASP.Net with Visual Studio 2013
- Rely Partially on MVC5 specially for the new modules and gradually migrate old ones.
- For Libraries and Helpers use:
Genrices with Methods and Classes
Delegates (Action, Func)
Parallelism and Asynchronous Programming
Reflections
References:
- http://msdn.microsoft.com/en-us/library/dd566231%28v=vs.140%29.aspx
- http://msdn.microsoft.com/en-us/library/ff361664%28v=vs.110%29.aspx
- Designing for Extensibility
The new modules shouldn't loss the advantages of new technical features. I suggest to make a
brainstorming session validate and analysis all point relates to this subject.
Thanks
Software Quality Oct 2014
Dears
We have to promote our software quality and ensure that it was developed in scientific way using any
practice like:
- Software Design Phase that give us a solid and maintainable design, before begin software
implementation.
- After implementation and ongoing we could activate Pair Programming to validate the code.
- Put Technical Rules of Recommendation to be followed.
- Use assistance tools to measure the quality of the code like Code Duplication, Code Analysis
and Performance , Memory Usage
Tool Ants Profiler for .Net Profiling. Already Salah install it and could feed us back. I made a small survey
from 4 months with this output:
http://duplicatecode.com/
http://www.solidsourceit.com/products/SolidSDD-code-duplication-cloning-analysis.html
http://clonedetectivevs.codeplex.com/
http://www.getatomiq.com/
http://www.harukizaemon.com/simian/
http://msdn.microsoft.com/en-us/library/hh205279.aspx
http://www.red-gate.com/products/dotnet-development/
https://www.jetbrains.com/profiler/
http://stackoverflow.com/questions/3927/what-are-some-good-net-profilers
http://memprofiler.com/
http://msdn.microsoft.com/en-us/magazine/hh288073.aspx
String manipulation May 2014
Dears
Base on the researching for highly performance technology suitable for string manipulations, there are
some options:
Option A. Perl
Base on many reviews and benchmarking Perl is recommended of string. It has good regular
expression library with replacement mechanism.
I have no experience on Perl syntax. I have a good experience on regular expression searching
and replacement.
The integration: will be called form .Net or NodeJs (Needs a practice test)
http://onlyjob.blogspot.com/2011/03/perl5-python-ruby-php-c-c-lua-tcl.html Look at Perl,
Javascript and C columns
http://blog.famzah.net/2010/07/01/cpp-vs-python-vs-perl-vs-php-performance-benchmark/
Look at Perl row. Compared to native languages
http://hammerprinciple.com/therighttool/items/perl Perl top features based on voting
http://hammerprinciple.com/therighttool/statements/this-language-excels-at-text-
processing Perl voted at the top
Option B GoLang
Competitive to NodeJs with good performance. Belongs to C family. Has reach regular expression
library http://golang.org/pkg/regexp/
The integration: needs a real practice
Option C NodeJS & Regex / XRegExp
Quotes

More Related Content

Achievement Archive

  • 1. Achievement Archive 2015 TECHNICAL & BUSSINESS ADDED-VALUES ABDULRAHMAN EMAD CEQUENS | [Company address]
  • 2. Table of Contents Business Achievements ................................................................................................................................2 Documentations Index..................................................................................................................................3 Emails Assembly............................................................................................................................................4 Model Binding Feature with ASP.Net 4.5 Web Forms ..........................................................................4 Technical Enhancements .....................................................................................................................5 TPL Dataflow & Asynchrony with Reporting Service ............................................................................6 New Development Theme ....................................................................................................................7 Software Quality ...................................................................................................................................8 String manipulation ...............................................................................................................................8 Quotes.........................................................................................................................................................10
  • 3. Business Achievements (Participated on) Module / Project Date USSD POC (Push) April 2014 Test Account (R1) April 2014 Sender Id Management (R1) May 2014 Bulk Policies Update (R1) May 2014 Optimization (R1) - Engine (Cache Listener) & RegEx - Administration  Account Rules  General Rules - Reporting  Short Term  Historical Jun-Nov 2014 Release 1 Stabilization - Master Account Management - Sub-Account Management - User Logs Report Sep – Dec 2014 Access Rights (R2) - Administration Dec 2014 – Jan 2015 Traffic Analysis Reports (R2) - Message Categorization Jan– Feb 2015 Release 2 Stabilization - Bulk Policies Update (Enhancement) - Account Settings Feb 2015
  • 4. Documentations Index Documentation Links Proposed Date Keys New Ideas / Projects Notification Tracking Recovery System File Feb 2014 Monitoring Gateway Live Control File Nov 2014 Based on monitoring feedback Architect Web Portals Architect File Jun 2014 EF Solution Architect (.Net) File Jul 2014 SOA, REST API Universal Data Access Layer File Feb 2015 EF, Web API Business Modules (Vertical Add-Values) USSD POC as a Demo File Mar 2014 Push mode is visualized with monitoring Optimization - Architect (Initial) - Cache Listener - Regular Expressions File File File Jun 2014 Oct 2014 Aug 2014 with monitoring V1.4 Access Rights / Security Module File Jan 2015 Flow, ERD Traffic Analysis / MES Module File Jan 2015 Design Benchmarking Cequens Technologies File May 2014 EF, MVC, .Net4.5.2, AngularJS String Manipulation Email May 2014 Data Access Benchmarking (ADO.Net 2008 vs EF 2014) File Sep 2014 Performance enhancement Complied vs Interpreted Languages File Feb 2015 Technical Enhancements (Horizontal Add-Values) Software Design (Course) File Jun 2014 Software Quality Email Oct 2014 Peer Review Check List File ASP.Net 4.5 Web Forms (Model Binding Feature) Email Oct 2014 New Development Theme Email Dec 2014 TPL Dataflow with Cequens Reporting Service Email, File Dec 2014 Technical Enhancements Summery Email Dec 2014 Cequens.DAL, Cequens.Framework.UI, Cequens.BL.*
  • 5. Emails Assembly Model Binding Feature with ASP.Net 4.5 Web Forms Oct 2014 Dears Now Microsoft brings the Model Binding Concept to asp.net classic but per control not per whole View as they did with WPF,MVC. Please refer to the articles bellow. It is an amazing feature save time and effort and exist science 2012. We could use this methodology with those controls : Gridview, DetailsView, FormView, Listview, Repeater, DorpdownList,.. This Feature is well compatible with Entity Framework (IQueryable) Advantages: 1- Moving the data binding (Object Properties) to UI, and let the View Engine / Binding Engine take this responsibility specially with Details View, Form View, Repeater 2- In the retrieval method you could inject many parameter from Control’s selected values , Query String parameters, View State keys, Sessions keys, Cookies values,… 3- Save many line of code, there is no many logic for binding and rebinding result set, 4- At update case the engine will transmit to the code behind (controller) a filled strongly typed Entity, you don’t need to access the UI elements to build an entity. 5- There will be some kind of separation between UI and Code Another thing, There is a Helper Class contains many Technical Logic like Reflection, TryCatch and Business UI Logic like BindListControl, ClearInputs, BindUserNames,.. Use and Add to them To Build Cequens Framework and avoid code redundancy. Thanks. Main Articles: 1- http://blogs.msdn.com/b/webdev/archive/2013/03/28/tutorial-series-on-model-binding-with-asp- net-web-forms.aspx 2- http://www.asp.net/web-forms/tutorials/data-access/model-binding/retrieving-data 6- http://www.dotnetcurry.com/showarticle.aspx?ID=772 7- http://mitchelsellers.com/blogs/2013/04/22/aspnet-web-forms-model-binding-%E2%80%93-my- favorite-aspnet-45-feature.aspx 3- http://blog.pluralsight.com/asp-net-4-5-web-forms-features-model-binding 4- http://www.geekytidbits.com/asp-net-web-forms-model-binding/ 8- http://www.bluelemoncode.com/post/2013/03/22/Super-cool-Model-Binding-functionality-in- aspnet-45.aspx 9- http://sravi-kiran.blogspot.com/2012/09/master-detail-view-using-aspnet-45.html 5- http://www.asp.net/web-forms/tutorials/data-access/model-binding/updating-deleting-and- creating-data 6- http://weblogs.asp.net/dwahlin/asp-net-4-5-web-forms-features-model-binding 7- http://www.codeguru.com/csharp/.net/net_asp/controls/using-model-binding-in-asp.net-data- controls.htm With QueryString: using-query-string-values-to-retrieve-data
  • 6. Update Data: update-data using-model-binding Examples (Source Code): http://code.msdn.microsoft.com/Getting-Started-with-221c01f5?cdn_id=2013-12-16-001 http://code.msdn.microsoft.com/Model-Binding-with-ASPNET-b49014d2 Advaced / Extra Resource: model-binding / adding-business-logic-layer Technical Enhancements Dec 2014 Dear Team Now there are two new projects added to the Cequens..* family 1- Cequens.Framework.UI Holds - a set of generic technical UI Helpers (Classes/Methods), already used at the same project and from Admin/Customer Portals - a set of generic UI Helpers for Cequens Business UI Controls, already used from the Portals Planning - Develop a Custom Server ASP.Net Control Single or Composite match Cequens business to increase re-useability 2- Cequens.ReportingService An image copy of MPS.ReportingQueuingService with added Optimization Report Execution business. --------------------------------------------------------------- Cequens.* Family - Cequens.DAL (Library) - Cequens.BL.Account (Library) - Cequens.BL.MessageOptimization (Library) - Cequens.Framework.UI (Library) - Cequens.ReportingService (Client Application) Planning Add a new project Called "Cequens.Framework.Tech" hold all technical helpers going to be used from Data Access Layer, Business Layer or Presentation Layer. ----------------------------------------------------------------- Enhancements
  • 7. IOC Services Reflection The services deceleration at Customer Portal is initiated using reflection and that reduce redundant logic by 80% ( 70 line to 15 line), so you only need to declare service. Planning: Apply this methodology to Admin Portal and and the services resolvion at Globael.asax at Customer & Admin Portal Thanks TPL Dataflow & Asynchrony with Reporting Service Dec 2014 Dear Team I want to share this .Net Technology with you, It is worth and useful. I applied it with the Optimization Report Service. It base on actor-based programming and message passing model. ~provides components to help increase the robustness of concurrency-enabled applications. TPL Data flow references: 1- Main Ref (Walk through 1 , Walk through 2) 2- Producer & Consumer using TPL Data flow 3- http://taskmatics.com/blog/simplifying-producer-consumer-processing-with-tpl-dataflow- structures/ 4- https://leanpub.com/tpldataflowbyexample/read 5- http://blog.stephencleary.com/2012/09/introduction-to-dataflow-part-1.html Asynchronous references: 1- http://msdn.microsoft.com/en-us/library/hh191443.aspx 2- http://msdn.microsoft.com/en-us/library/dd997423%28v=vs.110%29.aspx 3- http://msdn.microsoft.com/en-us/library/hh873175%28v=vs.110%29.aspx 4- http://msdn.microsoft.com/en-us/library/hh873177%28v=vs.110%29.aspx
  • 8. New Development Theme Dec 2014 Dear Team It is the time to apply a New Theme for the next development phase, so we need to communicate What are the the Edge Technologies Stack and How to bring them to Cequens Solutions. A few coming days we will enter the year of 2015 and there is a few of new technologies announcements happen by Microsoft for that year. E.g. Visual Studio 2015, .Net 4.6, ASP.Net 5 (MVC6), Entity Framework 7. So this is a suggested plan for the new Year is, we want to : - Apply a well structured projects. - Target Framework 4.5 for all projects or 4.5.2 - Use Visual Studio 2013 with Update 4 RTM - Follow Best practices and technical recommendations. - Consider Performance and Security factors. - For DAL, Rely Fully on Entity Framework 6. - For Web, - Rely Fully on ASP.Net Web Form 4.5 - Use Asynchronous events - Use Model Binding with Gridview, DetailsView and FormView. Apply Two-Way Binding using "BindItem.{Property}" or "Item.{Property}" instead of "Bind("{Property}")". Activate usage of Data-annotations. - Use HTTP enhancements Ref: ASP.Net with Visual Studio 2012 (worth reading) Ref: ASP.Net with Visual Studio 2013 - Rely Partially on MVC5 specially for the new modules and gradually migrate old ones. - For Libraries and Helpers use: Genrices with Methods and Classes Delegates (Action, Func) Parallelism and Asynchronous Programming Reflections References: - http://msdn.microsoft.com/en-us/library/dd566231%28v=vs.140%29.aspx - http://msdn.microsoft.com/en-us/library/ff361664%28v=vs.110%29.aspx - Designing for Extensibility The new modules shouldn't loss the advantages of new technical features. I suggest to make a brainstorming session validate and analysis all point relates to this subject. Thanks
  • 9. Software Quality Oct 2014 Dears We have to promote our software quality and ensure that it was developed in scientific way using any practice like: - Software Design Phase that give us a solid and maintainable design, before begin software implementation. - After implementation and ongoing we could activate Pair Programming to validate the code. - Put Technical Rules of Recommendation to be followed. - Use assistance tools to measure the quality of the code like Code Duplication, Code Analysis and Performance , Memory Usage Tool Ants Profiler for .Net Profiling. Already Salah install it and could feed us back. I made a small survey from 4 months with this output: http://duplicatecode.com/ http://www.solidsourceit.com/products/SolidSDD-code-duplication-cloning-analysis.html http://clonedetectivevs.codeplex.com/ http://www.getatomiq.com/ http://www.harukizaemon.com/simian/ http://msdn.microsoft.com/en-us/library/hh205279.aspx http://www.red-gate.com/products/dotnet-development/ https://www.jetbrains.com/profiler/ http://stackoverflow.com/questions/3927/what-are-some-good-net-profilers http://memprofiler.com/ http://msdn.microsoft.com/en-us/magazine/hh288073.aspx String manipulation May 2014 Dears Base on the researching for highly performance technology suitable for string manipulations, there are some options: Option A. Perl Base on many reviews and benchmarking Perl is recommended of string. It has good regular expression library with replacement mechanism. I have no experience on Perl syntax. I have a good experience on regular expression searching and replacement. The integration: will be called form .Net or NodeJs (Needs a practice test) http://onlyjob.blogspot.com/2011/03/perl5-python-ruby-php-c-c-lua-tcl.html Look at Perl, Javascript and C columns http://blog.famzah.net/2010/07/01/cpp-vs-python-vs-perl-vs-php-performance-benchmark/ Look at Perl row. Compared to native languages http://hammerprinciple.com/therighttool/items/perl Perl top features based on voting http://hammerprinciple.com/therighttool/statements/this-language-excels-at-text- processing Perl voted at the top Option B GoLang
  • 10. Competitive to NodeJs with good performance. Belongs to C family. Has reach regular expression library http://golang.org/pkg/regexp/ The integration: needs a real practice Option C NodeJS & Regex / XRegExp