با سلام و عرض ادب. در خدمت دوستان عزیز هستیم با آموزش Workflow – آموزش کار با آرگومان ورودی و خروجی Workflow از وب سایت آموزش برنامه نویسی سورس باران. در این دوره، آموزش Workflow در ۴۶ جلسه بصورت متنی به شما آموزش داده خواهد شد. در این بخش ، یک برنامه گردش کار یا Workflow ایجاد خواهیم کرد که در آن از آرگومان های InOutArgument استفاده خواهد شد. این نوع از آرگومان ها برای دریافت و ارسال مقادیر در Workflow استفاده می شوند..لطفا با ما همراه باشید…
این دوره جهت حفظ حقوق نویسنده از سایت حذف شده، مطالب جدیدتری بزودی در سایت قرار میگیرد
سیستم مدیریت workflow چه کمکی به بهبود فرایندهای سازمان می کند؟
سیستم مدیریت گردش کار (نرم افزار workflow)
سیستم مدیریت گردش کار یا همان نرم افزار workflow یک راهی است که شرکت ها و سازمان ها از آن استفاده می کنند تا فرایند پیچیده و زیاد فرایندها در سازمان ها و شرکت ها ساده تر شود. نرم افزار workflow یک رویکرد نوآورانه برای دستیابی به فرایندهای حیاتی کسب و کار است.
سیستم گردش کار:
سیستم گردش کار در حال حرکت به سوی کارایی کسب و کار و ساده تر کردن زندگی برای انسان است. سازمان هایی که سیستم گردش کار را راه اندازی می کنند هزینه ها را کاهش داده و زمان را نیز ذخیره می کنند و از نیروی کار دستی خود برای حل مشکلات سازمان به صورت هوشمند استفاده می کنند. آنها اجازه می هند ماشین وظایف خود را انجام دهد و این کار شانس خطاهای انسانی را از بین می برد. نرم افزار گردش کار اجازه می دهد که وظایف تکراری مشخص و حذف شوند. سیستم گردش کار دارای مزایای گسترده و زیادی که می تواند فزایندهای سازمانی را مکانیزه کند.
سیستم مدیریت جریان کار:
پیش از سیستم مدیریت جریان کار ایمیل های و یاداشت های به هر جا چسبانده می شد تا انجام کارها را یادآوری کند از این رو این روش های یادآوری روش های خوبی برای انجام وظایف نبودند از این رو انجام کار به صورت اتوماتیک جایگزین خوبی بود چرا که قادر می سازد تا با انجام یک روند ساده کار را به راحتی صورت گیرد و به اشتراک گذاشته شود.
نرم افزار BPMS (نرم افزار گردش کار):
نرم افزار BPMS یک داشبوردی برای تمام درخواست ها است و آنها را به خوبی نشان می دهد و اینکه تمام ارتباط ها و مکالمات در یک جا ثبت می شود. وقتی گردش کار به صورت خودکار انجام می شود برای هر بخش مالکیتی تعریف و ایجاد می شود . هر فردی موظف است مرحله ای از یک کار را انجام دهد از این رو چون شفافیت در انجام کارها و فرایند کسب و کار بوجود می آید از این رو افراد مسئول هر بخش و کار می توانند در برابر عملکرد خود پاسخگو باشند.
جریان کار چیست؟ (نمونه گردش کار)
جریان کار مشخص می کند که کدام یک از وظایف انجام شده و کدام یک از وطایف انجام نشده است. کدام یک چقدر زمان برای انجام آن صرف شده است. کدام یک از کارها بیشترین زمان را به خود اختصاص داده است و یا در کدام بخش اشتباهی رخ داده و بیشترین استباه های رخ داده مربوط به کدام بخش و فرد کاربر بوده است. با استفاده از نمونه گردش کار خطاها کاهش یافته و در پی آن هزینه ها نیز کم می شود.
مدیریت گردش کار:
وقتی کارها ماشینی و یا الکترونیکی صورت می گیرد در حقیقت دقت بالا می رود و جلوی آسیب های وارده به کسب و کار گرفته می شود بنابراین هزینه هایی که به علت خطاها سازمان مرتکب شده بسیار کاهش می باید و ناکارامدی ها نیز در پی آن از بین می رود . مکانیزه کردن فرایند سازمانی با مدیریت گردش کار به عبارت ساده تر خطاها را کاهش می دهد بنابراین به راحتی می توان اطمینان حاصل کرد که کاری که انجام شده به درستی صورت گرفته است. مدیریت گردش کار را انجام می دهد و می تواند برای بخش های فروش، مدیریت، عملیات، زنجیره تامین منابع انسانی، ناوری اطلاعات و … تعیین شود از این رو سازمان هایی که به دنبال گردش کار درست هستند می توانند به مکانیزه کردن از طریق نرم افزار گردش کار دست بزنند.
آموزش کار با آرگومان ورودی و خروجی Workflow
گردش کار، مجموعه ای از فعالیت ها است که برای تکمیل یک وظیفه لازم است. به بیانی دیگر، گردش کار به افراد درمستند سازی و مدیریت وظایف در پروژه ها کمک می کند و این امر با پیاده سازی فرایند های کاری روی مستندات محقق می گردد.
گردش کار به سازگاری فرآیندهای کاری در سازمان ها کمک می کند و همچنین میزان تاثیر گذاری سازمان ها و تولیدات را با مدیریت وظایف و مراحلی که در فرایند های کاری وجود دارند، بهبود می دهد.
سازمان ها از گردش کار برای مشارکت کارکنان در انجام وظیفه و همگام سازی داده ها در بین سیستم ها استفاده می کنند و از آن در رسیدن به اهدافی چون بهره وری بیشتر، مسئولیت پذیری بیشتر و سود بیشتر بهره می جویند.
برای این موضوع تعاریف بسیاری آورده شده است، می توان گفت گردش کار گاهی به عنوان مجموعه ای از وظایف که یک خروجی را تولید می کنند، تعریف می شود. به علاوه گردش کار به جابه جایی خودکار مستندات یا داده ها در یک توالی از فعالیت ها و وظایف ها که به یک فرایند مربوط می شوند، نیز گفته می شود.
گردش کار می تواند با امکان اضافه کردن منطق کسب وکار به مستندات و آیتم ها در فرایند کاری، برای کنترل فرآیند های کسب وکاری در یک سازمان مورد استفاده قرار گیرد. منطق کاری مجموعه ای از دستورالعمل هاست و گردش کار، این مجموعه از دستور العمل ها که باید در طی فرایند بر روی یک مستند یا آیتم اتفاق افتد را مشخص و کنترل می کند.
گردش کار هزینه و زمان را در اجرای فرایند های کاری با نظارت بر آن ها کم می کند. به طور مثال با مشاهده مستندات، مدیریت و رهگیری وظایف افراد که در فرایند درگیر هستند این امر را محقق می نماید.علاوه بر آن در گردش کار می توان یک مستند را بین گروهی از افراد برای تایید ارسال کنید و زمانی که گردش کار در حال انجام گرفتن بود افراد می توانند با رهگیری فرایند متوجه شوند که کار راچه کسانی تایید کرده و وضعیت نهایی کار چیست؛ در نهایت زمانی که فرایند به پایان برسد یک اعلان برای مالک گردش کار ارسال می شود.
یک مثال از روال گردش کار در شکل زیر نشان داده شده است:
نمونه هایی از گردش کار:
گردش های کار با توجه به اهدافی که دارند شناخته می شوند. در زیر به چند نمونه از گردش های کار آورده شده است:
۱- گردش کار مدیریت مستندات:
سازمان های بسیاری هستند که این گردش کار را در دل سازمان خود دارند. به عبارتی، یک مستند نیاز به تایید، تغییر و اضافه کردن متن در طی یک گردش کاری از این نوع را دارد.
۲- خدمات مشتریان (پیگیری سفارش)
این گردش کار به مشتری اجازه می دهد در صورتی که در سازمان درخواستی را ثبت کرده است، بتواند آن را رهگیری کرده و در آن تغییراتی را اعمال کند.
۳- مدیریت تعطیلات
گردش کاری که شامل مدیریت تعطیلات کاربر، رزرو هتل، رزرو پرواز و سایر اقدامات مربوط به آژانس های مسافرتی است.
اجزای گردش کار:
یک گردش کار می تواند به صورت نمودار های فنی فرمال یا غیر فرمال نمایش داده شود که به صورت مجموعه ای از جریان ها بین مراحل پردازش است. گردش کار اصولا توسط سه پارامتر زیر تعریف می شود:
۱- مقدار ورودی: شامل اطلاعات و مقادیری است که برای کامل شدن یک مرحله از گردش کار، مورد نیاز است.
۲- قوانین تغییر: الگوریتم هایی که توسط نقش های انسانی یا سیستمی یا ترکیبی از هر دو انجام می شود را قوانین تغییر گویند.
۳- مقدار خروجی: اطلاعات و مقادیری که توسط هر مرحله تولید شده و به عنوان ورودی به مرحله بعد داده می شود را گویند.
گردش ها کار به سه دسته تقسیم می شوند:
۱- ترتیبی: دراین گردش کار برگشت به مرحله قبل وجود ندارد.
۲- سیستمی: این گردش کارها پیچیده تر هستند و امکان بازگشت به مرحله قبل را نیز دارند.
۳- مبتنی بر قوانین: این دسته همانند گردش کارهای ترتیبی هستند اما با این تفاوت که قوانین هستند که پیشرفت در فرایند را تعیین می کنند.
گردش کاری به سه حالت ممکن است شروع شود:
۱- زمانبندی شده: با توجه به زمانی که برای شروع و تکرار آن در نظر گرفته شده است، شروع می شود.
۲- فرم: در واقع رایج ترین نوع شروع در گردش کار است که کاربر با پر کردن فرم و ارسال آن، گردش کار را به جریان می اندازد.
۳- API: سیستم های دیگر می توانند یک گردش کار را در قالب پیامک اعلان یا وب سرویس و به کمک API شروع کنند.
مزایای استفاده از سیستم ها با قابلیت گردش کار:
۱- افزایش تولید: گردش های کاری مکانیزه شده، زمان انجام کارها را کاهش داده و درنتیجه تولید و بهره وری را افزایش می دهند.
۲- شفافیت: به مدیران این امکان را می دهد که متوجه شوند که در فرایند های کاری آن ها در لحظه چه اتفاقاتی رخ می دهد.
۳- انعطاف پذیری بالا در تغییرات: گردش ها کار این اجازه را به سازمان ها می دهد که به راحتی و به سرعت در فرایند های خود تغییرات لازم را ایجاد کنند.
۴- مسئولیت پذیری بهتر: نظارت و پایش اجرای فرایند های کسب و کار امکان ایجاد معیار هایی را برای بهبود مستمر فرایند ها ایجاد می نماید.
منابع : Introduction-to-workflows
bpm-tutorial/workflow-tutorial
Workflow_Fundamentals
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 |
Greetings and admirable wisdom. We are at the service of our dear friends by working with Workflow Training - Working with Workflow Input and Outputs from the Source Source Rainforest Learning Web site. In this course, Workflow training will be provided to you in 46 sessions. In this section, we will create a workflow or workflow program that will use the InOutArgument arguments. These types of arguments are used to send and send values in the Workflow. Please come along with us ... Work with Workflow input and output argument The UseInOutArgument workflow project includes the following four steps Add a Project Workflow Console Application Create a workflow and define the InOutArgument argument Write C # and set and print the InOut argument. Run Workflow Add a new project from Workflow Console Application In the Solution Explorer panel, right-click on the Solution Chapter01 and select the ADD option under the New Project menu. In the Add New Project window, select the workflow option, and then select Workflow Console Application from the right side of the window. Now set the Name field to the value of UseOutArgument and finally click on the OK button. Create Workflow and Define InOutArgumen Argument Open the Workflow1.xaml file from the Solution Explorerr panel and design the Workflow as follows: From the ToolBox panel, select the Sequence activity and drag the workflow into the workflow. At the bottom of the Workflow Design page, select the Arguments tab and click on the Create Argument, now create an InContent-like String and InOutArgument argument called InOutMessage. From the ToolBox panel, select the WriteLine activity and drag in the Sequence activity, and then release the Text value with the name of the argument you defined in the previous step. From the ToolBox panel, select the Assign activity and drag the workflow into the drawing board. Next, set the box to the left with the name of the argument defined before, InOutMessage, and set the box to the right with the value "Now, I am an OutMessage". Write C # and set and print the InOut argument. But then open the Program.cs file and change the following sub-codes (red part) using system; using system.Linq; using System.Activities; using System.Activities.Statements; using System.Collections.Generic; namespace UseInOutArgument { class program { static void Main (string [] args) { IDictionary <string, object> input = new Dictionary <string, object> () { {"InOutMessage", "Now, I am InMessage"} }; IDictionary <string, object> output = WorkflowInvoker.Invoke (new Workflow1 (), input); Console.WriteLine (output ["InOutMessage"]); Console.ReadLine (); } } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19th 20 21 22 23 using system; using system.Linq; using System.Activities; using System.Activities.Statements; using System.Collections.Generic; namespace UseInOutArgument { class program { static void Main (string [] args) { IDictionary <string, object> input = new Dictionary <string, object> () { {"InOutMessage", "Now, I am InMessage"} }; IDictionary <string, object> output = WorkflowInvoker.Invoke (new Workflow1 (), input); Console.WriteLine (output ["InOutMessage"]); Console.ReadLine (); } } } Run Workflow Set the UseOutArgument project as a StartUp project Press Ctrl + F5 shortcut to run Workflow. This will save the Workflow and will display the result without debugging. The result is executed in the Windows console and the following statement is printed: How does the workflow system work? Please pay attention to the following code Program.cs IDictionary <string, object> input = new Dictionary <string, object> () { {"InOutMessage", "Now, I am InMessage"} }; 1 2 3 4 5 6 Program.cs IDictionary <string, object> input = new Dictionary <string, object> () { {"InOutMessage", "Now, I am InMessage"} }; As you know, using IDictionary, we can define key / value pairs, first we need to specify the Key and Value type, and then set the Key / Value above. In the above code, the key is of type String and Value of the Object type. So here we have a Key called "InOutMessage" set to "Now, I am InMessage". The following line will be executed in the code above. Note that the input object defined in the previous step is used as a parameter in the invoke () method IDictionary <string, object> output = WorkflowInvoker.Invoke (new Workflow1 (), input); 1 IDictionary <string, object> output = WorkflowInvoker.Invoke (new Workflow1 (), input); <span class="" lang="en"><span title="همان طور که قبلاً گفته شد، متد ()invoke باعث می شود که Workflow1 اجرا شود.">As previously mentioned, the invoke () method causes the Workflow1 to run. </span><span title="البته پارامتر input نیز به Workflow پاس داده می شود و چون قسمت Key در پارامتر input هم نام با آرگومان تعریف شده در زمان طراحی Workflow است، بصورت خودکار آرگومان InOutMessage با استفاده از پارامتر input مقداردهی می شود. ">However, the input parameter is also passed to Workflow, and since the key part in the input parameter is the name with the argument defined during the Workflow design, the InOutMessage argument is automatically initialized using the input parameter. </span><span title="بنابراین با اجرای کد بالا، جلمه ی “Now, I am InMessage” در کنسول ویندوز چاپ خواهد شد.">So by executing the above code, the "Now, I am InMessage" button will be printed in the Windows console. </span><span title="فراموش نکنید که، قسمت Text در اکتیویتی WriteLine با آرگومان InOutMessage تنظیم شد و به این ترتیب جلمه ی مذکور چاپ خواهد شد. ">Do not forget that the Text section in the WriteLine activity is set wth the InOutMessage argument, and the resulting statement will be printed. </span><span title="اما در ادامه، مقداری که متد ()invoke برمی گرداند که البته از نوع IDictionary است در متغیر output قرار می گیرد.">But then, the value that the invoke () method returns, which is of course the type of IDictionary, is placed in the output variable. </span><span title="اما سوالی که مطرح می شود این است که Workflow چه مقدار را برمی گرداند …!؟ ">But the question that arises is how much Workflow returns ... !? </span><span title="حتماً به جواب سوال بالا رسیده اید، این مقدار چیزی نیست جز یک Key/Value که با استفاده از اکتیویتی Assign تنظیم خواهد شد.">Be sure to answer the above question, this value is nothing but a Key / Value that will be set using the Assign Activity. </span><span title="قسمت Key معادل “InOutMessage” و Value معادل “Now, I am an OutMessage” خواهد بود.">The key is equivalent to "InOutMessage" and value "Now, I am an OutMessage". </span><span title="پس تا اینجا متغیر output شامل Key/Value مذکور است. ">So the output variable contains the key / value so far. </span><span title="در ادامه اسکریبت، کد زیر را داریم که باعث می شود، رشته “Now, I am an OutMessage” در کنسول چاپ شود: ">In the following skripte, we have the following code that causes the "Now, I am an OutMessage" string to be printed in the console: </span><span title="Console.WriteLine(output["InOutMessage"]); ">Console.WriteLine (output ["InOutMessage"]); </span><span title="1 ">1 </span><span title="Console.WriteLine(output["InOutMessage"]); ">Console.WriteLine (output ["InOutMessage"]); </span><span title="توجه!!!">Attention!!! </span><span title="برای آرگومان InOutArgument نمی توان بصورت مستقیم یک مقدار String تنظیم نمود، بنابراین مجاز به استفاده از کد زیر نیستید: ">For InOutArgument, you can not directly set a String value, so you are not allowed to use the following code: </span><span title="IDictionary<string, object> output =WorkflowInvoker.Invoke(new Workflow1() ">IDictionary <string, object> output = WorkflowInvoker.Invoke (new Workflow1 () </span><span title="{ ">{ </span><span title="InOutMessage="Now,I am InMessage" ">InOutMessage = "Now, I'm InMessage" </span><span title="}); ">}); </span><span title="1 ">1 </span><span title="2 ">2 </span><span title="3 ">3 </span><span title="4 ">4 </span><span title="IDictionary<string, object> output =WorkflowInvoker.Invoke(new Workflow1() ">IDictionary <string, object> output = WorkflowInvoker.Invoke (new Workflow1 () </span><span title="{ ">{ </span><span title="InOutMessage="Now,I am InMessage" ">InOutMessage = "Now, I'm InMessage" </span><span title="}); ">}); </span><span title="موفق و پیروز باشید… ">be successful and victorious… </span><span title="لیست جلسات قبل آموزش Workflow :">Workflow prior training list: <span id="result_box" class="" lang="en"><span title="همان طور که قبلاً گفته شد، متد ()invoke باعث می شود که Workflow1 اجرا شود.">As previously mentioned, the invoke () method causes the Workflow1 to run. </span><span title="البته پارامتر input نیز به Workflow پاس داده می شود و چون قسمت Key در پارامتر input هم نام با آرگومان تعریف شده در زمان طراحی Workflow است، بصورت خودکار آرگومان InOutMessage با استفاده از پارامتر input مقداردهی می شود. ">However, the input parameter is also passed to Workflow, and since the key part in the input parameter is the name with the argument defined during the Workflow design, the InOutMessage argument is automatically initialized using the input parameter. </span><span title="بنابراین با اجرای کد بالا، جلمه ی “Now, I am InMessage” در کنسول ویندوز چاپ خواهد شد.">So by executing the above code, the "Now, I am InMessage" button will be printed in the Windows console. </span><span title="فراموش نکنید که، قسمت Text در اکتیویتی WriteLine با آرگومان InOutMessage تنظیم شد و به این ترتیب جلمه ی مذکور چاپ خواهد شد. ">Do not forget that the Text section in the WriteLine activity is set with the InOutMessage argument, and the resulting statement will be printed. </span><span title="اما در ادامه، مقداری که متد ()invoke برمی گرداند که البته از نوع IDictionary است در متغیر output قرار می گیرد.">But then, the value that the invoke () method returns, which is of course the type of IDictionary, is placed in the output variable. </span><span title="اما سوالی که مطرح می شود این است که Workflow چه مقدار را برمی گرداند …!؟ ">But the question that arises is how much Workflow returns ... !? </span><span title="حتماً به جواب سوال بالا رسیده اید، این مقدار چیزی نیست جز یک Key/Value که با استفاده از اکتیویتی Assign تنظیم خواهد شد.">Be sure to answer the above question, this value is nothing but a Key / Value that will be set using the Assign Activity. </span><span title="قسمت Key معادل “InOutMessage” و Value معادل “Now, I am an OutMessage” خواهد بود.">The key is equivalent to "InOutMessage" and value "Now, I am an OutMessage". </span><span title="پس تا اینجا متغیر output شامل Key/Value مذکور است. ">So the output variable contains the key / value so far. </span><span title="در ادامه اسکریبت، کد زیر را داریم که باعث می شود، رشته “Now, I am an OutMessage” در کنسول چاپ شود: ">In the following skripte, we have the following code that causes the "Now, I am an OutMessage" string to be printed in the console: </span><span title="Console.WriteLine(output["InOutMessage"]); ">Console.WriteLine (output ["InOutMessage"]); </span><span title="1 ">1 </span><span title="Console.WriteLine(output["InOutMessage"]); ">Console.WriteLine (output ["InOutMessage"]); </span><span title="توجه!!!">Attention!!! </span><span title="برای آرگومان InOutArgument نمی توان بصورت مستقیم یک مقدار String تنظیم نمود، بنابراین مجاز به استفاده از کد زیر نیستید: ">For InOutArgument, you can not directly set a String value, so you are not allowed to use the following code: </span><span title="IDictionary<string, object> output =WorkflowInvoker.Invoke(new Workflow1() ">IDictionary <string, object> output = WorkflowInvoker.Invoke (new Workflow1 () </span><span title="{ ">{ </span><span title="InOutMessage="Now,I am InMessage" ">InOutMessage = "Now, I'm InMessage" </span><span title="}); ">}); </span><span title="1 ">1 </span><span title="2 ">2 </span><span title="3 ">3 </span><span title="4 ">4 </span><span title="IDictionary<string, object> output =WorkflowInvoker.Invoke(new Workflow1() ">IDictionary <string, object> output = WorkflowInvoker.Invoke (new Workflow1 () </span><span title="{ ">{ </span><span title="InOutMessage="Now,I am InMessage" ">InOutMessage = "Now, I'm InMessage" </span><span title="}); ">}); </span><span title="موفق و پیروز باشید… ">be successful and victorious… </span>Workflow prior training list: </span></span></span> |
راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.
- حجم فايل : 307 کیلوبایت
- منبع : سورس باران
- رمز فايل : www.sourcebaran.com
- انتشار: ۱۹ آبان ۱۳۹۳
دسته بندی موضوعات
- آموزش ارز دیجیتال
- آموزش برنامه نویسی
- آموزش متنی برنامه نویسی
- اطلاعیه و سایر مطالب
- پروژه برنامه نویسی
- رپورتاژ
- فروشگاه
- فیلم های آموزشی
- ++C
- ADO.NET
- Adobe Flash
- Ajax
- AngularJS
- apache
- ARM
- Asp.Net
- ASP.NET MVC
- AVR
- Bootstrap
- CCNA
- CCNP
- CMD
- CSS
- Dreameaver
- EntityFramework
- Go
- HTML
- IOS
- jquery
- Linq
- Mysql
- Oracle
- PHP
- PHPMyAdmin
- Rational Rose
- silver light
- SQL Server
- Stimulsoft Reports
- Telerik
- UML
- VB.NET&VB6
- WPF
- Xml
- آموزش های پروژه محور
- اتوکد
- الگوریتم تقریبی
- امنیت
- اندروید
- اندروید استودیو
- بک ترک
- بیسیک فور اندروید
- پایتون
- جاوا
- جاوا اسکریپت
- جوملا
- دلفی
- دوره های رایگان پیشنهادی
- زامارین
- سئو
- ساخت CMS
- سی شارپ
- شبکه و مجازی سازی
- طراحی الگوریتم
- طراحی بازی
- طراحی وب
- فتوشاپ
- فریم ورک codeigniter
- فلاتر
- کانستراکت
- کریستال ریپورت
- لاراول
- معماری کامپیوتر
- مهندسی اینترنت
- هوش مصنوعی
- یونیتی
- کتاب های آموزشی
- Android
- ASP.NET
- AVR
- LINQ
- php
- Workflow
- اچ تی ام ال
- بانک اطلاعاتی
- برنامه نویسی سوکت
- برنامه نویسی موبایل
- پاسکال
- پایان نامه
- پایتون
- جاوا
- جاوا اسکریپت
- جی کوئری
- داده کاوی
- دلفی
- رباتیک
- سئو
- سایر کتاب ها
- سخت افزار
- سی اس اس
- سی پلاس پلاس
- سی شارپ
- طراحی الگوریتم
- فتوشاپ
- مقاله
- مهندسی نرم افزار
- هک و امنیت
- هوش مصنوعی
- ویژوال بیسیک
- نرم افزار و ابزار برنامه نویسی
- وردپرس